This is the first of a multi-part series on building a Rapid Autonomous Complex-Environment Competing Ackermann-steering Robot, or RACECAR, based on a NVIDIA Jetson Development Kit and Traxxas Rally Remote Controlled car chassis. In this first installment, we unbox the Traxxas Rally and outline some of the first tasks that we need to accomplish. Looky here:
You might recall from a previous article that we did a walkthrough of a 2015 season RACECAR at MIT last October. The RACECAR is used as a research platform to teach control theory at MIT. Just to recap, the RACECAR is an autonomous goal seeking robot which uses a Traxxas Rally R/C car as its chassis, a Jetson TK1 as an onboard computer, and various sensors for navigation including a LIDAR Unit, cameras, and an IMU. The robot uses Robot Operating System (ROS) as the control software. In 2016, MIT will be offering a class with an updated version of the car which uses a Jetson TX1 as the onboard computer, and will add 3D cameras to the sensor suite.
The underlying idea is intriguing, use a Commercial Off The Shelf (COTS) R/C chassis and convert it into a robotic platform. Another interesting idea is that the R/C vehicle uses Ackerman steering, which mimics a full sized automobile. As you know, most robots are designed around differential steering. In differential steering, vehicles such as bulldozers and tanks move their tracks at different speeds with the vehicle changing direction as a result. This mechanism is not limited to tracks of course, wheels may also be used, such as in the JetsonBot. If we want to build a self driving car, then we need to take into account the fundamental difference between the two approaches for path planning algorithms.
Traxxas Rally Walkthrough
The main advantage of using a commercial R/C car as a donor chassis is that they have been battle tested in very harsh environments, yet are relatively mechanically simple. That does not mean that they aren’t fast! The Traxxas Rally is a capable vehicle in its own right, with a top speed out of the box of ~40mph (~65kph) or ~60+mph (~100kmh) with a lighter and more powerful battery.
Here’s a hot tip for unboxing the Traxxas Rally: pull it out of the box with the right side up. Don’t ask me how I found that out. The body is held on by 4-clips which are accessible without unwrapping the plastic bag surrounding the body. Unclip the body to get to the chassis. Here’s a picture of what it looks like out of the box with the body removed:
In the Traxxas Rally, there are 5 electronic subsystems: the battery, the brushless motor, the Electronic Speed Control (or ESC), the radio receiver, and the steering servo. This is a conceptual minimal car, go and steer with braking being less go. There may be a couple of other subsystems to model such as brakes and transmissions, but for the most part this represents a good start.
In order to turn the Traxxas Rally into a robot two things need to be controlled: the steering and the motor. The steering is controlled by a servo, so the first attempt will be to control the servo with a PWM Servo Driver from a Jetson. The motor is controlled by the ESC, which looks like it is also controlled via PWM. These two items are the first investigations for the Jetson RACECAR project.
MIT will be open sourcing their RACECAR plans over the next few months. One of the goals of this project is to replicate their vehicle. At the same time, a fully built MIT spec RACECAR is not inexpensive. One component alone, the 2D LIDAR – Hokuyo UST-10LX, costs around $1750 USD.
With that in mind, there are all sorts of interesting questions and challenges. How does the quality and cost of the sensor package affect the performance of the vehicle? Is it better to have multiple inexpensive sensors, or just a couple of high quality ones? This is also true of the CPUs that will be used on the vehicles, Jetson TX1 vs Jetson TK1. Given a particular budget, is it better to spend the money on sensors, computers, or are there other alternatives or shortcuts? Exactly what is a minimum configuration that “works”? What is a configuration that works at a certain price point, say $1000 USD?
There’s an old adage in racing, “Speed costs, how fast can you afford to go?” That’s also true for robots, and robot racing.
Another part of the project is to understand the individual devices themselves. While it’s great to have fully built hardware and software delivered in a tidy package, you won’t learn as much compared to if you have to get your hands dirty and build it yourself. For example, taking what we’ve learned about controlling a servo and integrating that into the RACECAR should be a fun and straightforward exercise. If it is not, then that’s even better because we get to learn about the real pitfalls of such a project in the real world!
And so it starts …