Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Electrical (http://www.chiefdelphi.com/forums/forumdisplay.php?f=53)
-   -   Optical sensors getting tricked (http://www.chiefdelphi.com/forums/showthread.php?t=120918)

MichaelBick 28-10-2013 21:41

Re: Optical sensors getting tricked
 
Quote:

Originally Posted by yash101 (Post 1298952)
Programming a consistent robot closed loop can be hard because you need to calculate the motor speed using the hundreds of variables

Not only is PID not required, you do not need hundreds of variables. A bang-bang shooter algorithm is incredibly easy to program(it's an if statement, if your programmers can program the robot to shoot they can program bang bang). Furthermore it only needs an encoder/ir sensor(we used banner sensors) to feed it RPM. As long as you know the speed of the wheel you don't need to account for any other variables.

For position PID is great. Though we haven't used it before, I have heard that limiting the controller to PD or just P is still a pretty darn effective motion controller.

To sum up, sensors don't have to be complicated. Even with complex code(like vision code) teams like 341 have made it much simpler and easier for the rest of us.

Ether 28-10-2013 21:46

Re: Optical sensors getting tricked
 
Quote:

Originally Posted by yash101 (Post 1298952)
Programming a consistent robot closed loop can be hard because you need to calculate the motor speed using the hundreds of variables, mostly:
-battery voltage
-motor life
-controller life
-load on motors
-bearing stress
-multitudes of other variables

The above makes no sense. I think perhaps you are misunderstanding what "closed loop" means.



EricH 28-10-2013 22:04

Re: Optical sensors getting tricked
 
Quote:

Originally Posted by Ether (Post 1298960)
The above makes no sense. I think perhaps you are misunderstanding what "closed loop" means.

Perhaps I should take a stab at explaining exactly what it means as we're referring to it...

...And reducing the variables (very few of the ones mentioned actually apply in closed-loop control).

Actually, I'll start out with: The only variables listed that would have ANY effect at ALL on, say, a shooter, would be the battery voltage (which really only affects open-loop controls--unless it's totally dead) and the load on the motors (they do have to take a bit of load when the disc goes through--but that's why you have closed-loop control). All of the others have no effect on the control system, or should have been dealt with in the design of the robot (like bearing stress--just get a bearing rated for the load, don't worry about the bearing stress).

Closed-loop control goes something like this: The cRIO sends a command to the speed controller to have the motor go speed X. The controller boosts the motor to speed X (as the controller sees it) by boosting power. A sensor on the shooter wheel indicates speed and sends a signal to the cRIO indicating the actual speed. The cRIO then compares the actual speed to the set speed and then tells the controller to increase power, decrease power, or keep the same power.

cRIO->Controller->Motor->Sensor->cRIO->Controller...

The program could look something like:
speed = 100
if (sensor < 95)
//speed increase
else if (sensor > 105)
//speed decrease


An open-loop control, by contrast, goes:
cRIO->Controller->Motor

and looks like:
speed = 100

in code.

MrForbes 28-10-2013 23:55

Re: Optical sensors getting tricked
 
Quote:

Originally Posted by yash101 (Post 1298751)
Would you rather shoot 100 frisbees into the goal at a 60% accuracy, or would you shoot 60 frisbees and make all 60 into the goal?

I don't remember how many goals we made...but we did get high seed and won the Arizona regional :)

Gdeaver 29-10-2013 07:09

Re: Optical sensors getting tricked
 
This thread is starting to smell of a simplicity VS. complexity argument.

mechanical_robot 29-10-2013 08:03

Re: Optical sensors getting tricked
 
Quote:

Originally Posted by MrForbes (Post 1298749)
we got around it by designing our robot so it doesn't need any sensors other than the compressor pressure switch. It's amazing what you can do with mechanical design, to eliminate the need for software

Only problem with this is that mechanical problems are harder to fix at competition. At competition it is much quicker to fix a sensor or fix a peice of code than it is a mechanical part. Though if I may ask what sensor have the mechanical parts replaced?

tr6scott 29-10-2013 09:11

Re: Optical sensors getting tricked
 
http://www.chiefdelphi.com/forums/sh...8&postcount=25

These with the polarizing filter are very tough to fool.

Sparks333 04-11-2013 22:24

Re: Optical sensors getting tricked
 
Quote:

Originally Posted by EricH (Post 1298974)
Perhaps I should take a stab at explaining exactly what it means as we're referring to it...

...And reducing the variables (very few of the ones mentioned actually apply in closed-loop control).

Actually, I'll start out with: The only variables listed that would have ANY effect at ALL on, say, a shooter, would be the battery voltage (which really only affects open-loop controls--unless it's totally dead) and the load on the motors (they do have to take a bit of load when the disc goes through--but that's why you have closed-loop control). All of the others have no effect on the control system, or should have been dealt with in the design of the robot (like bearing stress--just get a bearing rated for the load, don't worry about the bearing stress).

Closed-loop control goes something like this: The cRIO sends a command to the speed controller to have the motor go speed X. The controller boosts the motor to speed X (as the controller sees it) by boosting power. A sensor on the shooter wheel indicates speed and sends a signal to the cRIO indicating the actual speed. The cRIO then compares the actual speed to the set speed and then tells the controller to increase power, decrease power, or keep the same power.

cRIO->Controller->Motor->Sensor->cRIO->Controller...

The program could look something like:
speed = 100
if (sensor < 95)
//speed increase
else if (sensor > 105)
//speed decrease


An open-loop control, by contrast, goes:
cRIO->Controller->Motor

and looks like:
speed = 100

in code.

This is a textbook bang-bang velocity controller with deadzone - definitely a closed loop system. What I came here to say is that while any control system has to control a setup that does indeed have hundreds, nay, thousands of variables, the magic of a closed-loop controller is that it will compensate for either not knowing them or knowing them badly - your classic open-loop controller assumes it has perfect information about its system, and that the system itself is perfectly modeled by your controller; it has to, since it has no feedback from the system it is controlling. The trick is, in order to actually get a perfectly modeled system, you DO have to consider all those pesky variables, or just tune it for a particular circumstance and pray it never leaves that island of stability. A closed loop controller can have a much rougher model of the system its controlling, and will magically find parameters that optimize its model (some of the really neat ones can even change their models to better adjust for different control regimes). Of course, you do have to worry about things like lag and complexity in your controllers, as well as having to sense things about the system you're controlling to provide feedback, but thanks to the better modeling abilities of a closed-loop controller, it can be operated much closer to instability, which increases the rate at which it converges to the desired output. In short - if you need speed and precision, go closed-loop.

Gdeaver 04-11-2013 23:07

Re: Optical sensors getting tricked
 
Our team has used many different sensors and controllers over the years. My favorite still is the organic analog computer coupled with a organic analog visions processor. Each year we put 2 of them behind the driver station physical connected to the driver station computer. Being an analog system the programming is very difficult. Training a neural net is very time consuming. This year we have devoted allot of resource to train our analog system. We went to ever off season competition we could. Got to train those nets.

ekapalka 04-11-2013 23:12

Re: Optical sensors getting tricked
 
I have no idea what you're talking about, but the words 'neural net' have piqued my interests... You mean that you have a neural net managing your vision tracking, and that you have to endlessly test to train it?

MrForbes 04-11-2013 23:14

Re: Optical sensors getting tricked
 
I think he's referring two a couple of students.

ekapalka 04-11-2013 23:18

Re: Optical sensors getting tricked
 
whoosh

You have no idea how relieved I am :P I thought that FIRST programming had just sailed over my head and continued to evolve while I wasn't looking. My team was considering using an ANN last year, but we figured that the costs outweighed the benefits.

otherguy 05-11-2013 10:11

Re: Optical sensors getting tricked
 
Quote:

Originally Posted by Gdeaver (Post 1298776)
We had a similar problem in 2012 with sharp IR sensors from Pololu electronics.
http://www.pololu.com/catalog/product/1134

The SHARP IR sensors can be GREAT if used in the right application, but here are my lessons learned.
  • The version linked above is affected by long wire runs and supply voltage fluctuations. You can remedy this by putting a capacitor 'backpack' on the sensor, across the supply voltage pins (VIN, GND). I think we used soemthing around 300uF electrolytic cap. This significantly reduced our intermittent detections due to supply voltage fluctuation.
  • There are quite a few different models of these sensors available, they are each tuned to work at different distances. Make sure you get the right sensor for the job. You need to know the minimum and maximum distances the object you are trying to detect will be from the sensor. This page has a good break down of ranges supported by different models.
  • The larger versions that are mounted within their own plastic housing MUST be mounted so that the plastic is isolated from the chassis. I know it sounds crazy, but the plastic shroud on these is conductive.

MrForbes 05-11-2013 10:25

Re: Optical sensors getting tricked
 
Quote:

Originally Posted by antimatter_john (Post 1299031)
Only problem with this is that mechanical problems are harder to fix at competition. At competition it is much quicker to fix a sensor or fix a peice of code than it is a mechanical part. Though if I may ask what sensor have the mechanical parts replaced?

Huh, we have spent a lot of time at competitions trying to get electronic stuff working, and failed. Mechanicals are easy to fix....maybe because I'm a mechanical engineer, with 30+ yrs experience fixing stuff. I guess it's not what it's made of, it's what you know?

Our Ultimate Ascent robot was designed to not require sensors, it just does it's thing based on it's design. Autonomous just requires the robot to be placed where it belongs, and it shoots into the goal. Shooting during a match works by driving the robot into position and shooting...position being determined by parking the robot against the pyramid. Angles and positions are fixed by design, and the actuation is pneumatic, it's either up or down, no "in between" positions that would require sensor feedback to control.

We've spend days, make that weeks, trying to get sensors to deliver useful information to control robots over the years, and generally failed miserably at it.


All times are GMT -5. The time now is 04:53.

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