/create3_sim

ROS 2 Simulation for the iRobot® Create® 3 Educational Robot

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

iRobot® Create® 3 Simulator

Testing License

This is a ROS 2 simulation stack for the iRobot® Create® 3 robot. Both Ignition Gazebo and Classic Gazebo are supported.

Have a look at the Create® 3 documentation for more details on the ROS 2 interfaces exposed by the robot.

Prerequisites

Required dependencies:

  1. ROS 2 galactic
  2. ROS 2 dev tools:

Besides the aforementioned dependencies you will also need at least one among Ignition Gazebo and Classic Gazebo

Classic Gazebo

Install Gazebo 11

Ignition Edifice

It is currently recommended to build Ignition Gazebo from sources because this will include the latest, unreleased, bug fixes.

From Source (Recommended)
  • Create a workspace
mkdir -p ~/ignition_ws/src
  • Use vcs to clone Ignition Edifice dependencies into the workspace:
cd ~/ignition_ws
sudo apt-get update && sudo apt-get install wget
wget https://raw.githubusercontent.com/iRobotEducation/create3_sim/main/irobot_create_ignition/ignition_edifice.repos
vcs import ~/ignition_ws/src < ~/ignition_ws/ignition_edifice.repos
  • Install additional dependencies:
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt -y install \
  $(sort -u $(find . -iname 'packages-'`lsb_release -cs`'.apt' -o -iname 'packages.apt' | grep -v '/\.git/') | sed '/ignition\|sdf/d' | tr '\n' ' ')
  • Build the Ignition libraries:
cd ~/ignition_ws
colcon build --merge-install
Binary
sudo apt-get update && sudo apt-get install wget
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update && sudo apt-get install ignition-edifice

Build

  • Create a workspace if you don't already have one:
mkdir -p ~/create3_ws/src
  • Clone this repository into the src directory from above.

  • Use vcs to clone additional dependencies into the workspace:

vcs import ~/create3_ws/src/ < ~/create3_ws/src/create3_sim/dependencies.repos
  • Navigate to the workspace and install ROS 2 dependencies with:
cd ~/create3_ws
rosdep install --from-path src -yi
  • Build the workspace with:
colcon build --symlink-install
source install/local_setup.bash

Run

Classic Gazebo

Empty world

Create® 3 can be spawned in an empty world in Gazebo and monitored through RViz with

ros2 launch irobot_create_gazebo_bringup create3_gazebo.launch.py
AWS house

Create® 3 can be spawned in the AWS small house in Gazebo and monitored through RViz. This requires that the package aws_robomaker_small_house_world is available.

If you need it, you can build aws_robomaker_small_house_world in your ROS 2 workspace by doing:

vcs import ~/create3_ws/src/ < ~/create3_ws/src/create3_sim/irobot_create_gazebo/demo.repos
cd ~/create3_ws
colcon build --symlink-install
source install/local_setup.bash

Then you can run:

ros2 launch irobot_create_gazebo_bringup create3_gazebo_aws_small.launch.py

Ignition Gazebo

Create® 3 can be spawned in a demo world in Ignition and monitored through RViz with

ros2 launch irobot_create_ignition_bringup create3_ignition.launch.py

Package layout

This repository contains packages for both the Classic and Ignition Gazebo simulators:

  • irobot_create_common Packages common to both Classic and Ignition

    • irobot_create_common_bringup Launch files and configurations
    • irobot_create_control Launch control nodes
    • irobot_create_description URDF and mesh files describing the robot
    • irobot_create_toolbox Nodes for simulating robot topics and motion control
  • irobot_create_gazebo Packages used for the Classic Gazebo Simulator

    • irobot_create_gazebo_bringup Launch files and configurations
    • irobot_create_gazebo_plugins Sensor plugins
    • irobot_create_gazebo_sim Metapackage
  • irobot_create_ignition Packages used for the Ignition Gazebo Simulator

    • irobot_create_ignition_bringup Launch files and configurations
    • irobot_create_ignition_plugins GUI plugins
    • irobot_create_ignition_sim Metapackage
    • irobot_create_ignition_toolbox Sensor and interface nodes