Repo symbol

roscondemo repository

agriculture ros2 robotics-simulation o3de ros2-humble
Repo symbol

roscondemo repository

agriculture ros2 robotics-simulation o3de ros2-humble
Repo symbol

roscondemo repository

agriculture ros2 robotics-simulation o3de ros2-humble
Repo symbol

roscondemo repository

agriculture ros2 robotics-simulation o3de ros2-humble
Repo symbol

roscondemo repository

agriculture 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 of git 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.

# Contributing ### Code of conduct Please refer to and respect the [O3DE Code of Conduct](https://www.o3de.org/docs/contributing/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](https://developercertificate.org/) to contribute. Some important points: - Make sure your username and user email are [set up](https://docs.github.com/en/get-started/getting-started-with-git/setting-your-username-in-git). - 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 of `git 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](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors) 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](https://github.com/o3de/community/blob/main/CONTRIBUTING.md) and [ROS contribution guide](https://docs.ros.org/en/humble/Contributing.html) as well.
Repo symbol

roscondemo repository

agriculture ros2 robotics-simulation o3de ros2-humble
Repo symbol

roscondemo repository

agriculture ros2 robotics-simulation o3de ros2-humble
Repo symbol

roscondemo repository

agriculture ros2 robotics-simulation o3de ros2-humble
Repo symbol

roscondemo repository

agriculture ros2 robotics-simulation o3de ros2-humble