FAQ

This will be updated as we get new questions. Please post questions in the forum. Answers to common problems will be compiled here.

General

Where can I find additional working examples of autonomous control code?

Please see this repository of past competitors submissions.

Mechanical

Do I have a broken drive train? How can I fix it?

Remove the rear housing on the vehicle’s differential. There is only a single screw securing it.

Once the housing is removed confirm that the spur gear on the motor output shaft is in contact and properly meshed with the slipper clutch gear.

If the gears are not properly meshed, loosen the screw located in the slot of the motor housing so that the output shafts position may be adjusted. Once the gears are again properly meshed hold the assembly in place and secure the loosened screw. The gears should be meshed where they’re just touching and not slipping. Do not force the two gears together such that they’re exerting too much pressure on each other.

Before putting the cover back on test the system by rolling the car back and forth. You should see the center drive shaft turn. It is normal to have some noise on startup (this is the slipper clutch engaging).

When you are finished place the cover back on the gearbox assembly and secure it. You need to slide one side in between the motor and the edge of the car first.

Differential makes excessive noise

Use the ​Lock, Rock, and Roll​ method shown in this video to adjust the pressure on the slipper clutch​.

I’m not able to steer the car, no response from the steering servo

Double check that the servo wires are properly and securely connected. Be careful about the polarity of the three pin connectors. Confirm that you built the servo_out firmware for the VESC as shown here.

System identification failure and VESC tuning

First check that you have the correct firmware and hardware version installed.

Second check that you have properly updated the parameters for system identification in the FOC tab. See the image in the VESC tuning/setup instruction section here.

Third check your battery voltage. Are you below the cutoff level? Are you using recommended batteries (e.g. 7 cell NiMH or 3S LiPO).

If you have confirmed these things and system identification still fails consider the following suggestion:

Excessive motor vibration and inertia from the drivetrain can negatively affect the system identification process. One option is to loosen the screw holding the motor and rotate the motor such that the gear on the output shaft is no longer in contact with the main gear connecting the motor to the drivetrain. You may consider a small piece of foam or similar to dampen the motor vibrations after loosening the screw.

Printing and laser cutting replacement parts

The base plate is a simple laser cut piece. The CAD files are provided here.

Wireless Network

High packet-loss, excessive latency on wireless network

One common source of network latency is the physical connection between the antenna and the Jetson NX module. Please double check that the wires/connectors are properly seated on the Jetson NX module. In addition we recommend a high-quality router in order to improve range and network throughput. Note that streaming images from onboard devices such as a camera will generally be slow no matter what.

Increasing range of the gamepad

Add an antenna and use the antenna (extra usb cable) provided with the Logitech controller.

Erwin Coumans of Google Brain provides this library for more typical RF based RC controllers. Uses the Quanum RC control with Teensy 3.2 as better joystick. A switch on the remote switches between human control, OFF and self-driving. (so you don’t need to hold the buttons). We can also easily program it to keep a a number of constant speeds, nice for data collection.

Wireless interference with the gamepad

Sometimes when using a USB 3 camera, the cable might create interference with the Logitech gamepad’s usb dongle, and drastically decreasing the effective range of the gamepad. Cameras that are known to have this issue are StereoLab’s ZED, and the DVS event-based cameras. Another scenario that the wireless gamepad fails is an environment with a large number of Wifi access points (e.g. a large conference).

In these cases, it is possible and recommended to use a bluetooth gamepad like the Gamepad for PlayStation 4. You’ll need a usb bluetooth dongle too. Instructions on how to connect the gamepad via bluetooth can be found here.

Software

LIDAR variants

If you are using the Hokuyo 10LX please confirm that you properly configured the wired network connection as described here.

Installing pyTorch

The installation for pyTorch has been streamlined with the help with pre-built binaries. You can find instructions here.

Installing Tensorflow

First double check which Jetpack version and which CUDA version you have installed on your Jetson NX. You should be able to determine the Jetpack version from the GUI that you used when flashing your board. If you are unsure of the CUDA version open a terminal and inspect the results of nvcc –version.

Follow the instructions posted here.

Using gstreamer and image processing pipeline

Recording video from sensors like the Zed camera on the Jetson NX can be slow. This github gist details a solution using gstreamer.

Kernel

USB doesn’t work

If you are using the Jetson TX2 you need to build the board support package for the Orbitty carrier. See here.

USB works, but LIDAR and VESC do not work

First check that you are opening the correct device. It is highly recommended that you setup udev rules.

If this fails to work then there is a strong chance that you need to install the ttyACM module. For a convenient installer visit here.