Zobotics KidSize Team Description
Billy Zelsnack
Zobotics
Abstract This paper describes the hardware and software implementation of a low cost humanoid robot intended to compete against the top teams at Robocup 2010 in the KidSize humanoid league.
1 Introduction
Robocup is the perfect application for developing towards humanoid robots that can interact with humans. Its vision is an attainable goal and provides direction and excitement towards the ultimate goal of humanoid robots and humans interacting.
2 Hardware
The 20 degree of freedom humanoid robot is built from Robotis AX-12+ Dynamixel actuators, a Robotis Bioloid Comprehensive frame set, and custom aluminum parts.
Main CPU
An Intel Atom Z530 1.6 GHZ CPU with 1GB of memory. The motherboard was removed from a CompuLab fit-pc2. The mother board is 104 x 96 x 23mm, weighs 90g, and draws only 7 watts of power. It has also has 4 USB ports as well as 802.11b/g/n WIFI. It is mounted in a custom lightweight aluminum case that is integrated directly into the robot.
Persistent Storage
8GB USB flash drive to store operating system and robot runtime software.
Main CPU to Actuator Bridge
An ATMEGA32U4 micro-controller on a Teensy USB development board. This provides a USB 2.0 fullspeed serial link (12Mb/sec) to the Main CPU and a 1Mb half-duplex link to the AX-12+ actuators. The board also outputs PWM for the Pan/Tilt RC servos.
Locomotion Actuators
18 Robotis AX-12+ Dynamixel actuators.
Pan/Tilt Actuators
2 HXT900 9g RC micro-servos.
Inertial Measurement Unit
Hylands Bioloid IMU with 3 axis gyro and 3 axis acceleromter.
Vision Camera
PS3 Eye provides high-quality 640x480 video at 30 frames per second.
Battery
3S 2100mah LiPo.
3 Software
(section introduced subsections)
3.1 Main CPU
The main CPU runs the Ubuntu 9.10 Linux operating system. The robot runtime software is written in C++ in a state machine style with independent "Sense" functions. The OpenCV library is used for vision processing.
FindBallState. State responsible for aiming the pan/tilt camera at the ball.
FindGoalPostsState. State responsible for aiming the pan/tilt camera at the center point between the goal posts
WalkToBallState. State responsible for locomoting the robot to the ball and kicking it in the goal.
SenseFalling. Monitors the IMU to detect when the robot has fallen.
SenseBall. Uses a camera capture to create a threshold image from between HSV range. The threshold image is input into a blob detector. Blobs are further culled based upon aspect ratio.
SenseGoalPosts. Similar to "SenseBall" expect with different culling aspect ratio.
3.2 Main CPU To Actuator Bridge
This written in a mix of C and C++. The main loop consists of listening for bytes coming in from either the Main CPU or from the Actuators. It it receives a byte from the Main CPU it sends to to the Actuators. If it receives a byte from the Actuators it sends it to the Main CPU. It also implements the Dynamixel controltable protocol which makes the Pan/Tilt micro-servos act on the Dynamixel as if they were Dynamixel device.
4 Conclusion
The above text describes a low cost entry for the Robocup 2010 KidSize humanoid league. The robot is able to find and track a ball, locomote to it and kick it between the goal posts. In the event that the robot falls down it can right itself.
4.1 Future Work
The robot has made a lot of progress very quickly, but much work is still needed to prepare the robot to compete. In the process of making the qualification video many deficiencies became apparent and will need to be addressed.
Robustness needs to be increased, especially for the pan/tilt camera. The actuator bridge also needs to be made more reliable. Most importantly an efficient work process is needed to allow for quick development and short iteration cycles.
Of particular research interest is to possibly implement augmented reality scrimmages between the physical robot and simulated robots using a simulated ball. Another research interest is to develop planning abilities capable enough so that two robots can pass the ball during gameplay.
Once the robot is performing satisfactory (including goal keeping), abides to all rules, and implements the referee box, two clones of the robot will be made to make a final team size of 3.