Git Product home page Git Product logo

vsomeip-ros-bridge's Introduction

ROS SOME/IP bridge

Proof of concept project which tries to create a bridge between vsomeip / common-api and ROS linux environment.

asciicast

Problem definition

Make SOME/IP data available in ROS2 natively.

Simulation

To simulate real GPS/GNSS data coming from the receiver we would use gpsfake tool together with a text file containing small set of real NMEA messages. Can be obtained from https://www.nmeagen.org/.

Architecture

  • We would use open source SOME/IP stack implementation (COVESA/GENIVI)
  • gpsd daemon + gpsfake utility
  • SOME/IP broadcast's published as ROS2 topics.

bridge

UDS = Unix Domain Socket (used by GENIVI stack for communication between router and clients on localhost)

Limitations

We will limit our scope by making available only SOME/IP broadcast messages as topics, with string messages which contain data in json format.

Open points

  • Parse FIDL/FDEPL files to generate bridge glue code automatically
  • Add support for different data types (i.e. ROS topic datatypes)
  • Think of potential configuration (mapping between topics and SOME/IP events)
  • Think how to handle outgoing data (requests)
  • Think how to handle attributes

How it works

To simulate remote ECU which broadcasts GNSS data over the network using UDP packets with SOME/IP serialised payload we would use dedicated docker container Docker.server.

At the same time to receive those PDUs we would run another dedicated docker container Docker.client.

to run the setup simply execute (tested in ubuntu 20.04):

    make run

to rebuild the contains without running execute:

    make compose

Development

To simplify compilation and testing of the changes there is possibility to enter docker container, using:

    make enter-build-env

then you can use shortcuts like

    make colcon-build

to build all packages in the repository. Or, if you like to build them separately use

    make gnss-provider
    make gnss-bridge
    make gnss-someip-lib
    make gnss-listener

Tips

I will put here some tips / tricks to not to forget.

Cleanup docker networks

    docker network prune

Links

vsomeip-ros-bridge's People

Contributors

miketsukerman avatar francorivero avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.