-
Notifications
You must be signed in to change notification settings - Fork 109
Closed
Description
This is a meta-ticket with a list of tasks for ROS 2 Java support targeting Foxy. These are tasks that I'm scheduling for myself, posting here for visibility. I'm not imposing a specific timeline on anything, but it would be nice to get things in for the release date.
If anyone would like to help out on any of the items (implementation or review), please comment on this ticket!
Roadmap
Will be updated as work progresses and tickets are opened
- Dashing / Foxy support 👷♂️
- rosidl_generator_java (Update rosidl_generator_java for Dashing compatibility #66) (Update rosidl_generator_java tests #68) (Fix service and action interface generation #76) 🔍
- rcljava (Update rcljava for Dashing #75) 🔍
- Get CI running (Rename rcljava_common cpp headers to have .hpp suffix #93) (Shutdown default context after tests #95) (Add GitHub workflow for Dashing #96) 🔍
- Windows CI 👷♂️
- macOS CI 👷♂️
- Android CI 👷♂️
- Support simulation time 👷♂️
- Actions (ROS Actions #138) 👷♂️
- Action server
- Action client
- Figure out how to package Gradle packages
- In particular, AMENT_PACKAGE_PREFIX and CLASSPATH are not being set (see Future of ament_build_type_gradle ament_java#9)
- Retroactive interface generation
- It would be good to have a mechanism to invoke the rosidl_generator_java pipeline for packages already installed. This would enable rcljava to be installed without having to build all of ROS 2 from source. On a somewhat related note, it sounds like rclnodejs accomplishes this, perhaps with some manual steps required.
- Refactor as necessary to support many nodes per ROS context
- Depends on Reconsider Node to Participant mapping ros2/design#250 and Modify implementations to use one Participant per Context ros2/rmw#183 for more info. We may not need to make any changes in rcljava.
- Architecture / API review
- High level documentation
- Document design (e.g. how it integrates with rcl)
- Some tutorials on how to use
Nice to haves
These items are lower on my priority list
- Intra-process communication
- Lifecycle nodes
- Parameter improvements
- Declared parameters
- "on set" parameter callbacks
- Parameter constraints
- E.g. numerical range constraints
- Incompatible QoS setting callbacks
Metadata
Metadata
Assignees
Labels
No labels