Go to Post I say we just organize a top-secret raid into FIRST HQ one night. - Steven Donow [more]
Home
Go Back   Chief Delphi > FIRST > General Forum
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
View Poll Results: Do the Y?
Yes, definitely. Lots of teams will have the straight code so the Y will be a rare commodity 27 71.05%
Don't bother. Most teams will either have no autonomous or be able to do the Y themselves. 11 28.95%
Voters: 38. You may not vote on this poll

Reply
Thread Tools Rate Thread Display Modes
  #16   Spotlight this post!  
Unread 13-03-2011, 12:21
George Nishimura's Avatar
George Nishimura George Nishimura is offline
Lurker
no team
Team Role: Alumni
 
Join Date: Sep 2008
Rookie Year: 2007
Location: London
Posts: 231
George Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud of
Re: Should We Program Autonomous For the Y?

We used line-tracking, it wasn't too difficult to program the Y autonomous code after getting the straight line to work. Just add a state that recognise the Y(true-false-true).

If your are using accelerometers, gyros and/or encoders, you could just have a half diagonal one that will score no matter where you start, and then work on trying to get the double ubertube.
__________________
Team 1884 - The Griffins (2007-2014)
Reply With Quote
  #17   Spotlight this post!  
Unread 13-03-2011, 14:44
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: Should We Program Autonomous For the Y?

Quote:
Originally Posted by lineskier View Post
Also 33 relies on encoders, which limits how fast they can accomplish it. I think to accomplish a 3 tube autonomous reliably you would have to incorporate a different strategy. The way I forsaw it was 2 cameras... one front and back.
front looks for pegs, back looks for tubes. With 2 cameras and a rangefinder it is definitely possible... But you would need a sub 3 second cap... which is insanely fast. (separate threads for each mechanism... good 2 speed trans... and a crazy good claw.)
We could run faster (we are running our first tube at 3.5 ft/sec, mostly limited by the elevator and our fear of overrunning the elevator).
We choose not to.
It's not the encoders. We run closed-loop control all the time (controlling wheel velocity, and a few other calculations to control machine dynamics while driving) and have no encoder issues at full 13fps.

If anything, the camera would be a much more limiting sensor, as there is a lot of system lag in general while using it (everything must stop while processing images because of the processor overload), and if the image is processed on the laptop to increase speed of calculations then there is network lag returning the results (not much, but when trying to run with +-1 degree rotational error at 13 feet per second, everything is an issue).

You know exactly where the tubes are. You know exactly where the pegs are. The largest source of error is human error on lineup (which generally isn't much) and error compounding from multiple actions (each turn, each drive, etc). The easiest way to do more complex tasks is to reduce the error in each step, then rely on the remaining error to be constant (for example, if I tell my turn command to turn 30 degrees, it might turn 28, but if I know that it will always turn 28 degrees instead of 30, then I can tell it to turn 32 and it will do a perfect 30 degree turn.)

We already had the encoders, and were using them for closed-loop speed control. We already had the gyro, we were attempting to use it for a few special pieces of software (push-through and drive straight) but later abandoned its use in favor of a purely encoder-based solution. The autonomous code relies only on sensors which already existed, adding no weight to the machine. When you weigh in at 119.6 and have another 2 pounds of stuff you want to add, that 1 pound of sensors (2 cameras + wiring) is a lot.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
Reply With Quote
  #18   Spotlight this post!  
Unread 13-03-2011, 15:25
archaopteryx archaopteryx is offline
Registered User
FRC #2067
 
Join Date: Mar 2011
Location: Guilford
Posts: 2
archaopteryx is an unknown quantity at this point
Re: Should We Program Autonomous For the Y?

At the WPI regional, when there were robots on both the Y and the straight lines, they tended to interfere with each other so that neither could get their ubertubes on.
Reply With Quote
  #19   Spotlight this post!  
Unread 13-03-2011, 15:32
mwtidd's Avatar
mwtidd mwtidd is offline
Registered User
AKA: mike
FRC #0319 (Big Bad Bob)
Team Role: Mentor
 
Join Date: Feb 2005
Rookie Year: 2003
Location: Boston, MA
Posts: 714
mwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond repute
Re: Should We Program Autonomous For the Y?

Quote:
Originally Posted by apalrd View Post
We could run faster (we are running our first tube at 3.5 ft/sec, mostly limited by the elevator and our fear of overrunning the elevator).
We choose not to.
It's not the encoders. We run closed-loop control all the time (controlling wheel velocity, and a few other calculations to control machine dynamics while driving) and have no encoder issues at full 13fps.

If anything, the camera would be a much more limiting sensor, as there is a lot of system lag in general while using it (everything must stop while processing images because of the processor overload), and if the image is processed on the laptop to increase speed of calculations then there is network lag returning the results (not much, but when trying to run with +-1 degree rotational error at 13 feet per second, everything is an issue).

You know exactly where the tubes are. You know exactly where the pegs are. The largest source of error is human error on lineup (which generally isn't much) and error compounding from multiple actions (each turn, each drive, etc). The easiest way to do more complex tasks is to reduce the error in each step, then rely on the remaining error to be constant (for example, if I tell my turn command to turn 30 degrees, it might turn 28, but if I know that it will always turn 28 degrees instead of 30, then I can tell it to turn 32 and it will do a perfect 30 degree turn.)

We already had the encoders, and were using them for closed-loop speed control. We already had the gyro, we were attempting to use it for a few special pieces of software (push-through and drive straight) but later abandoned its use in favor of a purely encoder-based solution. The autonomous code relies only on sensors which already existed, adding no weight to the machine. When you weigh in at 119.6 and have another 2 pounds of stuff you want to add, that 1 pound of sensors (2 cameras + wiring) is a lot.
Thanks for your insights!

Regarding the camera, yes if you used the camera as the lead sensor, you would be prohibitive. However there are ways around this. With strafe capability, that slight adjustment to center on the peg can make all the difference in making or missing that cap. I think to do a consistent 3 tube cap consistently the camera would have to be utilized and utilized correctly. For example, as you approach the pegs for the second tube, even having one frame from the camera could help to get that to 75%.

Again my opinions were based on the 3 tube autonomous. Which a 2 degree error x 5 turns, and accounting for misalignment would be a prohibiting factor in reaching a 75% accuracy with 3 tubes even ignoring the 15 second limit.

I have never used encoders myself, and after seeing your success I am very curious about them. Also, don't get me wrong... the double cap is amazing, and its awesome that it can be done simply with encoders and a gyro.

75% has always been my metric for success... unfortunately I failed this year. I'm glad to see you guys succeeded!
__________________
"Never let your schooling interfere with your education" -Mark Twain
Reply With Quote
  #20   Spotlight this post!  
Unread 13-03-2011, 16:37
George Nishimura's Avatar
George Nishimura George Nishimura is offline
Lurker
no team
Team Role: Alumni
 
Join Date: Sep 2008
Rookie Year: 2007
Location: London
Posts: 231
George Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud ofGeorge Nishimura has much to be proud of
Re: Should We Program Autonomous For the Y?

Quote:
Originally Posted by archaopteryx View Post
At the WPI regional, when there were robots on both the Y and the straight lines, they tended to interfere with each other so that neither could get their ubertubes on.
Happened to us twice. Make sure you plan your autonomous strategy well. Also, if you do straight line, back up quickly after placing the tube.
__________________
Team 1884 - The Griffins (2007-2014)
Reply With Quote
  #21   Spotlight this post!  
Unread 13-03-2011, 19:37
DtD's Avatar
DtD DtD is offline
I hope the watchdog starves!
AKA: Pathogen David
FRC #2410 (The Metal Mustangs (Merged from 2334, Hazmat Robotics))
Team Role: Programmer
 
Join Date: Jan 2008
Rookie Year: 2008
Location: Kansas
Posts: 86
DtD will become famous soon enoughDtD will become famous soon enough
Re: Should We Program Autonomous For the Y?

At the KC Regional, very few (if any) robots did the Y. I'd go for it if you could. Our team's experimental Y support should be 100% by the time we go to Midwest. (We just need special conditions for the joints =/ )

~David
Reply With Quote
  #22   Spotlight this post!  
Unread 13-03-2011, 19:49
davidthefat davidthefat is offline
Alumni
AKA: David Yoon
FRC #0589 (Falkons)
Team Role: Alumni
 
Join Date: Jan 2011
Rookie Year: 2010
Location: California
Posts: 792
davidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud of
Re: Should We Program Autonomous For the Y?

My philosophy regarding autonomy: do not do it if you are not doing real time calculations. I personally do not consider those "drive forward 10 feet and score" autonomy real autonomy. They are pre-written instructions; where is the autonomy in that? Consider getting a job and a written step by step instructions on how to do that job. Would you consider that an autonomous action? No I would not.

So the autonomy should be a challenge for the programmers to breathe some life into the robot, allowing it to make choices on its own.

The ideal autonomy should use cameras, I plan on using a camera, the photosensors and possibly the encoders.
__________________
Do not say what can or cannot be done, but, instead, say what must be done for the task at hand must be accomplished.
Reply With Quote
  #23   Spotlight this post!  
Unread 13-03-2011, 20:28
PatJameson PatJameson is offline
Registered User
FRC #0011 (MORT)
Team Role: Alumni
 
Join Date: Mar 2011
Rookie Year: 2011
Location: USA
Posts: 16
PatJameson is on a distinguished road
Re: Should We Program Autonomous For the Y?

Quote:
Originally Posted by davidthefat View Post
So the autonomy should be a challenge for the programmers to breathe some life into the robot, allowing it to make choices on its own.

The ideal autonomy should use cameras, I plan on using a camera, the photosensors and possibly the encoders.
I prefer to follow KISS. If it can be done simply and consistently, it should be done as such. A camera is not simple nor is it as reliable as other means of completing autonomous.
Reply With Quote
  #24   Spotlight this post!  
Unread 13-03-2011, 20:36
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: Should We Program Autonomous For the Y?

Quote:
Originally Posted by davidthefat View Post
The ideal autonomy...
The ideal autonomy is one which reliably scores the most points for your alliance. Whether it uses time-based motor control, encoders for position sensing, clockwork cogs, ultrasonic rangefinders, cameras, or telekinesis is not really important.
Reply With Quote
  #25   Spotlight this post!  
Unread 13-03-2011, 21:57
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: Should We Program Autonomous For the Y?

Quote:
Originally Posted by davidthefat View Post
...do not do it if you are not doing real time calculations. ..."drive forward 10 feet and score" autonomy real autonomy. They are pre-written instructions...
How much math is there in a "drive forward 10 feet and score"?

In my code:
The autonomous script would have a command "DRIVE_STRAIGHT 120 6" to drive the 120 inches at 6 ft/sec
The beescript interpreter would find and call the Drive Straight function (drive_straight.vi)
The Drive Straight function would:
Reset the encoders
Calculate the remaining distance to the target plus an overshoot constant
Determine the desired average output speed using a proportional controller
Limit it to the 6 ft/sec
Determine drift by using the differential of the two encoder distances
Determine how much to compensate using another proportional controller
Add the two and take the remainder of the larger number and subtract it from the smaller (so the difference in the motor output is always the number specified by the second P controller)
Ramp the output to prevent lurching (which can cause twisting and innacuracy)
Feed the speed, which is passed to the drive thread which actually drives (closed loop is turned off during auto since auto does its own calculations).

The score would also include:
Setting the elevator state to be fed to the state machine
The state machine would pickup the state request (back in its thread) and lookup the position
The position would be run through the state machine which would see if it is trying to crossover backwards or handle a special sequence. Since it isn't, I'll skip that.
The resulting position would be checked against the active tube color, and if it's a circle (or if it's an ubertube and we're pretending ubertubes are circles) it will add the white tube bump for the current score state
The resulting position will be fed through the P controller to determine power of the elevator and wrist
The gain scheduler will modify the gains above based on several parameters (such as the sine of the angle of the wrist).
The resulting power will be fed through the limits VI which will bring it into range
The resulting power will be fed to the motor if the state machine has been initialized (set) since last exiting disabled (safety feature - no movement after exiting disabled until commanded)

Lots and lots of math.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
Reply With Quote
  #26   Spotlight this post!  
Unread 13-03-2011, 22:09
mwtidd's Avatar
mwtidd mwtidd is offline
Registered User
AKA: mike
FRC #0319 (Big Bad Bob)
Team Role: Mentor
 
Join Date: Feb 2005
Rookie Year: 2003
Location: Boston, MA
Posts: 714
mwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond repute
Re: Should We Program Autonomous For the Y?

Quote:
Originally Posted by apalrd View Post
The resulting position would be checked against the active tube color, and if it's a circle (or if it's an ubertube and we're pretending ubertubes are circles) it will add the white tube bump for the current score state
Can your robot actually tell the color of the tube its holding and keep track of score?

I didn't really understand this part...
__________________
"Never let your schooling interfere with your education" -Mark Twain
Reply With Quote
  #27   Spotlight this post!  
Unread 13-03-2011, 22:13
MagiChau's Avatar
MagiChau MagiChau is offline
Registered User
AKA: Michael Chau
FRC #0085 (B.O.B. (Built on Brains))
Team Role: Alumni
 
Join Date: Jan 2010
Rookie Year: 2010
Location: Zeeland, Michigan
Posts: 875
MagiChau is just really niceMagiChau is just really niceMagiChau is just really niceMagiChau is just really nice
Re: Should We Program Autonomous For the Y?

They might be using a camera that checks for a color range to determine which tube it is.
Reply With Quote
  #28   Spotlight this post!  
Unread 13-03-2011, 22:14
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: Should We Program Autonomous For the Y?

No, it's set in software based on button input. (but we did actually attempt to use an NXT color sensor, but the claw didn't have any good place to put it).

I have an auto command to set the tube color.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
Reply With Quote
  #29   Spotlight this post!  
Unread 13-03-2011, 22:14
mwtidd's Avatar
mwtidd mwtidd is offline
Registered User
AKA: mike
FRC #0319 (Big Bad Bob)
Team Role: Mentor
 
Join Date: Feb 2005
Rookie Year: 2003
Location: Boston, MA
Posts: 714
mwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond repute
Re: Should We Program Autonomous For the Y?

Quote:
Originally Posted by MagiChau View Post
They might be using a camera that checks for a color range to determine which tube it is.
Yeah, I was just curious if the elevator know's exactly what height to go to based on the tube That would be pretty killer


Quote:
Originally Posted by apalrd View Post
No, it's set in software based on button input. (but we did actually attempt to use an NXT color sensor, but the claw didn't have any good place to put it).

I have an auto command to set the tube color.
Oh okay, it would be pretty sweet to use the camera this way.
Also the frame rate wouldn't be a problem
__________________
"Never let your schooling interfere with your education" -Mark Twain

Last edited by mwtidd : 13-03-2011 at 22:16.
Reply With Quote
  #30   Spotlight this post!  
Unread 13-03-2011, 22:24
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: Should We Program Autonomous For the Y?

IF you tell it you have a white tube, it will go to the correct height. It dosen't know what tube it has, but asks you (there's a button to set white, when you set state it will set red). Red and Blue are the same, white has a height bump.

During auto, the set state command sets the state without setting color, and another function sets color.

The code does exist to read and use the NXT color sensor, but we decided it didn't work well enough to use it (mostly because there is no place in the claw where the tube is an exact distance from the sensor, and the sensor relied heavily on scanning distance). Another issue was I2C cable length, as the run up to the elevator is something like 10 feet from the digital sidecar.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

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


All times are GMT -5. The time now is 16:39.

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


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi