Troubleshooting
How do I Pair the Bluetooth Joystick with the Nova Carter Robot?
Refer to the pairing the controller section.
Jetson Won’t Connect to the Monitor Unless Ethernet Is Connected
This is a known bug. We’d recommend that you have the Nova Carter robot connected to Ethernet during the initial SW setup procedure in the documentation.
Robot Does Not Move
In a terminal inside the Docker container, run
ros topic echo /cmd_vel
.
Ensure that when you press the buttons or move the joysticks, the values on the topic change. If it does not show any data move to the next step. 2. If you can see the expected values in the above command when pressing the joystick, check if the horizontal indicator light next to the power button on the robot is green. If it is not green, then the Segway ROS driver has gone into “locked state”.
You can fix this by running ros2 service call /reset_chassis std_srvs/srv/Empty {} in a new terminal that is attached to the Isaac ROS Docker container. The Segway driver has to be running to reset the chassis. Restarting the teleop, Nav2, or mapping launch files also resets the Segway driver.
ros2 topic hz
Shows a Lower than Expected Value
Note
ros2 topic hz
is known to cause 100% CPU load for the first ~6 seconds
after running the command. The frame rate measured during this period is
inaccurate compared to when the command is not running. Use the --window
flag as shown below and wait for ~6 seconds to get a more accurate measurement.
Note
ros2 topic hz
also triggers the type adaptation NITROS nodes.
Run the following command to get a list of all the topics:
ros2 topic list
Run the
ros2 topic hz
command of the required topic:
ros2 topic hz <topic_name> --window 30
ros2 topic list
on a remote system does not show all topics on robot
Note
We use Cyclone DDS as our ROS 2 middleware interface
Note
When using the below Cyclone DDS configuration file, replace
your_network_interface
, robot_ip
and remote_system_ip
with
appropriate values.
Check if your system allows multicast communication by following the steps in this medium post
If it does not, disable multicast and set the peer IPs manually as shown in this medium post. An example of the cyclone DDS config file is also given below:
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
<Domain id="any">
<General>
<Interfaces>
<!-- Replace <your_network_interface> with the value corresponding to your setup. -->
<NetworkInterface name="<your_network_interface_name>" multicast="false" />
</Interfaces>
<AllowMulticast>false</AllowMulticast>
<EnableMulticastLoopback>false</EnableMulticastLoopback>
</General>
<Discovery>
<Peers>
<!-- Replace <robot_ip> and <remote_system_ip> with the IP addresses corresponding to your setup. -->
<Peer address="<robot_ip>"/>
<Peer address="<remote_system_ip>"/>
</Peers>
<ParticipantIndex>auto</ParticipantIndex>
<MaxAutoParticipantIndex>200</MaxAutoParticipantIndex>
</Discovery>
</Domain>
</CycloneDDS>