Top Banner
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
41

Robotics Principles and Applicationsmi.eng.cam.ac.uk/foswiki/pub/Main/FI224/IidaCambridgeCEM... · 2018. 7. 3. · The Fanuc M-16iB robot (courtesy of Fanuc Ltd) The robot is utilized

Feb 20, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 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·

    θ·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·

    θ·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·

    θ·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·

    θ·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·

    θ·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·

    θ·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·

    θ·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·

    θ·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·

    θ·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·

    θ·

    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·

    θ·

    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·

    θ·

    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/