View Single Post
  #6   Spotlight this post!  
Unread 31-05-2005, 19:15
jgannon's Avatar
jgannon jgannon is offline
I ᐸ3 Robots
AKA: Joey Gannon
no team
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Pittsburgh, PA
Posts: 1,467
jgannon has a reputation beyond reputejgannon has a reputation beyond reputejgannon has a reputation beyond reputejgannon has a reputation beyond reputejgannon has a reputation beyond reputejgannon has a reputation beyond reputejgannon has a reputation beyond reputejgannon has a reputation beyond reputejgannon has a reputation beyond reputejgannon has a reputation beyond reputejgannon has a reputation beyond repute
Re: Team 1388: Vision Tetra Video

Quote:
Originally Posted by GW (Greg) Ross
Can you describe the methods you use?
The approach code sets a specific speed to both wheels. It then subtracts a number from both sides, proportional to the tilt servo value. This makes the robot start out fast, but not slam into the tetra at full speed or make a huge correction at the last second. Finally, it subtracts another number from just one side, proportional to the pan servo value, to make the robot turn without losing too much speed. The arm control is very simple. It stores three numbers, which we will call o, i, and f. o is the value of the arm potentiometer at startup, i is the target arm position, and f is the current position. I store a target to i, based off of o. (For instance, I could do i=o-50;, meaning that I want the arm to go to 50 clicks away from the starting point. o never changes after initialization, and all my positions are thus relative to the starting point, meaning that I don't have to worry about the pot slipping over time.) Then, every program cycle, I just apply the difference to a motor value (i.e. pwm04=127+i-f). Not coincidentally, this is the same way that our backdrive code works for operator control.
Quote:
Originally Posted by GW (Greg) Ross
Are you using the CMUcam's auto servoing? Fixed camera? Roll-your-own servoing?
This is the part of team 624's code that I mostly left intact. What it does is pan the camera to the left, and then turn on auto-servoing. If size==0, meaning there's no object in sight, the camera pans to the center, and auto-servos again. If nothing, then it tries the right. It keeps going through this sequence until it finds something. So, it's kind of a combination of do-it-yourself and the default.
Quote:
Originally Posted by GW (Greg) Ross
Are you using the camera to find the goal too?
Yes. It uses the same driving formula to approach the goal as it does to approach the tetra.

In summary, here's the basic state machine I'm using:
  1. Assign low position to arm. Look around. If green is visible, goto 2.
  2. Drive, using the formula described above. If object is lost, goto 1. If camera is tilted down far enough, goto 3.
  3. Proceed forward slowly, in case we came up short. After a half second, goto 4.
  4. Assign high position to arm. Keep tracking green. If arm is at its destination and the camera is still looking down, goto 5. If the camera is above parallel with the floor (127), goto 6.
  5. Assign low position to arm while backing up. After one second, goto 2. (Note: If you hit this stage in competition, you'd never make it to the goal in fifteen seconds. However, if you're just demonstrating it with no time limit, it looks awesome.)
  6. Look around. If yellow is visible AND arm is at its assigned position, goto 7.
  7. Drive, using the formula described above. If object is lost, goto 6. If camera is tilted down far enough, goto 8.
  8. Check the pan position. If we're at the correct position but turned askew, rotate slowly in place. If the pan position is 127, goto 9.
  9. Assign mid position to arm. After one second, goto 10.
  10. Back up. After one second, stop.
__________________
Team 1743 - The Short Circuits
2010 Pittsburgh Excellence in Design & Team Spirit Awards
2009 Pittsburgh Regional Champions (thanks to 222 and 1218)
2007 Pittsburgh Website Award
2006 Pittsburgh Regional Champions (thanks to 395 and 1038)
2006 Pittsburgh Rookie Inspiration & Highest Rookie Seed

Team 1388 - Eagle Robotics
2005 Sacramento Engineering Inspiration
2004 Curie Division Champions (thanks to 1038 and 175)
2004 Sacramento Rookie All-Star

_

Last edited by jgannon : 01-06-2005 at 00:01.