{"id":40917543,"url":"https://github.com/rticommunity/ros-data-types","last_synced_at":"2026-01-22T03:17:53.329Z","repository":{"id":56282437,"uuid":"153596218","full_name":"rticommunity/ros-data-types","owner":"rticommunity","description":"This repository contains a rich set of ROS data types in OMG IDL format. These types enable you to create native DDS applications capable of interoperating with ROS 2 applications using equivalent message types.","archived":false,"fork":false,"pushed_at":"2021-10-28T23:37:20.000Z","size":298,"stargazers_count":41,"open_issues_count":2,"forks_count":21,"subscribers_count":9,"default_branch":"master","last_synced_at":"2023-12-13T11:00:50.111Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rticommunity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-18T09:13:21.000Z","updated_at":"2023-11-30T07:04:57.000Z","dependencies_parsed_at":"2022-08-15T16:00:34.487Z","dependency_job_id":null,"html_url":"https://github.com/rticommunity/ros-data-types","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/rticommunity/ros-data-types","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Fros-data-types","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Fros-data-types/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Fros-data-types/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Fros-data-types/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rticommunity","download_url":"https://codeload.github.com/rticommunity/ros-data-types/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Fros-data-types/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28652096,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-22T03:17:52.811Z","updated_at":"2026-01-22T03:17:53.324Z","avatar_url":"https://github.com/rticommunity.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ROS Data Types\n\nThis repository contains a rich set of ROS data types in\n[OMG IDL](https://www.omg.org/spec/IDL) format. These types enable you to\ncreate native DDS applications capable of interoperating with ROS 2\napplications using the equivalent\n[common interfaces](https://github.com/ros2/common_interfaces).\n\nROS data types are organized in different modules, including both\ngeneral-purpose types (e.g., `std_msgs`) and domain-specific types (e.g.,\n`trajectory_msgs`).\n\n```bash\nros-data-types/\n├── diagnostic_msgs\n├── gazebo_msgs\n├── geometry_msgs\n├── lifecycle_msgs\n├── nav_msgs\n├── pendulum_msgs\n├── sensor_msgs\n├── shape_msgs\n├── std_msgs\n├── stereo_msgs\n├── test_msgs\n├── tf2_msgs\n├── trajectory_msgs\n└── visualization_msgs\n```\n\nFor more information on the original ROS 2 common interfaces, please refer to\nthis [repository](https://github.com/ros2/common_interfaces).\n\n## Building ROS Type Library\n\nThe ROS Types repository repository provides a set of CMake files to generate\na library containing all the `TypeSupport` and `TypePlugin` classes\nthat are required to build DDS applications capable of sending ROS messages.\n\n### Configuring CMake Project\n\nTo generate the library, first run `cmake` from a subfolder. This process will\ncreate all the build constructs (e.g., Makefiles or Visual Studio solutions)\nthat are required to build the library.\n\n```bash\ncd ros-data-types\nmkdir build; cd build\ncmake ..\n```\n\nBy default, the project will generate a type library for C++11. If you want to\ngenerate a type library for a different language, use the the parameter `LANG`\nas part of your `cmake` invocation:\n\n```bash\ncmake -DLANG=\u003cC|C++|C++11\u003e ..\n```\n\n### Building Type Library\n\nNext, run the created build constructs. On Unix, that implies using GNU `make`:\n\n```bash\nmake\n```\n\n(On Windows, you will need to build the generated Visual Studio solution\ninstead.)\n\n### Installing Type Library\n\nIf you want to copy the resulting library and header files to a different\nlocation, run `cmake` and specify the destination directory:\n\n```bash\ncmake -DCMAKE_INSTALL_PREFIX=/path/to/installation/directory ..\n```\n\nAfter that, you can run `make install` to install the library in that location:\n\n```bash\nmake install\n```\n\n## Using ROS Data Types in Your Application\n\nIn this section we explain how to use the ROS data types in defined in this\nrepository in the declaration of custom types.\n\n### Defining a Custom Type\n\nIn this example we show how to define a custom type named `MyCustomType` that\ncombines native DDS types with types included in the ROS data type library.\n\n#### Custom Type Definition\n\nThe IDL definition of `MyCustomType` is the following:\n\n```cpp\n// MyCustomType.idl\n#include \"trajectory_msgs/msg/JointTrajectory.idl\"\n\nstruct MyCustomType {\n    @key short object_id;\n    trajectory_msgs::msg::JointTrajectory joint_trajectory;\n};\n```\n\nNote that to use `trajectory_msgs::msg::JointTrajectory` in the definition of\nour type, we must first include `trajectory_msgs/msg/JointTrajectory.idl`, which \nis the IDL file where the original type was defined.\n\n#### Generating TypePlugin and TypeSupport Classes\n\nTo run the example, you must generate `TypePlugin` and `TypeSupport`\nclasses for the custom type. To do so, you can either use `rtiddsgen` directly\nor -- if you are using CMake -- call the CMake macro \n`connextdds_generate_ros_dds_types` defined in\nresources/cmake/ConnextDdsRosDdsTypes.cmake`.\n\n##### Generating Code Using rtiddsgen\n\nTo generate the support files using `rtiddsgen` run:\n\n```bash\nrtiddsgen -language \u003cC|C++|C++11\u003e \\\n    MyCustomType.idl \\\n    -I/path/to/directory/ros/types/directory\n    ...\n```\n\nNote that you will need to provide the path to the directory where you\ninstalled the library; that is, the path to the parent directory of\n`trajectory_msgs/msg/JointTrajectory.idl`.\n\n##### Generating Code Using CMake Macro\n\nTo use the macro `connextdds_generate_ros_dds_types`, you will need to include\n`ConnextDdsRosDdsTypes.cmake` from your CMake file:\n\n```cmake\ninclude(ConnextDdsRosDdsTypes)\n\n# ...\n\nconnextdds_generate_ros_dds_types(\n    LANG \u003cC|C++|C++11\u003e\n    OUTPUT_DIRECTORY \u003coutput directory\u003e\n    IDL_FILES \u003clist of files\u003e\n    INCLUDE_DIRS \u003c/path/to/directory/ros/types/directory\u003e\n)\n\n# ...\n```\n\nNote that you will need to provide the path to the directory where you\ninstalled the library; that is, the path to the parent directory of\n`trajectory_msgs/msg/JointTrajectory.idl`.\n\n#### Build Example Application\n\nOnce you have generated the `TypePlugin` and `TypeSupport` classes, you will\nneed to compile and link them into into your application. If you are using\nCMake, simply add the generated header and source files to your library or\nexecutable using `add_library()` or `add_executable()`. In addition, you will\nneed to link the application against the rosddstype library, which contains the\ntype plugin and support classes for the original ROS data types.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frticommunity%2Fros-data-types","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frticommunity%2Fros-data-types","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frticommunity%2Fros-data-types/lists"}