Updating your Rover for driver 3.0

tldr;

To use our latest ROS1 and ROS2 drivers Rover Pro users should update their interface boards and Rover Zero users should update their FTDI cables. This is a 10min process and is described below, just follow the update instructions.

 

Background

On July 1st 2021 we released our revamped ROS1 and ROS2 drivers which are now both based on our new C++ library librover. By using librover as a common library we can more easily have feature parity across ROS1, ROS2 and other frameworks like Isaac SDK. 

As part of this update we also updated how the computer identifies what model of robot it is plugged into. Previously the computer used the product-id of the FTDI device, but lots of other devices use the same FTDI chip, so this was unreliable. Now at our factory we are programming each interface board and FTDI cable to have a serial number that is either 'Rover Zero 2' or 'Rover Pro'. Once the serial number is programmed, a UDEV rule is then used to enumerate a file called either /dev/rover-pro or /dev/rover-zero which is then used by librover. Below are detailed instructions on how to perform this update. 

 

Update Instructions

Step 1. Download the FT_PROG tool on a Windows machine

 

Step 2. (For Rover Pro Owners) Plug the interface board into the Windows computer

 

Step 2. (For Rover Zero Owners) Plug the FTDI cable into the Windows computer. This is the USB cable sticking out of the top of the robot. You do not need to unplug it from the robot for this to work. 

 

Step 3. Open up FT_PROG and hit the search button

Step 4. Select 'USB String Descriptors' from the drop down menu, uncheck the 'Auto Generate Serial No:' box and then change the 'Serial Number' field to either 'Rover Pro' or 'Rover Zero 2'. This string is case sensitive and must match exactly for this to work so double check that this is correct.

 

Step 5. Lastly right click the top level of the Device Tree and select 'Program Device'. If done correctly you should see the Serial Number in the right update. 

Now the UDEV rules in /etc/udev/rules.d/roverrobotics will take care of the rest and will create the file /dev/rover_pro or /dev/rover_zero which will then be used by our driver. You can now safety update our latest drivers :)

 

Good luck and happy roving!

 

AUTHOR: Nick Fragale 

 

Troubleshooting

If after completing this process the new driver is still not working for you, run the 'ls /dev' command on the rover and check for the /dev/rover-pro or /dev/rover-zero files. If those files exist then this process was successful and the issue is with something else.