Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Differential wheeled robot
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Kinematics of Differential Drive Robots == [[File:Differential Drive Kinematics of a Wheeled Mobile Robot.svg|thumb|300x300px|Differential Drive Kinematics]] The illustration on the right shows the differential drive kinematics of a mobile wheeled robot. The variables are expressed using the following notation: <math display="inline">X</math> and <math display="inline">Y</math> are the global coordinate system. Using the point midway between the wheels as the origin of the robot, one can define <math display="inline">X_{B}</math> and <math display="inline">Y_{B}</math> as the locale body coordinate system. The orientation of the robot with respect to the global coordinate system is the angle <math display="inline">\varphi</math>. The radius of the wheels is <math display="inline">r</math> and the width of the vehicle <math display="inline">b</math>. Assuming that the wheels are at any time in contact with the ground (there is no slip), the wheels describe arcs in the plane in such a way that the vehicle always rotates around a point (referred to as <math display="inline">ICR</math>β£ - [[Instant centre of rotation|instantaneous center of rotation]]). The ground contact speed of the left wheel <math display="inline">v_{L}</math> and the right wheel <math display="inline">v_{R}</math> lead to a rotation of the vehicle by the angular velocity <math display="inline">\omega</math>. Following the definition of [[angular velocity]], one obtains:<math display="block">\begin{align} \omega \cdot (R+b/2) &= v_{R} \\ \omega \cdot (R-b/2) &= v_{L} \\ \end{align}</math>Solving these two equations for <math display="inline">\omega</math> and <math display="inline">R</math>, while the latter is defined as the distance from <math display="inline">ICR</math> to the center of the robot<math display="block">\begin{align} \omega &= (v_{R}-v_{L})/b \\ R &= b/2 \cdot (v_{R}+v_{L}) / (v_{R}-v_{L}) \\ \end{align}</math> Using the equation for the [[angular velocity]], the instantaneous velocity <math>V</math> of the point midway between the robot's wheels is given by<math display="block">V = \omega \cdot R = \frac{v_{R}+v_{L}}{2}</math>The wheel tangential velocities can also be written as<math display="block">\begin{align}v_{R} & = r \cdot \omega_{R} \\ v_{L} & = r \cdot \omega_{L} \end{align}</math> where <math>\omega_{R}</math> and <math>\omega_{L}</math> are the left and the right angular velocities of the wheels around their axes. The robot kinematics in local body coordinates can thus be written as<math display="block">\begin{bmatrix} \dot{x}_{B}\\ \dot{y}_{B}\\ \dot{\varphi} \end{bmatrix} = \begin{bmatrix} v\, {x}_{B} \\ v\, {y}_{B} \\ \omega \end{bmatrix} \overbrace{=}^{v=r \omega} \begin{bmatrix} \frac{r}{2} & \frac{r}{2}\\ 0 &0\\ -\frac{r}{b} & \frac{r}{b} \end{bmatrix} \begin{bmatrix} \omega_{L}\\ \omega_{R} \end{bmatrix}</math>Using a coordinate transformation ([[Rotation of axes]]), the robot's kinematic model in global coordinates can finally be obtained<math display="block">\begin{bmatrix} \dot{x}\\ \dot{y}\\ \dot{\varphi} \end{bmatrix} = \begin{bmatrix} \cos{\varphi} & 0\\ \sin{\varphi} &0\\ 0 & 1 \end{bmatrix} \begin{bmatrix} V\\ \omega \end{bmatrix}</math> where <math>V</math> and <math>\omega</math> are the control variables.<ref name=":0" /><ref>{{Cite book |url=https://www.worldcat.org/oclc/272306791 |title=Springer handbook of robotics |date=2008 |publisher=Springer |others=Bruno Siciliano, Oussama Khatib |isbn=978-3-540-30301-5 |location=Berlin |oclc=272306791}}</ref> === Differential Drive Controller === One might face a situation where the velocity <math display="inline">V</math> and the angular velocity <math display="inline">\omega</math> are given as inputs, and the angular velocities of the left <math display="inline">\omega_{L}</math>and right wheels <math display="inline">\omega_{R}</math> are sought as control variables (see figure above). In this case, the already mentioned equation can be easily reformulated. Using the relations <math display="inline">R = V/\omega</math> and <math display="inline">\omega_{R} = v_{R}/r</math> in <math display="block">\omega \cdot (R+b/2) = v_{R}</math> one obtains the equation for the angular velocity of the right wheel <math display="inline">\omega_{R}</math> <math display="block">\omega_{R} = \frac{V+\omega \cdot b/2}{r}</math> The same procedure can be applied to the calculation of the angular velocity of the left wheel <math display="inline">\omega_{L}</math> <math display="block">\omega_{L} = \frac{V-\omega \cdot b/2}{r}</math>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)