Jan Hanca 970224ad02 [RFC 96] Create new Gem `ROS2RobotImporter` out of `ROS2` Gem (#895) 3 mēneši atpakaļ
..
Assets 970224ad02 [RFC 96] Create new Gem `ROS2RobotImporter` out of `ROS2` Gem (#895) 3 mēneši atpakaļ
Code 970224ad02 [RFC 96] Create new Gem `ROS2RobotImporter` out of `ROS2` Gem (#895) 3 mēneši atpakaļ
Registry 07221cbd93 Support for skid-steering and articulations. (#589) 1 gadu atpakaļ
.clang-format 029eb9b3b7 Add .clang-format file (#104) 2 gadi atpakaļ
.gitignore eacec1924e Added workspace folder to gitignore 2 gadi atpakaļ
.licenserc.yaml 30e7b3788f Add CodeChecks workflow (#109) 2 gadi atpakaļ
CMakeLists.txt cc1a6e0a8c Fix ROS2 python tests (#663) 1 gadu atpakaļ
CONTRIBUTING.md ecad2845c7 First version of Contribution Guide (#98) 2 gadi atpakaļ
README.md dd3d4f3ef3 Updated readmes to include new features, fix typos etc. (#580) 1 gadu atpakaļ
gem.json 633e6e4db0 Cherry-pick changes from 2409.2 back to development (#836) 4 mēneši atpakaļ
preview.png dc731e6397 Added missing preview.png 2 gadi atpakaļ
requirements.txt cc1a6e0a8c Fix ROS2 python tests (#663) 1 gadu atpakaļ

README.md

O3DE ROS 2 Gem

With the ROS 2 Gem you can develop robotic simulations with ROS (Robot Operating System) 2 in Open 3D Engine (O3DE).

Platform

The Gem is tested with ROS 2 Humble and Iron on Ubuntu 22.04. ROS 2 Jazzy support will be available on distro release day.

The Gem is not available for Windows and does not support ROS 1.

Installation

Refer to this part of the documentation to learn how to create a new project with the ROS 2 Gem.

Documentation

A great place to start learning about this Gem is the O3DE Robotics Documentation.

Features

  • Direct and natural support of ROS 2 ecosystem:
    • No bridges. Your simulation node will function as any other ROS 2 node. You can write ROS 2 code in simulation!
    • This is also good for performance.
    • Easy way to include ROS 2 dependencies.
    • "Just works" with custom messages, services and actions.
  • Sensors:
    • Customizable sensors: Lidar3D, Lidar2D, Camera, IMU, Odometry, GNSS, Contact.
    • Easy to implement other sensors through handy abstractions.
  • Robot control and dynamics components:
    • A quick to use method of controlling your mobile robot with Twist or Ackermann messages.
    • Control and state components for joint systems, such as robotic manipulator arms.
    • Vacuum and finger grippers.
  • Robot Importer feature working with URDF and SDFormat (including .xacro and .world files)
    • Plugin support which allows you to import robots with sensors already there!
  • Automated handling of:
    • Simulation time, publishing /clock supporting non-real time.
    • Publishing of transformation frames (/tf, /tf_static).
    • Validation for topic and namespace names.

For a "feel" of these features, see an example project which uses this Gem to run navigation stack.

Importing robots

Please refer to Robot Importer documentation.

Troubleshooting

See Troubleshooting guide.

User Guides

If you plan on contributing please follow the Pull Request Publishing guide. For those using the Clion IDE we advise to follow the Development in Clion guide.

Acknowledgements

This project was originally developed by Robotec.ai in cooperation with AWS Game Tech and AWS RoboMaker.