Candi

From RoboJackets Wiki
Revision as of 15:40, 30 June 2019 by Cloyd6 (talk | contribs) (Software Issues & Improvements)
Jump to navigation Jump to search
Candiii
[[]]
Year Of Creation 2006-2007
Versions
Current Version deprecated
Update Year 2007-2008, 2008-2009
Information and Statistics
Farthest Distance 235 feet
Fastest Time n/a
Highest Placement AutoNav 6th
Highest Placement Design 9th

Competitions

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

Versions

Candi (V1.0)

At Competition

Mechanical Issues & Improvements

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 Issues & Improvements

A map of Candi's systems.


Software Issues & Improvements

PlayerStage

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).

File:SVMPP.pdf

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

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

Candii (V2.0)

At Competition

Mechanical Issues & Improvements

Electrical Issues & Improvements

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 Issues & Improvements

Our code for this year is stored in Subversion and is accessible at https://svn.robojackets.org/igvc/2008. The laptop codebase will be written in C++.

Contributers to the laptop codebase should ensure that they are following our coding conventions.

Player/Stage:

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:

Candiii (V3.0)

At Competition

Mechanical Issues & Improvements

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

Electrical Issues & Improvements

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

Other Electronics:

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

Software Issues & Improvements

Localization and Mapping:

Controls:

  • PI-Lead control(?)
  • Joystick

Additional Information

Team Members

Gallery