Speed Sensors

I am planing on implementing a speed sensor on my team’s robot, and I am wondering what sensors other teams use to tell how fast their robots are moving.
Thanks

Accelerometers and encoders are excellent choices.

Probably you want an encoder. Accelerometers can be used, but tend to have more error than encoders (both because use must integrate acceleration from it to get velocity, and because accelerometers tend to get a decent amount of noise in their output).

Many teams use the Greyhill encoders that can be obtained from Digikey. Another available for encoders this year is to buy the encoders designed to hook right up to the Banebots kit transmissions (available at the Banebots website).

Well, you could probably do it simply, if you had an optical sensor, that looked down at the wheel…have some kind of mark on the wheel, make the sensor count how many times it “see’s” it in a second…then plug that in to some kind of program(becasue you can figure out how far the wheel travels with each rotation) and do it like that. Im not sure how hard this would be from a programming standpoint, but I don’t imagine it would be too hard.

That was one heck of a run-on sentence…whew!

There are really two options i am aware of: Accelerometers and gear-tooth/encoder/banner sensors.

The main advantage of an accelerometer is that it will mease the robot’s net acceleration, not the wheel revolutions. Basically, it measures your actual acceleration (can be converted to velocity relatively easily). This means that in a situation (such as running into a wall/other robot) where your wheels are spinning out, you will get an accurate speed reading, whereas with an encoder-style sensor you will not!

However, encoders are certainly simpler to implement, so look at the application and decide what sort of accuracy and reliability you need, and then choose which sensor to use.

//Dillon Compton
Team 1394

how do you connect the speed sensor???:confused:

If you use encoders of some sort and have the weight/space I’d suggest mounting them on a non driven wheel that touches the floor to eliminate error from the robot doing spinning its wheels.

Accelerometer doesn’t tell you current speed, it just measures acceleration. And if you are turning at the time, you will get the forward component of acceleration plus the lateral component (2-axis accelerometer).

Using encoders, you can figure distance travelled, speed, and acceleration.
Put an IF statement in your code that executes its inner code at a known rate (eg: 10 times per second).


if (time_elapsed_100msec)
{
   Speed = CurrentEncoderCount - prev_EncoderCount;
   Acceleration = Speed - prev_Speed;

   prev_EncoderCount = CurrentEncoderCount;
   prev_Speed = Speed;
}