![]() |
roscondemo repositoryagriculture ros2 robotics-simulation o3de ros2-humble o3de_kraken_nav o3de_kraken_orchestration |
Repository Summary
Description | A robotic fruit picking demo project for O3DE with ROS 2 Gem |
Checkout URI | https://github.com/o3de/roscondemo.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-02-05 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | agriculture ros2 robotics-simulation o3de ros2-humble |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
o3de_kraken_nav | 1.0.0 |
o3de_kraken_orchestration | 0.0.0 |
README
O3DE Apple Kraken Demo Project
Video demo
https://user-images.githubusercontent.com/82551958/229636734-2f67abeb-fe78-432c-8139-e4fc82f008ed.mp4
This project demonstrates an example application of O3DE working with ROS 2. The integration is realized through ROS 2 Gem.
How does it look like
The project includes
- Apple Orchard, a simulation scene with many rows of apple trees.
-
Apple Kraken, a robot tasked with apple picking. It is ready to use and also included as an URDF.
- Multiple Apple Krakens are supported
- .. and you can spawn them using ROS 2 messages!
-
Custom components for picking apples, which benefit from direct integration with ROS 2.
- Yes, you can write ROS 2 code in O3DE!
-
Autonomous operation which is based on ROS 2 navigation stack and ground truth.
- Ground truth can be replaced with detectors based on sensor data. Give it a try!
-
Apples
- Thousands of apples!
Simulation scenes (levels)
Main Level
The main scene of the demo is set in an apple orchard surrounded by countryside. The orchard is managed by the Apple Kraken.
The main level is rather performance-intensive.
The Apple Kraken is a four-wheeled robot assigned the task of navigating around the orchard, collecting apples and storing them in its basket.
Playground Level
The playground scene is much lighter and can be used to quickly prototype with Kraken. There are only a couple of apple trees and the robot itself.
Requirements
Platforms
The project runs on Ubuntu 22.04 with ROS 2 Humble or ROS 2 Iron. If you wish to run this demo in Docker environment, please use the instructions in the Docker
folder.
💡 Note: This demo is not supported on Windows!
O3DE
Refer to the O3DE System Requirements documentation to make sure that the system/hardware requirements are met.
The following commands should prepare O3DE (assuming ${WORKDIR}
is your working directory):
cd ${WORKDIR}
git clone --branch main --single-branch https://github.com/o3de/o3de.git
cd o3de
git lfs install
git lfs pull
python/get_python.sh
scripts/o3de.sh register --this-engine
In case of any problems, please refer to the instructions to set up O3DE from GitHub.
ROS 2 Gem
This project uses the ROS 2 Gem, which is included in the O3DE extras bundle. Please install ROS 2 first.
The following commands should prepare o3de-extras
into your ${WORKDIR}
:
cd ${WORKDIR}
git clone --branch main --single-branch https://github.com/o3de/o3de-extras
cd o3de-extras
git lfs install
git lfs pull
And register required Gem:
cd ${WORKDIR}
./o3de/scripts/o3de.sh register --gem-path o3de-extras/Gems/ROS2
Please make sure to use the same version of o3de
and o3de-extras
. This demo was successfully tested with the 2310.1
release.
More information about installing ROS 2 Gem can be found in the installation guide in ROS 2 Project Configuration. Note that the Gem instructions include the installation of ROS 2 with some additional packages.
To learn more about how the Gem works check out the Robotics in O3DE. The Gem is open to your contributions!
Additional ROS 2 packages
The additional packages need to be installed. Use the following command:
sudo apt install ros-${ROS_DISTRO}-vision-msgs ros-${ROS_DISTRO}-nav-msgs ros-${ROS_DISTRO}-rmw-cyclonedds-cpp ros-${ROS_DISTRO}-cyclonedds
💡 Note: This is a dependency besides all the packages already required by the ROS 2 Gem.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Code of conduct
Please refer to and respect the O3DE Code of Conduct.
Authorship and Developer Certificate of Origin (DCO)
When creating a pull request to this repository, make sure that:
- Authorship of the code is properly attributed. You need to agree with the Developer Certificate of Origin to contribute. Some important points:
- Make sure your username and user email are set up.
- If you commit parts of code which are not yours, make sure you are allowed to do so (in terms of license) and respect all the requirements of the license, such as Attribution.
- If you are not the author of the commit, indicate authorship with
--author
flag ofgit commit
command. - Try to divide your work into commits done by a single author. If you decide to use a single commit for a multi-author work, use the Co-authored-by syntax in the commit message.
- Your commits are signed, indicating compliance with the DCO: use
git commit -s
to ensure that.
Additional information
We recommend you to read O3DE contribution guide and ROS contribution guide as well.