PDA

View Full Version : Servo reading position and lock position CW



mkanon
03-23-2013, 03:38 PM
Hi! i'm new, we just started a project but i'm already wandering if it can be done...

is it possible for a servo to read the position when being turned by hand (no motor control), and while turning (by hand) i want to lock the position counterclockwise (or clockwise, not both ways). When locked counterclockwise, i want to still be able to turn clockwise. Are there servo's that can do this. Please help me http://arduino.cc/forum/Smileys/arduinoWide/smiley.png

jwatte
03-23-2013, 08:43 PM
In theory, servo firmware should easily be able to support what you suggest. However, I'm not sure I know of any servo where that is an exposed feature in the default firmware. You may need to build your own with an absolute encoder, a motor, a motor driver, and a microcontroller. Or ask some servo manufacturer if they support custom firmware...

KevinO
03-23-2013, 08:43 PM
Dynamixel's can read their position. Though I've never heard of a servo that can "lock" it's position let alone in only one direction. Maybe someone else has heard of an obscure servo out there that can.

maddog
03-30-2013, 07:26 AM
Most of the Servo motors cant read the position. As far as I know it cant be locked for rotation in one direction.

jwatte
03-30-2013, 02:37 PM
Most of the Servo motors cant read the position.

A servo is, by definition, a motor with a closed feedback loop from a position sensor. It can't be a servo without reading its position.

Hobby servos don't provide feedback outside of the servo itself; perhaps that's what you intended to suggest? Industrial servos pretty much always provide read-outs of the position sensor.

The main problem with a control loop that allows one-way turning is to avoid the servo driving itself in the allowed direction, while still providing resistance in the counter-direction. I imagine if you can accept one quantum of backlash either way, you could build a control loop that turns up power when it detects moving the wrong direction, and turns down power when it detects moving the right direction. You can actually build this on top of the Dynamixel servos (or any other real servo) although your response time will be worse than if it was tied into the control loop directly.

tician
03-30-2013, 04:10 PM
One of the first things that popped into my mind when I read this thread was a solenoid controllable ratcheting mechanism to prevent the horn rotating in the direction you do not want. If you really need a servo instead of just a potentiometer or rotary encoder, you would have to add some sort of sensor and/or mechanism to prevent the motor being driven in the wrong direction while the ratcheting mechanism is engaged (a pair of limit switches should be easy enough to implement).

It can partly be implemented with dynamixel servos, but it is not very effective/smooth. One of my undergrad projects was to use a pair of gerwalk to implement a force feedback marionette system (use one gerwalk as a controller/"master" and the other as a remote puppet/slave/"blaster"). Basically involved reading the "present load" value from blaster's servos and increasing torque on master's corresponding servo when an obstacle is encountered by blaster then decreasing torque on master's servos when master starts moving the servo backwards away from the obstacle blaster encountered. It was a bit more complicated than just that, and not well implemented in part because of the limited feedback from the AX-12 servos (no actual current or torque sensors).