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#
Assemble your robotic kit following the instructions irobot-create3
Complete the Getting Started Guide before continuing.
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.