iRobot® Create® 3 Simulator
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:
- ROS 2 galactic
- ROS 2 dev tools:
- colcon-common-extensions
- rosdep: Used to install dependencies when building from sources
- vcs: Automates cloning of git repositories declared on a YAML file.
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 Ignitionirobot_create_common_bringup
Launch files and configurationsirobot_create_control
Launch control nodesirobot_create_description
URDF and mesh files describing the robotirobot_create_toolbox
Nodes for simulating robot topics and motion control
-
irobot_create_gazebo
Packages used for the Classic Gazebo Simulatorirobot_create_gazebo_bringup
Launch files and configurationsirobot_create_gazebo_plugins
Sensor pluginsirobot_create_gazebo_sim
Metapackage
-
irobot_create_ignition
Packages used for the Ignition Gazebo Simulatorirobot_create_ignition_bringup
Launch files and configurationsirobot_create_ignition_plugins
GUI pluginsirobot_create_ignition_sim
Metapackageirobot_create_ignition_toolbox
Sensor and interface nodes