Mobile robots - minimal Kinematics

Kinematics
of Mobile
Robots
Forward
Kinematics of
Differential
drive
Where can we find
differential drives?
1.
2.
3.
4.
5.
6.
Braitenberg Vehicles
Micromouse
Most of our robots
Unicycle
Segway
Many many others
Kinematics of Differential drive
Differential Drive is the most
common kinematic choice
All of the miniature robots…
Pioneer, Rug warrior
- difference in wheels’ speeds
determines its turning angle
Questions (forward kinematics)
Given the wheel’s velocities or positions,
what is the robot’s velocity/position ?
VL
Are there any inherent system constraints?
VR
1) Specify system measurements
2) Determine the point (the radius) around
which the robot is turning.
3) Determine the speed at which the robot is
turning to obtain the robot velocity.
4) Integrate to find position.
Kinematics of Differential drive
1) Specify system measurements
- consider possible coordinate systems
y
VL
2d
q
VR
(assume a wheel radius of 1)
x
Kinematics of Differential drive –
radius of turning
1) Specify system measurements
- consider possible coordinate systems
y
2) Determine the point (the radius) around
which the robot is turning.
VL
2d
q
x
VR
ICC
(assume a wheel radius of 1)
“instantaneous center of
curvature”
Kinematics of Differential drive –
angular velocity
1) Specify system measurements
- consider possible coordinate systems
y
VL
2d
x
q
2) Determine the point (the radius) around
which the robot is turning.
- to minimize wheel slippage, this point
(the ICC) must lie at the intersection of
the wheels’ axles
- each wheel must be traveling at the
same angular velocity
VR
ICC
(assume a wheel radius of 1)
“instantaneous center of curvature”
 = angular velocity
Kinematics of Differential drive
1) Specify system measurements
- consider possible coordinate systems
y
w
VL
2d
x
q
2) Determine the point (the radius) around
which the robot is turning.
- to minimize wheel slippage, this point
(the ICC) must lie at the intersection of
the wheels’ axles
- each wheel must be traveling at the
same angular velocity around the ICC
VR
ICC
(assume a wheel radius of 1)
“instantaneous center of curvature”
Kinematics of Differential drive
1) Specify system measurements
- consider possible coordinate systems
y
2) Determine the point (the radius) around
which the robot is turning.
- each wheel must be traveling at the
same angular velocity around the ICC
w
VL
x
2d
3) Determine the robot’s speed around
the ICC and its linear velocity
VR
ICC
R
robot’s turning radius
(assume a wheel radius of 1)
w(R+d) = VL
w(R-d) = VR
Kinematics of Differential drive
1) Specify system measurements
- consider possible coordinate systems
y
2) Determine the point (the radius) around
which the robot is turning.
- each wheel must be traveling at the
same angular velocity around the ICC
w
VL
x
2d
VR
ICC
3) Determine the robot’s speed around
the ICC and then linear velocity
“instantaneous center of curvature”
ICC
w(R+d) = VL
R
w(R-d) = VR
robot’s turning radius
Thus,
w = ( VR - VL ) / 2d
R = 2d ( VR + VL ) / ( VR - VL )
(assume a wheel radius of 1)
Kinematics of Differential drive – robot’s
velocity
1) Specify system measurements
- consider possible coordinate systems
y
2) Determine the point (the radius) around
which the robot is turning.
- each wheel must be traveling at the
same angular velocity around the ICC
w
VL
x
2d
3) Determine the robot’s speed around
the ICC and then linear velocity
VR
ICC
w(R+d) = VL
R
w(R-d) = VR
robot’s turning radius
Thus,
w = ( VR - VL ) / 2d
R = 2d ( VR + VL ) / ( VR - VL )
So, the robot’s velocity is
V = wR = ( VR + VL ) / 2
Kinematics of Differential drive –
integrate to obtain position
4) Integrate to obtain position
y
Vx = V(t) cos(q(t))
w(t)
V(t)
Vy = V(t) sin(q(t))
q(t)
VL
Vx
x
2d
VR
ICC
“instantaneous center of curvature”
ICC
R(t)
robot’s turning radius
with
w = ( VR - VL ) / 2d
R = 2d ( VR + VL ) / ( VR - VL )
What has to happen to change the ICC ?
V = wR = ( VR + VL ) / 2
Kinematics of Differential drive
4) Integrate to obtain position
y
Vx = V(t) cos(q(t))
w(t)
Vy = V(t) sin(q(t))
Thus,
x(t) =
VL
x
2d
y(t) =
q(t) =
VR
∫ V(t) cos(q(t)) dt
∫ V(t) sin(q(t)) dt
∫ w(t) dt
ICC
R(t)
robot’s turning radius
with
w = ( VR - VL ) / 2d
R = 2d ( VR + VL ) / ( VR - VL )
V = wR = ( VR + VL ) / 2
Kinematics of Differential drive –
velocity components
Velocity Components
y
Vx = V(t) cos(q(t))
w(t)
speed
Vy = V(t) sin(q(t))
Thus,
x(t) =  V(t) cos(q(t)) dt
VL
y(t) =  V(t) sin(q(t)) dt
x
2d
q(t) =
VR
 w(t) dt
ICC
Kinematics
R(t)
robot’s turning radius
with
w = ( VR - VL ) / 2d
R = 2d ( VR + VL ) / ( VR - VL )
What has to happen to change the ICC ?
V = wR = ( VR + VL ) / 2
Inverse
Kinematics of
Differential
Drive
Inverse Kinematics – the problem
Key question:
Given a desired position or velocity,
what can we do to achieve it?
y
x
VL (t)
VR(t)
starting position
final position
Inverse Kinematics – one solution
Key question:
Given a desired position or velocity,
what can we do to achieve it?
y
x
VL (t)
VR(t)
starting position
final position
Inverse Kinematics – another solution
Key question:
Given a desired position or velocity,
what can we do to achieve it?
y
x
VL (t)
VR(t)
starting position
final position
Inverse Kinematics – many numerical
solutions to equations
Key question:
Given a desired position or velocity,
what can we do to achieve it?
y
Need to solve these equations:
x =  V(t) cos(q(t)) dt
y =  V(t) sin(q(t)) dt
x
VL (t)
q =  w(t) dt
w = ( VR - VL ) / 2d
V = wR = ( VR + VL ) / 2
VR(t)
starting position
final position
for VL (t) and VR(t) .
There are lots of solutions...
Inverse Kinematics – finding the best
solution
Key question:
Given a desired position or velocity,
what can we do to achieve it?
y
Finding some solution is not
hard, but finding the “best”
solution is very difficult...
x
VL (t)
VR(t)
starting position
final position
• quickest time
• most energy efficient
• smoothest velocity
profiles
VL (t)
VL (t)
t
It all depends on who gets to define “best”...
Inverse Kinematics - decomposition
Usual approach: decompose the problem and control
only a few DOF at a time
Differential Drive
y
x
VL (t)
VR(t)
starting position
final position
Inverse Kinematics – decomposition for
Differential Drive
Usual approach: decompose the problem and control
only a few DOF at a time
Differential Drive
(1) turn so that the wheels are parallel
to the line between the original and
final position of the robot origin.
y
-VL (t) = VR (t) = Vmax
x
VL (t)
VR(t)
starting position
final position
Inverse Kinematics
Usual approach: decompose the problem and control
only a few DOF at a time
Differential Drive
(1) turn so that the wheels are parallel
to the line between the original and
final position of the robot origin.
y
-VL (t) = VR (t) = Vmax
(2) drive straight until the robot’s origin
coincides with the destination
x
VL (t)
VL (t) = VR (t) = Vmax
VR(t)
starting position
final position
Inverse Kinematics
Usual approach: decompose the problem and control
only a few DOF at a time
Differential Drive
(1) turn so that the wheels are parallel
to the line between the original and
final position of the robot origin.
y
-VL (t) = VR (t) = Vmax
(2) drive straight until the robot’s origin
coincides with the destination
x
VL (t)
VL (t) = VR (t) = Vmax
VR(t)
starting position
(3) rotate again in order to achieve the
desired final orientation
final position
-VL (t) = VR (t) = Vmax
VL (t)
VR (t)
t
Problem
Represent the forward and
inverse kinematics for this
robot using notation from
the previous lecture.
Sources
•
•
•
•
•
•
Prof. Maja Mataric
Dr. Fred Martin
Bryce Tucker and former PSU students
A. Ferworn,
Prof. Gaurav Sukhatme, USC Robotics Research Laboratory
Paul Hannah
• Reuven Granot, Technion
• Dodds, Harvey Mudd College