This is a ROS 2 simulation stack for the iRobot® Create® 3 robot. Only Gazebo Harmonic is supported.
Have a look at the Create® 3 documentation for more details on the ROS 2 interfaces exposed by the robot.
Required dependencies:
- ROS 2 Jazzy
- 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 Gazebo Harmonic.
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 ros-gz- Create a workspace if you don't already have one:
mkdir -p ~/create3_ws/src-
Clone this repository into the src directory from above.
-
Clone the
irobot_create_msgsrepository into the workspace -
Navigate to the workspace and install ROS 2 dependencies with:
cd ~/create3_ws
sudo apt-get update
rosdep install --from-path src -yi- Build the workspace with:
colcon build --symlink-install
source install/local_setup.bashCreate® 3 can be spawned in a demo world in Gazebo and monitored through RViz with
ros2 launch irobot_create_gz_bringup create3_gz.launch.pyThe spawn point can be changed with the x, y, z and yaw launch arguments:
ros2 launch irobot_create_gz_bringup create3_gz.launch.py x:=1.0 y:=0.5 yaw:=1.5707A namespace can be applied to the robot using the namespace launch argument:
ros2 launch irobot_create_gz_bringup create3_gz.launch.py namespace:=my_robotMultiple robots can be spawned with unique namespaces:
ros2 launch irobot_create_gz_bringup create3_gz.launch.py namespace:=robot1
ros2 launch irobot_create_gz_bringup create3_spawn.launch.py namespace:=robot2 x:=1.0
⚠️ create3_gz.launch.pyshould only be used once as it launches the Ignition simulator itself. Additional robots should be spawned withcreate3_spawn.launch.py. Namespaces and spawn points should be unique for each robot.
This repository contains packages for both the Classic and Ignition Gazebo simulators:
-
irobot_create_commonPackages common to both Classic and Ignitionirobot_create_common_bringupLaunch files and configurationsirobot_create_controlLaunch control nodesirobot_create_descriptionURDF and mesh files describing the robotirobot_create_nodesNodes for simulating robot topics and motion controlirobot_create_toolboxTools and helpers for creating nodes and plugins
-
irobot_create_gzPackages used for the Gazebo Harmonic Simulatorirobot_create_gz_bringupLaunch files and configurationsirobot_create_gz_pluginsGUI pluginsirobot_create_gz_simMetapackageirobot_create_gz_toolboxSensor and interface nodes