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 …
HEck ya! I was waiting for this . looking forward to build along with ya.
Cool! Hopefully you can share some of the things you learn with us as you build, and certainly add in any ideas or directions that you’d like to see the project take.
I can see the passion started way back in the day. I hope am not too late. Am also interested in creating an autonomous car following along. however, I would like to use the Jetson TX2 and if possible, I need compatible battery upgrades. It does not need to be a fast car. In fact I want it to be slow for my application. Also major component part suggestions not mentioned here would be welcome. thanks
I do not have anything more to share on this subject. Thanks for reading!
If you don’t mind sharing, where did you purchase your Traxxas Rally 74076-1?
I am looking at one on Amazon.com, but I am not 100% sure if it’s the same model.
I am looking to follow along your project as I am in need of a test platform for testing out outdoors terrain negotiation algorithms, and there are other models (e.g. E-Maxx) that are probably more suited for my need, as speed isn’t necessarily my main concern. Would you happen to have an idea of how much of your approach would still be applicable (or would be different) if I were to apply this on different Traxxas model (say the E-Maxx)?
I bought this one from Amain performance hobbies:
It was $414 USD, $450 delivered with taxes and so on. I would have liked to give an Amazon link, but I haven’t seen any on there within 100 dollars in price. Not quite sure why that is, but no reason to overspend by that much.
It’s hard for me to say how close the E-Maxx is to the Rally, I don’t have much experience with RC cars. In overview, there are only a couple of issues. Controlling the steering servo and motor, and mounting the platform for the electronics.
In a future version I’ll be discussing how to control the motors and servo. For moving robots, odometry is a concern, and these cars don’t have any odometry hardware built in to them. I recall that there is an option to add some optional odometry telemetry on the Rally. An issue with the Rally cars in particular is that the minimum speed using the stock ESC is still pretty fast, it’s difficult to have it go slower than 6 or 7 miles an hour. In other words, if you drive the ESC at a constant minimum PWM signal, off it goes at faster than a walking pace.
The UPenn race car ( http://f1tenth.org ) accepts that fact and controls the stock ESC with a micro controller with PWM output. On the other hand, the MIT RACECAR uses an open source ESC, called a VESC, which has much finer control over the motor and can drive at slower speeds. The VESC also has good enough feedback so that you can fake some odometery.
The real trick with these cars is using the sensor data and building the algorithms to control the car. A LIDAR is not going to be used the same way outdoors as it is indoors. MIT and UPENN race in corridors, and use the LIDAR to try to place the car on the ‘track’. When you’re outside with no walls, that trick isn’t as useful. The good news is that the LIDAR that they use is $1800 USD, an outside race car can probably forego that cost and spend the time, energy and money integrating vision processing libraries and maybe something like a GPS. That approach is more economical, and to me at least, more general purpose. An impressive example is Team ISF Lowen with their Simba car:
It’s a similar sized car with a Jetson TK1 and a web cam on top, and seems like it’s a lot of fun. The organizers of the event delineate the course in black and white so relatively simple edge detection works nicely here. To me, that project feels more in reach for learning and to getting some really fun results. I’m guessing you can get ‘er done for under $1K USD (versus $4K for the MIT/UPenn setups).
Hope this helps, and you will share your build with us.
yes, very helpful, thanks for the overview!
I’ll keep you posted.
Nice to meet you. I’m a mechanical engineering student interested in autonomous vehicles, I would like to make a autonomous RC car just like you made it. However since I have low budget, I want to buy cheaper RC car. Instead of Traxxas, can I buy Tamiya TT02 chassis?
The principles are pretty much the same, but I don’t know enough about the Tamiya to know what the differences are. Thanks for reading!
Hi. So did you go ahead with the Tamiya platform?
I am planning on building an autonomous car myself, based on the MIT racecar platform. Like you, I have a very low budget. Intuitively, I feel being able to finely control the motors & steering electronically is important. The DC/servo motors used in RC cars should be very similar, so it should be possible to go for a cheaper platform. Am I right?
If cost is a consideration, you should look at the DonkeyCar project: http://www.donkeycar.com