Robotics Principles and Applications Fumiya Iida Bio-Inspired Robotics Lab, Department of Engineering University of Cambridge Lecture note available at: http://mi.eng.cam.ac.uk/Main/FI224
RoboticsPrinciplesandApplications
FumiyaIidaBio-InspiredRoboticsLab,DepartmentofEngineering
UniversityofCambridge
RoboticsPrinciplesandApplications
FumiyaIidaBio-InspiredRoboticsLab,DepartmentofEngineering
UniversityofCambridge
Lecturenoteavailablehere:http://mi.eng.cam.ac.uk/Main/FI224
Lecturenoteavailableat:http://mi.eng.cam.ac.uk/Main/FI224
Outline
• Introduction• KinematicMotionControl• Discussion
– AdvancedMotionControl– TrendsandChallenges
TheEconomist,March2014
“RiseoftheRobots”ishappeningbecause:1. Cost decreaseoftechnologies
2. Readiness increaseoftechnologies
3. Connected andsharedtechnologies
RoboticsMarketandOpportunities
• Industrialmanufacturing
• Cleaning• Medicalrobotics• Entertainment/edutainment
• Logistics/autonomouswarehouse
• Autonomouscars
• Industrialinspection• Surveillanceandrescue• Constructionandmining• Agriculture
• Healthandelderlycare• Personal/servicerobots
H2020euRobotics Multi-AnnualRoadmap(2016)
RoboticsMarketandOpportunities
• Industrialmanufacturing
• Cleaning• Medicalrobotics• Entertainment/edutainment
• Logistics/autonomouswarehouse
• Autonomouscars
• Industrialinspection• Surveillanceandrescue• Constructionandmining• Agriculture
• Healthandelderlycare• Personal/servicerobots
H2020euRobotics Multi-AnnualRoadmap(2016)
Moravec’s Paradox
It is comparatively easy to make computersexhibit adult level performance on intelligencetests or playing checkers, but difficult orimpossible to give them the skills of a one-year-old when it comes to perception and mobility.
Moravec,Hans(1988),MindChildren,HarvardUniversityPress
IndustrialEnvironment Real-WorldEnvironment
HighpredictabilityHighprogrammabilityAlgorithmicTop-downdesignRigidinteractions
LowpredictabilityLowprogrammabilityCreativity,adaptationDesignforemergence
Softinteractions
Outline
• Introduction• KinematicMotionControl• Discussion
– AdvancedMotionControl– TrendsandChallenges
WhatisKinematicControl
11
RobotJointController
RobotMotorControl
TargetRobotPosition/Posture
InverseKinematics
KinematicControl:Specifydesiredrobotpositioneverytimestep,andcalculatejointpositions/anglesfrom“InverseKinematics”.PositionControllerthentakescareofallthe”physics”.
ForwardandInverseKinematics:“ForwardKinematics”specifiesposition/postureofarobotgivenitsjointangles,and“InverseKinematics”specifiesjointanglesgivenposition/postureofarobot.
Trythisbeforeanyothercontrolmethods!
JointAngles
JointTorque
PIDControl
KINEMATICCONTROLOF ROBOTMANIPULATORS
Chapter2KinematicControl
12
KinematicsofRobotManipulators
• Forwardkinematics
• Inversekinematics
13
2.9 Kinematics of Typical Manipulator Structures 79
Fig. 2.27. DLR manipulator
By setting d6 = 0, the position of the wrist axes intersection is obtained. Inthat case, the vector p0 in (2.70) corresponds to the vector p03 for the soleanthropomorphic arm in (2.66), because d4 gives the length of the forearm(a3) and axis x3 in Fig. 2.26 is rotated by π/2 with respect to axis x3 inFig. 2.23.
2.9.8 DLR Manipulator
Consider the DLR manipulator, whose development is at the basis of the real-ization of the robot in Fig. 1.30; it is characterized by seven DOFs and as suchit is inherently redundant. This manipulator has two possible configurationsfor the outer three joints (wrist). With reference to a spherical wrist similar tothat introduced in Sect. 2.9.5, the resulting kinematic structure is illustratedin Fig. 2.27, where the frames attached to the links are evidenced.
As in the case of the spherical arm, notice that the origin of Frame 0 hasbeen chosen so as to zero d1. The DH parameters are specified in Table 2.7.
Table 2.7. DH parameters for the DLR manipulator
Link ai αi di ϑi1 0 π/2 0 ϑ12 0 π/2 0 ϑ23 0 π/2 d3 ϑ34 0 π/2 0 ϑ45 0 π/2 d5 ϑ56 0 π/2 0 ϑ67 0 0 d7 ϑ7
[ !x, !y, !z, !α, !β, !χ ]T = f ( !q1, !q2,..., !qn )
[ !q1, !q2,..., !qn ]T = f −1( !x, !y, !z, !α, !β, !χ )
20 1 Introduction
Fig. 1.24. The AdeptOne XL robot (courtesy of Adept Technology Inc)
Besides material handling and manipulation, in a manufacturing processit is necessary to perform measurements to test product quality. The robot’scapability to explore 3D space together with the availability of measurementson the manipulator’s status allow a robot to be used as a measuring device.Typical applications include:
• object inspection,• contour finding,• detection of manufacturing imperfections.
The graph in Fig. 1.23 reports the number of robots employed in Europein 2005 and 2006 for various operations, which reveals how material handlingrequires twice as many robots employed for welding, whereas a limited numberof robots is still employed for assembly.
In the following some industrial robots are illustrated in terms of theirfeatures and application fields.
The AdeptOne XL robot in Fig. 1.24 has a four-joint SCARA structure.Direct drive motors are employed. The maximum reach is 800 mm, with arepeatability of 0.025 mm horizontally and 0.038 mm vertically. Maximumspeeds are 1200 mm/s for the prismatic joint, while they range from to 650to 3300 deg/s for the three revolute joints. The maximum payload3 is 12 kg.Typical industrial applications include small-parts material handling, assem-bly and packaging.
3 Repeatability and payload are classical parameters found in industrial robot datasheets. The former gives a measure of the manipulator’s ability to return to apreviously reached position, while the latter indicates the average load to becarried at the robot’s end-effector.
1.3 Industrial Robotics 21
Fig. 1.25. The COMAU Smart NS robot (courtesy of COMAU SpA Robotica)
Fig. 1.26. The ABB IRB 4400 robot (courtesy of ABB Robotics)
The Comau SMART NS robot in Fig. 1.25 has a six-joint anthropomorphicstructure with spherical wrist. In its four versions, the outreach ranges from1650 and 1850 mm horizontally, with a repeatability of 0.05 mm. Maximumspeeds range from 155 to 170 deg/s for the inner three joints, and from 350to 550 deg/s for the outer three joints. The maximum payload is 16 kg. Bothfloor and ceiling mounting positions are allowed. Typical industrial applica-tions include arc welding, light handling, assembly and technological processes.
The ABB IRB 4400 robot in Fig. 1.26 also has a six-joint anthropomor-phic structure, but unlike the previous open-chain structure, it possesses aclosed chain of parallelogram type between the shoulder and elbow joints.The outreach ranges from 1960 to 2550 mm for the various versions, with a
1.3 Industrial Robotics 23
Fig. 1.28. The ABB IRB 340 FlexPicker robot (courtesy of ABB Robotics)
Fig. 1.29. The Fanuc M-16iB robot (courtesy of Fanuc Ltd)
The robot is utilized for handling arbitrarily located objects, deburring, seal-ing and waterjet cutting.
The Light Weight Robot (LWR) in Fig. 1.30 with a seven-axis structurewas introduced in 2006 as the outcome of technology transfer from DLR (theGerman Aerospace Agency) to KUKA. In view of the adoption of lightweightmaterials, as well as the adoption of torque sensors at the joints, the robotcan manipulate a payload of 7 to 14 kg, in the face of a weight of the structureof just 15 kg. The horizontal outreach is 868 mm, with joint speeds rangingfrom 110 to 210 deg/s. On the other hand, the presence of the seventh axis ofmotion confers kinematic redundancy to the robot, which can then be recon-figured into more dexterous postures for the execution of given tasks. Such
Thisiswhatyouwanttoachieve(x,y,z,etc.)
Thisiswhatyouneedtocontrol(q1, q2,q3,…)
SimpleKinematicControl• Specifyjointanglesq1 and q2 toachievethepositionofend-effectoratx
• Thenthinkaboutpositioncontrolofmotor1andmotor2toachievethejointangles
14
x = (l1cos q1+l2cos(q1+ q2))
y = (l1sin q1+l2sin(q1+ q2))
x=f(q1, q2)
Workspace of planar 2R arm
! if l1 % l2 ! WS1 = {p " R2: |l1-l2| & !p!& l1+l2} ! WS2 = '
! if l1 = l2 = " ! WS1 = {p " R2: !p!& 2"} ! WS2 = {p = 0} (infinite number of feasible orientations at the origin)
x
y • p
l1
l2
q1
q2
l1+l2
|l1-l2|
2 orientations
1 orientation
(WS1
Robotics 1 6
inner and outer boundaries Motor1
Motor2
SimpleKinematicControl
• Howtodetermineq1, q2 foradesiredtargetpositionofend-effectorx?
15
x = (l1cos q1+l2cos(q1+ q2))
y = (l1sin q1+l2sin(q1+ q2))
q1 = ?
q2 = ?
[q1, q2]T=f-1(x)
Workspace of planar 2R arm
! if l1 % l2 ! WS1 = {p " R2: |l1-l2| & !p!& l1+l2} ! WS2 = '
! if l1 = l2 = " ! WS1 = {p " R2: !p!& 2"} ! WS2 = {p = 0} (infinite number of feasible orientations at the origin)
x
y • p
l1
l2
q1
q2
l1+l2
|l1-l2|
2 orientations
1 orientation
(WS1
Robotics 1 6
inner and outer boundaries Motor1
Motor2
xtarget
16
Where,
Workspace of planar 2R arm
! if l1 % l2 ! WS1 = {p " R2: |l1-l2| & !p!& l1+l2} ! WS2 = '
! if l1 = l2 = " ! WS1 = {p " R2: !p!& 2"} ! WS2 = {p = 0} (infinite number of feasible orientations at the origin)
x
y • p
l1
l2
q1
q2
l1+l2
|l1-l2|
2 orientations
1 orientation
(WS1
Robotics 1 6
inner and outer boundaries Motor1
Motor2
xtarget
x = (l1cos q1+l2cos(q1+ q2))
y = (l1sin q1+l2sin(q1+ q2))Givenq2,
Coordinateofend-effector
Coordinateofjointspace
Kinematicconstraints
NumericalApproachtoKinematicControl
Relationshipbetweenvelocitiesofqandx
Jacobian
17
Workspace of planar 2R arm
! if l1 % l2 ! WS1 = {p " R2: |l1-l2| & !p!& l1+l2} ! WS2 = '
! if l1 = l2 = " ! WS1 = {p " R2: !p!& 2"} ! WS2 = {p = 0} (infinite number of feasible orientations at the origin)
x
y • p
l1
l2
q1
q2
l1+l2
|l1-l2|
2 orientations
1 orientation
(WS1
Robotics 1 6
inner and outer boundaries
xtarget xt
or
MoreDetailedCalculation
20
Workspace of planar 2R arm
! if l1 % l2 ! WS1 = {p " R2: |l1-l2| & !p!& l1+l2} ! WS2 = '
! if l1 = l2 = " ! WS1 = {p " R2: !p!& 2"} ! WS2 = {p = 0} (infinite number of feasible orientations at the origin)
x
y • p
l1
l2
q1
q2
l1+l2
|l1-l2|
2 orientations
1 orientation
(WS1
Robotics 1 6
inner and outer boundaries
xtarget xt
[x, y]T = φ(q1,q2 )OnceweobtainJ(q),wecaninverseitinmatlab byJ-1(q)=inv(J(q))or,ifnotinvertible,J+(q)=pinv(J(q))=>Pseudo-inverse
This should be enough to reach the target byrunning:qt+1=qt +J-1 (xtarget-xt)
=qt +J-1 (xtarget-f(qt))
KINEMATICCONTROLOFMOBILEROBOTS
Chapter2KinematicControl
22
Kinematics of Mobile Robots
Whatiskinematics?Motionofsystemwithoutforces,i.e.“geometryofmotion”
23
Kinematics
H.I.
Christensen
Intro
Coords
Models
Maneuverability
Workspace
Beyond Basics
Control
Wrapup
Simplified reference frames
Inertial reference frame (I)
Robot references frame(R)
Robot pose
⇠I =
2
4x
y
✓
3
5
Y
X
YR
I
XR
I
P
θ
Kinematics
H.I.
Christensen
Intro
Coords
Models
Maneuverability
Workspace
Beyond Basics
Control
Wrapup
Kinematic modelling
Goal:Determine the robot speed ⇠̇ =
⇥ẋ ẏ ✓̇
⇤Tas a
function of wheel speed '̇, steering angle �, steering speed�̇ and the geometric parameters of the robot.Forward kinematics
⇠̇ =
2
4ẋ
ẏ
✓̇
3
5 = f ('̇1, . . . , '̇n,�1, . . . ,�m, �̇1, . . . , �̇m)
Inverse kinematics⇥
'̇1 . . . '̇n �1 . . . �m �̇1 . . . �̇m⇤T
= f (ẋ , ẏ , ✓̇)
Why not2
4x
y
✓
3
5 = f ('1, . . . ,'n,�1, . . . ,�m)
the relation is not straight forward. See later.
Kinematics
H.I.
Christensen
Intro
Coords
Models
Maneuverability
Workspace
Beyond Basics
Control
Wrapup
Kinematic modelling
Goal:Determine the robot speed ⇠̇ =
⇥ẋ ẏ ✓̇
⇤Tas a
function of wheel speed '̇, steering angle �, steering speed�̇ and the geometric parameters of the robot.Forward kinematics
⇠̇ =
2
4ẋ
ẏ
✓̇
3
5 = f ('̇1, . . . , '̇n,�1, . . . ,�m, �̇1, . . . , �̇m)
Inverse kinematics⇥
'̇1 . . . '̇n �1 . . . �m �̇1 . . . �̇m⇤T
= f (ẋ , ẏ , ✓̇)
Why not2
4x
y
✓
3
5 = f ('1, . . . ,'n,�1, . . . ,�m)
the relation is not straight forward. See later.
Kinematics
H.I.
Christensen
Intro
Coords
Models
Maneuverability
Workspace
Beyond Basics
Control
Wrapup
Kinematic modelling
Goal:Determine the robot speed ⇠̇ =
⇥ẋ ẏ ✓̇
⇤Tas a
function of wheel speed '̇, steering angle �, steering speed�̇ and the geometric parameters of the robot.Forward kinematics
⇠̇ =
2
4ẋ
ẏ
✓̇
3
5 = f ('̇1, . . . , '̇n,�1, . . . ,�m, �̇1, . . . , �̇m)
Inverse kinematics⇥
'̇1 . . . '̇n �1 . . . �m �̇1 . . . �̇m⇤T
= f (ẋ , ẏ , ✓̇)
Why not2
4x
y
✓
3
5 = f ('1, . . . ,'n,�1, . . . ,�m)
the relation is not straight forward. See later.
Kinematics
H.I.
Christensen
Intro
Coords
Models
Maneuverability
Workspace
Beyond Basics
Control
Wrapup
Kinematic modelling
Goal:Determine the robot speed ⇠̇ =
⇥ẋ ẏ ✓̇
⇤Tas a
function of wheel speed '̇, steering angle �, steering speed�̇ and the geometric parameters of the robot.Forward kinematics
⇠̇ =
2
4ẋ
ẏ
✓̇
3
5 = f ('̇1, . . . , '̇n,�1, . . . ,�m, �̇1, . . . , �̇m)
Inverse kinematics⇥
'̇1 . . . '̇n �1 . . . �m �̇1 . . . �̇m⇤T
= f (ẋ , ẏ , ✓̇)
Why not2
4x
y
✓
3
5 = f ('1, . . . ,'n,�1, . . . ,�m)
the relation is not straight forward. See later.
wheelspeed angleofsteeringwheels
ForwardKinematics
InverseKinematics
Kinematics of Simple Mobile Robot
• Forwardkinematicsofatwowheeledrobot
24
Kinematics
H.I.
Christensen
Intro
Coords
Models
Maneuverability
Workspace
Beyond Basics
Control
Wrapup
Forward kinematic model – di↵erential drive
r
P
l l
Assume a set up with two drivewheels. Wheels have radius r , and aplaces at a distance l from the center.
Wheels rotate at speeds '̇1 and '̇2
Prediction of the motion of the robotmotion in the global frame
⇠̇I =
2
4ẋ
ẏ
✓̇
3
5 = f (l , r , ✓, '̇1, '̇2)
Kinematics
H.I.
Christensen
Intro
Coords
Models
Maneuverability
Workspace
Beyond Basics
Control
Wrapup
Forward kinematic model – di↵erential drive
r
P
l l
Assume a set up with two drivewheels. Wheels have radius r , and aplaces at a distance l from the center.
Wheels rotate at speeds '̇1 and '̇2
Prediction of the motion of the robotmotion in the global frame
⇠̇I =
2
4ẋ
ẏ
✓̇
3
5 = f (l , r , ✓, '̇1, '̇2)
44 Autonomous Mobile Robots
(3.6)
From Equation (3.3) we know that we can compute the robot’s motion in the global refer-
ence frame from motion in its local reference frame: . Therefore, the strat-egy will be to first compute the contribution of each of the two wheels in the local reference
frame, . For this example of a differential-drive chassis, this problem is particularlystraightforward.Suppose that the robot’s local reference frame is aligned such that the robot moves forwardalong + , as shown in Figure (3.1). First consider the contribution of each wheel’s spin-
ning speed to the translation speed at P in the direction of + . If one wheel spins whilethe other wheel contributes nothing and is stationary, since P is halfway between the two
wheels, it will move instantaneously with half the speed: and . In
a differential drive robot, these two contributions can simply be added to calculate the
component of . Consider, for example, a differential robot in which each wheel spinswith equal speed but in opposite directions. The result is a stationary, spinning robot. As
expected, will be 0 in this case. The value of is even simpler to calculate. Neither
wheel can contribute to sideways motion in the robot’s reference frame, and so is always
0. Finally, we must compute the rotational component of . Once again, the contri-butions of each wheel can be computed independently and just added. Consider the rightwheel (we will call this wheel 1). Forward spin of this wheel results in counter-clockwiserotation at point P. Recall that if wheel 1 spins alone, the robot pivots around wheel 2. Therotation velocity at P can be computed because the wheel is instantaneously moving
along the arc of a circle of radius 2l:
The same calculation applies to the left wheel, with the exception that forward spin resultsin clockwise rotation at point P:
(3.7)
Combining these individual formulae yields a kinematic model for the differential-drive ex-ample robot:
ξ I·
x·
y·
θ·f l r θ ϕ· 1 ϕ
·2, , , ,( )= =
ξ I· R θ( ) 1– ξ R
·=
ξ· R
XRXR
xr1· 1
2---rϕ· 1= xr2
· 12---rϕ· 2=
xR·
ξ· R
xR· yR
·
yR·
θR·
ξ· R
ω1
ω1rϕ· 12l--------=
ω2r– ϕ· 22l-----------=
44 Autonomous Mobile Robots
(3.6)
From Equation (3.3) we know that we can compute the robot’s motion in the global refer-
ence frame from motion in its local reference frame: . Therefore, the strat-egy will be to first compute the contribution of each of the two wheels in the local reference
frame, . For this example of a differential-drive chassis, this problem is particularlystraightforward.Suppose that the robot’s local reference frame is aligned such that the robot moves forwardalong + , as shown in Figure (3.1). First consider the contribution of each wheel’s spin-
ning speed to the translation speed at P in the direction of + . If one wheel spins whilethe other wheel contributes nothing and is stationary, since P is halfway between the two
wheels, it will move instantaneously with half the speed: and . In
a differential drive robot, these two contributions can simply be added to calculate the
component of . Consider, for example, a differential robot in which each wheel spinswith equal speed but in opposite directions. The result is a stationary, spinning robot. As
expected, will be 0 in this case. The value of is even simpler to calculate. Neither
wheel can contribute to sideways motion in the robot’s reference frame, and so is always
0. Finally, we must compute the rotational component of . Once again, the contri-butions of each wheel can be computed independently and just added. Consider the rightwheel (we will call this wheel 1). Forward spin of this wheel results in counter-clockwiserotation at point P. Recall that if wheel 1 spins alone, the robot pivots around wheel 2. Therotation velocity at P can be computed because the wheel is instantaneously moving
along the arc of a circle of radius 2l:
The same calculation applies to the left wheel, with the exception that forward spin resultsin clockwise rotation at point P:
(3.7)
Combining these individual formulae yields a kinematic model for the differential-drive ex-ample robot:
ξ I·
x·
y·
θ·f l r θ ϕ· 1 ϕ
·2, , , ,( )= =
ξ I· R θ( ) 1– ξ R
·=
ξ· R
XRXR
xr1· 1
2---rϕ· 1= xr2
· 12---rϕ· 2=
xR·
ξ· R
xR· yR
·
yR·
θR·
ξ· R
ω1
ω1rϕ· 12l--------=
ω2r– ϕ· 22l-----------=
44 Autonomous Mobile Robots
(3.6)
From Equation (3.3) we know that we can compute the robot’s motion in the global refer-
ence frame from motion in its local reference frame: . Therefore, the strat-egy will be to first compute the contribution of each of the two wheels in the local reference
frame, . For this example of a differential-drive chassis, this problem is particularlystraightforward.Suppose that the robot’s local reference frame is aligned such that the robot moves forwardalong + , as shown in Figure (3.1). First consider the contribution of each wheel’s spin-
ning speed to the translation speed at P in the direction of + . If one wheel spins whilethe other wheel contributes nothing and is stationary, since P is halfway between the two
wheels, it will move instantaneously with half the speed: and . In
a differential drive robot, these two contributions can simply be added to calculate the
component of . Consider, for example, a differential robot in which each wheel spinswith equal speed but in opposite directions. The result is a stationary, spinning robot. As
expected, will be 0 in this case. The value of is even simpler to calculate. Neither
wheel can contribute to sideways motion in the robot’s reference frame, and so is always
0. Finally, we must compute the rotational component of . Once again, the contri-butions of each wheel can be computed independently and just added. Consider the rightwheel (we will call this wheel 1). Forward spin of this wheel results in counter-clockwiserotation at point P. Recall that if wheel 1 spins alone, the robot pivots around wheel 2. Therotation velocity at P can be computed because the wheel is instantaneously moving
along the arc of a circle of radius 2l:
The same calculation applies to the left wheel, with the exception that forward spin resultsin clockwise rotation at point P:
(3.7)
Combining these individual formulae yields a kinematic model for the differential-drive ex-ample robot:
ξ I·
x·
y·
θ·f l r θ ϕ· 1 ϕ
·2, , , ,( )= =
ξ I· R θ( ) 1– ξ R
·=
ξ· R
XRXR
xr1· 1
2---rϕ· 1= xr2
· 12---rϕ· 2=
xR·
ξ· R
xR· yR
·
yR·
θR·
ξ· R
ω1
ω1rϕ· 12l--------=
ω2r– ϕ· 22l-----------=
44 Autonomous Mobile Robots
(3.6)
From Equation (3.3) we know that we can compute the robot’s motion in the global refer-
ence frame from motion in its local reference frame: . Therefore, the strat-egy will be to first compute the contribution of each of the two wheels in the local reference
frame, . For this example of a differential-drive chassis, this problem is particularlystraightforward.Suppose that the robot’s local reference frame is aligned such that the robot moves forwardalong + , as shown in Figure (3.1). First consider the contribution of each wheel’s spin-
ning speed to the translation speed at P in the direction of + . If one wheel spins whilethe other wheel contributes nothing and is stationary, since P is halfway between the two
wheels, it will move instantaneously with half the speed: and . In
a differential drive robot, these two contributions can simply be added to calculate the
component of . Consider, for example, a differential robot in which each wheel spinswith equal speed but in opposite directions. The result is a stationary, spinning robot. As
expected, will be 0 in this case. The value of is even simpler to calculate. Neither
wheel can contribute to sideways motion in the robot’s reference frame, and so is always
0. Finally, we must compute the rotational component of . Once again, the contri-butions of each wheel can be computed independently and just added. Consider the rightwheel (we will call this wheel 1). Forward spin of this wheel results in counter-clockwiserotation at point P. Recall that if wheel 1 spins alone, the robot pivots around wheel 2. Therotation velocity at P can be computed because the wheel is instantaneously moving
along the arc of a circle of radius 2l:
The same calculation applies to the left wheel, with the exception that forward spin resultsin clockwise rotation at point P:
(3.7)
Combining these individual formulae yields a kinematic model for the differential-drive ex-ample robot:
ξ I·
x·
y·
θ·f l r θ ϕ· 1 ϕ
·2, , , ,( )= =
ξ I· R θ( ) 1– ξ R
·=
ξ· R
XRXR
xr1· 1
2---rϕ· 1= xr2
· 12---rϕ· 2=
xR·
ξ· R
xR· yR
·
yR·
θR·
ξ· R
ω1
ω1rϕ· 12l--------=
ω2r– ϕ· 22l-----------=
Kin
em
atic
s
H.I.
Christensen
Intro
Coords
Models
Maneuverabilit
y
Workspace
Beyond
Basic
s
Control
Wrapup
Forward
kinematic
model
–di↵
erentialdrive
r
P
ll
Assum
ea
setup
with
two
drivew
heels.W
heelshave
radiusr,
anda
placesat
adistance
lfrom
thecenter.
Wheels
rotateat
speeds
'̇1
and'̇
2
Prediction
ofthe
motion
ofthe
robot
motion
inthe
globalfram
e
⇠̇I=
24ẋẏ✓̇
35=
f(l,
r,✓,'̇1 ,'̇
2 )
(x,y)
Kinematics
H.I.
Christensen
Intro
Coords
Models
Maneuverability
Workspace
Beyond Basics
Control
Wrapup
Kinematic modelling
Goal:Determine the robot speed ⇠̇ =
⇥ẋ ẏ ✓̇
⇤Tas a
function of wheel speed '̇, steering angle �, steering speed�̇ and the geometric parameters of the robot.Forward kinematics
⇠̇ =
2
4ẋ
ẏ
✓̇
3
5 = f ('̇1, . . . , '̇n,�1, . . . ,�m, �̇1, . . . , �̇m)
Inverse kinematics⇥
'̇1 . . . '̇n �1 . . . �m �̇1 . . . �̇m⇤T
= f (ẋ , ẏ , ✓̇)
Why not2
4x
y
✓
3
5 = f ('1, . . . ,'n,�1, . . . ,�m)
the relation is not straight forward. See later.
!1
44 Autonomous Mobile Robots
(3.6)
From Equation (3.3) we know that we can compute the robot’s motion in the global refer-
ence frame from motion in its local reference frame: . Therefore, the strat-egy will be to first compute the contribution of each of the two wheels in the local reference
frame, . For this example of a differential-drive chassis, this problem is particularlystraightforward.Suppose that the robot’s local reference frame is aligned such that the robot moves forwardalong + , as shown in Figure (3.1). First consider the contribution of each wheel’s spin-
ning speed to the translation speed at P in the direction of + . If one wheel spins whilethe other wheel contributes nothing and is stationary, since P is halfway between the two
wheels, it will move instantaneously with half the speed: and . In
a differential drive robot, these two contributions can simply be added to calculate the
component of . Consider, for example, a differential robot in which each wheel spinswith equal speed but in opposite directions. The result is a stationary, spinning robot. As
expected, will be 0 in this case. The value of is even simpler to calculate. Neither
wheel can contribute to sideways motion in the robot’s reference frame, and so is always
0. Finally, we must compute the rotational component of . Once again, the contri-butions of each wheel can be computed independently and just added. Consider the rightwheel (we will call this wheel 1). Forward spin of this wheel results in counter-clockwiserotation at point P. Recall that if wheel 1 spins alone, the robot pivots around wheel 2. Therotation velocity at P can be computed because the wheel is instantaneously moving
along the arc of a circle of radius 2l:
The same calculation applies to the left wheel, with the exception that forward spin resultsin clockwise rotation at point P:
(3.7)
Combining these individual formulae yields a kinematic model for the differential-drive ex-ample robot:
ξ I·
x·
y·
θ·f l r θ ϕ· 1 ϕ
·2, , , ,( )= =
ξ I· R θ( ) 1– ξ R
·=
ξ· R
XRXR
xr1· 1
2---rϕ· 1= xr2
· 12---rϕ· 2=
xR·
ξ· R
xR· yR
·
yR·
θR·
ξ· R
ω1
ω1rϕ· 12l--------=
ω2r– ϕ· 22l-----------=
Kinematics of Simple Mobile Robot
25
3 Mobile Robot Kinematics 41
R. Siegwart, EPFL, Illah Nourbakhsh, CMU
Deriving a model for the whole robot’s motion is a bottom-up process. Each individualwheel contributes to the robot’s motion and, at the same time, imposes constraints on robotmotion. Wheels are tied together based on robot chassis geometry, and therefore their con-straints combine to form constraints on the overall motion of the robot chassis. But the forc-es and constraints of each wheel must be expressed with respect to a clear and consistentreference frame. This is particularly important in mobile robotics because of its self-con-tained and mobile nature; a clear mapping between global and local frames of reference isrequired. We begin by defining these reference frames formally, then using the resultingformalism to annotate the kinematics of individual wheels and whole robots. Throughoutthis process we draw extensively on the notation and terminology presented in [35].
3.2.1 Representing robot positionThroughout this analysis we model the robot as a rigid body on wheels, operating on a hor-izontal plane. The total dimensionality of this robot chassis on the plane is three, two for po-sition in the plane and one for orientation along the vertical axis, which is orthogonal to theplane. Of course, there are additional degrees of freedom and flexibility due to the wheel ax-les, wheel steering joints and wheel castor joints. However by robot chassiswe refer only tothe rigid body of the robot, ignoring the joints and degrees of freedom internal to the robotand its wheels.
In order to specify the position of the robot on the plane we establish a relationship betweenthe global reference frame of the plane and the local reference frame of the robot as in figure3.1. The axes and define an arbitrary inertial basis on the plane as the global reference
frame from some origin O: . To specify the position of the robot, choose a point P
on the robot chassis as its position reference point. The basis defines two axes rel-ative to P on the robot chassis and is thus the robot’s local reference frame. The position of
Fig 3.1 The global reference frame and the robot local reference frame
P
YR
XR
θ
YI
XI
XI YIXI YI,{ }
XR YR,{ }
42 Autonomous Mobile Robots
P in the global reference frame is specified by coordinates x and y, and the angular differencebetween the global and local reference frames is given by . We can describe the pose ofthe robot as a vector with these three elements. Note the use of the subscript I to clarify thebasis of this pose as the global reference frame:
(3.1)
To describe robot motion in terms of component motions, it will be necessary to map motionalong the axes of the global reference frame to motion along the axes of the robot’s localreference frame. Of course, the mapping is a function of the current pose of the robot. Thismapping is accomplished using the orthogonal rotation matrix:
(3.2)
This matrix can be used to map motion in the global reference frame to motion in
terms of the local reference frame . This operation is denoted by because
the computation of this operation depends on the value of :
(3.3)
For example, consider the robot in Figure 3.2. For this robot, because we can easily
compute the instantaneous rotation matrix R:
(3.4)
Given some velocity ( ) in the global reference frame we can compute the compo-nents of motion along this robot’s local axes and . In this case, due to the specific
angle of the robot, motion along is equal to and motion along is :
θ
ξ I
xyθ
=
R θ( )θcos θsin 0θsin– θcos 0
0 0 1=
XI YI,{ }
XR YR,{ } θ( )ξ·I
θ
ξ R· R π
2---( )ξ I·=
θπ2---=
R π2---( )
0 1 01– 0 00 0 1
=
x· y· θ·, ,XR YR
XR y· YR x·–
globalcoordinateXl,Yl
Forwardkinematics(globalcoordinate)
44 Autonomous Mobile Robots
(3.6)
From Equation (3.3) we know that we can compute the robot’s motion in the global refer-
ence frame from motion in its local reference frame: . Therefore, the strat-egy will be to first compute the contribution of each of the two wheels in the local reference
frame, . For this example of a differential-drive chassis, this problem is particularlystraightforward.Suppose that the robot’s local reference frame is aligned such that the robot moves forwardalong + , as shown in Figure (3.1). First consider the contribution of each wheel’s spin-
ning speed to the translation speed at P in the direction of + . If one wheel spins whilethe other wheel contributes nothing and is stationary, since P is halfway between the two
wheels, it will move instantaneously with half the speed: and . In
a differential drive robot, these two contributions can simply be added to calculate the
component of . Consider, for example, a differential robot in which each wheel spinswith equal speed but in opposite directions. The result is a stationary, spinning robot. As
expected, will be 0 in this case. The value of is even simpler to calculate. Neither
wheel can contribute to sideways motion in the robot’s reference frame, and so is always
0. Finally, we must compute the rotational component of . Once again, the contri-butions of each wheel can be computed independently and just added. Consider the rightwheel (we will call this wheel 1). Forward spin of this wheel results in counter-clockwiserotation at point P. Recall that if wheel 1 spins alone, the robot pivots around wheel 2. Therotation velocity at P can be computed because the wheel is instantaneously moving
along the arc of a circle of radius 2l:
The same calculation applies to the left wheel, with the exception that forward spin resultsin clockwise rotation at point P:
(3.7)
Combining these individual formulae yields a kinematic model for the differential-drive ex-ample robot:
ξ I·
x·
y·
θ·f l r θ ϕ· 1 ϕ
·2, , , ,( )= =
ξ I· R θ( ) 1– ξ R
·=
ξ· R
XRXR
xr1· 1
2---rϕ· 1= xr2
· 12---rϕ· 2=
xR·
ξ· R
xR· yR
·
yR·
θR·
ξ· R
ω1
ω1rϕ· 12l--------=
ω2r– ϕ· 22l-----------=
44 Autonomous Mobile Robots
(3.6)
From Equation (3.3) we know that we can compute the robot’s motion in the global refer-
ence frame from motion in its local reference frame: . Therefore, the strat-egy will be to first compute the contribution of each of the two wheels in the local reference
frame, . For this example of a differential-drive chassis, this problem is particularlystraightforward.Suppose that the robot’s local reference frame is aligned such that the robot moves forwardalong + , as shown in Figure (3.1). First consider the contribution of each wheel’s spin-
ning speed to the translation speed at P in the direction of + . If one wheel spins whilethe other wheel contributes nothing and is stationary, since P is halfway between the two
wheels, it will move instantaneously with half the speed: and . In
a differential drive robot, these two contributions can simply be added to calculate the
component of . Consider, for example, a differential robot in which each wheel spinswith equal speed but in opposite directions. The result is a stationary, spinning robot. As
expected, will be 0 in this case. The value of is even simpler to calculate. Neither
wheel can contribute to sideways motion in the robot’s reference frame, and so is always
0. Finally, we must compute the rotational component of . Once again, the contri-butions of each wheel can be computed independently and just added. Consider the rightwheel (we will call this wheel 1). Forward spin of this wheel results in counter-clockwiserotation at point P. Recall that if wheel 1 spins alone, the robot pivots around wheel 2. Therotation velocity at P can be computed because the wheel is instantaneously moving
along the arc of a circle of radius 2l:
The same calculation applies to the left wheel, with the exception that forward spin resultsin clockwise rotation at point P:
(3.7)
Combining these individual formulae yields a kinematic model for the differential-drive ex-ample robot:
ξ I·
x·
y·
θ·f l r θ ϕ· 1 ϕ
·2, , , ,( )= =
ξ I· R θ( ) 1– ξ R
·=
ξ· R
XRXR
xr1· 1
2---rϕ· 1= xr2
· 12---rϕ· 2=
xR·
ξ· R
xR· yR
·
yR·
θR·
ξ· R
ω1
ω1rϕ· 12l--------=
ω2r– ϕ· 22l-----------=
44 Autonomous Mobile Robots
(3.6)
From Equation (3.3) we know that we can compute the robot’s motion in the global refer-
ence frame from motion in its local reference frame: . Therefore, the strat-egy will be to first compute the contribution of each of the two wheels in the local reference
frame, . For this example of a differential-drive chassis, this problem is particularlystraightforward.Suppose that the robot’s local reference frame is aligned such that the robot moves forwardalong + , as shown in Figure (3.1). First consider the contribution of each wheel’s spin-
ning speed to the translation speed at P in the direction of + . If one wheel spins whilethe other wheel contributes nothing and is stationary, since P is halfway between the two
wheels, it will move instantaneously with half the speed: and . In
a differential drive robot, these two contributions can simply be added to calculate the
component of . Consider, for example, a differential robot in which each wheel spinswith equal speed but in opposite directions. The result is a stationary, spinning robot. As
expected, will be 0 in this case. The value of is even simpler to calculate. Neither
wheel can contribute to sideways motion in the robot’s reference frame, and so is always
0. Finally, we must compute the rotational component of . Once again, the contri-butions of each wheel can be computed independently and just added. Consider the rightwheel (we will call this wheel 1). Forward spin of this wheel results in counter-clockwiserotation at point P. Recall that if wheel 1 spins alone, the robot pivots around wheel 2. Therotation velocity at P can be computed because the wheel is instantaneously moving
along the arc of a circle of radius 2l:
The same calculation applies to the left wheel, with the exception that forward spin resultsin clockwise rotation at point P:
(3.7)
Combining these individual formulae yields a kinematic model for the differential-drive ex-ample robot:
ξ I·
x·
y·
θ·f l r θ ϕ· 1 ϕ
·2, , , ,( )= =
ξ I· R θ( ) 1– ξ R
·=
ξ· R
XRXR
xr1· 1
2---rϕ· 1= xr2
· 12---rϕ· 2=
xR·
ξ· R
xR· yR
·
yR·
θR·
ξ· R
ω1
ω1rϕ· 12l--------=
ω2r– ϕ· 22l-----------=
44 Autonomous Mobile Robots
(3.6)
From Equation (3.3) we know that we can compute the robot’s motion in the global refer-
ence frame from motion in its local reference frame: . Therefore, the strat-egy will be to first compute the contribution of each of the two wheels in the local reference
frame, . For this example of a differential-drive chassis, this problem is particularlystraightforward.Suppose that the robot’s local reference frame is aligned such that the robot moves forwardalong + , as shown in Figure (3.1). First consider the contribution of each wheel’s spin-
ning speed to the translation speed at P in the direction of + . If one wheel spins whilethe other wheel contributes nothing and is stationary, since P is halfway between the two
wheels, it will move instantaneously with half the speed: and . In
a differential drive robot, these two contributions can simply be added to calculate the
component of . Consider, for example, a differential robot in which each wheel spinswith equal speed but in opposite directions. The result is a stationary, spinning robot. As
expected, will be 0 in this case. The value of is even simpler to calculate. Neither
wheel can contribute to sideways motion in the robot’s reference frame, and so is always
0. Finally, we must compute the rotational component of . Once again, the contri-butions of each wheel can be computed independently and just added. Consider the rightwheel (we will call this wheel 1). Forward spin of this wheel results in counter-clockwiserotation at point P. Recall that if wheel 1 spins alone, the robot pivots around wheel 2. Therotation velocity at P can be computed because the wheel is instantaneously moving
along the arc of a circle of radius 2l:
The same calculation applies to the left wheel, with the exception that forward spin resultsin clockwise rotation at point P:
(3.7)
Combining these individual formulae yields a kinematic model for the differential-drive ex-ample robot:
ξ I·
x·
y·
θ·f l r θ ϕ· 1 ϕ
·2, , , ,( )= =
ξ I· R θ( ) 1– ξ R
·=
ξ· R
XRXR
xr1· 1
2---rϕ· 1= xr2
· 12---rϕ· 2=
xR·
ξ· R
xR· yR
·
yR·
θR·
ξ· R
ω1
ω1rϕ· 12l--------=
ω2r– ϕ· 22l-----------=
Kin
em
atic
s
H.I.
Christensen
Intro
Coords
Models
Maneuverabilit
y
Workspace
Beyond
Basic
s
Control
Wrapup
Forward
kinematic
model
–di↵
erentialdrive
r
P
ll
Assum
ea
setup
with
two
drivew
heels.W
heelshave
radiusr,
anda
placesat
adistance
lfrom
thecenter.
Wheels
rotateat
speeds
'̇1
and'̇
2
Prediction
ofthe
motion
ofthe
robot
motion
inthe
globalfram
e
⇠̇I=
24ẋẏ✓̇
35=
f(l,
r,✓,'̇1 ,'̇
2 )
(x,y)
3 Mobile Robot Kinematics 45
R. Siegwart, EPFL, Illah Nourbakhsh, CMU
(3.8)
We can now use this kinematic model in an example. However we must first compute. In general calculating the inverse of a matrix may be challenging. In this case, how-
ever, it is easy because it is simply a transform from to rather than vice-versa:
(3.9)
Suppose that the robot is positioned such that , and r=1 and l=1. If the robot engages
its wheels unevenly, with speeds and , we can compute its velocity in theglobal reference frame:
(3.10)
So, this robot will move instantaneously along the y axis of the global reference frame withspeed 3 while rotating with speed 1. This approach to kinematic modeling can provide in-formation about the motion of a robot given its component wheel speeds in straightforwardcases. However, we wish to determine the space of possible motions for each robot chassisdesign. To do this, we must go further, describing formally the constraints on robot motionimposed by each wheel. The next section begins this process by describing constraints forvarious wheel types, then the rest of this chapter provides tools for analyzing the character-istics and workspace of a robot given these constraints.
3.2.3 Wheel kinematic constraintsThe first step to a kinematic model of the robot is to express constraints on the motions ofindividual wheels. Just as shown in the previous section, the motions of individual wheelscan later be combined to compute the motion of the robot as a whole. As discussed in Chap-ter 2, there are four basic wheel types with widely varying kinematic properties. Therefore,we begin by presenting sets of constraints specific to each wheel type.
However several important assumptions will simplify this presentation. We assume that the
ξ I· R θ( ) 1–
rϕ· 12-------- rϕ
·22--------+
0
rϕ· 12l-------- r– ϕ
·2
2l-----------+
=
R θ( ) 1–
ξ· R ξ·I
R θ( ) 1–θcos θsin– 0θsin θcos 00 0 1
=
θπ2---=
ϕ· 1 4= ϕ·2 2=
ξ I·
x·
y·
θ·
0 1– 01 0 00 0 1
301
031
== =
Forwardkinematics(localcoordinate)
where
3 Mobile Robot Kinematics 45
R. Siegwart, EPFL, Illah Nourbakhsh, CMU
(3.8)
We can now use this kinematic model in an example. However we must first compute. In general calculating the inverse of a matrix may be challenging. In this case, how-
ever, it is easy because it is simply a transform from to rather than vice-versa:
(3.9)
Suppose that the robot is positioned such that , and r=1 and l=1. If the robot engages
its wheels unevenly, with speeds and , we can compute its velocity in theglobal reference frame:
(3.10)
So, this robot will move instantaneously along the y axis of the global reference frame withspeed 3 while rotating with speed 1. This approach to kinematic modeling can provide in-formation about the motion of a robot given its component wheel speeds in straightforwardcases. However, we wish to determine the space of possible motions for each robot chassisdesign. To do this, we must go further, describing formally the constraints on robot motionimposed by each wheel. The next section begins this process by describing constraints forvarious wheel types, then the rest of this chapter provides tools for analyzing the character-istics and workspace of a robot given these constraints.
3.2.3 Wheel kinematic constraintsThe first step to a kinematic model of the robot is to express constraints on the motions ofindividual wheels. Just as shown in the previous section, the motions of individual wheelscan later be combined to compute the motion of the robot as a whole. As discussed in Chap-ter 2, there are four basic wheel types with widely varying kinematic properties. Therefore,we begin by presenting sets of constraints specific to each wheel type.
However several important assumptions will simplify this presentation. We assume that the
ξ I· R θ( ) 1–
rϕ· 12-------- rϕ
·22--------+
0
rϕ· 12l-------- r– ϕ
·2
2l-----------+
=
R θ( ) 1–
ξ· R ξ·I
R θ( ) 1–θcos θsin– 0θsin θcos 00 0 1
=
θπ2---=
ϕ· 1 4= ϕ·2 2=
ξ I·
x·
y·
θ·
0 1– 01 0 00 0 1
301
031
== =
where
Kinematics of Simple Mobile Robot
26
3 Mobile Robot Kinematics 41
R. Siegwart, EPFL, Illah Nourbakhsh, CMU
Deriving a model for the whole robot’s motion is a bottom-up process. Each individualwheel contributes to the robot’s motion and, at the same time, imposes constraints on robotmotion. Wheels are tied together based on robot chassis geometry, and therefore their con-straints combine to form constraints on the overall motion of the robot chassis. But the forc-es and constraints of each wheel must be expressed with respect to a clear and consistentreference frame. This is particularly important in mobile robotics because of its self-con-tained and mobile nature; a clear mapping between global and local frames of reference isrequired. We begin by defining these reference frames formally, then using the resultingformalism to annotate the kinematics of individual wheels and whole robots. Throughoutthis process we draw extensively on the notation and terminology presented in [35].
3.2.1 Representing robot positionThroughout this analysis we model the robot as a rigid body on wheels, operating on a hor-izontal plane. The total dimensionality of this robot chassis on the plane is three, two for po-sition in the plane and one for orientation along the vertical axis, which is orthogonal to theplane. Of course, there are additional degrees of freedom and flexibility due to the wheel ax-les, wheel steering joints and wheel castor joints. However by robot chassiswe refer only tothe rigid body of the robot, ignoring the joints and degrees of freedom internal to the robotand its wheels.
In order to specify the position of the robot on the plane we establish a relationship betweenthe global reference frame of the plane and the local reference frame of the robot as in figure3.1. The axes and define an arbitrary inertial basis on the plane as the global reference
frame from some origin O: . To specify the position of the robot, choose a point P
on the robot chassis as its position reference point. The basis defines two axes rel-ative to P on the robot chassis and is thus the robot’s local reference frame. The position of
Fig 3.1 The global reference frame and the robot local reference frame
P
YR
XR
θ
YI
XI
XI YIXI YI,{ }
XR YR,{ }
42 Autonomous Mobile Robots
P in the global reference frame is specified by coordinates x and y, and the angular differencebetween the global and local reference frames is given by . We can describe the pose ofthe robot as a vector with these three elements. Note the use of the subscript I to clarify thebasis of this pose as the global reference frame:
(3.1)
To describe robot motion in terms of component motions, it will be necessary to map motionalong the axes of the global reference frame to motion along the axes of the robot’s localreference frame. Of course, the mapping is a function of the current pose of the robot. Thismapping is accomplished using the orthogonal rotation matrix:
(3.2)
This matrix can be used to map motion in the global reference frame to motion in
terms of the local reference frame . This operation is denoted by because
the computation of this operation depends on the value of :
(3.3)
For example, consider the robot in Figure 3.2. For this robot, because we can easily
compute the instantaneous rotation matrix R:
(3.4)
Given some velocity ( ) in the global reference frame we can compute the compo-nents of motion along this robot’s local axes and . In this case, due to the specific
angle of the robot, motion along is equal to and motion along is :
θ
ξ I
xyθ
=
R θ( )θcos θsin 0θsin– θcos 0
0 0 1=
XI YI,{ }
XR YR,{ } θ( )ξ·I
θ
ξ R· R π
2---( )ξ I·=
θπ2---=
R π2---( )
0 1 01– 0 00 0 1
=
x· y· θ·, ,XR YR
XR y· YR x·–
42 Autonomous Mobile Robots
P in the global reference frame is specified by coordinates x and y, and the angular differencebetween the global and local reference frames is given by . We can describe the pose ofthe robot as a vector with these three elements. Note the use of the subscript I to clarify thebasis of this pose as the global reference frame:
(3.1)
To describe robot motion in terms of component motions, it will be necessary to map motionalong the axes of the global reference frame to motion along the axes of the robot’s localreference frame. Of course, the mapping is a function of the current pose of the robot. Thismapping is accomplished using the orthogonal rotation matrix:
(3.2)
This matrix can be used to map motion in the global reference frame to motion in
terms of the local reference frame . This operation is denoted by because
the computation of this operation depends on the value of :
(3.3)
For example, consider the robot in Figure 3.2. For this robot, because we can easily
compute the instantaneous rotation matrix R:
(3.4)
Given some velocity ( ) in the global reference frame we can compute the compo-nents of motion along this robot’s local axes and . In this case, due to the specific
angle of the robot, motion along is equal to and motion along is :
θ
ξ I
xyθ
=
R θ( )θcos θsin 0θsin– θcos 0
0 0 1=
XI YI,{ }
XR YR,{ } θ( )ξ·I
θ
ξ R· R π
2---( )ξ I·=
θπ2---=
R π2---( )
0 1 01– 0 00 0 1
=
x· y· θ·, ,XR YR
XR y· YR x·–
globalcoordinateXl,Yl
Forwardkinematics
Inversekinematics
3 Mobile Robot Kinematics 45
R. Siegwart, EPFL, Illah Nourbakhsh, CMU
(3.8)
We can now use this kinematic model in an example. However we must first compute. In general calculating the inverse of a matrix may be challenging. In this case, how-
ever, it is easy because it is simply a transform from to rather than vice-versa:
(3.9)
Suppose that the robot is positioned such that , and r=1 and l=1. If the robot engages
its wheels unevenly, with speeds and , we can compute its velocity in theglobal reference frame:
(3.10)
So, this robot will move instantaneously along the y axis of the global reference frame withspeed 3 while rotating with speed 1. This approach to kinematic modeling can provide in-formation about the motion of a robot given its component wheel speeds in straightforwardcases. However, we wish to determine the space of possible motions for each robot chassisdesign. To do this, we must go further, describing formally the constraints on robot motionimposed by each wheel. The next section begins this process by describing constraints forvarious wheel types, then the rest of this chapter provides tools for analyzing the character-istics and workspace of a robot given these constraints.
3.2.3 Wheel kinematic constraintsThe first step to a kinematic model of the robot is to express constraints on the motions ofindividual wheels. Just as shown in the previous section, the motions of individual wheelscan later be combined to compute the motion of the robot as a whole. As discussed in Chap-ter 2, there are four basic wheel types with widely varying kinematic properties. Therefore,we begin by presenting sets of constraints specific to each wheel type.
However several important assumptions will simplify this presentation. We assume that the
ξ I· R θ( ) 1–
rϕ· 12-------- rϕ
·22--------+
0
rϕ· 12l-------- r– ϕ
·2
2l-----------+
=
R θ( ) 1–
ξ· R ξ·I
R θ( ) 1–θcos θsin– 0θsin θcos 00 0 1
=
θπ2---=
ϕ· 1 4= ϕ·2 2=
ξ I·
x·
y·
θ·
0 1– 01 0 00 0 1
301
031
== =
=
42 Autonomous Mobile Robots
P in the global reference frame is specified by coordinates x and y, and the angular differencebetween the global and local reference frames is given by . We can describe the pose ofthe robot as a vector with these three elements. Note the use of the subscript I to clarify thebasis of this pose as the global reference frame:
(3.1)
To describe robot motion in terms of component motions, it will be necessary to map motionalong the axes of the global reference frame to motion along the axes of the robot’s localreference frame. Of course, the mapping is a function of the current pose of the robot. Thismapping is accomplished using the orthogonal rotation matrix:
(3.2)
This matrix can be used to map motion in the global reference frame to motion in
terms of the local reference frame . This operation is denoted by because
the computation of this operation depends on the value of :
(3.3)
For example, consider the robot in Figure 3.2. For this robot, because we can easily
compute the instantaneous rotation matrix R:
(3.4)
Given some velocity ( ) in the global reference frame we can compute the compo-nents of motion along this robot’s local axes and . In this case, due to the specific
angle of the robot, motion along is equal to and motion along is :
θ
ξ I
xyθ
=
R θ( )θcos θsin 0θsin– θcos 0
0 0 1=
XI YI,{ }
XR YR,{ } θ( )ξ·I
θ
ξ R· R π
2---( )ξ I·=
θπ2---=
R π2---( )
0 1 01– 0 00 0 1
=
x· y· θ·, ,XR YR
XR y· YR x·–
42 Autonomous Mobile Robots
P in the global reference frame is specified by coordinates x and y, and the angular differencebetween the global and local reference frames is given by . We can describe the pose ofthe robot as a vector with these three elements. Note the use of the subscript I to clarify thebasis of this pose as the global reference frame:
(3.1)
To describe robot motion in terms of component motions, it will be necessary to map motionalong the axes of the global reference frame to motion along the axes of the robot’s localreference frame. Of course, the mapping is a function of the current pose of the robot. Thismapping is accomplished using the orthogonal rotation matrix:
(3.2)
This matrix can be used to map motion in the global reference frame to motion in
terms of the local reference frame . This operation is denoted by because
the computation of this operation depends on the value of :
(3.3)
For example, consider the robot in Figure 3.2. For this robot, because we can easily
compute the instantaneous rotation matrix R:
(3.4)
Given some velocity ( ) in the global reference frame we can compute the compo-nents of motion along this robot’s local axes and . In this case, due to the specific
angle of the robot, motion along is equal to and motion along is :
θ
ξ I
xyθ
=
R θ( )θcos θsin 0θsin– θcos 0
0 0 1=
XI YI,{ }
XR YR,{ } θ( )ξ·I
θ
ξ R· R π
2---( )ξ I·=
θπ2---=
R π2---( )
0 1 01– 0 00 0 1
=
x· y· θ·, ,XR YR
XR y· YR x·–
where
.
.
.
TargetvelocityMotorControl
Outline
• Introduction• KinematicMotionControl• Discussion
– AdvancedMotionControl– TrendsandChallenges
WhatisKinematicControl
30
RobotJointController
RobotMotorControl
TargetRobotPosition/Posture
InverseKinematics
JointAngles
JointTorque
PIDControl
Designingyourownrobot:1. Determinethekinematicchainofyourrobot2. CalculateInverseKinematicsofyourrobot3. Determinetargetrobotposition/posture(canbetimeseries)4. Runthecontroller,thentherobotfollowsthegiventrajectory
WhatcanthisapproachNOTdo?
ExampleQuestion1
32
Givenathree-linkplanarmanipulatorfixedonthebasetotheorigin",derivethetime-seriestrajectoriesofthreejointsq1(t),q2(t),andq3(t)tomovetheend-effectorfromPointAtoPointBwithaminimumtravelingdistance.L1=0.8m,L2=0.9m,L3=0.6m; XA=1.3m,XB=-1.0m,XO=0.9m,a=0.5m,b=0.3m.
4M20 (2016) Answers to Problem Set 1
Fumiya Iida
Cambridge University, Engineering [email protected]
1 Problem 1
1.1 Rotation matrices
R01 =
2
4c1 �s1 0s1 c1 0
0 0 1
3
5R12 =
2
4c2 s2 0
�s2 c2 00 0 1
3
5R23 =
2
4c3 �s3 0s3 c3 0
0 0 1
3
5 (1)
R02 = R01R12 =
2
4c1�2 �s1�2 0s1�2 c1�2 00 0 1
3
5R023 = R01R12R23 =
2
4c1�2+3 �s1�2+3 0s1�2+3 c1�2+3 0
0 0 1
3
5
(2)
1.2 Jacobian matrix
J =
�l1c1 � l2c1�2 � l3c1�2+3, l2c1�2 + l3c1�2+3, �l3c1�2+3�l1s1 � l2s1�2 � l3s1�2+3, l2s1�2 + l3s1�2+3, �l3s1�2+3
�(3)
1.3 Joint angles for rT = [0.05, 0.15]T
qT = [�0.633,�1.978, 3.86]T (4)
1.5 When q0 = [0,�⇡,⇡]
The system is in singularity (Jacobian has no determinant), and it cannot move.
2 Problem 2
2.1 Lagrangian Dynamics without gravity
To derive the Lagrangian of the system, we consider:
L = T � U (5)
Here the kinetic energy T can be calculated as:
T =
2X
i=1
(1
2miv
2i +
1
2⇥i!
2i ) (6)
FirstderivetheJacobianmatrix:
Thencalculateq1(t),q2(t),andq3(t),withrespecttotargets(x3,y3)
Targets(x3,y3)needtobedeterminedbyconsideringtheconstraintsoftask-environment
Answer:
ExampleQuestion2
33
Whatifthereisaheavyobject/endeffector.IsInverse-KinematicControllergoingtowork?Whatisthelimitofthepayload?
ExampleQuestion3
34
Whatifthereisanunspecifiedobject(orhumans)intheenvironment?Anywaytoachievethetaskwithoutconflictingtotheobject??
VariousApproachesofMotionControl
1.Controlengineeringapproach2.Sense-think-actapproach(CSapproach)3.Behaviour-basedapproach(Bioapproach)4.Passivity-basedapproach(MechE approach)5.Softapproach(Material/Chem approach)
35
3.1.ControlEngineeringApproach
ControllerCentralnervoussystems
PlantBody
TargetValue
+-
State1
State2Action1
TargetTrajectory
• Statesandactionsarerepresentedwithoutambiguity
• Model-basedapproach(out-of-modelisregardedasnoise)
• Targettrajectoryisgiven• Limitedtosimple(linear)systems
MoredetailsinLecture2
3.2Sense-Think-ActApproach
ControllerCentralnervoussystems
task-environmentEcologicalniche
Sense
Think
Act
37
State1
State2
Action1
• Statesandactionsarerepresentedwithoutambiguity
• Oftenincludeplanningandlearning(i.e.autonomouslygeneratetargettrajectories)
• Sense-think-actscheme(thesystemalwaysfollowsthisorderofprocesses)
• Alsoknownas“GoodOldFashionAI”-GOFAI
Planning/Learning
MoredetailsinLecture4/5/6
ConstructingWorldModel
204 RICHARD E. lIKES AND NILS J. NILSSON
describes its performance on three different tasks. The initial world model for all three tasks consists of a corridor with four rooms and doorways (see Fig. 3) and is described by the list of axioms in Table 1. Initially, the robot
TABLE 1. Formulation for STRIPS Tasks. Initial World Model (VxVyVz)[CONNECTS(x,y,z)=~ C C N N E CTS(x,z,y)] C O N N E ~ R I , R O O M I , R O O M S ) C O N N E ~ R 2 , ROOM2, ROOM 5) CONNECTS(DOOR3,ROOM3,ROOMS) CONNECTS(DOOR4,ROOM4,ROOMS) LOCINROOM(f, ROOM4) AT(BOXl,a) AT(BOX2,b) AT(BOX3,c) AT(LIGHTSWlTCH l,d) ATROBOT(e) TYPE(BOXI,BOX) TYPE(BOX2,BOX) TYPE(BOX3,BOX) TYPE(IM,DOOR) TYPE(D3,DOOR) TYPE(D2,DOOR) TYPE(DI,DOOR)
INROOM(BOXI,ROOMD INROOM(BOX2,ROOMI) INROOM(BOX3,ROOMI) INROOM(ROBOT, ROOM 1) INROOM(LIGHTSWITCHI,ROOM 1 ) PUSHABLF.(BOXI) PUSHABLE(BOX2) PUSHABLE(BOX3) ONFLOOR STATUS(LIGHTSWITCHI,OFF) TYPE(LIGHTSWITCHI,LIGHTSWITCH)
Operators gotol(m): Robot goes to coordinate location m.
Preconditions: (ONFLOOR) A (3x)[INROOM(ROBOT,x) A LOCINROOM(m,x)]
Delete list: ATROBOT($),NEXTTO(ROBOT,$) Add list: ATROBOT(m)
g6,o2(m): Robot goes next to item m. Preconditions:
(ONFLOOR) ^ {(3x)[INROOM(ROBOT,x) A INROOM(m,x)] V (3x)(3y) [INROOM(ROBOT,x) A CONNECTS(m,x,y)]}
Delete list: ATROBOT($),NEXTrO(ROBOT,$) Add list: NEXTTO(ROBOT, m)
pushto(m,n): robot pushes object m next[to item n Precondition:
PUSHABLE(m) ̂ ONFLOOR A NEXTTO(ROBOT,m) ̂ {(~lx)[INROOM(m,x) ^ INROOM(n,x)] v Ox3y)[INROOM(m,x) A CONNECTS(n,x,y)]}
Delete list: AT ROBOT ($) NEXTrO (ROBOT $) NEXTI'O ($,m) AT ( m S ) NEXTTO fm$)
Add list: NEXTTO(m,n) NEXTTO(n,m) NEXTFO(ROBOT, m)
Artificial Intelligence 2 (1971), 189-208
Fikes andNilsson,1971
38
Example:Shakey Robot(1966)
Whatistheworldmodel forShakeytonavigatefromPointAtoB?
• Perception(understandingofsensorsignals)Obstacles,Floors,Doors,Walls,Rooms,Humans,Slippage,
• ConsequencesofownmotionsMovefwd/bwd,turning,stuck
• Priorities• Changesoftasksandenvironment• …
204 RICHARD E. lIKES AND NILS J. NILSSON
describes its performance on three different tasks. The initial world model for all three tasks consists of a corridor with four rooms and doorways (see Fig. 3) and is described by the list of axioms in Table 1. Initially, the robot
TABLE 1. Formulation for STRIPS Tasks. Initial World Model (VxVyVz)[CONNECTS(x,y,z)=~ C C N N E CTS(x,z,y)] C O N N E ~ R I , R O O M I , R O O M S ) C O N N E ~ R 2 , ROOM2, ROOM 5) CONNECTS(DOOR3,ROOM3,ROOMS) CONNECTS(DOOR4,ROOM4,ROOMS) LOCINROOM(f, ROOM4) AT(BOXl,a) AT(BOX2,b) AT(BOX3,c) AT(LIGHTSWlTCH l,d) ATROBOT(e) TYPE(BOXI,BOX) TYPE(BOX2,BOX) TYPE(BOX3,BOX) TYPE(IM,DOOR) TYPE(D3,DOOR) TYPE(D2,DOOR) TYPE(DI,DOOR)
INROOM(BOXI,ROOMD INROOM(BOX2,ROOMI) INROOM(BOX3,ROOMI) INROOM(ROBOT, ROOM 1) INROOM(LIGHTSWITCHI,ROOM 1 ) PUSHABLF.(BOXI) PUSHABLE(BOX2) PUSHABLE(BOX3) ONFLOOR STATUS(LIGHTSWITCHI,OFF) TYPE(LIGHTSWITCHI,LIGHTSWITCH)
Operators gotol(m): Robot goes to coordinate location m.
Preconditions: (ONFLOOR) A (3x)[INROOM(ROBOT,x) A LOCINROOM(m,x)]
Delete list: ATROBOT($),NEXTTO(ROBOT,$) Add list: ATROBOT(m)
g6,o2(m): Robot goes next to item m. Preconditions:
(ONFLOOR) ^ {(3x)[INROOM(ROBOT,x) A INROOM(m,x)] V (3x)(3y) [INROOM(ROBOT,x) A CONNECTS(m,x,y)]}
Delete list: ATROBOT($),NEXTrO(ROBOT,$) Add list: NEXTTO(ROBOT, m)
pushto(m,n): robot pushes object m next[to item n Precondition:
PUSHABLE(m) ̂ ONFLOOR A NEXTTO(ROBOT,m) ̂ {(~lx)[INROOM(m,x) ^ INROOM(n,x)] v Ox3y)[INROOM(m,x) A CONNECTS(n,x,y)]}
Delete list: AT ROBOT ($) NEXTrO (ROBOT $) NEXTI'O ($,m) AT ( m S ) NEXTTO fm$)
Add list: NEXTTO(m,n) NEXTTO(n,m) NEXTFO(ROBOT, m)
Artificial Intelligence 2 (1971), 189-208
3.3Behaviour-BasedApproach
ControllerCentralnervoussystems
task-environmentEcologicalniche
ParallelProcesses
39
Pseudo-StateA1
Pseudo-StateA2
• Differentprocesseshavedifferentstate/actionrepresentations
• Parallelprocessescanrunindependently• Sensingandactionprocessesare
asynchronous
Pseudo-StateB1
Pseudo-StateB2
ActualState
ActualNextState MoredetailsinLecture5
PrinciplesofParallelProcesses
Brooks,R.(1985) 40
Sensors
percep
tion
mod
eling
planning
taskexecutio
n
motorco
ntrol
Actuators
ReasonaboutbehaviorsPlanchangestotheworld
IdentifyobjectsMonitorchanges
BuildmapsExploreWander
Avoidobjects
Sensors Actuators
Subsumption Architecture
41
Overallarchitecture
Individuallayer
• Overallstructureconsistsofmultiplelayers
• Eachlayerworksindependentlywithoutothers
• Layerscansuppressthesensoryinputorinhibitmotoroutputasnecessary
• Layerscanbeextendedoraddedanytimelater
[Brooks,1991]
Example:RoboticVacuum Cleaner
iRobot Roomba Clearning Robot • First launched in 2002• Sold over 10 million robots worldwide• Sensors:bumper,infra-redproximity,cliff
detector,dirtsensor,opticsensor• Price:ca.£300-600
Example:Craig Reynolds Boids
43
Boids Background and Update
by Craig Reynolds
(more information about this applet (and others) is available)
In 1986 I made a computer model of coordinated animal motion such as bird flocks and fish schools. Itwas based on three dimensional computational geometry of the sort normally used in computer animationor computer aided design. I called the generic simulated flocking creatures boids. The basic flockingmodel consists of three simple steering behaviors which describe how an individual boid maneuvers basedon the positions and velocities its nearby flockmates:
Separation: steer toavoid crowding localflockmates
Alignment: steertowards the averageheading of localflockmates
Boids Background and Update
by Craig Reynolds
(more information about this applet (and others) is available)
In 1986 I made a computer model of coordinated animal motion such as bird flocks and fish schools. Itwas based on three dimensional computational geometry of the sort normally used in computer animationor computer aided design. I called the generic simulated flocking creatures boids. The basic flockingmodel consists of three simple steering behaviors which describe how an individual boid maneuvers basedon the positions and velocities its nearby flockmates:
Separation: steer toavoid crowding localflockmates
Alignment: steertowards the averageheading of localflockmates
Cohesion: steer tomove toward theaverage position oflocal flockmates
Each boid has direct access to the whole scene's geometric description, but flocking requires that it reactsonly to flockmates within a certain small neighborhood around itself. The neighborhood is characterizedby a distance (measured from the center of the boid) and an angle, measured from the boid's direction offlight. Flockmates outside this local neighborhood are ignored. The neighborhood could be considered amodel of limited perception (as by fish in murky water) but it is probably more correct to think of it asdefining the region in which flockmates influence a boids steering.
a boid's neighborhood
A slightly more elaborate behavioral model was used in the early experiments. It included predictiveobstacle avoidance and goal seeking. Obstacle avoidance allowed the boids to fly through simulatedenvironments while dodging static objects. For applications in computer animation, a low priority goalseeking behavior caused the flock to follow a scripted path.
simulated boid flock avoiding cylindrical obstacles (1986) (early motion tests, 20 second clip, QuickTime, 10 MB)
In cooperation with many coworkers at the Symbolics Graphics Division and Whitney / DemosProductions, we made an animated short featuring the boids model called Stanley and Stella in:Breaking the Ice. This film was first shown at the Electronic Theater at SIGGRAPH '87. There was atechnical paper on boids published at the same conference. In the course notes for SIGGRAPH '88 therewas an informal paper about obstacle avoidance.
Since 1987 there have been many other applications of the boids model in the realm of behavioralanimation. The 1992 Tim Burton film Batman Returns was the first. It contained computer simulated batswarms and penguin flocks which were created with modified versions of the original boids software
5RulesofAgent’sMotion
BehaviorofBoids dependsonexternalstates:Everyagenthasa“vision”toobserveexternalstates.
Obstacle AvoidanceAllows the flock to avoid obstacles by steering away from approaching objects.Reynolds uses the method shown below:
Assume a cylindrical line of sightCompute cylinder-sphere intersection and veer away from any objects in path.
Note: for Project 5, this is extra credit.
Goal SeekingDrives the flock in the direction of a target/goal.Each boid determines the direction to the goal and then steers in that direction (Note: this is basically the same as cohesion).Alignment
Separation Cohesion
Obstacleavoidance
Goalseeking
3.4Passivity-BasedArchitecture
44
Noexplicitstate • Mechanicaldynamicsdominatebehaviorsofthesystems
• Behaviorsareoftennotfullycontrollable(i.e.underactuated systems)
• Oftennostateandnoactionareclearlydefinedinthecontroller
https://openwallsgallery.com
Physicaldynamicsandphysicaltrajectories
Usuallyunderactuated
MoredetailsinLecture3
Example:PassiveDynamicWalker
Pendulumdynamics
GroundfrictionSlope
Knee-lockmechanism
NoMotorNoController
PassiveDynamicWalker,CornellUniversity
[Collins,etal.2005]
3.5SoftRoboticsApproach
ControllerCentralnervoussystems
Task-environmentEcologicalniche
Functionsaredistributedinmaterials
SoftFunctionalMaterialsDeformableCells
• Nocleardistinctionbetweencontrol,body,andenvironment
• Allfunctionsareresultsofphysical/materialprocesses
• Continuumdeformablebody
NoexplicitstateStatespacecanchange
Continuumanddeformablebody
[Pfeifer,etal.CommunicationsofACM,2014]
UniversalGripper
Brownetal(2010) PNAS107(44):18809–18814
Elastic bag(radius =4.3[cm],thickness =0.3[mm])
Inside:granularmaterial(groundcoffee)
PhysicallySelf-AdaptingtoUnknownObjects
Takehomemessages
• Robotrevolutionishappeningnowbutnotallproblemscanbesolvedimmediately
• Inverse-KinematicMotionControlisthemostpowerfultoolofrobotapplications.Trythisfirst.
• Variousotherapproachesexistforotherchallenges.
Thankyou!For publications, video, pictures:
Fumiya IidaBio-Inspired Robotics LaboratoryDept. Engineering, Univ. of Cambridge
Email: [email protected]: http://divf.eng.cam.ac.uk/birl/