Closed adamdbrw closed 2 years ago
It's not clear if this gem will live outside of o3de's main repository or in it. Which one is it?
My intention is that it will live inside the o3de repository.
Sig-core has decided that the Gem should live here, at least for now.
The ROS2 Gem has been moved to their repo, so SIG-Core doesn't need to approve this RFC anymore
@lgleim This I believe is now part of @o3de/sig-simulation ?
Summary:
O3DE will support robotic simulation through a dedicated Gem, providing components and tools which make it easier for ROS2 developers to migrate their projects to O3DE.
What is the relevance of this feature?
ROS2 is de facto standard in robotics, with a substantial and quickly growing user base. It supports numerous use-cases in robotics, both academic and industrial, and a variety of platforms such as warehouse logistics robots, agricultural robots, airborne drones, underwater platforms and autonomous vehicles. ROS2 Gem will encourage robotic communities to use O3DE.
Feature design description:
ROS2 Gem RFC can be seen in two perspectives:
We can start with (1) first.
Features for the bare minimum Gem:
Discussion for (2) is very important as well and I would like to put that on the radar. The ROS2 Gem will include a number of components such as:
These will provide useful abstractions to be extendable with user types and custom implementations. The Gem should also include a number of Assets to start with (environment and robot models). The Gem should also include tools and extensions such as importing URDF files (and support in Asset Processor). A robotic simulation project template would be useful as well, as well as a demo/tutorial scene.
Technical design description:
For a bare minimum:
/clock
topicrclcpp::init
), creating the main simulation node, and listening for inbound ROS2 communication (rclcpp::spin).What are the advantages of the feature?
Solution for common robotic simulation needs. Users don't need to implement the entire framework repeatedly. ROS2 community is attracted to O3DE.
What are the disadvantages of the feature?
To respect the ROS2 way, the environment needs to be sourced before the build.
How will this be implemented or integrated into the O3DE environment?
Since this is a separate Gem, the integration is quite straightforward.
Are there any alternatives to this feature?
O3DE would not be a good choice for robotic simulation.
Note that other game engines already have solutions for that.
How will users learn this feature?
Are there any open questions?