Gazebo simulations In YonoArc

Ibrahim Essam
YonoHub
Published in
4 min readSep 8, 2020

Gazebo is one of the well-known 3D simulators in the robotics world. If you have ever used ROS, then you already know Gazebo. It offers excellent Robots and sensors simulation, high-performance physics simulators, and realistic rendering capabilities.

In the last few weeks, many new Gazebo worlds have been released for free, such as AWS Robomaker worlds [Warehouse, Hospital, Bookstore, Small-house]and ClearPath Robotics worlds here. And if you need more worlds to test your robot, train it, or even generate synthetic data. Creating these worlds manually will be expensive and time-consuming. AWS Robomaker announced WorldForge to automate this task.

Running many simulations in parallel requires a decent hardware setup, which is not always possible for most of us. Luckily you can in a few clicks run your simulations in parallel in the cloud using Yonohub. With no prior experience with all the complications of preparing, and running the Cloud VMS. Just in less than 10 lines of python code.

Image source: AWS WorldForge

In this tutorial, we will learn how to run a gazebo simulation on the cloud using YonoArc. In the next tutorial, we will use this world for our robot simulation and learn how to spawn a robot, test it, and log the results on YonoArc.

1. Building the Environment:

Gazebo requires OpenGL for rendering, so we need to choose “Ubuntu 18.04, GPU with Accelerated Rendering, Python 3 (x86_64)” as a base environment. This base offers OpenGL by default and allow us to use the GPU for rendering.

  • Choose Base Name: Ubuntu 18.04, GPU with Accelerated Rendering, Python 3 (x86_64)

We need also to install “ros-melodic-desktop-full” which installs Gazebo and some ros packages to fully integrate Gazebo with ROS.

  • add a new package and choose “apt” as the package manager, “ros-melodic-desktop-full” as the Package name.

That's all we don’t need any more requirements for our Gazebo Block.

  • Press on “Express Build” to build the environment after giving it a name and version.

2. Building the Block:

We will use YonoArc’s Python3 API to build our Gazebo Block. The code is very simple we just need to run some process in the background to launch Gazebo for us.

  • Open Your favorite text editor and save the block code as a python file.
  • Upload this file to your git repo or YonoDrive.

3. Creating the Block:

Now we have our Block’s environment and code ready. Let’s open YonoArc’s Block manager and create a new Project.

  • Block type: we choose Python 3 YonoArc API.
  • Environment: Choose the environment we built in step 1.
  • source code: where you saved your block code.
  • Then press Create and Build the block.

After the block is built and in the release-ready state, open the block to edit its properties and info.

We need to define two properties for the Models folder path and world file path.

In the properties section:

  • Choose “File/Folder path” as the property type.
  • Give the property name and key as in the screenshot underneath.

and one last step we need is to define a new URL for NoVNC.

at the bottom of the page, we can define it as follow.

and now you are ready to save and release your Gazebo Block.

In the upcoming part, We will learn how to integrate ROS and Gazebo in our Block and run multiple robotics simulations in parallel.

About YonoHub:

Yonohub is a web-based cloud system for the development, evaluation, integration, and deployment of complex systems, including Artificial Intelligence, Autonomous Driving, and Robotics. Yonohub features a drag-and-drop tool to build complex systems, a marketplace to share and monetize blocks, a builder for custom development environments, and much more. YonoHub can be deployed on-premises and on-cloud.

Get $25 free credits when you sign up now. For researchers and labs, contact us to learn more about Yonohub sponsorship options. Yonohub: A Cloud Collaboration Platform for Autonomous Vehicles, Robotics, and AI Development. www.yonohub.com

If you liked this article, please consider following us on Twitter at @yonohub, email us directly, or find us on LinkedIn. I’d love to hear from you if I can help you or your team with how to use YonoHub.

--

--