Difference between revisions of "Candi"
(→IGVC 2007) |
m (→Versions) |
||
(25 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | { | + | {{Infobox IGVC |
− | | | + | | robot_name = Candi |
− | + | | image_path = Candi.png | |
− | | | + | | image_alt_text = Candi alt text |
− | + | | year_start = 2006 | |
− | | | + | | year_end = 2007 |
− | + | | current_version = Candiii | |
− | | | + | | update_year_start = 2007 |
− | | | + | | update_year_end = 2009 |
− | + | | farthest_distance = 235 feet | |
− | | | + | | fastest_time = NA |
− | + | | highest_finish_autonav = 6th | |
− | | | + | | highest_finish_design = 9th |
− | | | + | | last_robot = Trixxie |
− | + | | next_robot = Misti (IGVC) | |
− | + | }} | |
− | | | ||
− | |||
− | | | ||
− | |||
− | | | ||
− | | | ||
− | |||
− | |||
− | | | ||
− | |||
− | |||
− | | | ||
− | |||
− | |||
− | |||
= Competitions = | = Competitions = | ||
Line 37: | Line 22: | ||
*Results | *Results | ||
** Distance: 123 feet | ** Distance: 123 feet | ||
− | ** Design Competition Placement: 9th (743 / 1100) | + | ** Design Competition Placement: 9th (743 / 1100 points) |
** AutoNav Competition Placement: 7th | ** AutoNav Competition Placement: 7th | ||
Line 43: | Line 28: | ||
*Bot Version: Candii | *Bot Version: Candii | ||
*Results: | *Results: | ||
− | ** | + | ** Distance: 185 feet |
− | ** Design Competition Placement: | + | ** Design Competition Placement: 18th (778.33 / 1100 points) |
− | ** AutoNav Competition Placement: | + | ** AutoNav Competition Placement: 9th |
− | |||
=== IGVC 2009 === | === IGVC 2009 === | ||
*Bot Version: Candiii | *Bot Version: Candiii | ||
*Results: | *Results: | ||
− | ** | + | ** Distance: 235 feet |
− | ** Design Competition Placement: | + | ** Design Competition Placement: 21st (476.67 / 1100 points) |
− | ** AutoNav Competition Placement: | + | ** AutoNav Competition Placement: 6th |
= Versions = | = Versions = | ||
Line 61: | Line 45: | ||
=== At Competition === | === At Competition === | ||
− | === Mechanical Issues | + | |
+ | |||
+ | === Mechanical Design & Issues === | ||
[[Image:Candi.jpg| 400px | Current design of Candi]] | [[Image:Candi.jpg| 400px | Current design of Candi]] | ||
Line 71: | Line 57: | ||
New body will have front suspension and a giant ball caster in the rear. | New body will have front suspension and a giant ball caster in the rear. | ||
− | === Electrical Issues | + | |
+ | === Electrical Design & Issues === | ||
[[Image:CandiElectronicsMap.png| 400px | A map of Candi's systems.]] | [[Image:CandiElectronicsMap.png| 400px | A map of Candi's systems.]] | ||
− | + | [[Image:OptoInterface.png|thumb| Optoisolator interface.]] | |
− | + | [[Image:ESTOP.png|thumb| E-Stop schematic.]] | |
− | *[ | + | *Router: Motorola WR850GP |
− | *[ | + | ** Hardware |
− | *[ | + | ***[http://www.broadcom.com/products/Wireless-LAN/802.11-Wireless-LAN-Solutions/BCM4712 Broadcom 4712] @ 200MHz |
− | *[ | + | ***Storage: 4MB Flash |
− | * | + | ***Ram: 16MB |
− | * | + | ***Wireless: Integrated Broadcom |
+ | ***Switch: ADM6996L (4 Port) | ||
+ | ***Serial: Two headers | ||
+ | ***Power: +12VDC, 0.5A | ||
+ | ** Software | ||
+ | ***OpenWrt (White Russian 0.9) | ||
+ | ****2.4.30 Kernel | ||
+ | ****Available Software | ||
+ | *****[http://downloads.openwrt.org/whiterussian/packages/ Official Packages] | ||
+ | *****[http://wiki.openwrt.org/OpenWrtDocs/Packages#head-8acb9bfe9c2fea25b98492919a153847e6a985e3 3rd Party Packages] | ||
+ | *Monitor | ||
+ | *Positioning system: [http://www.sparkfun.com/commerce/product_info.php?products_id=741 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 Issues | + | |
+ | === Software Design & Issues === | ||
[[PlayerStage]] | [[PlayerStage]] | ||
Line 90: | Line 97: | ||
[[Code from Graduate Students]] - Restricted access (must be logged in to access) | [[Code from Graduate Students]] - Restricted access (must be logged in to access) | ||
+ | |||
+ | '''Path Planning Algorithms:''' | ||
+ | [[USER:LoganS | 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. | ||
+ | |||
+ | *[http://en.wikipedia.org/wiki/Support_vector_machine Support Vector Machine at Wikipedia] | ||
+ | |||
+ | 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). | ||
+ | |||
+ | [[Image: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 [[:Image:Fixbarrelva0.zip|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: [[:Image:transform.v1.zip|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!''''': | ||
+ | [[Image:Rail_In.jpg|200px]]--->[[Image:Rail_Out.jpg|350px]] | ||
+ | *:'''''OGMWTFBBQ&HOW!''''' | ||
+ | *:I knew it was good, but that is amazing!--[[User:Paul|Paul]] 11:32, 20 May 2007 (EDT) | ||
== Candii (V2.0) == | == Candii (V2.0) == | ||
Line 95: | Line 131: | ||
=== At Competition === | === At Competition === | ||
− | |||
− | === Electrical Issues | + | === 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). | ||
+ | |||
+ | Responsibilities: | ||
+ | *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 [http://www.robotmarketplace.com/marketplace_gearmotors.html NPC-T74] motors. | ||
+ | |||
+ | [[Image:Device Driver and Power Board Interactions.png|center]] | ||
+ | |||
+ | |||
+ | === Electrical Design & Issues === | ||
[[Image:Candii_Component_Diagram.png | thumb | Diagram showing the flow of data between the various robot controller components]] | [[Image:Candii_Component_Diagram.png | thumb | Diagram showing the flow of data between the various robot controller components]] | ||
Line 110: | Line 165: | ||
* Fix: Wheel Encoders will be communicating over SPI | * Fix: Wheel Encoders will be communicating over SPI | ||
− | === Software Issues | + | |
+ | === Software Design & Issues === | ||
Our code for this year is stored in Subversion and is accessible at [https://svn.robojackets.org/igvc/2008 https://svn.robojackets.org/igvc/2008]. The laptop codebase will be written in C++. | Our code for this year is stored in Subversion and is accessible at [https://svn.robojackets.org/igvc/2008 https://svn.robojackets.org/igvc/2008]. The laptop codebase will be written in C++. | ||
− | + | [[Image:igvcpp.png|thumb|right|480px|Path Planning Systems Architecture]] | |
'''Player/Stage:''' | '''Player/Stage:''' | ||
Line 123: | Line 179: | ||
* [[Player Patch - WaitForNewImage]] | * [[Player Patch - WaitForNewImage]] | ||
+ | |||
+ | We used various [[Data Filtering Systems]] to process data in our codebase. | ||
+ | |||
+ | '''Articles we used:''' | ||
+ | * IEEE Xplore | ||
+ | **http://www.library.gatech.edu:2048/login?url=http://ieeexplore.ieee.org | ||
+ | * Lengyel, Reichert, Donald, and Greenberg. "Real-Time Robot Motion Planning Using Rasterizing Computer Graphics Hardware." Comp. Graph., Vol. 243, No. 4, pp. 327-335, 1990. | ||
+ | **http://www.cs.dartmouth.edu/~brd/papers/siggraph/animation.pdf | ||
+ | * Kimmel and Sethian. "Optimal Algorithm for Shape from Shading and Path Planning." J. of Math. Imaging and Vis., Vol 14, pp. 237-244, 2001. | ||
+ | **http://www.cs.technion.ac.il/~ron/PAPERS/optimal_shading2001.ps.gz | ||
+ | * Wiener and Mallot. 'Fine-to-Coarse' Route Planning and Navigation in Regionalized Environments. Max-Planck-Institute Biological Cybernetics. Technical Report TR-115, 2003. | ||
+ | **http://wiki.robojackets.org/wiki/images/f/f2/WienerMallot.pdf | ||
+ | * Kuffner. Efficient Optimal Search of Uniform-Cost Grids and Lattices. Proceedings IEEE/RSJ International Conference on Intelligent Robots and Systems, 2004. 1946-1950. | ||
+ | **http://wiki.robojackets.com/wiki/images/e/eb/KuffnerOptimalSearch.pdf | ||
+ | * Hassouna, Abdel-Hakim, Farag. "Robust Robotic Path Planning Using Level Sets." Proc. IEEE ICIP, pp 473-476, 2005. | ||
+ | **http://www.cs.dartmouth.edu/~brd/papers/siggraph/animation.pdf | ||
== Candiii (V3.0) == | == Candiii (V3.0) == | ||
Line 128: | Line 200: | ||
=== At Competition === | === At Competition === | ||
− | === Mechanical Issues | + | |
+ | |||
+ | === Mechanical Design & Issues === | ||
Candiii's body has remained essentially the same for the last 2 years. | Candiii's body has remained essentially the same for the last 2 years. | ||
− | === Electrical Issues | + | |
+ | === Electrical Design & Issues === | ||
Candiii has two isolated power systems: one for the motors and one for the other electronics. | Candiii has two isolated power systems: one for the motors and one for the other electronics. | ||
Line 143: | Line 218: | ||
*Motor currents | *Motor currents | ||
− | === Software Issues | + | |
+ | === Software Design & Issues === | ||
'''Localization and Mapping:''' | '''Localization and Mapping:''' |
Latest revision as of 17:53, 30 June 2019
Candi | |
---|---|
Year Of Creation | 2006-2007 |
Versions | |
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 |
← Trixxie |
Contents
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 Design & Issues
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
- 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
- OpenWrt (White Russian 0.9)
- 2.4.30 Kernel
- Available Software
- OpenWrt (White Russian 0.9)
- Hardware
- 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
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!:
- OGMWTFBBQ&HOW!
- 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).
Responsibilities:
- 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.
Electrical Design & Issues
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 https://svn.robojackets.org/igvc/2008. The laptop codebase will be written in C++.
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:
We used various Data Filtering Systems to process data in our codebase.
Articles we used:
- IEEE Xplore
- Lengyel, Reichert, Donald, and Greenberg. "Real-Time Robot Motion Planning Using Rasterizing Computer Graphics Hardware." Comp. Graph., Vol. 243, No. 4, pp. 327-335, 1990.
- Kimmel and Sethian. "Optimal Algorithm for Shape from Shading and Path Planning." J. of Math. Imaging and Vis., Vol 14, pp. 237-244, 2001.
- Wiener and Mallot. 'Fine-to-Coarse' Route Planning and Navigation in Regionalized Environments. Max-Planck-Institute Biological Cybernetics. Technical Report TR-115, 2003.
- Kuffner. Efficient Optimal Search of Uniform-Cost Grids and Lattices. Proceedings IEEE/RSJ International Conference on Intelligent Robots and Systems, 2004. 1946-1950.
- Hassouna, Abdel-Hakim, Farag. "Robust Robotic Path Planning Using Level Sets." Proc. IEEE ICIP, pp 473-476, 2005.
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
- LIDAR
- IMU
- GPS
- Compass
- Motor encoders
- Motor currents
Software Design & Issues
Localization and Mapping:
Controls:
- PI-Lead control(?)
- Joystick