In what may well be one of the most unusual computing tasks performed by the Linux operating system, Terra Soft Solutions integrated its Yellow Dog Linux distribution and the Sony PlayStation 3 to guide a specially designed driverless car competing in the qualifying rounds for the DARPA (Defense Advanced Research Projects Agency) autonomous vehicle challenge in Victorville, Calif.
Integral to the on-board, real-time image processing system, the YDL PS3 rode atop a set of 1U rackmount servers inside the experimental car, dubbed the “Spirit.” The team used the Linux equipment to navigate the vehicle through simulated city traffic and obstacles during the qualifying rounds the last week of October.
Terra Soft has developed the Linux OS to work with the Sony PlayStation 3 and the Power chip that runs the gaming console. Power Architecture technology is an instruction set architecture that spans applications from consumer electronics to supercomputers.
“Any time something creative is done with Linux on Power, it showcases a unique solution and stimulates others to also think outside of the box to recognize that we can choose to live in an other than Wintel world and still be viable, even thrive,” Kai Staats, CEO of Terra Soft Solutions, told LinuxInsider.
Look Ma, No Driver
The DARPA Urban Challenge, to be held Saturday, tests the limits of autonomous vehicle technology, putting computer-driven cars in simulated live traffic situations.
During a series of tests, vehicles have to make safe left turns across moving traffic, pull out at T-intersections with cars arriving from both directions, follow narrow winding roads, and avoid parked cars and other obstructions. Vehicles also have to maneuver into a designated parking spot and negotiate four-way intersections and road-blocks.
“The Urban Challenge prize competition has united engineers, scientists, backyard inventors and students to develop autonomous ground vehicles that can save the lives of our men and women in uniform,” said Tony Tether, director of the DARPA.
In early October, Axion Racing, developer of the Spirit, contacted Terra Soft Solutions to assist with the integration of a Sony PlayStation 3 running Yellow Dog Linux into Axion’s fully autonomous Jeep Grand Cherokee. The vehicle competed in the qualifying rounds of the DARPA Challenge.
The Axion Spirit is the only autonomous vehicle to participate in all three DARPA Challenges. It was one of only seven teams to qualify for the 2004 Challenge and was the third best team qualifier for the 2005 Challenge.
Thirty-five teams participated in this year’s event at the Southern California Logistics Airport in Victorville. Eleven teams qualified for the Urban Challenge Final Event the last week of October. Axion Racing did not make the final qualification.
Bill Kehaly of the Axion team contacted Terra Soft in late September about integrating the Linux technology and Sony hardware. The combination helped operate Axion’s real-time image processing system, which allows for stereo vision to help guide the vehicle to “see” the street terrain and avoid obstacles.
“This gave our Bill Mueller a 10-day window in which to conduct the entire effort. This should have been over a month of normal man-hours. But in 10 days Bill completed the arduous task, nearly from the ground up, and in roughly two weeks total accumulated more than 200 hours of development time,” Staats explained.
The only thing that made the task possible was the existence of free open source software, according to Mueller, project engineer for Terra Soft Solutions.
“That and having free access to research papers written by vision experts and academics really freed me up from having to develop a tool set, so I could focus on the vision system itself,” Mueller told LinuxInsider.
In just 10 days Mueller ported, wrote, and optimized code for Yellow Dog Linux on a PS3, which is connected to an RGB camera, Staats said. An RGB camera was tied into the Axion arbitrator and other computerized sensors to help determine the best path for the 3/4 ton Jeep.
All sensors vote and then send commands to actuators that control steering, gas and brakes for the vehicle. For safety, the brakes are always on, unless released by software commands that then motivate the gas pedal.
How It Works
Mueller needed a USB driver, so he rebuilt the UVC driver for the PS3 kernel, he said. To get the data from the camera, he used the frame grabbing code from Fswebcam.
To work with the image format converter, Mueller said he used Netpbm. To solve the problem of getting a disparity map algorithm, he used the same code posted online by an academic. To obtain a TCP socket messager, he modified the sample code from a tutorial.
“The trick then became integrating everything onto the PS3 platform to produce valid data for Spirit’s existing system,” Mueller explained.
Staats offered high praise for the work submitted for this project. The Linux community benefits from Mueller’s detailed explanation of his work, which will undoubtedly invoke new offshoot projects, he said.
“That is how the open source community works. Bill worked from existing open source apps, integrated his working knowledge of robotics and robotic vision systems, and when done, gave back the results of his effort, improved,” Staats offered.