Justyna Toton Oct 17, 2023 - Robotics

How to start your first simulation project in Open 3D Engine (O3DE)?

Imagine a world where the entire community helps you tackle your simulation problems, and the software you use does not come with rising fees and changing license terms. What if thousands of talented developers constantly improve the solution you use? The potential of innovation is never stifled when projects are in the hands of entire communities.

Welcome to the era of open-source solutions, when all of it is at your disposal. Let us introduce you to Open 3D Engine (O3DE), a free and open-source 3D game engine developed by Open 3D Foundation, a subsidiary of the Linux Foundation.

With the help of O3DE, you can create effective robotic simulations tailored to your robotic needs. As proud members of the Open 3D Foundation, we actively support the use of O3DE in the robotics industry. To ensure O3DE’s compatibility with ROS, our Robotec team developed ROS 2 GEM, a direct ROS 2 integration in O3DE. We will discuss it in detail in further sections of the blog post.

Now, let us focus on the central topic of our blog post: O3DE. How do you take your first steps in the O3DE ecosystem?

A short guide on starting your first O3DE project

Let’s start with the good news: O3DE has a dedicated learning space where you can find out everything you need, from O3DE features, key concepts, and supported platforms to community support.

The bad news is that O3DE may be a bit intimidating with its abundance of tools and features. Fear not: the complexity of the environment is a well of possibilities for ROS developers. Everything will become rather intuitive after you learn to navigate the O3DE environment. In case of trouble, seek community support on forums and Discord.

Here are the main things you should know upon embarking on your O3DE adventure:

  • O3DE consists of Gems – modules containing libraries with standard interfaces and assets. Gems can comprise assets like materials, models, tools such as Script Canvas, and complete runtime systems like the Atom renderer, AI, and Physics.
  • O3DE features a state-of-the-art physically-based renderer alongside a suite of tools to build and process assets, simulate physics, and create animation and cinematics.
  • You can seamlessly integrate O3DE with ROS 2 with the help of our ROS 2 Gem. It enables robotic simulation based on modern ROS, eliminating the need for bridges or wrappers.

If you want to start your O3DE journey, get familiar with:

Once you’re ready to go, follow the tutorial posted here and start your O3DE game with ping pong. After you learn to navigate the O3DE environment, we have three robotics templates to help you get started.

ROSCon 2023 demo

Our ROSCon 2023 demo created in O3DE

O3DE for robotics simulations and applications

With the growing circle of robotics developers in the community, O3DE has a special page dedicated to robotics simulation. What can you find there?

After you familiarize yourself with the pages linked here, we recommend starting with these three ROS 2 Project Templates:

  • ROS 2 project template – the simplest out of three templates; ideal for kickstarting your first project. It features a Husarion ROSBot XL model equipped with a lidar and a differential drive.
  • Warehouse project template – focuses on multi-robot use cases in warehouses and fulfillment centers. The warehouse assets used in the template are modular and well-suited for reconfiguration to match a custom warehouse.
  • Manipulation project template – this template focuses on robotic arm manipulation with ROS 2 and MoveIt. It features two levels for different use cases: one for robotic manipulation, the other one for robotic palletization.

Our ROSCon 2022 O3DE-powered demo

Robotics simulations with ROS 2 GEM

At Robotec, we believe that the future is open-source, and collaboration is the mother of innovation. For that reason, our team decided to work on ROS 2 Gem in cooperation with AWS Game Tech to bridge the gap between O3DE and ROS for the benefit of the entire robotics community.

ROS 2 Gem enables robotic simulation in O3DE using the extensive ROS (Robot Operating System) ecosystem, eliminating the need for bridges or wrappers. Developers can directly incorporate ROS 2 code into their simulation projects, utilize workspace overlays, control simulation time, and access essential components for tasks like publishing transform frames and applying namespaces. Additionally, multi-robot simulation is natively supported. Another bonus is that ROS 2 Gem includes a set of sensors, for example, LIDAR, IMU, and GNSS.

ROS 2 Gem automates the management of several crucial simulation aspects, including:

  • Simulation Time: it efficiently handles simulation time, supporting both real-time and non-real-time scenarios.
  • Transformation Frames: it automates the publishing of transformation frames (/tf and /tf_static), ensuring seamless coordination within your simulation.
  • Topic and Namespace Validation: It provides validation mechanisms for topic and namespace names, enhancing system reliability.

Additionally, ROS 2 Gem gives you a quick-to-use method of controlling your robot with Twist messages and seamlessly integrates with custom LUA scripting for added flexibility and control.

As it is open-source, you are invited to contribute to its development and use it in your own simulation projects. Just head to GitHub, and let’s get started!

Beginnings are rarely easy, but we hope to welcome you into our O3DE community, where developers like you turn challenges into possibilities.

 

Interested in our O3DE projects? Check out our demo from ROSCon 2022!

Want to stay updated with our projects? Let’s connect on LinkedIn!

Want to leave a star to keep it all saved? Just click here

 

Authors: Paweł Budziszewski, Simulation Engineer (the Simulation Engines department) at Robotec.ai
Justyna Toton, Copywriter at Robotec.ai

Share post: