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 sensor.

The tutorial uses the Intel® RealSense™ camera and the Slamtec RPLIDAR 2D lidar sensor 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:

Getting Started#

Prerequisites#

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.

apt install ros-humble-wandering-irobot-tutorial

Start the discovery server in a new terminal:

fastdds discovery --server-id 0

In a new terminal set the environment variables for ROS 2 to use the discovery server:

export ROS_DISCOVERY_SERVER=127.0.0.1:11811
export ROS_SUPER_CLIENT=true
unset ROS_DOMAIN_ID

Check that the setup is correct by listing the ROS 2 topics provided by the robot:

ros2 topic list

The iRobot Create 3 topics should be listed:

/parameter_events
/robot2/battery_state
/robot2/cliff_intensity
/robot2/cmd_audio
/robot2/cmd_lightring
/robot2/cmd_vel
...
/robot2/tf
/robot2/tf_static
/robot2/wheel_status
/robot2/wheel_ticks
/robot2/wheel_vels
/rosout

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 mobile robotics platform documentation to troubleshoot the issue.

Start the tutorial using its launch file; provide the namespace set on the robot in the argument irobot_ns:

ros2 launch wandering_irobot_tutorial wandering_irobot.launch.py irobot_ns:=/robot2

To use ros2 cli utilities, e.g. ros2 topic, ros2 node, set the environment variables above before running the commands.