Nvidia Jetson Self-driving RC Truck with Inductive Charging

Hi, so I thought I’d share a post about my master thesis in robotics engineering where I built a self-driving small-scale truck using the Nvidia Jetson TX2. The goal was to build a self-driving vehicle that could demonstrate the principle of a wireless inductive charging system intended for road use, developed by a Norwegian research institute, SINTEF.

I started with a basic radio-controlled truck, then adding all the hardware required for the self-driving system. I used a Teensy 3.2 microcontroller to output PWM signals to the truck for the throttle, brakes and steering. The sensor package consists of a small lidar (RPLidar A8M8) and a webcam (Logitech C922). For manual control I used the Logitech F710 wireless controller. Everything was connected to the Jetson running the ROS Kinetic software.

Two different approaches to autonomous driving were tested out, one with SLAM/Pure Pursuit path tracking and one with supervised deep learning. In SLAM mode the truck will map the environment using the Hector SLAM ROS package to find its own location and orientation. These locations can be recorded into a path by driving manually with the F710 controller. A Pure Pursuit algorithm is then used to track this recorded path making the vehicle able to drive on its own. The algorithm works by finds the nearest point on the path relative to the truck, and then output a corresponding steering angle to the front wheels.

The deep learning mode is based on the NVIDIA DAVE-2 model (https://devblogs.nvidia.com/deep-learning-self-driving-cars/), and is using the webcam only to navigate through a visual path. Steering angles and images from the camera are logged while driving the truck manually through a training course, to show what is the correct behavior. And this is used as training data to the neural network. The goal is for the truck to mimic the behavior of the driver, and I was actually amazed how well this worked. After a couple of laps of recording data, the truck was able to understand how to relate the camera input to a proper steering angle, in order to stay on course.

Finally, the truck was fitted with an onboard induction system and a charging coil, in order to receive charge while driving over a section of the course that had similar coils fitted, working basically the same as a wireless phone charger. The onboard system is also connected to the Jetson via CAN bus, to monitor charge current etc. There were of course limits to how much charge the truck would receive driving over the coil-fitted section, but as a demonstration vehicle it worked out great.

Check out my thesis here: https://drive.google.com/file/d/1z_e1Ti49YLCHxgyXCcEzL6ghCVWzpJO-/view
Github repository: https://github.com/joneivind/Self-Driving-Truck

Demo video: