Attention

You are viewing an older version of the documentation. The latest version is 2.2.

Troubleshooting for Robot Tutorials

Use ROS_DOMAIN_ID to Avoid Interference in ROS Messages

A typical method to demonstrate a use case requires you to start several ROS 2 nodes and exchange ROS 2 messages between the ROS 2 nodes.

However, interference from unrelated nodes – whether on the same host machine or within the local network – can disrupt the process. Debugging and resolving such interference can be challenging in this scenario.

ROS 2 uses the ROS_DOMAIN_ID environment variable to isolate several use cases from each other. For this reason, you should set this variable to a certain number before you execute a tutorial:

export ROS_DOMAIN_ID=<value>
Copy to clipboard

The ROS_DOMAIN_ID should be an integer between 0 and 101 and it should be the same for all the nodes launched for a particular use case. If you run only one use case at a time, you can set this variable in your .bashrc file, as described in the Prepare your ROS 2 Environment section.

Troubleshooting AAEON Motor Control Board Issues

Several tutorials apply an AAEON UP Xtreme* i11 Robotic Development Kit to demonstrate how the Intel® Robotics SDK can interact with a physical robot. The AAEON UP Xtreme* i11 Robotic Development Kit includes a motor control board, which implements the motor drivers and the USB interface towards the compute board. To support this motor control board, the Intel® Robotics SDK provides the Deb package ros-humble-aaeon-ros2-amr-interface, which is based on the GitHub project AAEONAEU-SW/ros2_amr_interface with some adaptations for ROS 2 Humble.

The following subsections provide solutions to fix potential issues with the USB interface of the AAEON UP Xtreme* i11 Robotic Development Kit.

Add the current user to the dialout group

To control the AAEON UP Xtreme* i11 Robotic Development Kit via the USB interface, the current user must be a member of the dialout group. Use the groups command to verify that the current user belongs to the dialout group. If the user does not belong to this group, add the group membership by means of:

sudo usermod -a -G dialout $USER
Copy to clipboard

Solve conflicts with the BRLTTY daemon

BRLTTY is a background process that operates Braille displays, a tool for individuals who are blind. There is a possibility that BRLTTY may block the USB interface utilized by the AAEON motor control board. To identify such a conflict, execute the following command:

sudo dmesg -w
Copy to clipboard

Connect the AAEON motor control board to one of the USB ports of the compute board. Analyze the output of the dmesg command and search for any messages that contain BRLTTY or brltty. In the following example, the lines with the time stamps 7768.502123 and 7768.618382 indicate that there is a conflict between the BRLTTY daemon and the ch341 driver.

[ 7750.500707] usb 3-4: USB disconnect, device number 11
[ 7767.801366] usb 3-4: new full-speed USB device number 12 using xhci_hcd
[ 7767.951513] usb 3-4: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 7767.951532] usb 3-4: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 7767.951537] usb 3-4: Product: USB Serial
[ 7767.953988] ch341 3-4:1.0: ch341-uart converter detected
[ 7767.954920] usb 3-4: ch341-uart converter now attached to ttyUSB0
[ 7768.502123] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input34
[ 7768.618382] usb 3-4: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[ 7768.618952] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 7768.618976] ch341 3-4:1.0: device disconnected
Copy to clipboard

To fix this conflict, remove the brltty package:

sudo apt-get remove brltty
Copy to clipboard

Enable 3D options in RViz2

Note

Displaying in 3D consumes a lot of system resources this may interfere with the robot control commands. Intel® recommends opening rviz2 on a development system. The development system needs to be in the same network and have the same ROS_DOMAIN_ID set.

To prepare the development system follow the instructions to Prepare the Target System.

# When using different machines, set the same ROS_DOMAIN_ID as on the robot
source /opt/ros/humble/setup.bash
export ROS_DOMAIN_ID=<YOUR_ROSID>
rviz2
Copy to clipboard
  • open options menu in Rviz2

    ../../_images/aaeon_rviz2_options.png
  • enable 3D display

    ../../_images/aaeon_rviz2_3Doption_selected.png