Banned for being a nerd. There are no nerds in here! - Schnabel [more]
 Chief Delphi A Reminder of Simplicity
 CD-Media CD-Spy
 portal register members calendar search Today's Posts Mark Forums Read FAQ rules

#1
03-21-2004, 03:33 PM
 mtrawls I am JVN! (John von Neumann) #0122 (NASA Knights) Team Role: Programmer Join Date: Mar 2003 Location: Hampton, VA Posts: 295
A Reminder of Simplicity

To all teams using the IR beacon to knock over the 2x multiplier, I am interested in what algorithms you used to get there, and how they worked. During the build season I myself experimented with several, using the EduBot, of a wide range of complexity ... and as I was about to decide on a very complex, trig-enabled algorithm, one of my mentors suggested I use a simpler approach. It turned out to be quite elegant, really.

I mentioned it before on CD (and was told it would never work!), but here is the basic premise of it: We have three IR sensors housed in a metal casing lined with black corrugated cardboard to reduce internal reflections, and have a small, adjustable vertical slit in each. The sensors are aligned so that one is put facing the right, one the left and the other forward (each housing box can be turned a given angle to adjust just when the sensor "sees" the beacon ... this can be used to hit the other team's ball, just ours or both).

As we put the robot down, we hit a switch to tell it which beacon type to look for. Then, when auto mode starts, the robot drives forward until either the left or right sensor "sees" the beacon, whereat the robot stops, then turns either left or right accordingly until the center sensor "sees" the beacon, at which point we know we are facing the beacon. Here the robot moves its "tusks" and its "arm" to a position so that we can knock down the ball, and then it drives forward for a short burst of time. It is worth noting that this arrangement lined us up with the beacon *every* time, and the only issue was with coordinating the "tusks" and "arm" correctly ... which by the end of the competition, I had worked out rather nicely.

It is a simple, uncomplex algorithm. We disgard the servo setup entirely, and just use three sensors. However, its simplicity makes it work fast and reduces the liklihood of either mechanical or programming failures. I'm interested in finding out how others modified the setup we were given, and to what success.
#2
03-21-2004, 04:32 PM
 Kevin Karan Linux Guy AKA: maxdamage None #0174 (Arctic Warriors) Team Role: Alumni Join Date: Jan 2003 Location: Liverpool, NY Posts: 141
Re: A Reminder of Simplicity

That is a great way to do it! At one point my team had 4 servo sensors on the bot, but eventualy we went down to the old 2. We didnt do any real changes in what first did other than almost compleatly rewriting the code, making minor changes in the way the sensors are positioned on the head. We do have a very overly complicated navigation system that is completly untested on the frc! How have they been working at the comps? We cant wait to test ours at buckeye!
__________________
It isnt ALWAYS the programmers falt!
2004: Buckeye team website award
2002: Rutgers semi-finalists
2001: National semi-finalists
2001: Rutgers semi-finalists
1998: Manchester Rookie All-Star Award
#3
03-21-2004, 04:50 PM
 edomus Registered User AKA: Evan FLL #1218 (CHAbots) Team Role: Driver Join Date: Feb 2003 Location: the east Posts: 325
Re: A Reminder of Simplicity

Quote:
 Originally Posted by Kevin Karan That is a great way to do it! At one point my team had 4 servo sensors on the bot, but eventualy we went down to the old 2. We didnt do any real changes in what first did other than almost compleatly rewriting the code, making minor changes in the way the sensors are positioned on the head. We do have a very overly complicated navigation system that is completly untested on the frc! How have they been working at the comps? We cant wait to test ours at buckeye!
We tried to use the ir at anapolis and found that there is way too much interference. Most of the time our sensors could not lock on. Thank god we had a programmed overide and a accurate dead reconing code.
__________________
2004 National Finalists with 469 and 868

2004 Gallileo champions and #1 seed
• Delphi "Driving tommarows technology" -philly 2004
• 8th seed philly 2004
• 58/58 at annapolis 2004 (like the improvement?)
• 7th seed Philly 2003
• Rookie all star philly 2003
• semi finalist Pitt 2003
• picked 3rd in pitt 2003
• Seeded 17(curie) at nats 2003
#4
03-21-2004, 04:54 PM
 KenWittlief . no team Team Role: Engineer Join Date: Mar 2003 Location: Rochester, NY Posts: 4,213
Re: A Reminder of Simplicity

Mtrawls

great thinks mind alike!

we do exactly the same thing, except we us a yaw rate sensor integrated to give relative heading to measure the turn right or left

it works extreemly well

also - we dont use interrupts for the IR sensors - if you connect them to rc_dig_in01 and 02 there are interrupt flags that get set if the sensor toggles the input pin - all you have to do is poll the flag, see if its set, and if it is then you know the sensor saw the beacon (and you clear the flag in SW)

we did notice the sensors pick up stray triggers once in a while, so we wait until we see it in the SW loop 3 times in a row (about a 1/8th of a second)

great job - simple things work the best.
#5
03-21-2004, 04:56 PM
 mtrawls I am JVN! (John von Neumann) #0122 (NASA Knights) Team Role: Programmer Join Date: Mar 2003 Location: Hampton, VA Posts: 295
Re: A Reminder of Simplicity

Quote:
 How have they been working at the comps?
I was somewhat suprised, actually -- there aren't a lot of robots that can consistently knock down the 10 pt. ball. Even fewer that attempt to do it using the IR sensors. Unfortunately, I can't say how the finals at VCU went ... (I was ... err, elsewhere), but at Annapolis, I don't think the majority of bots in the finals were knocking the ball over (granted some robots did have the strategy of positioning the mobile goal under the release and specifically did not want to knock it over).

Quote:
 Originally Posted by edomus We tried to use the ir at anapolis and found that there is way too much interference. Most of the time our sensors could not lock on. Thank god we had a programmed overide and a accurate dead reconing code.
Really? We had absolutely no problems with our IR sensors ... except for that a tiny opening in the back of one produced some interesting reflection errors, which was duly noticed and fixed with some handy aluminum foil. Other than that, we didn't get any stray signals or anything of that sort, and found that we could control our acceptance angle very accurately. What type of set up did you use? The heat shrink?
#6
03-21-2004, 05:03 PM
 Ryan M. Programming User FRC #1317 (Digital Fusion) Team Role: Programmer Join Date: Jan 2004 Rookie Year: 2004 Location: Ohio Posts: 1,508
Re: A Reminder of Simplicity

Our bonus ball mode is completely untested. We initially were going to do line following, but lost them due to space and and weight. Our current setup is driving straight and turning. We probably will never do that, as we have a hopper on our 'bot and want to be there to catch 'em all. (And, yes, we can catch all of them.)
__________________

#7
03-21-2004, 05:04 PM
 10intheCrunch Who's John V-Neun? AKA: Alex Baxter None #0254 (Cheesy Poofs) Team Role: College Student Join Date: Feb 2004 Rookie Year: 2004 Location: San Jose, CA Posts: 129
Re: A Reminder of Simplicity

In keeping with simplicity:

Why not just use dead reckoning? In general we have observed that the more complicated an auto mode gets, the less accurate it gets, and that extends just as much to sensor using robots. With some thought you can set up a really easy to maintain and tinkerable state machine to adjust motor values, and from there its just some testing to get it to work right...

A lot of people stopped by our pit in Sacramento and commented about how simple our idea for knocking the ball off is (a fiberglass whip on a spring, lowered by a pneumatic cylinder), and it kinda surprised me. Simple mechanism means a simple program, and that's why we were so successful in hitting off the ball (until day 2 when one of the motor transmissions got changed...that's the downside of sensorless automodes =\ ).
__________________
~Alex Baxter
Programming, Arms operation, Team 254
#8
03-21-2004, 05:50 PM
 RoteAugen Registered User None #0138 (Entropy) Team Role: Alumni Join Date: Mar 2004 Rookie Year: 2001 Location: Amherst, NH Posts: 92
Re: A Reminder of Simplicity

Quote:
 Originally Posted by 10intheCrunch In keeping with simplicity: Why not just use dead reckoning?
look
here

see that little platform inside the A-frame towards the top? that holds 4 fixed-position IR sensors each at a different angle.... makes life easier
__________________
TEAM 138 Entropy

we come from the land of the ice and snow....
#9
03-21-2004, 07:54 PM
 deltacoder1020 Computer Guy AKA: Dav #1020 (The Indiana Prank Monkeys) Team Role: Programmer Join Date: Jan 2004 Location: Muncie, Indiana Posts: 340
Re: A Reminder of Simplicity

I don't think anyone at the st. louis regional used ir for competition (correct me, team members, if I'm wrong). Most of the successful autonomous modes were dead reckoning, although a few line followers got close (hit the frame around the bonus balls or some other such small failure).
__________________
Team 1020, the Indiana Prank Monkeys (www.team1020.org)
#10
03-21-2004, 08:22 PM
 KenWittlief . no team Team Role: Engineer Join Date: Mar 2003 Location: Rochester, NY Posts: 4,213
Re: A Reminder of Simplicity

the problem with dead recogning is that as your bot gets wear and tear during the matches, and your batteries are at different levels of charge, the speed and direciton your bot will run will change enough to make you miss the ball

the IR sensor scheme the originator of this thread created solves part of that problem - no matter how much the forward speed of your bot changes, it will know when its reached the beacon off 90° to port or starboard - its will know where it is on the field at that instant

our bot is very similar - and since we get to the ball in about 5 seconds, it would be a waste of time to just sit there for almost 10% of the match

so we back up and turn towards the drivers, turn our front roller on and drive through the field of freshly fallen balls to try and capture some of them.

dead recogning is ok if you only want to go straight for several seconds and do nothing else - but I have to disagree with one of the previous posts - if you implement your sensors correctly then your bot will get the ball more reliably, not less

and it will be able to do other things - and compensate for stuff like, oh I dont know, the opponent teams bot getting in your way and you have to push it backwards on the way to the release ball? :^)
#11
03-21-2004, 08:26 PM
 10intheCrunch Who's John V-Neun? AKA: Alex Baxter None #0254 (Cheesy Poofs) Team Role: College Student Join Date: Feb 2004 Rookie Year: 2004 Location: San Jose, CA Posts: 129
Re: A Reminder of Simplicity

We use a fresh battery in every single match, no exceptions, and test on fresh batteries at the lab, so thats not a problem.

Second, the only serious wear problem we've had has been tread (we use waffle tread, it goes quickly), but surprisingly, it made no difference. The program we took from our lab, with our creaky, worn practice bot with almost no tread left worked perfectly on our smooth practice bot with new tread.

I maintain that sensors will only complicate the process, though if you do not have a practice robot and no way to test and calibrate dead reckoning, it can be difficult. A sensor program could conceivably be written and used with no testing...
__________________
~Alex Baxter
Programming, Arms operation, Team 254
#12
03-21-2004, 08:31 PM
 KenWittlief . no team Team Role: Engineer Join Date: Mar 2003 Location: Rochester, NY Posts: 4,213
Re: A Reminder of Simplicity

where do you get a fresh battery from in every match of the elimination rounds? they take about an hour to recharge after a tough match and they only gave us two batterys?!

your right about having to tweak the DR auton modes - we did not get any real testing time on our bot for auton before we shipped it - but by the end of the day friday we were hitting the release ball dead center every time - and all we use to naviagate is the fixed IR sensors and one yaw rate sensor (i mentioned this above)

it seems odd that you would be against using sensors. Put a pair of winter gloves on, put on a blindfold, and try to make a peanut butter sandwhich in your kitchen with YOUR feedback all turned off.

Sensors provide feedback - feedback is information - more information is always better than none :^)
#13
03-21-2004, 08:51 PM
 Astronouth7303 Why did I come back? AKA: Jamie Bliss FRC #4967 (That ONE Team) Team Role: Mentor Join Date: Jan 2004 Rookie Year: 2004 Location: Grand Rapids, MI Posts: 2,071
Re: A Reminder of Simplicity

I agree. If you do your sensors (and code) right, You don't need to calibrate between every match. We have a routine that we run ONCE, during the 7 AM practice round, and base everything on that.

And I'm not worried about other 'bots. If we go against a wall, the wall looses. If we a go against a bot, who do you think looses?
#14
03-21-2004, 09:32 PM
 LauraN Holder of the Missile Keys FRC #0097 (RoboRuminants) Team Role: College Student Join Date: Feb 2004 Rookie Year: 2004 Location: New Jersey Posts: 96
Re: A Reminder of Simplicity

Quote:
 Originally Posted by KenWittlief where do you get a fresh battery from in every match of the elimination rounds? they take about an hour to recharge after a tough match and they only gave us two batterys?!
We have all kinds of batteries from previous years. We bring a cart with about 8 batteries and at least one (maybe two, not sure) charger(s). The biggest challenge is keeping them organized into which are charged and which aren't.

Although I do agree that dead reckoning has serious drawbacks. Feedback is important.

Something of a hybrid could work. Our team had light sensors mounted facing our wheels. Weglued circles to our wheels that each had about 100 black and white stripes. The light sensors gave us feedback on the transitions between white and black as the wheels spun and gave us accruate wheel counts that we used to drive straight. (Our drive train was...not cooperating and veered to the left in autonomous when told to go straight).

Although we didn't use it to attempt to hit the 10 point ball, you could use these wheel counters to tell you exactly how many revolutions you've made at any point in time, and if you know the circumference of your wheels and the distances on the field, you could do some pseudo-dead reckoning with feedback. =)

I think that would be the best solution for a lot of teams who, like ours, may have had trouble with designing a system for using the IR beacons. The wheel counters were easy(ier?) to work with and could give you feedback.

Because a robot without feedback is a robot out of control. =)

(Our team didn't have any actual physical mechanism on the robot that would have been able to knock off the 10 point ball, in case you were wondering why we never tried. That and I just thought of this idea while writing this post. )
__________________
-Laura Nicholson
Team 97 (RoboRuminants) Mentor
Team 30 (FURY) Alumna
#15
03-21-2004, 10:34 PM
 10intheCrunch Who's John V-Neun? AKA: Alex Baxter None #0254 (Cheesy Poofs) Team Role: College Student Join Date: Feb 2004 Rookie Year: 2004 Location: San Jose, CA Posts: 129
Re: A Reminder of Simplicity

We had about 8 batteries at competition this weekend, and kept cycling them through our three chargers...during elimination matches we ran close to out, but thankfully we didn't have to play any tiebreak matches and stayed powered through it all. If all else fails, I am almost positive another FIRST team would offer a spare battery (especially if they are not in elimination matches) if you are out of fresh ones. Even then, we had about 40 minutes between matches, so if you have 3 batteries you could have stayed powered through preliminaries...sorry if I am discounting teams that don't have the battery supply we do.

Perhaps my aversion to using sensors comes from the ease of using the whip to tap the balls off the tees. We don't have to turn and face into the ball; rather we run along the wall and in fact use the wall somewhat to correct our angle and hold straight. We are planning on putting a light sensor to detect the line and tell us where to stop to only hit one ball, but any more sensors would have only put more hardship on us programmers (we had enough to think about on the arms).

Another problem is serious sensor malfunction. Team 60, the team we collaborated with this year, lost in semifinals because their proximity sensor that was counting gear teeth was malfunctioning. Their autonomous mode, based on this sensor, then flung them into a wall, and they lost a pneumatic fitting, and all pressure. Eventually they lost the match and couldn't get repaired in time for the next one. With our dead reckoning, we can tap the wall a little hard, but we feel safer than if we were letting the robot decide things more.
__________________
~Alex Baxter
Programming, Arms operation, Team 254

 Thread Tools Display Modes Rate This Thread Linear Mode Rate This Thread: 5 : Excellent 4 : Good 3 : Average 2 : Bad 1 : Terrible

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts vB code is On Smilies are On [IMG] code is On HTML code is Off
 Forum Jump User Control Panel Private Messages Subscriptions Who's Online Search Forums Forums Home Announcements     User Announcements FIRST     General Forum         FIRST E-Mail Blast Archive     Rumor Mill     Career     Robot Showcase Technical     Technical Discussion     Robotics Education and Curriculum     Motors     Electrical         CAN     Programming         NI LabVIEW         C/C++         Java         Python     Control System         FRC Control System         Sensors     Pneumatics     Kit & Additional Hardware     CAD         Inventor         SolidWorks         Pro ENGINEER / Creo     IT / Communications         3D Animation and Competition         Website Design/Showcase         Videography and Photography         Computer Graphics     National Instruments LabVIEW and Data Acquisition         LabView and Data Acquisition Competition     Awards         Chairman's Award     Rules/Strategy         Scouting         You Make The Call     Team Organization         Fundraising         Starting New Teams         Finding A Team         College Teams     Championship Event     Regional Competitions     District Events     Off-Season Events     Thanks and/or Congrats     FRC Game Design     OCCRA         OCCRA Q&A         OCCRA Programming Other     Unsung FIRST Heroes     Chit-Chat         Games/Trivia             Fantasy FIRST     Car Nack's Corner     College & University Education     Dean Kamen's Inventions     FIRST-related Organizations         Western Region Robotics Forum         Robot Chicks Union (RCU)         Southern California Regional Robotics Forum         FIRST Interactive Rural SupporT         FIRST Scouting Network         FloridaFIRST         FIRSTwiki         The Blue Alliance             Video Archives     FIRST Historians     FIRST In the News...     FIRST Lego League         Lego Mindstorm Discussion     FIRST Tech Challenge     VEX         VEX Robotics Competition         VEX IQ     Televised Robotics     Math and Science         NASA Discussion ChiefDelphi.com Website     CD Forum Support     Extra Discussion Old Forum Archives     1999     2000     2001

 Similar Threads Thread Thread Starter Forum Replies Last Post Just a reminder - BACK YOUR CODE UP! wun Programming 0 02-23-2004 08:59 PM LAST REMINDER - Discounted DUEL ON THE DELAWARE John Larock Off-Season Events 2 06-17-2003 12:00 PM Reminder about CNN archiver 2001 0 06-24-2002 02:34 AM Reminder...... skrussel General Forum 0 09-28-2001 04:16 PM REMINDER! Clark Gilbert Chit-Chat 6 08-05-2001 09:26 AM

All times are GMT -5. The time now is 08:49 PM.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.

 -- English (12 hour) -- English (24 hour) Contact Us - Chief Delphi - Rules - Archive - Top