{"id":29022585,"url":"https://github.com/ihmcrobotics/jros2","last_synced_at":"2025-06-26T03:02:07.047Z","repository":{"id":297459517,"uuid":"952192301","full_name":"ihmcrobotics/jros2","owner":"ihmcrobotics","description":"The easiest way to use ROS 2 from Java","archived":false,"fork":false,"pushed_at":"2025-06-25T21:17:36.000Z","size":34020,"stargazers_count":2,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-25T21:35:41.353Z","etag":null,"topics":["computer-vision","java","pubsub","robotics","ros","ros2"],"latest_commit_sha":null,"homepage":"","language":"Java","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/ihmcrobotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-20T22:06:42.000Z","updated_at":"2025-06-25T21:17:39.000Z","dependencies_parsed_at":"2025-06-05T15:54:31.488Z","dependency_job_id":null,"html_url":"https://github.com/ihmcrobotics/jros2","commit_stats":null,"previous_names":["ihmcrobotics/jros2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ihmcrobotics/jros2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihmcrobotics%2Fjros2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihmcrobotics%2Fjros2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihmcrobotics%2Fjros2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihmcrobotics%2Fjros2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ihmcrobotics","download_url":"https://codeload.github.com/ihmcrobotics/jros2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihmcrobotics%2Fjros2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261990276,"owners_count":23241185,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["computer-vision","java","pubsub","robotics","ros","ros2"],"created_at":"2025-06-26T03:02:06.506Z","updated_at":"2025-06-26T03:02:07.032Z","avatar_url":"https://github.com/ihmcrobotics.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"media/jros2.png\" width=\"30%\" /\u003e\u003cbr\u003e\n  \u003ca href=\"https://github.com/ihmcrobotics/jros2/wiki\"\u003eWiki\u003c/a\u003e\n  \u003ca href=\"https://github.com/ihmcrobotics/jros2/issues\"\u003eIssues\u003c/a\u003e\n\u003c/p\u003e\n\n-----------------\nA ROS 2 library for Java. Uses Fast-DDS middleware. Fully compatible with other supported ROS 2 middlewares.\n\nFast-DDS version: `3.2.2`\n\nROS 2 compatible and tested distros: `[humble, jazzy]`\n\nSupported platforms:\n- Linux (Ubuntu 20.04+ or similar x86_64, arm64)\n- Windows (Windows 10+ x86_64)\n- (soon) macOS (macOS 13+ Intel, Apple Silicon)\n- (soon) Android\n\n## Features\n- Fully compatible with ROS 2 humble or newer (may also work with older ROS 2 distros)\n- Does not require a ROS 2 installation on the system\n- Ready-to-use Java library, just add to your Maven or Gradle dependencies!\n- Publish and subscribe to ROS 2 topics\n- Supports custom message types\n- Generate Java classes from ROS 2 .msg files\n- Fast-DDS backend\n- Minimal and fast implementation\n- Fully thread-safe\n- Async and allocation-free API\n- (soon) ROS 2 services\n- (soon) ROS 2 actions\n- (soon) ROS 2 parameters\n\n## Usage\nRead in-depth documentation on the [Wiki](https://github.com/ihmcrobotics/jros2/wiki)!\n\n### Here's the basics:\n\nCreate a ROS2Node:\n```\nint domainId = 100;\nROS2Node node = new ROS2Node(\"my_node\", domainId); // domainId is 0 by default\n// Call node.close() when you're done with the node!\n```\n\nCreate a ROS2Topic:\n```\nROS2Topic\u003cInt32\u003e intTopic = new ROS2Topic(\"/int_topic\", Int32.class);\n```\n\nCreate a ROS2Publisher and publish a message on the intTopic:\n```\nROS2Publisher\u003cInt32\u003e intPublisher = node.createPublisher(topic);\nInt32 message = new Int32();\nmessage.setData(123);\nintPublisher.publish(message);\n```\n\nCreate a subscription to the intTopic:\n```\nROS2Subscription\u003cInt32\u003e subscription = node.createSubscription(topic, reader -\u003e {\n  Int32 message = reader.read();\n  // Do something with the message!\n};\n```\n\n### Talker and listener example\nRun a talker and listener example with `./run_talker_listener.sh`. If you have a local ROS 2 installation or use a ROS 2 container, you\ncan verify that ROS 2 is able to communicate with jros2.\n\n```\n[New shell]\njros2$ ./run_talker_listener.sh\n\u003e Task :examples:ros2-ros2-talker-listener:run\nPublishing: 'Hello world: 0'\nPublishing: 'Hello world: 1'\nI heard: 'Hello world: 1'\nPublishing: 'Hello world: 2'\nI heard: 'Hello world: 2'\n[...]\n```\n```\n[New shell]\njros2$ source /opt/ros/humble/setup.bash \njros2$ ros2 topic echo /chatter\ndata: 'Hello world: 1'\n---\ndata: 'Hello world: 2'\n---\n[...]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fihmcrobotics%2Fjros2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fihmcrobotics%2Fjros2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fihmcrobotics%2Fjros2/lists"}