Troubleshooting Guide
Robots can encounter a variety of issues during setup and operation. This guide provides solutions to some common problems you may face while working with the Autonomous Driving Platform.
The first step in any troubleshooting process is to ensure you have the latest version of the code. You can ensure your car is up to date by running:
cd ~/roboracer_ws
git pull
./scripts/checkout.sh
If you've made changes to local packages, you can use git to temporarily stash your changes before pulling the latest code.
Problems Building the Workspace
If you encounter errors while building the ROS 2 workspace with make, first, try cleaning the workspace and rebuilding:
./container shell
cd ~/roboracer_ws
make clean
make
If the problem persists, check the stacktrace, which is a detailed error message printed in the terminal. Look for lines that indicate missing dependencies or compilation errors. You may need to install additional packages or fix code issues based on the error messages. In case you need to install missing ROS 2 packages, add the dependencies to the ~/roboracer_ws/scripts/ros2_deps.sh file and then rebuild the container with:
cd ~/roboracer_ws
./container build
Problems Building the Docker Container
If you run into issues building the docker container, you can build the container without caching by using the command:
./container build --no-cache
DDS Participant Index Error
The error message below indicate a problem with the DDS (Data Distribution Service) communication, specifically related to the CycloneDDS RMW implementation being unable to create a domain for the node. This may occur when the car changes networks or IP addresses.
Example Error Message
$ ros2 node list
1762805922.048036 [0] ros2: Failed to find a free participant index for domain 0
[ERROR] [1762805922.048204243] [rmw_cyclonedds_cpp]: rmw_create_node: failed to create domain, error Error
>>> [rcutils|error_handling.c:108] rcutils_set_error_state()
This error state is being overwritten:
'error not set, at ./src/rcl/node.c:263'
with this new error message:
'rcl node's rmw handle is invalid, at ./src/rcl/node.c:415'
rcutils_reset_error() should be called after error handling to avoid this.
<<<
[ERROR] [1762805922.048310136] [rcl]: Failed to fini publisher for node: 1
error creating node: rcl node's rmw handle is invalid, at ./src/rcl/node.c:415
Potential Solutions
The first things to try when this occurs are:
- Wait a moment and try again.
- Open a new tmux pane and try again.
- Restart the tmux session entirely by exiting all panes and running the tmuxinator command in the appropriate folder.
- Restart the container shell by exiting the container and running ./container restart, then re-launching your tmuxinator configuration.
- Restart the car