| Soccer-playing robot runs real-time embedded Linux |
(Jan. 21, 2005) Huang Yi
Foreword -- This article by a PhD student at Shanghai JiaoTong University (SJTU) Research Institute of Robotics describes an RTLinux-powered robot that placed fifth in the most recent RoboCup competition. The robot has two color cameras for visual sensing along with a laser range finder (LRF) for goalkeeper location, and a wireless LAN allows communication among the robots on SJTU's team. The robot's embedded operating system is Red Hat Linux enhanced with the RTLinuxPro real-time extension.
Enjoy . . . !
Introduction
The Robot World Cup Soccer Games and Conferences (RoboCup) are a series of competitions and events designed to promote the full integration of AI (artificial intelligence) and robotics research. Robotic soccer provides a good test-bed for evaluating various research, including AI, robotics, image processing, engineering, and multi-agent systems.
The SJTU "JiaoLong" team has participated in a number of soccer competitions, and its robots have performed well. Competitions include the 2002 China Retail Conference (CRC) in Shanghai, China; RoboCup 2003 in Padua, Italy; CRC 2003 in BeiJin, China; RoboCup 2004 in Lisbon, Portugal; and CRC 2004 in GuangZhou, China.
Our Robots
Our robots were constructed at SJTU Research Institute of Robotics as part of a project to build real-time, inexpensive, autonomous robots for the study of multi-robot systems operating under dynamic and uncertain environments. The main idea for designing the whole multi-robot system was to view each robot as an autonomous physical entity capable of intelligently interacting with changing, variable surroundings. The robot must also be physically strong, computationally fast, and behaviorally accurate.
The hardware system consists of a robot vehicle system, sensing system, communication system, and control system.
First-generation design
Figure 1 (below) shows SJTU's first-generation soccer robots, developed in 2002.
 Figure 1: First-generation SJTU soccer robots, circa 2002 (Click to enlarge)
Second generation design
Figures 2-6 (below) show the second generation, developed in 2003.




 Figures 2-6: Second-generation SJTU soccer robots, from 2002 (Click any image to enlarge)
Third-generation design
Figures 7 and 8 (below) show the third-generation soccer robots, which we developed just months ago.

 Figures 7 & 8: Current-model SJTU soccer robots (Click to enlarge)
Robot vehicle system
The basis of each robot is a differentially driven, DC-powered model car measuring 20 x 20 x 31.5 inches (50 x 50 x 80 cm), and weighing 44 pounds (20kg). The robot can be controlled to move forward and backward, and to turn left and right. To play soccer, we designed a grabber and a kicker, which can be used to move and shoot the ball.
Sensing system
The robot uses two color cameras for visual sensing. One has a USB interface, and is used to see the ball when it is near the robot. The other has an IEEE-1394 interface, and is used to see the goal and the ball when they are far from the robot. We use two cameras to enlarge the field of view, because one camera alone has limited sight. Both cameras are fixed to the robot, and identify the ball and goal by color.
In addition, our robot has a LRF (laser range finder) for goalkeeper location, and two encoders for distance measurement based on internal information.
Communication system
We use a wireless LAN device for communication among our robots. Every robot acts as a node in the LAN, and has a wireless card that can transfer data at 11Mbps.
Control system
The control system consists of an upper computer and a lower computer. The upper computer is a laptop with a 2.4GHz Pentium 4 CPU, 256MB of memory, and a 30GB IBM hard disk. It communicates with the lower computer through a 19.2Kbps serial link, and with the LRF through an IEEE-1394 interface. The upper computer uses RT-Linux for real-time sensor data acquisition and real-time communication. The lower computer, which is based on a Texas Instruments TMS320LF2407A DSP, is dedicated to motion control.
 Figure 9: Hardware architecture (Click to enlarge) Software architecture
The robot's operating system is Red Hat 9.0 plus RTLinuxPro 2.1 (kernel version: 2.4.25-rtl). Figure 10 shows the software architecture. We use a distributed architecture based on priority.
One robot main control module runs in the RTLinux kernel, and four threads run in the Linux kernel. The four Linux threads work independently, and make a distributed architecture. We use rt-fifo to connect the RTLinux kernel and Linux kernel.
 Figure 10: Software architecture (Click to enlarge) Each thread has a different priority for sharing system resources. The main robot control module has the highest priority, and the vision threads (thread1 and thread2) have a low priority. The LRF thread has a much lower priority, and Odom thread has lowest priority. If one sensor generates an error, the whole system will not fail.
The tasks of thread1 and thread2 are to drive the camera to take pictures, and to extract information from the current picture. Thread3 extracts information from the LRF. Thread4 gets the odometer information. Then, all information is fused and sent to the robot main control module through rt-fifo.
The robot main control module also has four threads. The perception thread deals with data uploaded by the lower computer and other sensor threads. The environment thread uses available data to build an environment module on a blackboard. The network communication thread is able to let all robot teammates share the information, using the RTLinux component LNet. The decision thread gives instructions according to all the data.
About the author -- Huang Yi is a PhD student at Shanghai JiaoTong University's (SJTU) Research Institute of Robotics.
Related Stories:
(Click here for further information)
|
|
|
7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.
4 Legal Reasons to Control Internet Access
The Internet is obviously a valuable resource for many organizations. However, many are exposed to legal liability concerns because they fail to control Internet access. Learn if you're safe in this white paper.
Rapidly Resolve J2EE Application Problems
Whether you are in the process of building J2EE applications or have J2EE applications already running in production, you must ensure that they deliver the expected ROI. Learn how in this white paper.
Load Testing 2.0 for Web 2.0
There are many unknowns in stress testing Web 2.0 applications. Find out how to test the performance of Web 2.0 in this white paper.
Build Better Games Online
For the game infrastructure providers, life is complex. Making money from games has become more complicated. Why? Find out in this white paper.
Building a Virtual Infrastructure from Servers to Storage
This white paper discusses the virtual storage solutions that reduce cost, increase storage utilization, and address the challenges of backing up and restoring Server environments.
Gaining Faster Wireless Connections with WiMAX
Welcome to what is quickly becoming the hyperconnected world where anything that would benefit from being connected to the network will be connected. Learn more in this white paper.
Is Your Desktop a Security Threat?
The new wave of sophisticated crimeware not only targets specific companies, but also targets desktops and laptops as backdoor entryways into those business’ operations and resources. Learn how to stay safe in this white paper.
Increasing SAN Reliability by 100 Percent
Storage area networks (SAN) are a strong part of storage plans. Learn how to increase your reliability and uptime by 100 percent in this case study.
|
|
|
|
|