diff --git a/roadmap.md b/roadmap.md index 45d104438..99e60285b 100644 --- a/roadmap.md +++ b/roadmap.md @@ -8,10 +8,146 @@ info@openrobotics.org. ## Gazebo Kura Roadmap -Coming soon... +Starting in Gazebo Kura, we are introducing the idea of a secondary roadmap +which is a list of items the Gazebo PMC is looking to implement with the help +of the community. Committers on the Gazebo project will focus on the primary +roadmap, but will provide guidance and review to anyone in the community +willing to work on any of the items. Each item will have one or more point of +contacts (POCs) who are Gazebo committers and who will be responsible for +coordinating with a community member to get roadmap item implemented. The +POC(s) will provide a description of the roadmap item on a Github issue as well +as some suggestions on how the feature should be implemented. - - +:::{note} +Note that the roadmap may be adjusted during the development cycle and some +items might move from the secondary to the primary roadmap depending on the +progress of primary tasks and availability of committers. +::: + +### Primary Roadmap + +:::{card} + +#### Migrate Gazebo-classic tutorials + +* Copy/adapt tutorials from +* {bdg-primary}`POC:` https://github.com/azeey + +#### Zenoh Refinement + +* Continue refining the recent Zenoh integration work in gz-transport to make +it production ready +* [Add support for loading Zenoh configuration from +file](https://github.com/gazebosim/gz-transport/pull/733) +* Consider supporting shared memory transport over Zenoh +* {bdg-primary}`POC:` https://github.com/caguero + +#### Deep dive into Gazebo performance issues + +* Investigate and improve performance issues in core parts of Gazebo such as +the Entity Component Manager(ECM), libsdformat (world loading as well as +synchronization of models via the ECM), Physics system and associated plugins, +and performance of rendering for moderately complex worlds. +* {bdg-primary}`POC:` https://github.com/azeey + +#### Improve rendering quality + +* Explore how Gazebo can leverage modern rendering engines that provide higher +rendering fidelity. +* Potentially create a new way of integrating external rendering engines +running in a separate process. +* Curate models and worlds with high rendering fidelity for reference +* {bdg-primary}`POC:` https://github.com/iche033 + +#### Third-party plugin repository + +* This is part of larger plan to support CI and binary releases for third-party +plugins, but initial task here will focus on creating a list of third-party +plugins similar to an awesome list. +* {bdg-primary}`POC:` https://github.com/azeey + +#### Add MuJoCo as a new physics engine + +* MuJoCo is known for its speed and superior handling of contact dynamics. In +addition it is actively maintained and has a thriving community of users. +Integrating MuJoCo as Gazebo's fourth physics engine will ensure that Gazebo +can offer a more efficient physics engine while also ensuring the long term +health of the project. +* {bdg-primary}`POC:` https://github.com/azeey +::: + +### Secondary Roadmap + +:::{card} +#### Expose an API similar to SimulationRunner + +* Allow getting the ECM from either sim::Server or the new interface. +* Improve C++ API provided by convenience classes (e.g. `gz::sim::Model`, +`gz::sim::Link`) so that they are more complete for basic use cases. Users will +still need to access the ECM directly for more advanced user cases. +* {bdg-primary}`POCs:` https://github.com/arjo129, https://github.com/caguero + +#### Low fidelity, faster-than-realtime simulation + +* Full support for kinematic objects in dartsim and bullet +* Support a mode where sim runs kinematics mode without having to change the +SDF. +* {bdg-primary}`POC:` https://github.com/scpeters + +#### Dynamically create ros_gz bridges + +* Improve the quality of life for ros_gz_bridge users by automatically creating +bridges of all known Gazebo topics with no or minimal configuration. +* {bdg-primary}`POC:` https://github.com/azeey + +#### A list of polished examples using Gazebo + +* Robot arms properly set up with ros2_control/moveit! +* Working examples of one or two robots of each robot category: arm, mobile, +humanoid, etc. +* {bdg-primary}`POC:` https://github.com/azeey + +#### Improve multi-robot simulation with ROS + +* Gazebo-classic ROS plugins (from gazebo_ros_pkgs) had a way to set namespaces +for each plugin, which could be used to simulate multiple robots easily. ros_gz +doesn’t have this kind of capability. Current solution is to use xacro to add +namespaces to Gazebo topic names. +* {bdg-primary}`POC:` https://github.com/azeey + +#### Refactor initial start up sequence code + +* Reduce chance of "gazebo is not working" issues stemming from +misconfiguration: +* https://github.com/gazebosim/gz-sim/issues/2962 +* https://github.com/gazebosim/gz-sim/issues/2967 +* {bdg-primary}`POC:` https://github.com/arjo129 + +#### Replace homebrew with Pixi in our macOS CI + +* Due to the rolling nature of homebrew, the maintenance burden of building +bottles and the associated CI disruptions have become too much. Pixi on the +other hand can provide version locked binaries. +* {bdg-primary}`POC:` https://github.com/j-rivero + +#### Build python docs and ensure that they are complete + +* Host a sphinx autogenerated Python documentation for all of Gazebo's python +bindings +* {bdg-primary}`POC:` https://github.com/j-rivero + +#### Provide an integration with ros2’s resource_retriever + +* This would allow Gazebo can find assets from ROS packages and ROS tools such +as RViz can find assets known to Gazebo + +* {bdg-primary}`POC:` https://github.com/mjcarroll +::: + +:::{note} +Note that some of these roadmap items may be backported to older versions of +Gazebo on a best-effort basis if they do not break API and ABI. +::: ### Gazebo Kura Release Timeline (2026)