|
RoboMagellan Competition Goals: Robomagellan is a mini- Darpa grand challenge style competition held at RoboGames. It places each contestant in an outside environment with the goal of getting between a starting point and end point with the lowest possible timescore. At the start of the competition you are given the Latitude and longitude coordinates of the start and end points plus the locations of 3 bonus cones. Each cone has a bonus multiplier. If the robot touches the bonus cone while it navigates to the finish location, its total time is multiplied by that bonus cone's bonus multiplier. RoboMagellan is a great competition because it provides a smattering of many of the most interesting problems in robotics in an easy to tackle format. As the robot navigates the outside arena to reach its targets, it must : avoid obstacles, recognize objects, track is position, and plan its movements. Thus a successful entry must: - design a the mechanics of the vehicle (chassis..)
- Machine all the components
- design and deploy a sensor suite for obstacle avoidance
- Use Machine Vision to recognize bonus cones
- Master Localization by keeping track of the robots position using odometry, a compass, GPS, etc...
- Implement all the electronics and hardware in a robust way that does not fail in the field
Rutgers will have a team for RoboGames 2009. If are intersted come to a IEEE Robotics meeting, and join our mailing list.
 One robot at RoboGames about to touch one of the cones Proposed 2009 Design Architectures: The current proposed design architecture is below as a JPG and attached to this article as a open office drawing and pdf. 
Our architecture is built around two processors: a real time processor which handles the low level IO and laptop which handles a planning and computer vision. Our low level processor is an 8-bit AVR microcontroller, atmega640, which has been broken out on a great flexible board called an Axon. This board can be programmed via a boot loader or a j-tag programmer and as a result it allows all of our members to experiment with programming the board even if they dont own an programmer. We will be using the free GCC compiler, WINAVR, to program the Axon. This is the same compiler that we have used to program the Butterfly Demo Boards used in our line following Robot kit. This processor will be responsible for watching the sensors, maintaining the drive motor feed back loop, and controlling the servos. Essentially, it will be our robots link to the real world. It will be given commands to drive the wheels certain distances at set speeds, move the servos, or report compass bearing and ultrasound results. On the other hand, our PC is responsible for more abstract tasks, principally cone recognition and path planning. We cannot handle these tasks on the Axon because the axon is not fast enough to do image processing. Furthermore, it is significantly easier to use a PC to do image processing, because we can use OpenCV , an open source image processing library, combined with a Webcam to find the cones. The PC will be scanning the area for cones and directing the Axon. It will integrate the GPS location, with the odometry from the encoders, and the compass bearing to direct the robot to the GPS way points. However none of those sensors will be good enough to get the robot to exactly the right location. Once the robot is close, it will then use the webcam to guide the robot to the cone which the robot will then touch to show that it has made it. Additionally, it would be great to have a base station computer that can map and control the progress of our Robomagellan robot. It would have a GUI from which we can enter the start, end, and cone locations before the competition. It would have a map that graphically displays the locations of the cones, start, and end locations along with an icon of the robot as it moves around. Additionally, this computer would provide our Fail safe system required by the RoboMagellan Rules. As a part of our rules we need to have a way to stop the robot immediately in case some thing goes wrong. IE if we let go of a button attached to our base station computer, our robot must stop.
Control Algorithms: Axon Control Loops:Motor-Encoder- Control LoopThe Axon will be using a pin change interrupt to read the quadrature encoders on the wheels. If you are unfamiliar with quadrature encoders , this is a good link explaining their operation. The pin change interrupt will be connected to one channel of each encoder. On each interrupt, the Axon will look at the other to determine direction and either decrement or increment the encoder count based on other channel's state. Below are example interrupt routines used to record the robots velocity. ISR(INT7_vect) { if(bit_is_set(PINE,PE6)) robot.leftWheel.vel++; if(bit_is_clear(PINE, PE6)) robot.leftWheel.vel--; } ISR(INT6_vect) { if(bit_is_set(PINE,PE7)) Piper.leftWheel.vel--; if(bit_is_clear(PINE, PE7)) Piper.leftWheel.vel++; } In addition to the encoders, the Axon will use one of its built in 16 bit timers to trigger an interrupt for every 50ms. This timer interrupt will be our feedback loop. When it triggers, it will compare the measured speed, with the desired speed and raise or lower the signal to the motors in response. This form of control is called a PID Loop.
Axon- PC Communications Link: The communications link between the Axon and the PC will be a master slave relationship. The PC shall Issue a command and the Axon shall either respond with the requested data or simply issue an acknowledgment message. All commands and response shall be Ascii based
To Be filled in: What are the commands? What is exact protocol?
PC Algorithms: Cone Finding:
This is a basic object recognition algorithm. Our goal is to find the cone within the images from the webcam. Luckily the cones are bright orange and almost nothing else should be bright orange. Thus, the first step will be to filter out any colors that are not within a certain range of our typical cone color and create a binary image of cone color versus nothing. The simplest software could then just take the largest blob in that image and assume it is the cone. However, if you watch some of the Robomagellan videos, the robots are often fooled by people wearing red or orange shirts. To guard against random orange/red objects on the field, we are going to try and recognize the triangular shape of the cone. We will use something like Hough line transform to find lines intersecting in a triangular shape. This region will be our cone.
Base Station: Start and Stop the robot Recieve Position Information from the robot Transmit the waypoints that the robot needs at to run. At the start of the competition, 30 minutes before, we are given the start, end, and 3 bonus cone coordinate. However, also allow more way points so we can define our own path. Display current robot position on screen in either just text or in a real time map of the arena Mechanical Design: Below is the proposed base for our Robomagellan design. It is four wheel drive with each wheel being driven by a Banebots 64:1 36mm Rs-540 gearmotor. The back two wheels will have encoders on their shaft to track the robot movement. (The encoders are not shown). To look at this more carefully, go to the last page of this article and download the E-drawing of this base. It is called RoboMagellan Base.zip. E-drawings can be downloaded for both Mac and PC from here. 
Components:
This page list living list of the components that we have identified for our project. It represents only what we have decided to use so far, not all the components in the robot. The updated component list can be found here: http://spreadsheets.google.com/pub?key=p4uEBMlh4v9JgIKoLRsy8fw At its Google Doc.
Wiring Diagram
  
RoboMagellan Links: RoboMagellan Rules: http://robogames.net/rules/magellan.php Zippy won the 2008 RoboGames. Zippy's website: http://www.teamechoes.com/index.php?page=24
Servo Magazine Article Describine Zippy http://servo.texterity.com/servo/200810/?pg=76
Great Zippy Test Video: http://www.youtube.com/watch?v=KBZhOi154-Y&feature=related
Zippy at RoboGames: http://www.youtube.com/watch?v=Bw0aRmWM4OQ
Intrepid At Robogames: http://www.youtube.com/watch?v=bk0Jl1eW57w
Great Write-up of Sputnik RoboMagellan Bot: http://everobotics.org/projects/roboMagellan/roboMagellan.html
RoboMagellan History Links: Older website with great photos: http://davehylands.com/Robotics/Robo-Magellan/ OpenCV Links: Open CV Wiki: http://opencv.willowgarage.com/wiki/ Nagivation and Planning Resources: Where Am I? :http://www-personal.umich.edu/~johannb/position.htm This is a great E-Book on localization techniques used in robotics. It explains everything from GPS, to odometry, to IMus. Journey Bot: http://www.geology.smu.edu/~dpa-www/robo/jbot/
|