Shop OBEX P1 Docs P2 Docs Learn Events
Kinematics: Robot to Wheel Movement — Parallax Forums

Kinematics: Robot to Wheel Movement

Casey_SCUCasey_SCU Posts: 19
edited 2006-09-21 17:56 in Learn with BlocklyProp
Does anyone have any suggestions for determining the kinematic equations relating robot motion to wheel motion?
For instance, if given a desired velocity and rotational speed, what pulse durations would you send to the servos?
Thanks!

Comments

  • edited 2006-07-05 22:07
    Are you taking or have you taken Dynamics?· If so, here are·the pieces to your puzzle:

    Robotics with the Boe-Bot v2.2 - pages 112 - 117 and·129 - 137.· (Robotics with the Boe-Bot v2.2·is available for PDF download from the Boe-Bot Full Kit page at www.parallax.com.)

    Regarding pages 112 - 117, you can either approximate it as linear or create a lookup table and assume particular pulse widths.
  • Casey_SCUCasey_SCU Posts: 19
    edited 2006-07-05 23:00
    Andy,

    Thanks for your reply.
    I have looked over those pages in the Robotics with the Boe-Bot, which by the way has been a pleasure to read.

    That information was initially helpful for figuring out the pulse durations given a desired speed for the right and/or left wheel. I have created my own code and using the wheel encoders I was able to find out velocities for certain pulse durations (on the lab floor conditions).

    I am now interested in finding the equations that translate a robot velocity and a robot omega (rotational velocity) into velocities for each wheel. I have found some sites about differential drive kinematics, which is precisely what I need, but then have trouble translating that into use on the Boe-Bot. (see www1.cs.columbia.edu/~allen/F05/icckinematics.pdf for those kinematics equations)

    Thanks,
    Casey
  • edited 2006-07-06 01:44
    Casey,

    Thanks on the book.

    Is this summary of the problem correct?...Given an instantaneous velocity vector, solve for both instantaneous wheel rotational velocities. Also, is the goal to make the Boe-Bot translate a long list of spreadsheet values into a maneuver that matches a graph? If the answers are "no", what is the problem and the goal? If the answers are both "yes", then it kind of seems like the article would actually be the inverse of what you need.

    In the meantime, I'll blow the dust off my dynamics books and re-load a few things into RAM [noparse]:)[/noparse]

    Andy
  • Casey_SCUCasey_SCU Posts: 19
    edited 2006-07-06 15:09
    Andy,

    Yes and no. I need to solve for the instantaneous wheel velocities given an instantaneous robot velocity vector and instantaneous robot omega.
    I am not trying to match a graph of movement.

    The plan is to be able to give robot level commands and not have to calculate the separate wheel velocities. i.e speak in in/s rather than pulse durations.

    Thanks,
    Casey
  • PJAllenPJAllen Banned Posts: 5,065
    edited 2006-07-06 16:48
    Casey_SCU also posted this over in "Robotics" [noparse][[/noparse]I replied there.]
    ·
    http://forums.parallax.com/showthread.php?p=594805
    ·
    1 pulse, 15deg,·1/24th of wheel circumference·(assuming no tire slippage, &c.)

    [noparse][[/noparse]Maybe I don't get it.]

    Post Edited (PJ Allen) : 7/6/2006 4:52:41 PM GMT
  • edited 2006-07-06 18:38
    Casey,

    I think most of the solution is in equations 1 and 2 in icckinematics.pdf. Since velocity = radius x omega, and velocity and omega are given, you can calculate radius. Next, rearrange equations 1 and 2 in icckinematics.pdf to solve for Vr and Vl (the left and right wheels' linear velocities). Once you've got those, a little geometry (2 x pi x r) will get you to each wheel omega (in revolutions per second), and then you can adjust to desired encoder ticks per second.

    Andy
  • Casey_SCUCasey_SCU Posts: 19
    edited 2006-07-06 20:55
    Andy,

    That was the missing puzzle piece. I forgot that velocity = radius x omega, how silly of me.

    All I need is the relation between velocity, omega, and the wheel velocities and those will fit nicely into my proportional velocity control code.

    Thanks so much for all of your help!!

    --Casey
  • JimGJimG Posts: 84
    edited 2006-09-20 02:41
    How are you guys getting to the .pdf

    www1.cs.columbia.edu/~allen/F05/icckinematics.pdf

    I get a forbidden access error message.· Any chance anyone has this file and could email it to me?

    Thanks,

    Jim

    Post Edited (JimG) : 9/20/2006 2:57:40 AM GMT
  • JimGJimG Posts: 84
    edited 2006-09-20 02:56
    Why is the speed so non-linear when running simple speed tests such as are suggest in ForwardOneSecond.bs2?smhair.gif

    I·get 7" at 650/850 and it drops off to 1.75" at 740/760 and then down to 58" at 745/765.· I was hoping for fairly linear value so I could spread them since I cannot get very "scientific" testing down just running the bot along side a ruler.

    Jim
  • allanlane5allanlane5 Posts: 3,815
    edited 2006-09-20 14:19
    Because servo's are not manufactured to produce a 'linear' response curve, depending on the difference between the current position (the variable resistor setting) and the commanded position (the pulse width). Instead, they have just enough difference of response so if the two are 'far away' from each other, it moves at max speed. And if the two are "pretty close", it moves slowly enough not to overshoot.

    This becomes an issue when you "modify" the servo to rotate freely, and 'lock' the variable resistor at the middle of the range. There IS an additional modification (solder in a resistor and capacitor) inside the servo case that you can do to 'spread' the response curve. This is non-trivial to do, and requires some physical and soldering skill.

    But that's why it's non-linear.
  • JimGJimG Posts: 84
    edited 2006-09-20 15:38
    allenlane5,

    Thanks, that helps me understand...a little. smile.gif

    So, is this where steppers come into play to achieve more linear motion curves? Not hat I ma about to move to steppers, just trying to understand.

    Jim
  • allanlane5allanlane5 Posts: 3,815
    edited 2006-09-20 17:04
    Well, this is where PWM controlled H-Bridge on top of an electric motor comes into play. There, you can have quite a broad level of speed control. Unfortunately, that takes quite a bit more processing power than the BS2 has.

    Stepper motors give you exact control of position, over multiple rotations.
  • edited 2006-09-21 04:03
    DC motor coprocessors are typically used with the BASIC Stamp. You can find a number of them here at www.parallax.com -> Products -> Accessories -> Motor Control.

    With continuous rotation servos, the best way to make sure they are traveling the correct distance and speed is with encoders. Take a look at www.parallax.com -> Robotics -> Accessories -> Boe-Bot Digital Encoder Kit.

    The digital encoder kit is hardware that allows the BASIC Stamp to count the holes in the Boe-Bot wheel as they pass by an infrared sensor.· It can use this information to determine distance and rotational velocity and adjust accordingly.

    Post Edited (Andy Lindsay (Parallax)) : 9/21/2006 4:09:36 AM GMT
  • JimGJimG Posts: 84
    edited 2006-09-21 17:56
    Andy,

    Thanks, that might be something to look at as I move along with this.

    Jim
Sign In or Register to comment.