Axiom Robotics would like to introduce the "Gigerbot
", a tele-operated/autonomous UGV.
I am currently working on my Master's Degree in Computer Science Information Systems
, and for my final project, I am building a robot that can be controlled over the internet/network using a web application. The significance of this project is to show how web technologies can be used to control a robot from long distances. In essence, a user could log into a web page and begin driving a robot that is halfway around the world. As an added bonus, the robot will be capable of operating in an autonomous mode free from human interaction, but when a human operator needs to intervene, the robot can revert back to tele-operation control.
The robot is controlled by a unique open source architecture that I have designed and successfully implemented using Apache, MySQL, PHP, and Java. This is accompanied by a netbook sitting on a Lynxmotion Tri-Track kit
that has been highly modified using SES parts, and custom plate designs, all coupled with a wireless IP camera, and Phidget Microcontrollers
. Essentially, the Gigerbot is a mobile webserver capable of running on its own, or from outside directives. All of the data and operations are pushed down to the robot's level, and the operator's computer does not need to do any calculations whatsoever. This allows the operator to only need a web browser to control the robot. I am also working on a way to use a Logitech gamepad to interface with the web application and control the robot using this device. I am trying to replicate a FPS (First-Person-Shooter) style interface inside a web application. As far as my research has shown, this has not been done by anyone else...
The robot has been named "Gigerbot" after H.R. Giger
, one of my favorite artists who has given me inspiration for the project.
Below are some photos of the current prototype, of which I will be further developing over the coming months to complete my project requirements for a December 2009 graduation (finally!!!).
This shows the three microcontrollers and the DC/DC converter mounted on the electronics tray:
Here you can see the electronics tray installed along with the battery, motors, and assorted data and power cables:
In this photo you can see the four IR distance sensors before attachement:
Here you can see the Asus netbook:
Front view (again):
User Screen Cap:
System Development Diagrams:
Hi-Res Version (747 Mb)
Streaming Version on Vimeo
ASUS Eee PC 901 XP
Zonet ZVC7630W Wireless IP Camera
Sharp GP2D12 IR sensors
Servo City DDT540H Pan/Tilt
Great Planes 8-Cell 9.6V 1800mAh NiMH
Powerstream 5 volt DC/DC converter (converts 9.6v to 5v for webcam)
Multi-Purpose Sensor Housing
Gear Head Motor
Track - 2" Wide
Aluminum Hex Standoffs (F/F) - 1-1/2" x 1/4"
Track Sprocket - 6 Link
Passive Idler Hub - 2"
Universal Hub - 6mm
Nylon Bushings for Track
Aluminum Square Bars - 3.0" x 1/4"
Steel Socket Head Screws - 5/8" x 4-40
Steel Socket Head Screws - 1/2" x 4-40
Steel Socket Head Screws - 3/8" x 4-40
Steel 4-40 Washers - 5/16" x 4-40
Steel 4-40 Nuts - 1/4" x 4-40
Aluminum Hex Standoffs (F/F) - 1-15/16" x 1/4"
Base Rotate Kit
The chassis/tread plates were based on the Tri-Track chassis, and have been cut out of 0.1" aircraft-grade 6061-T6 aluminum alloy. I was going to go for titanium, but that would be a little too expensive.
Electronics and Software:
After searching for months for the right microcontrollers, I finally stumbled upon these:
: controls camera pan/tilt
: controls skid steering for two motors
: reads data from 5 Sharp infrared sensors, turns on LEDs, and detects switch positions
The Phidgets development team has been working hard over the past few years to make its product much more developer friendly. Currently, the microcontrollers in the Gigerbot can be programmed with the following languages:
Adobe Director, AutoIT, C#, C/C++, Cocoa, Delphi, Flash AS3, Flex AS3, Java, LabVIEW, MATLAB, Max/MSP, Microsoft Robotics Studio, Python, REALBasic, VB 6.0, VB .NET, VB Script, Visual C/C++/Borland
The large number of languages gave me a lot of flexibility in designing my control structures and I finally decided on keeping my pertinent data in a MySQL database that can be controlled via PHP on the user's side, and controlled via Java on the robot side. I have designed a write/refresh architecture that constantly polls the database every 20 milliseconds to see where the user is telling the robot to go. So far the results are great considering I did not have to write an entire data concurrency application to keep all of the data fresh and accurate.
Check out my website at: Axiom Robotics