Establishing Basic Networking and Connectivity
For many development tasks, you will need tossh
to the RPi on the TB4 from your laptop:
turtlebot4
. Once on the command line, you can use turtlebot4-setup
to configure ROS2, the WiFi, etc.
Required Operating System Versions
OM1 supports TurtleBot4 running ROS2 Humble (image 1.0.4) and Create3 with H.2.6.Required Software for the Raspberry Pi
- Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-1073-raspi aarch64) - combined with TurtleBot4 Humble image
- turtlebot4_standard_humble_1.0.4.img (2024-08-19 16:59 2.2G)
Required Software for the Create3
H.2.6 (Humble) Important: Make sure your Raspberry Pi 4 is running Ubuntu 22.04.4 LTS (Turtlebot4 Humble image) and that the Create 3 is running H.2.6/Create3-H.2.6.swu. Among other possible problems, running Ubuntu 24 will create compatibility issues with the version of ROS2 and CycloneDDS on the Create3.Prepare the TurtleBot4
- Flash the correct TurtleBot4 image to an SD card (if needed).
- Upgrade/downgrade the Create3 firmware to H.2.6 (if needed).
- Insert the SD card into the TurtleBot4 and power it on.
- Set up your TurtleBot4 following the Basic Setup.
Identity and API Keys
API_KEY Go to portal to get a free API key for the OM1 APIs. Enter this API key in the “api_key” field in the/config/turtlebot4.json5
file. You can also provide this API key via your .env
- just enter it as:
OM
, then 12 alphanumeric characters (numerals and letters), adding up to 14 characters in total. They’re not case sensitive. A unique URID allows multiple robots to communicate with one another, similar to how humans use different phone numbers to help them communicate and coordinate.
Enter the URID in the “URID” field in the /config/turtlebot4.json5
file. You can also provide the URID via your .env - just enter it as:
Configure the TurtleBot4
Once the TurtleBot4 is set up, configure it as follows:- Configure the RPi4 through
turtlebot4-setup
- Configure the Create3 through its web server
- Install docker and configure the
docker-compose.yaml
file
Configure the TurtleBot4 Internal RPi4
Make the followingROS_DOMAIN_ID
changes to the TurtleBot4. Use the turtlebot4-setup
tool to access ROS Setup:Bash Setup
and set it to the following:
Configure the TurtleBot4 Internal Create3
Once the reboot is complete (wait for chime, 1 min), access the Create3’s App config page at its web server (e.g.192.168.1.XXX:8080/ros-config
). Change the ROS_DOMAIN_ID to 1 and enter your robot’s URID. The correct settings are:
Save
and Restart Application. Do not forget to click Restart Application, otherwise the changes will not be applied. Wait for chime (1 min) indicating Create3 reboot.
Install Docker
Finally, on the TurtleBot4’s RPi, install Docker and runsudo docker compose -f docker-compose.yaml up -d
. The docker-compose
should be:
docker-compose.yaml
OM1 Installation and Launch
You can install and run OM1- on your laptop, or
- onboard the Raspberry Pi on the TurtleBot4
Running OM1 on the Internal RPi4
For fully autonomous use, install OM1 on the TurtleBot4’s Raspberry Pi. On the RPi terminal command line, follow these instructions. When you see all the right topics listed inros2 topic list
, your TurtleBot4 is set up and you are ready to install OM1.
Install uv
- Python package manager:
portaudio
, ffmpeg
and other dependencies:
.env
with your OM1 key, run vim .env
, “i” to insert, paste in key, “ESC”, ”:”, “wq” to write and exit.
Finally, set Default Input and Output Audio devices. Use pactl
to set your default microphone and speaker. If you get pa_context_connect() failed: Connection refused
, then start the audio daemon manually via pulseaudio --start -D
.
- Launch OM1
Running OM1 on your Laptop
Install OM1 and Zenoh on your laptop, following Install OM1 on your laptop and Installing the Zenoh router. Then, run OM1:Interacting with TurtleBot4 from a Remote Computer using Zenoh and the Command Line
This is useful for debugging. Insidesystem_hw_test
, there are several scripts for you to interact with the TurtleBot4. For all these scripts, provide the robot’s URID, such as OM742d35Cc6634
as an argument.
Steer the TurtleBot4 with your Laptop Keyboard
- W - Move Forward
- S - Move Backward
- A - Turn Left
- D - Turn Right
Read TurtleBot4 Laserscan Data
Provide the robot’s URID, such asOM742d35Cc6634
as an argument:
Read TurtleBot4 Battery Data
Provide the robot’s URID, such asOM742d35Cc6634
as an argument:
Expected ROS2 Topics for a Correctly Configured System
On the TurtleBot4 command line, runros2 topic list
. Topics with a pi
prefix originate from the RPi, and topics with a c3
prefix are from the Create3. If you do not see any non-prefixed topics, your Create3 is not talking correctly to the RPi.
Building the Docker Dual Bridge Images
You can build your own dual bridge docker images using the providedDockerfile
(see /system_hw_test/turtlebot_zenoh/Dockerfile
):