Author Topic: Measuring a robot's velocity  (Read 2921 times)

0 Members and 1 Guest are viewing this topic.

Offline cybcodeTopic starter

  • Jr. Member
  • **
  • Posts: 18
  • Helpful? 0
Measuring a robot's velocity
« on: August 26, 2007, 02:09:25 PM »

I'd like to measure the velocity of a (hypothetical) robot's body relative to its environment (room). The robot is an unstable biped which will fall if left alone. Does anyone have any idea how this could be done?

My best idea so far is to use an accelerometer, and integrate its output over time, but then after a while the velocity estimate I'll get will be very far from reality due to integration error. Is this correct? Even worse - I think the accelerometer will give an output that is affected by the direction of gravity. If I understand correctly, an accelerometer always reports the real acceleration plus 1G in the Z direction (up/down). This means that if the robot is motionless, I'll get a Z reading of 1G. I'm supposed to subtract this 1G in order to get the real Z acceleration. But if the robot is tilted and motionless, the gravity vector won't be directed along the Z axis, so after subtracting 1G from the Z reading it will seem that the robot is accelerating. This means that I can't really know where the robot is accelerating, without knowing precisely how it's tilted.

Does anyone know a way to overcome these problems? Are these problems even real? Is there another way to estimate a robot's velocity?


Offline paulstreats

  • Supreme Robot
  • *****
  • Posts: 1,381
  • Helpful? 21
Re: Measuring a robot's velocity
« Reply #1 on: August 26, 2007, 03:05:02 PM »
you could use an ir range finder, taking 1 measurement and then another one say 1 sceond later, you can work out how much distance has been covered in that second.
i.e reading # 1  =  75cm
reading # 2 = 50cm
speed = 25cm per second

you are obviously limited  to the rangefinder max distance and of course there is a very slight error threshhold due to the speed of light travelling from the sensor and back again but this can be calculated mathematically if you need absolute accuracy.

Also there is another problem you should be aware of with accelerometers. #1 these only register acceleration and not a continuous velocity, but you can calculate around this problem.
The other thing is that even though they are relative to the room, they still register acceleration from the room. Imagine if you put your robot in an elevator  and sent it up, is it the robot accelerating or just the elevator? and can you differentiate between the two accelerations (No). The same occurs with moving on a train, bus etc. The accelerometer will pick up all of these movements.

Offline HDL_CinC_Dragon

  • Supreme Robot
  • *****
  • Posts: 1,261
  • Helpful? 5
Re: Measuring a robot's velocity
« Reply #2 on: August 26, 2007, 03:40:00 PM »
Get a gyroscope from some toy store someone where, hook a motor up to it, power it up, and watch it balance =)
United States Marine Corps
Returns to society: 2014JAN11

Offline Brandon121233

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 320
  • Helpful? 0
  • "Genius is %1 inspiration and %99 perspiration"
Re: Measuring a robot's velocity
« Reply #3 on: August 27, 2007, 05:08:00 PM »
Well actually your main problem is that the biped is never going to be at a constant speed. If you look at the way humans walk, a graph of our speed would look something like this: /|_/|_/|_/|_/|_/|_. So unless its going for a long distance and in a straight path, measuring the speed will be lots of averaging and calculations.
Hell, there are no rules here—we're
   trying to accomplish something.

                                                                              —Thomas Edison


Get Your Ad Here