Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



... reusing existing ROS packages and tools in order to get something running sooner.

Current functionality

  • genidl
    • generates IDL files for msg files (no services yet)
    • the result is placed under share/PKGNAME/dds_idl/MSGNAME.msg
  • genidlcpp
    • generates DDS C++ code from idl files
    • the result is placed under include/PKGNAME/dds_impl/*
  • rclcpp (ROS Client Library C++)
    • provides <rclcpp/rclcpp.h> as single entry point to nodes and pub/sub

How to build

  • ./checkout

    Clones std_msgs and common_msgs into the workspace as well as a patched version of catkin. This command requires the vcs tool, sudo apt-get install python-vcstool or sudo pip install vcstool.

  • source /opt/ros/hydro/setup.bash

    To get catkin and all message related packages.

  • source /SOMEWHERE/release.com

    To get the OpenSplice environment. There is also the my_setup.sh in the prototype folder, which can be modified for your use and sourced instead.

  • catkin_make

    Configures and builds the workspace.


  • All message names and field names use an underscore suffix to avoid collisions with keywords.

  • All messages are nested in a subnamespace dds_impl to avoid collision with existing generated code.

  • Constants can not be defined under the message class in DDS, therefore they are defined in the surounding scope with a prefix.

  • Duration and Time types are currently simply mapped to long long.


  • On OS X, if you get an error like this:

      /usr/local/share/opensplice/cmake/../../../include/opensplice/sys/os_abstract.h:80:23: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
      #define PA_ADDRFMT      "%"PA_PRIxADDR

    then you should go edit that file and add spaces in the two places where they're missing. This problem seems to be fixed in the forthcoming v6.4 of OpenSplice.