Nuvation HEADLINES 
|
New IP
|
| » |
ATA / UDMA-33 Core for Xilinx Spartan 3 |
| » |
GEOS 2+2 for Altera Cyclone |
| » |
PCI-Express Coming Soon |
| » |
Low-Power laser diode controller board |
|
|
New Affiliations
|
| » |
Altera High Speed I/O Design Center |
| » |
Intel PCI Express Developers Network |
| » |
Intel PCA Developers Network |
|
|
|  |
 |
 |
Brains of a Robot
A hardcore personality of soft-core processors

CycloneBot is an advanced combat robot that has successfully competed in "BattleBot" competitions such as Steel Conflict (you may have seen BattleBot competitions on Comedy Central cable TV). CycloneBot is a uniquely equipped robot, and according to some competitors, breaks the laws of physics by mounting a directional attack while the entire 220lbs mass of the robot is spinning at up to 100MPH. The overall development phase spanned 18 months including two incremental prototype phases, advanced electronics and algorithm development, and a rigorous integration phase. Mechanical achievements include the custom-welded aluminum chassis, custom motor mounts, the saw-like titanium blade system, and the combined carbon-fiber/titanium armor. This article talks specifically about the electronic control component of the robot - the brains.
|
One of the unique facets of CycloneBot is its Cyclone Drive. CycloneBot has only 2 wheels, and uses those wheels to drive by spinning at over 400 rpm, while constantly and controllably modifying the speed of each wheel to induce directional movement. To accomplish this requires processing power to manage and update the motor speeds, sensors to understand current heading (the direction the robot is facing at any given moment), and an algorithm to marry the two together and achieve controlled movement while spinning. We chose a system-on-a-programmable-chip (SOPC) solution, giving us the utmost in flexibility. Our SOPC is based on an Altera Cyclone FPGA device with an embedded, soft, Nios Processor. This gives us a programmable platform as well as our program itself, all easily changeable in code!

To derive heading, we used quadrature encoders (custom SOPC peripherals) to gather data from optical encoders on the wheel, which is then used to determine how far we have driven. As we spin this gives us a relative heading per revolution, which we correct and reconcile against a "true heading", using the compass heading from the magnetometer. This all derives a "current heading", which we update every millisecond.
This reconcilliation becomes crucial in combat as CycloneBot strikes enemy bots and obstructions and sends objects, including itself, flying across the enclosed ring.
The "current heading" tells the motor control algorithm what direction the motor is pointing at any given instant. As we go through a rotation, the motor control algorithm modulates the speed of each wheel as it travels its circular path. These modulations, which if graphed, look like sine waves 180 degrees out of phase with respect to each other, create our translational movement. To get this entire system to work, we use PWM, quadrature encoders, analog-to-digital conversion, SPI, general-purpose I/Os, multiple data validation routines, multiple conversion routines, multiple timers, and a host of other SOPC peripherals and code modules.
Our communications system uses a dual approach, with 802.11b for our primary system, and a CycloneBot-specific 900MHz system for our redundant backup system. At the data layer, both systems run the same custom command protocol, so we can shift seamlessly to the backup should our primary system run into interference. This redundancy came in handy when we had an unexplained link failure in the midst of one of our matches. A quick flick of the switch and we were back to full control of CycloneBot through the backup 900MHz transmitter. This is an example of another part of our design philosophy - redundancy wherever possible. In many cases, we achieved this through real-time reconfiguration using SOPC peripherals and capabilities.
Using the SOPC model allowed us to take a step forward in design philosophy - we could further decouple the hardware and the firmware. No longer did we have constraints related to a fixed amount of each type of processor peripheral and unchangeable pinouts. We could iterate the hardware design as we needed to improve its capabilities and performance, and the processor itself, with the firmware running in it, could keep pace independently. Of course, this design model still has constraints - X number of resources, Y number of pins, and so forth, but they are dramatically more open and less limiting than a standard processor model.

The diagram above shows the electronics system with a number of complex systems, including custom electronics in addition to the Cyclone Edition of the Nios development board from Altera. We implemented a custom data acquisition board for the magnetometer interface, which provides us with improved filtering and analog-to-digital conversion, and we have custom electronics for our LED display system. The LED display system is used to print messages on the side of our robot by changing a strip of LEDs once per revolution, plus a small offset, to make the eye see a full message scrolling. With the LED messaging, CycloneBot can even taunt other robots!
In addition to all this, we have CylconeBot running a mini-web server, which we use for run-time debug data and on-the-fly reconfiguration. CycloneBot also continually generates performance and status data, so we can monitor it during battle and adjust our strategies, or change configurations to handle magnetic or RF interference.
CycloneBot has successfully competed twice at SteelConflict (www.steelconflict.com), and at our most recent competition we took third place in a double-elimination format in Anaheim, CA. The first-place bot had already fallen to us earlier in the tournament, but beat us when our battery system was failing at the end of the second day. The semifinal was a very close match and we're determined to take the next series of competitions starting on March 20th at Fort Mason in San Francisco.
CycloneBot advancements continue, ranging across mechanical, power, electrical, and control systems. For example, our SOPC design will move to a two-processor system to separate real-time controls from communications. It's just a few lines of code away, and can be created with key presses and mouse clicks - no hardware changes or board spins.
The CycloneBot team is comprised of mechanical engineers, electrical engineers, programmers, machinists, welders, and others. CM Robotics is the primary organization behind CycloneBot, lead by Mark Demers and Nuvation's Michael Worry. Nuvation engineers form the integral electrical engineering team, a great hobby to keep our skills on the cutting edge. Find more information about CM Robotics at www.cmrobotics.com.
|
Customer service
· To subscribe yourself or a friend, please click
here.
· Questions? Comments?
Send us your feedback.


|
 |
 |