Checking motor possitions

Hello, I'm starting the desing of a sumo robot to play on 2007 contests. I've been reading for several weeks on internet and looks like people doesn't ofter use absolute encoders to check movement of motors. So I have some questions as I feel like absolute enconders are a must.

For example, I will have servos to control the direction of the wheels. How can I check the position of the wheels without absolute encoders? When I give a turn order from the controller how can I know that the order has been executed and the motor finished turning? I expect to not move until the direction is set.

The presency sensor will be fit on a rotating circle on the top of the robot. Now again I don't know how to check the end of the order gived to the motor. How do you manage this problems? As far as I read I don't find a solution without absolute encoders.

P.D: I think on absolute encoders rather than incremental ones to avoid loosing pulses in case of fast turnings like the ones present in a collision or things like that. Is much easier to put incremetal rather than absolute encoders?

Thanks for your help

Reply to
SoMoS
Loading thread data ...

Others will correct me if I'm wrong. But there are a few ways to verify motor position after a command. The most visible and perhaps easiest is using a led-optical sensor on a rotary disk connected to the motor shaft that will count the number of revolutions and give you feedback that way. But you will have to have in your software a means of 'knowing' what each pulse means as to location in inches, meters, angles, whatever. You then use this information to replay the motion of the robot. First you manually, through a pendant or other, move to the desired location, the encoder tells you when this happens, then you replay later.

The other popular method to know where the motor position is, is to use a stepper motor designed so it will be poweful enough to overcome any resistance to the robot arm or manipulator. If it skips a step, then the position will not be as originally desired. Say you joy-stick or pendant control the motor to go to point x1y1z2 and enter that polar or axial coordinate into memory. Then when you 'play back' and the stepper encounters a roadblock making the pulse a negative move, then you are lost. So a stepper motor can do wonders when not affected by physical barriers.

Then there is the typical RC servo system which will simply push and push and push to where you think the end effector should be until it gets there and this by a simple resistor at the joint telling the whole system that the ship has arrived and it can stop pushing. But that requires the intelligence in the driver, the one thousand hertz and the rest of RC servo magic.

Wayne... wearing a dunce hat today because I really don't know what I'm talking about. But regurgitating what I may have been 'learning' over the last twenty years in robotics. I think I'll go have another Dos Equis.

Reply to
Wayne Lundberg

That's just a relative encoder. I'm just evaluating if it will work. I'm only concerned about loosing pulses. If I can be sure to not loose any data they would be a good replacement of the absolute encoders.

In sumo there will be a lot of barriers I think ... :) So this won't work.

As far as I know this will work only to fixed possitions and I need to have feedback in any situation. What I need is a system that works like:

Controller -> Move motor 20=BA Controller Move ... .=2E.

Dos Equis is good but I like more Desperado :D:D:D

Reply to
SoMoS

Some robots don't need to know if the wheel is moving or not. For example, if you have a simple line following robot, the robot only needs to know if it should steer more to the left or to the right. In other words, if the sensor shows that the line is to the left side, the left side motor should be told to turn faster.

Of course, if the left wheel is up in the air, and just spinning because the middle of the robot got stuck on something, the robot can't detect that. It will just keep telling the left wheel to go faster (or the right wheel to go slower). It will sit there spinning its wheels.

A sumo robot can use the same simple method... it may have only two sensors to detect another sumo. If it detects one on the left, it steers more to the left... if it overshoots and now the opponent is on the right, then it steers more to the right. Actual wheel position is not necessary.

If you do have an encoder, then you can detect when the wheel is not moving as it was instructed. That could be useful information because then you know that you have bumped up against something. If that something moves slowly, then you know you are making progress. But, if you detect that you are moving backwards, even though you have given the command to go forward, then you know you are being pushed backwards and perhaps should try to excape by turning backwards and to the side.

Joe Dunfee

Reply to
cadcoke3

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.