May 10, 2005

Linux powering UCF/DARPA Grand Challenge vehicle

Author: Rob Reilly

While enterprise and desktop discussions grab headlines, Linux is quietly infiltrating into much more mundane applications -- such as running the on-board computers of the University of Central Florida's entry for the DARPA Grand Challenge autonomous, unmanned vehicle competition. Prof. Kien Hua of the College of Engineering and Computer Science heads up the UCF program as team leader. Figure 1 shows the vehicle.

Make no mistake, coaxing an unmanned vehicle to navigate autonomously over a rugged, obstacle strewn 160-mile course is no walk (or drive) in the park. With a challenge like this, readers would expect Linux to be right there in the middle of the action.

On a recent visit to the campus, Remo Pillat, chief software developer, talked about the race and UCF's vehicle.

First, we need a little history about DARPA and the Grand Challenge.

Opportunity for innovation

DARPA was created by the United States Department of Defense in 1958, in response to the launching of the Soviet Sputnik satellite. Since that time the agency has sponsored research and development on such projects as the F-117 Stealth fighter and

1. The DARPA Subaru.

B-2 Stealth bomber. Readers may also recognize the Predator and Global Hawk unmanned aircraft and GPS as DARPA research programs.

Perhaps one of the best-known accomplishments that had a direct influence on Linux and open source software was DARPA's development of the Internet, in the mid-1960s.

The Grand Challenge competition carries on the fine tradition of tapping into good old American ingenuity to beef up the U.S. defense capabilities. Participants in the program include individuals, industry, the R&D community, government, the armed services, academia, backyard inventors, and automotive experts.

This year's race will be run somewhere in the Southwest United States (the exact course location has not been released) and will cover between 140 and 160 miles. The terrain will include paved and dirt roads, hills, rocks and sandy dessert areas. The vehicles will follow a list of GPS way points, furnished by the racing organizers, before leaving the starting line. Humans will not be allowed to touch or control the cars during the race.

2. Cartop sensors.

Man-made and natural obstacles will require that the vehicle sense and plan the best route to successfully complete the course.

Carnegie Mellon University's Red Team made it the farthest last year -- about seven miles.

Needless to say, the race is a difficult and complex task for all the teams.

UCF's Subaru Outback

The University of Central Florida's entry to the Grand Challenge is a late model Subaru Outback 4x4 donated by the faculty advisor, Don Harper. The top of the car bristles with the GPS antenna, a camera housing, various other antennas, and the long-range SICK laser scanner (see Figure 2). The short-range SICK laser scanner is bolted to the front bumper. In the rear of the vehicle are half a dozen batteries, used to power all the computing and control hardware residing in the front seat area.

Pillat showed me

3. The computers inside.

the four on-board computers that are used when the vehicle is in operation.

The main computer is a rack mounted 3.0 Ghz. Intel P4 and is used for routing all the various sensor data to other client machines. It runs Debian Sarge, as do it's brethren. The computer is shown as the top black box, to the right of the monitor in Figure 3.

A second rack mounted machine is used for scanner and video camera data analysis. This computer is the lower black box, to the right and below the monitor, in Figure 3.

Atop the these machines sits a small VIA motherboard who's sole purpose in life is to actuate the car's throttle. It's version of Linux resides on a 128 MB flash card. Look for the blue and red flash card in Figure 3.

The remaining machine manages the safety and vehicle emergency control systems (not shown in Figure 3).

4. Steering wheel and shifter.

All this equipment is stuffed into the Outback. There are also actuators and servos that work the gearshift (it's an automatic) and steering. You can see these parts in Figure 4.

An additional wireless laptop is used by Pillat for programming of the vehicle. He said that he frequently does development at home using a simulation environment, because it's not always practical to sit in the garage where the car is parked and program.

By Pillat's estimate, UCF has spent about $80,000 so far. It's a rough figure because some of the equipment, such as the bumper laser scanner, had been salvaged from another project. Also, that dollar figure doesn't reflect any labor costs for programming, fabrication, assembly, or administrative tasks.

Speaking of software, Pillat gave me a rundown on why they chose Linux to manage their four-wheeled wanderer.

Linux in a vehicle?

Pillat started off saying that "All research is on Linux because the source is available and can be modified." It also promotes sharing and transferring software around the community. The basic client/server application that UCF is using to route the sensor data came from the University of Southern California.. Pillat had to spruce it up a bit with the addition of drivers for the GPS and compass functions. Good thing he's working on his master's in computer science. He said that the biggest challenge has been bringing the data together.

We shouldn't forget that a vehicle is also an ideal vehicle for computer control because space is generally not a big consideration and hardware use can be generous.

Linux helps UCF out with response time issues, too. Where Windows can have up to a 140 ms delay for a repeated task, Linux almost guarantees a worst case delay of 20 ms. Pillat had to implement a multi-threaded scheme across machines in order to get a guaranteed response time. Linux definitely made that possible. It would have been significantly more difficult using another operating system.

Even though the sensors shoot out data at serial

5. Screenshot of the user interface with the path.

line speeds, in this case up to 38K bits/sec., integrating all the data from all the sensors is a major undertaking, especially when you figure that the they are using two laser scanners, a video camera, a compass, and a differential GPS that is accurate to 1 inch. Knitting all those inputs together, along with the other outputs, relays and switches is a 16 port serial to Ethernet converter.

"At 20 mph the computational power needs to be very high," Pillat said.

That comment brought up the question of why UCF used Linux with serial ports, instead of programmable logic controllers (PLCs). "Linux is good enough for this application," he commented.

What he meant was that you always have to balance the requirements of complexity, response, cost, and availability for any given task. Since he is looking at a maximum speed of between 20 and 25 mph, the current combination meets the requirements to do the job. Also, with PLCs or other specialized equipment, upgrading or changing the software could be an issue, not to mention the interfacing. These are not problems with a Linux-based setup.

Pillat provided a couple of screenshots of the

6. Screenshot of laser scanner interface.

vehicle's display interface. During development and operation, it's nice to know what the vehicle is sensing and where it plans to go. These interfaces were written with the help of Qt and are displayed on the monitor in the car (in Figure 3) or on Pillat's laptop display.

Figure 5 shows the controls for steering, throttle and brakes. The car can be controlled by hand or by the computer. In the right sub-window, the red path represents the planning output which is meeting the physical constraints of the car. That means that the planned path can be driven by the car without stopping at the waypoints. The blue path shows the visualized GPS data.

Figure 6 shows the same picture as in Figure 5, except that the the sub-window on the right now shows the visualization of the Laserscanner on the top of the car. The display is a distance measurement of every degree in a 180-degree range, in front of the car. Obstacles and the street are easily detected with this configuration.

Driving into the future

Pillat is busy with finals and getting ready for the DARPA site visit. Out of the 200 or so teams that originally sent in entry forms, the physical site visit acts as a qualifying round for the 120 chosen teams.

The race will commence in October 2005 with the 20 teams that made it through the semifinals.

With seven people on the team, there is a decent chance that they will pass the site visit, although Pillat admitted that a lot of work needs to be done before the DARPA officials show up.

Ultimately, the UCF team can reap the benefits of its labor with publicity and understanding of the processes that make autonomous machine control possible. Linux is helping to make that a reality.

Rob Reilly is a consultant, writer, and commentator who advises clients on business and technology projects. His Linux, portable computing, and public speaking skills-related articles regularly appear in various high-end Linux and business media outlets.

Click Here!