From RoboJackets Wiki
Jump to navigation Jump to search
Year Of Creation 2006-2007
Latest Revision Candiii
Revision Years 2007-2009
Information and Statistics
Farthest Distance 235 feet
Fastest Time NA
Highest Finish AutoNav 6th
Highest Finish Design 9th


IGVC 2007

  • Bot Version: Candi
  • Results
    • Distance: 123 feet
    • Design Competition Placement: 9th (743 / 1100 points)
    • AutoNav Competition Placement: 7th

IGVC 2008

  • Bot Version: Candii
  • Results:
    • Distance: 185 feet
    • Design Competition Placement: 18th (778.33 / 1100 points)
    • AutoNav Competition Placement: 9th

IGVC 2009

  • Bot Version: Candiii
  • Results:
    • Distance: 235 feet
    • Design Competition Placement: 21st (476.67 / 1100 points)
    • AutoNav Competition Placement: 6th


Candi (V1.0)

At Competition

Mechanical Design & Issues

Current design of Candi Frame

Old BattleBots motors. A new frame is currently being fabricated from 1" square tubing. New body will have front suspension and a giant ball caster in the rear.

Electrical Design & Issues

A map of Candi's systems.

Optoisolator interface.
E-Stop schematic.
  • Router: Motorola WR850GP
    • Hardware
      • Broadcom 4712 @ 200MHz
      • Storage: 4MB Flash
      • Ram: 16MB
      • Wireless: Integrated Broadcom
      • Switch: ADM6996L (4 Port)
      • Serial: Two headers
      • Power: +12VDC, 0.5A
    • Software
  • Monitor
  • Positioning system: IMU 5 Degrees of Freedom
  • Computer
    • Processor: Intel Pentium 4 CPU 2.40GHz
    • Physical Memory: 512 MB RAM
    • IDE Master
      • 30GB ATA-5 4200RPM HD
      • File system partition = dev/hda2 18GB
  • Power System
  • Motor System (see Optoisolator interface diagram)

Software Design & Issues


Candi's process diagram.

Code from Graduate Students - Restricted access (must be logged in to access)

Path Planning Algorithms: Logan proposes that Robojackets consider the use of Support Vector Machine Path Planning as a method of creating an optical set of (x,y) waypoints that Candi may follow in order to dodge obstacles and follow lines. First, check out the wikipedia article on Support Vector Machines to help understand the theory.

Now, I have posted a paper that explains how this regression method is used in a larger algorithm to find best paths between two data sets. Have a look at it, but skip the first section where they explain the theory (it's the same information as Wikipedia, only a lot less understandable).


As for implementation, we should look at/borrow from/use the SVMlight program - an implementation of SVM in C. Apparently it is quite optimized too (the people who wrote the nice paper used it for experiments). There is a link to it on the Wikipedia page.

Robot Vision:

There are two perspective transforms that need to be implemented, the rectilinearizing transform and the planar perspective transform.

  • Rectilinearizing Transform
  • Simple in theory. Very hard to make work fast though. I have posted preliminary MATLAB code and am hoping to use vertex shaders to speed processing and autofill data gaps, but I don't know what hardware is available at the moment or how to write Cg.
  • Scratch that, I have an OpenGL version working in C so the MATLAB one is unnecessary. Right now the OGL app is stand alone and only works on pictures named "pic.bmp" that are a 720x480 image in the bottom left corner of a 24bit 1024x1024 bmp image. Included is the Cygwin makefile(should work on any system with glut in $INCLUDE but give a warning), the pic.bmp test image, and source. Press any key to quit the program. The source code is massive, so a good text editor will be needed to edit.
  • Planar Perspective Transform: Version 1.0
    Very simple and fast if data given in a convenient format. In development, I will post when I have a semistable implementation.
  • HOLY SH*T!!!
    I went to the railroad today, took a picture with the camera, and dvgrabbed it back home.
    I was going to do some math and such, but then I thought, "What the hell, lets see what happens if I just stick it into the transform..." and LOOK WHAT I SAW!:

Rail In.jpg--->Rail Out.jpg

    I knew it was good, but that is amazing!--Paul 11:32, 20 May 2007 (EDT)

Candii (V2.0)

At Competition

Mechanical Design & Issues

The Power and Motor Drives System group seeks to provide adequate, stable power and motor drive systems for IGVC. These systems include: manual robot controls, electronics power supplies, PWM generators, power amplifiers, and power system parameter measuring devices (voltage and current).


  • new characterization of system power requirements
  • creation of a new, stable power supply
  • electrical system parameter feedback for intelligent power control (power cycling)
    • current/voltage measurement
    • system for automatically power cycling systems that need it
  • wireless/wired manual control systems
    • Joystick (possibly wireless)
  • motor-response-linearizing PWM generation
  • verification or redesign of emergency stop systems (button AND wireless)
  • motor driver software

We are using NPC-T74 motors.

Device Driver and Power Board Interactions.png

Electrical Design & Issues

Diagram showing the flow of data between the various robot controller components

Needs correction:

  • GPS communicates over COM2(/dev/ttyS1)
  • Time server (NTP) runs on the TS board reading the Data Carrier Detect (DCD) line of COM2
  • Add: TS Board is running an NTP server to define robot time
  • Software modules should be included
  • Rename "Arduino" -> "Motor Arduino"
  • Add "Power Arduino"
  • Fix: Wheel Encoders will be communicating over SPI

Software Design & Issues

Our code for this year is stored in Subversion and is accessible at The laptop codebase will be written in C++.

Path Planning Systems Architecture


We are using the Player/Stage robot server as the communication layer between our device drivers and our processing/controlling software modules.

As we've used the Player server, occasionally we've needed to patch it to better suit our needs. Below are our custom patches:

We used various Data Filtering Systems to process data in our codebase.

Articles we used:

Candiii (V3.0)

At Competition

Mechanical Design & Issues

Candiii's body has remained essentially the same for the last 2 years.

Electrical Design & Issues

Candiii has two isolated power systems: one for the motors and one for the other electronics.

Other Electronics:

  • Camera
  • IMU
  • GPS
  • Compass
  • Motor encoders
  • Motor currents

Software Design & Issues

Localization and Mapping:


  • PI-Lead control(?)
  • Joystick

Additional Information

Team Members