Kinematics: Robot to Wheel Movement
Casey_SCU
Posts: 19
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!
For instance, if given a desired velocity and rotational speed, what pulse durations would you send to the servos?
Thanks!
Comments
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.
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
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
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
·
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
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
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
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
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
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.
Thanks, that helps me understand...a little.
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
Stepper motors give you exact control of position, over multiple rotations.
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
Thanks, that might be something to look at as I move along with this.
Jim