iRobot® Create® 3¶
iRobot® Create® 3 is a mobile robotics platform, which developers can use to gain hands-on experience with the technologies and concepts that are foundational to the field of autonomous mobile robots. This practical understanding is invaluable for those looking to enter the robotics industry or further their knowledge in this rapidly evolving field.
Before starting, review the iRobot® Create® 3 documentation to be able to perform the configuration changes needed for the tutorial.
iRobot® Create® 3 hardware extensions¶
iRobot® Create® 3 contains a compute unit running ROS 2 that provides access to the on-board sensors and actuators. For this tutorial, the following modifications have been applied to the robot:
two support layers added on top of the robot,
Intel® board mounted on the bottom layer,
Intel® RealSense™ camera mounted on the front of the top layer and connected to a USB port on the Intel® board,
Slamtec RPLIDAR 2D (A3 or A2M8) on a mount in the center of the top layer and connected to two USB ports on the Intel® board,
custom battery in the cargo bay to power the Intel® board and accessories, namely the camera and the lidar,
an Ethernet adapter connected to the iRobot® Create® 3 adapter board and to the Intel® board,
a rear caster wheel attached to the cargo bay, as described in the iRobot® Create® 3 Mechanical System documentation.

iRobot® Create® 3 robot front view.¶

iRobot® Create® 3 robot rear view.¶
iRobot® Create® 3 software configuration¶
Update the robot to use the latest ROS* 2 Humble firmware and configure it to access your WiFi network following the iRobot® Create® 3 Set Up documentation.
With the robot connected to your WiFi network continue configuring it using its web interface. Refer to the iRobot® Create® 3 documentation for the exact steps to follow.
Wired (Ethernet) network¶
The Intel® board and the compute unit of the iRobot® Create® 3 should be connected using an Ethernet adapter with a USB Type-C connector. The USB Type-C plug should be connected to the adapter board of the iRobot® Create® 3, while the Intel® board should be connected to the Ethernet adapter using an RJ-45 cable.

Ethernet via USB connection between iRobot® Create® 3 adapter board and Intel® board.¶
The iRobot® Create® 3 robot is configured to use the address
192.168.186.2/24
on the USB interface. You can change the network
part of the address by following the instructions on page
iRobot® Create® 3 Webserver - Set Wired Subnet.
On the Intel® board, the network interface connected to the robot has to be configured with a static IP address of the same subnet.
NTP server¶
Time synchronization is very important in ROS 2. For this reason, the iRobot® Create® 3 includes an NTP server, which can be configured as described on page iRobot® Create® 3 Webserver - Edit ntp.conf.
Alternatively, you can set up an NTP server on the Intel® board by following the iRobot® Create® 3 documentation Setup NTP on compute board. Use the IP address of the Ethernet interface connected to the robot.
ROS 2 Middleware (RMW) Configuration & Fast DDS discovery server¶
To define what ROS 2 middleware implementation shall be used by the
iRobot® Create® 3, follow the configuration guidelines on page
iRobot® Create® 3 Webserver - Application.
Set the RMW_IMPLEMENTATION option to rmw_fastrtps_cpp
, as shown in
the figure below.

iRobot® Create® 3 ROS* 2 Humble application configuration page. On this
robot the iRobot® Create® 3 Webserver - Set Wired Subnet
is set to 192.168.99.2
, Fast DDS discovery server is enabled
and runs on the Intel® board reachable at IP 192.168.99.10
over the Ethernet connection. ROS 2 Domain ID is set but it is not
used when the discovery server is enabled.¶
To speed up node discovery, enable the iRobot® Create® 3 Fast DDS Discovery Server. Use the IP address set above for the Intel® board on the USB connection to the iRobot® Create® 3 as the Fast DDS Discovery Server IP address.
Note
When the discovery server is enabled, the ROS_DOMAIN_ID
is not used.
Robot namespace¶
Set a ROS 2 namespace (e.g., /robot2
) for your robot, as described on page
iRobot® Create® 3 Webserver - Application. This value should be passed to the
launch file as argument irobot_ns
.
iRobot® Create® 3 Wandering tutorial¶
This tutorial presents the Wandering application running on an iRobot® Create® 3 mobile robotics platform extended with an Intel® compute board, an Intel® RealSense™ camera and a Slamtec RPLIDAR 2D lidar.
The tutorial uses the Intel® RealSense™ camera and the Slamtec RPLIDAR 2D lidar for both mapping with RTAB-Map and navigation with Nav2. For navigation, Intel® ground floor segmentation is used for segmenting ground level and remove it from the Intel® RealSense™ camera pointcloud.
Watch the video for a demonstration of the iRobot® Create® 3 navigating in a testing playground:
Intel® board connected to iRobot® Create® 3¶
Follow the instructions on page iRobot® Create® 3 - Network Recommendations to set up an Ethernet over USB connection and to configure the network device on the Intel® board. Use an IP address of the same subnet as used on the iRobot® Create® 3.
Check that the iRobot® Create® 3 is reachable over the Ethernet connection. Output on the robot with the configuration from the image above:
$ ping -c 3 192.168.99.2
PING 192.168.99.2 (192.168.99.2) 56(84) bytes of data.
64 bytes from 192.168.99.2: icmp_seq=1 ttl=64 time=1.99 ms
64 bytes from 192.168.99.2: icmp_seq=2 ttl=64 time=2.31 ms
64 bytes from 192.168.99.2: icmp_seq=3 ttl=64 time=2.02 ms
--- 192.168.99.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 1.989/2.105/2.308/0.144 ms
Install the ros-humble-wandering-irobot-tutorial
package on the
Intel® board connected to the robot.
Start the discovery server in a new terminal:
In a new terminal set the environment variables for ROS 2 to use the discovery server:
Check that the setup is correct by listing the ROS 2 topics provided by the robot:
The iRobot® Create® 3 topics should be listed:
Note
If only /parameter_events
and /rosout
topics are listed then
the communication between the robot and the Intel® board is not
working. Check the iRobot® Create® 3 documentation to troubleshoot
the issue.
Start the tutorial using its launch file; provide the namespace set on
the robot in the argument irobot_ns
:
To use ros2 cli
utilities, e.g. ros2 topic
, ros2 node
, set the
environment variables above before running the commands.