Shop OBEX P1 Docs P2 Docs Learn Events
Tracking adjustment questions on my Boe-Bot — Parallax Forums

Tracking adjustment questions on my Boe-Bot

AlpineSeekerAlpineSeeker Posts: 2
edited 2013-05-28 23:13 in Robotics
Hello all,
My name is Ross, and I am new to this forum and new to Boe-Bots and while
assembling mine I came up with a question on adjusting the tracking of the Boe-Bot.
My servo on the right (12) needs a pulsout of about 700 to track the Boe-Bot straight and
I was wondering if this is an excessive amount? I was also wondering if by switching
sides on the servo if this might change the amount needed for straight tracking. Do
some servos run better in one direction than the other? I was hoping not to have to
offset so much as I don't know what I might need to do in the future with this Bot.
These truly are too cool to watch when they work and if I had had this when I was younger,
I would be in the robotics field for sure. These are a long way from the old "P-Box" kits
at Radio Shack...lol. Take care.
Ross

Comments

  • Martin_HMartin_H Posts: 4,051
    edited 2013-05-27 03:19
    Hi and welcome to the forum. I'm glad you are enjoying your Boe-bot. That amount of offset doesn't sound that out of line and shouldn't cause problems down the line. However the Parallax CR servos can be calibrated so that they will stop at a specific pulse width. Here's a link to the documentation:

    http://www.parallax.com/Portals/0/Downloads/docs/prod/motors/900-00008-CRServo-v2.2.pdf

    In the calibration section it describes putting out a stop pulse and using a small screwdriver to adjust the trim potentiometer inside the servo. Over time and changes in temperature the adjustment can drift so you will have to do it occasionally. I find that for tasks like odometry good adjustment is important while line or wall following is more forgiving.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2013-05-27 08:45
    You didn't mention what the left servo's pulsout number was. I assume pulsout 700 was with the bot moving forward, correct? IIRC, pulsout 750 stops the servo, is this correct? (I haven't use a Basic Stamp for several years (I like the Propeller chip).)

    It's not unusual for servos to have differences in speed. And yes about the possibility of switching the servo sides improving the tracking of your bot. Apparently many DC motors move faster in one direction than the other so it's possible switching the CR servos from one side to the other could improve the way your robot behaves. I don't think you need to physically change the servos to test this. If you run the robot backward, I'd think it would give you a good indication if switching the servo would help by seeing if the robot tracks better backward than forward.

    Did you calibrate the servos as Martin suggested? It unclear to me if that's an issue or not.

    You might want to experiment with other speed settings. I know from my own experiments most servos have a relative small speed range. If a 750 pulse is stop and you're using 700 for forward, have you also tried 690, 710, etc? There is likely to be an optimal speed setting for the best tracking. (It sounds like you've already tried other speeds.)

    Motors running at different speeds is not an uncommon problem in robotics. The usual solution to add encoders to your robot. A digital compass is another sensor that can help a robot track well. Neither of these solutions are simple (though they are fun IMO).
  • ercoerco Posts: 20,256
    edited 2013-05-27 13:40
    Duane Degn wrote: »
    Neither of these solutions are simple (though they are fun IMO).

    One man's fun is another man's PITA.

    But I also think of those "challenges" as fun. :)
  • AlpineSeekerAlpineSeeker Posts: 2
    edited 2013-05-27 15:32
    Hello again,
    Thank you so much to Martin, Duane, and Erco for your replies and for the info. In answer to your questions,
    Yes, the right pulsout (12) 700 was for the Bot moving forward at full speed, and the left pulsout (13) was 850.
    The testing was done on both hard surface and carpet (and yes I know that carpet is not a good thing :( ) and
    the results were pretty much the same. I rechecked the servo zero with the program on the link that Martin posted
    and the servos were centered correctly at 750. Finally, I tried running the Bot in reverse and had to again offset the right
    side pulsout (12) from 850 down to 812 to allow the Bot to track straight with the left side set at 650. It seems
    the right servo has a little more RPM than the left (more Torque maybe?) than the left and I guess in the grand
    scheme of things it's not that bad especially being that it is consistent on one servo, and someday I will move up
    to encoders onboard for more precise measuring for pre-programmed routes and things. Thanks again for the good info
    on this and I hope that you all have a great afternoon. Take care.
    Ross
  • ercoerco Posts: 20,256
    edited 2013-05-28 03:32
    Encoders are great when you get to them. FWIW, the Parallax /Futaba CR servos used on Boebot are probably the most stable and consistent I've used, individually. No two will match exactly, especially since the motors are rotating in opposite directions when moving in a straight line.Per Duane, DC motors are sometimes optimized for one direction, via oriented magnets, brush timing, or other factors. Bottom line is, you can improve open loop (no encoder) performance by careful testing and experimentally matching speed, just as you have described. Also important is and using a more stable voltage supply than alkaline batteries. NiMH or Li-Ion/Lipo batteries and/or a voltage regulator will yield improved results.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-05-28 06:29
    I have a pair of GWS CR servos that are horribly mismatched. Imagine servos that don't agree on the stop position and are non-linear in completely different ways, and the only way to reach top speed is to exceed standard pulse widths. If these things were regular servos they would crash any RC model you put them in.

    I was ready to trash them, but I did a series of tests to determine calibration constants. By the end of an evening I was able to use them fairly reliably for straight forward, backwards, and rotation. What I found was that although their calibration was terrible, their repeatability was good, so I could calibrate away my problems. Important lesson learned which I've applied to my robot arm projects.
  • BrainStrainBrainStrain Posts: 30
    edited 2013-05-28 23:13
    Very good timing that your thread is talking about performance of DC motors. I have arrived at the point in my project that I will be hooking up my motors to motor controllers and start programming the omni wheel operation. As Erco noticed, I am using three identical inexpensive bicycle motors. I was concerned that differences between motor torque and speeds might distort the omni wheel performance. So today I hooked up each motor, one at a time, to a Pololu Simple High-Power Motor Controller 24v23 and used its GUI software. I ran the motors at 50% in both forward and reverse. At 50% the motors ran slowly enough to count the revolutions. I stuck a piece of masking tape on each wheel and counted how many times they came around in 30 seconds. This method was precise enough to determine that all three motors ran at nearly identical speeds. I was a bit surprised. At 50% the motors ran at about 106 RPMs forward, and 112 RPMs in reverse, another surprise.

    image.jpg


    The protective plastic cover over the motor controller used to be a battery box cover.
    1024 x 768 - 105K
Sign In or Register to comment.