Shop OBEX P1 Docs P2 Docs Learn Events
Problem zeroing speed of Boebot with servopal — Parallax Forums

Problem zeroing speed of Boebot with servopal

ypapelisypapelis Posts: 99
edited 2012-07-19 19:22 in Robotics
I have purchased 12 sets of Boe bots with a bunch of accessories (servoPal, Ping kit, gripper, IR follower) for an upcoming robotics camp. As I was working out the activities, I run into a problem when using the servoPal, specifically, I cannot keep the BoeBot standing still.

Without the servoPal, I can send 1500 uSec pulses to both motors on a loop and by using the adjustment screw, I can zero the speed. However, after installing the servoPal, there is a lot of erratic movement when the same width pulses are sent out through the servoPal. I initially thought that the motors produced more torque due to the regularity of the pulses produced by the servoPal and hence I just have to adjust the screw on the servos, however, no matter how hard I try to cannot get it to stop. It doesn't help that the adjustment screws are so sensitive it only takes thinking about twisting them and the speed changes, but with the servoPal it's impossible to zero the speed.

What is happening is the motors remain stopped for a second or two, but then start randomly jittering; each jitter is rather small, but over 10 to 20 seconds, the beobot will pivot quite a bit, and after enough time it may even move backwards or forward by a few inches.

Any idea if this is typical? My plans for the camp will have to change significantly if I can't reliably stop the robot when using the servoPal. Any suggestion would be welcomed!

Thanks

Comments

  • ypapelisypapelis Posts: 99
    edited 2012-07-19 14:20
    I just realized one possible solution is to simply reset the servoPal when I want the bot to stop. I can send a neutral pulse, wait a bit, then reset the servoPal and all is good.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2012-07-19 14:22
    The ServoPAL uses a microcontroller with a built-in RC clock. When you send it a pulse, it measures that pulse in terms of internal clock ticks and then mimics what it measures on a regular basis. Over time, its RC clock could drift a little bit, which will cause the pulses it's sending to change in width ever so slightly. When the bot is in motion, the drift would not be noticeable. But at rest, what you observe sounds like a likely result of that drift. There are two solutions to this:

    1. When you want the bot to remain at rest, command the ServoPAL to quit sending pulses altogether. [Best]
    2. Do an occasional pulse refresh, so that the ServoPAL can remeasure the pulse widths. [Less convenient]

    -Phil
  • ercoerco Posts: 20,256
    edited 2012-07-19 15:06
    ypapelis: Is the drift the same without the servopal?

    Servos can definitely drift off center null on their own, although Parallax Futaba servos are some of the most stable I've ever seen. I wonder if the servopal is the root of the problem.

    Also, are you using rechargeable batteries, which provide a more stable voltage source than alkalines? A drifting supply voltage (which goes stright to your servos) might also contribute to servo drift.
  • ypapelisypapelis Posts: 99
    edited 2012-07-19 17:45
    Phil: I implemented solution (1) and it appears to work; only issue is the delay in re-initializing the servopal when the bot has to start moving again, but it does indeed work.

    Erco: there is no drift without the servoPal, once the servos are zero'ed, the remain at 0 velocity with the neutral pulse (1500 uS). Problem only appears with the servoPal, but turning it off all together addresses the problem.
  • ercoerco Posts: 20,256
    edited 2012-07-19 19:22
    Hmmm. Interesting, that's the first I've heard of this issue. I thought ServoPal always saved the day. Glad Phil's workaround works for you.
Sign In or Register to comment.