Today
Robotics and Autonomous Systems
                         Lecture 5: Kinematics
                             Richard Williams
                        Department of Computer Science
                            University of Liverpool
                                                                        • We’re still on the bottom right hand side.
                                                             1 / 46                                                                             2 / 46
Kinematics                                                            Kinematics
                                                                        • So far we have looked at different kinds of motion in a qualitative way.
  • Two aspects to motion:                                              • One way to program robots to move is trial and error.
      • Locomotion
      • Kinematics                                                      • A somewhat better way is to establish mathematically how the robot
                                                                          should move, this is kinematics.
  • Locomotion: What kinds of motion are possible?
                                                                        • Rather kinematics is the business of figuring how a robot will move if
  • Locomotion: What physical structures are there?
                                                                          its motors work in a given way.
  • Kinematics: Mathematical model of motion.
                                                                        • Inverse-kinematics then tells us how to move the motors to get the
  • Kinematics: Models make it possible to predict motion.                robot to do what we want.
                                                                        • We’ll look at a few tiny bits of the kinematics world.
                                                             3 / 46                                                                             4 / 46
A formal model                                                                         No kinematic model needed
  • We will assume, as people usually do, that the robot’s location, or
    pose is fixed in terms of three coordinates:
                                     pxI , yI , θq
  • Given that the robot needs to navigate to a location pxG , yG , θG q, it can
    determine how x, y and θ need to change.
      • BUT it can’t control these directly.
                                                                              5 / 46                                                                                      6 / 46
Kinematic model                                                                        Forward kinematics
  • All a robot has access to are the speeds of its wheels:
                                     ϕ91 , . . . ϕ9n                                     • Together these determine the motion of the robot:
                                                                                                                                                           »         fi
    The steering angle of the steerable wheels:                                                                                                                  x9I
                                                                                                        f pϕ91 , . . . ϕ9n , β1 , . . . βm , β1 , . . . βm q “
                                                                                                                                              9          9     – y9I fl
                                     β1 , . . . βm                                                                                                              θ9
    and the speed with which those steering angles are changing.                         • Forward kinematics
                                     β91 , . . . β9m
                                                                              7 / 46                                                                                      8 / 46
Reverse kinematics                                                                              Reverse kinematics
                                                                                                  • We can get what we want from the forward kinematic model:
  • The forward kinematic model:                                                                                              ϕ91
                                                                                                                            »     fi
                                                                                                                            — .. ffi
                                                                                                                            — . ffi
                                                                       »         fi
                                                                             x9I
                  f pϕ91 , . . . ϕ9n , β1 , . . . βm , β91 , . . . β9m q “ – y9I fl                                         — ϕ9n ffi
                                                                                                                            —     ffi
                                                                            θ9                                              — β1 ffi
                                                                                                                            —     ffi
                                                                                                                            — .. ffi
                                                                                                                            —     ffi
                                                                                                                            — . ffi “ f ´1 px9I , y9I , θq
                                                                                                                                                        9
    is not what we want.
                                                                                                                            — βm ffi
                                                                                                                            —     ffi
  • We want to know how to set ϕ9i etc to get a given:                                                                      —     ffi
                                                                                                                            — β91 ffi
                                                                                                                            — .. ffi
                                                                                                                            —     ffi
                                             x9I , y9I , θ9                                                                 – . fl
                                                                                                                              β9m
                                                                                                  • Reverse kinematics
                                                                                       9 / 46                                                                             10 / 46
Three problems in kinematics                                                                    Representing robot position
                                                                                                  • The robot knows how it moves relative to its center of rotation.
                                                                                                  • This is not the same as knowing how it moves relative to the world.
  • Transformation between frames.
  • Reversing the kinematic model.
                                                                                                                                      Two systems of coordinates:
  • Deriving robot motion from robot structure.
                                                                                                                                         • Initial Frame: tXI , YI u
                                                                                                                                         • Robot Frame: tXR , YR u
                                                                                      11 / 46                                                                             12 / 46
Frame transformation                                                                          Frame transformation
                                                                                                • In other words
  • Robot position:
                                                                                                             »           fi              »          fi
                                                                                                               x9 R              x9 I
              ξI “ rxI , yI , θI s       T
                                                                                                             – y9 R fl “ R pθq – y9 I fl
                                                                                                                 θ9 R                        θ9 I
  • Mapping between frames:                                                                                                        »                            fi »           fi
                                                                                                                                   cospθq sinpθq 0                      x9 I
        ξ9R   “ R pθqξ9I                                                                                                       “ – ´ sinpθq cospθq 0 fl –               y9 I fl
              “ R pθq x9I , y9I , θ9I
                      “               ‰T                                                                                              0       0    1                    θ9 I
                                                                                                  meaning that:
    where
                                                                                                                        x9 R   “ x9 I cospθq ` y9 I sinpθq ` θ9 I .0
              »                                      fi
              cospθq sinpθq 0
    R pθq “ – ´ sinpθq cospθq 0 fl                                                                                      y9 R   “ ´x9 I sinpθq ` y9 I cospθq ` θ9 I .0
                 0       0    1                                                                                         θ9 R   “ x9 I .0 ` y9 I .0 ` θ9 I .1
                                                                                    13 / 46                                                                                         14 / 46
Frame transformation                                                                          Frame transformation
  • In other words
                  »          fi                    »          fi
                    x9 R              x9 I
                  – y9 R fl “ R pθq – y9 I fl                                                   • On other words, given how the robot moves in the world, we can
                      θ9 R                             θ9 I                                       compute how the robot moves relative to its centre of rotation.
                                             »                          fi »   fi
                                        cospθq sinpθq 0        x9 I                             • This is (part of) the forward kinematic model, but this isn’t what we
                                    “ – ´ sinpθq cospθq 0 fl – y9 I fl                            want.
                                           0       0    1      θ9 I                             • We want to be able to calculate how the robot moves in the world,
                                                                                                  given how it moves relative to its centre of rotation.
    meaning that:
                                                                                                • That is we want the reverse of this model.
                                  x9 R       “ x9 I cospθq ` y9 I sinpθq
                                  y9 R       “ ´x9 I sinpθq ` y9 I cospθq
                                  θ9 R       “ θ9 I
                                                                                    15 / 46                                                                                         16 / 46
Reverse kinematics                                                                                           Reverse kinematics
                                                                                                               • To do this we compute:
  • We want the reverse kinematic model:
                                                                                                                            »          fi                  »          fi
                                   »
                                     x9 I
                                               fi
                                                         x9 R
                                                                »          fi                                                 x9 I                x9 R
                                   – y9 I fl “ R pθq´1 – y9 R fl                                                            – y9 I fl “ R pθq´1 – y9 R fl
                                        θ9 I                        θ9 R                                                        θ9 I                           θ9 R
                                                                                                                                                  »                          fi »            fi
                                                                                                                                                  cospθq ´ sinpθq 0                   x9 R
    where R pθq´1 is the inverse of R pθq.                                                                                                    “ – sinpθq cospθq 0 fl –                y9 R fl
  • Often R pθq´1 is hard to compute, but luckily for us in this case it isn’t.                                                                      0      0     1                   θ9 R
  • We have:                                   »
                                            cospθq ´ sinpθq 0
                                                                                  fi                             meaning that:
                                   ´1
                           R pθq        “ – sinpθq cospθq 0 fl
                                                                                                                                       x9 I   “ x9 R cospθq ´ y9 R sinpθq ` θ9 R .0
                                               0      0     1
                                                                                                                                       y9 I   “ x9 R sinpθq ` y9 R cospθq ` θ9 R .0
    which we can use to establish x9I , y9I , θ9I                                                                                      θ9 I   “ x9 R .0 ` y9 R .0 ` θ9 R .1
                                                                                                   17 / 46                                                                                        18 / 46
Reverse kinematics                                                                                           Down to the structure of the robot
  • To do this we compute:
                »          fi                       »          fi
                  x9 I                x9 R
                – y9 I fl “ R pθq´1 – y9 R fl
                    θ9 I                                θ9 R
                                        »                                       fi »          fi
                                    cospθq ´ sinpθq 0                                  x9 R
                                “ – sinpθq cospθq 0 fl –                               y9 R fl
                                       0      0     1                                  θ9 R
    meaning that:
                                x9 I    “ x9 R cospθq ´ y9 R sinpθq
                                                                                                               • We can now identify the motion of the robot, in the global frame, if we
                                y9 I    “ x9 R sinpθq ` y9 R cospθq                                              know:
                                θ9 I    “ θ9 R .                                                                                               x9 R , y9 R , θ9
                                                                                                                 but how do we tell what these are?
                                                                                                   19 / 46                                                                                        20 / 46
Down to the structure of the robot                                          Down to the structure of the robot
  • We compute them from what we can measure, like the speed of the
    wheels:                                                                   • Some assumptions — constraints on the motion of the robot:
                                                                                  • Movement on a horizontal plane
                                                                                  • Point contact of the wheels; wheels not deformable
                                                                                  • Pure rolling, so v “ 0 at contact point; no slipping, skidding or sliding
                                                                                  • No friction for rotation around contact point
                                                                                  • Steering axes orthogonal to the surface
                                                                                  • Wheels connected by rigid frame (chassis)
                                                                              • These won’t always be true, why?
                                                                  21 / 46                                                                                   22 / 46
Differential drive                                                          Differential drive
  • Consider differential drive.
  • Wheels rotate at ϕ9                                                       • Now, motion in the θ direction.
        radians per second                                                    • Rotation due to right wheel is
  • Each wheel contributes:
                                                                                                     r ϕ9
                    r ϕ9                                                                      ωr “
                                                                                                     2l
                     2
                                                                                counterclockwise about the left
    to motion of center of rotation.                                            wheel.
  • Motion in the x direction.                                                • l is the distance between
  • Total speed is the sum of two                                               wheels.
    contributions.
                                                                  23 / 46                                                                                   24 / 46
Differential drive                                     Differential drive
                                                         • Combining these components
                                                           we have:
  • Rotation due to the left wheel is:
                                                                                  r ϕ9r       r ϕ9l
                                                              »          fi   »                       fi
                                                                x9 R                      `
                       ´r ϕ9                                                        2          2
                ωl “                                          – y9 R fl “ —               0
                                                                                                      ffi
                                                                          –                           fl
                        2l                                                        r ϕ9r       r ϕ9l
                                                                  θ9 R             2l     ´    2l
    counterclockwise about the right
    wheel.                                               • And we can combine these with
                                                           R pθq´1 to find motion in the
                                                           global frame.
                                             25 / 46                                                                    26 / 46
Kinematic assumptions                                  Kinematic assumptions
  • Making sure the assumptions hold                     • Knowing what the assumptions are:
         imposes constraints on robot                          imposes constraints on the applicability of the model.
  • For example, ensuring a rigid chassis.               • For example, ensuring wheels don’t slip.
                                             27 / 46                                                                    28 / 46
Why you keep track of assumptions                                                   More complex scenarios
                                                                                         Steered standard wheel                    Caster
                                                                                      • More parameters.
                                                                                      • Only fixed and steerable standard wheels impose constraints.
                                                                          29 / 46                                                                      30 / 46
Robot mobility                                                                      Robot mobility
  • The sliding constraint means that a standard wheel has no lateral
    motion.
                                                                                      • A differential drive robot has just one line of zero motion.
      • Zero motion line through the axis.
                                               Instantaneous
                                               center of rotation
                                                                                      • Thus its rotation is not constrained
                                                                                          • It can move in any circle it wants.
                                                                                      • Makes it very easy to move around.
  • Has to move along a circle whose center is on the zero motion line.
                                                                          31 / 46                                                                      32 / 46
Robot mobility                                                                   Robot mobility
                                                                                   • Formally we have the notion of a degree of mobility
  • In general, the maneuverability of a robot depends on the number of
    independent kinematic constraints.                                                       δm “ 3 ´ number of independent kinematic constraints
  • Q: How can we formalise this idea?
                                                                                   • This number is also the number of independent fixed or steerable
  • A: Degrees of mobility and maneuverability.                                      standard wheels.
                                                                                   • The independence is important.
                                                                       33 / 46                                                                          34 / 46
Robot mobility                                                                   Robot mobility
  • Differential drive has two standard wheels, but they are on the same
    axis.                                                                          • A bicycle has two independent wheels, so two constraints.
       • So not both independent.
                                                                                   • δm “ 1
       • Number of constraints is 1.
                                                                                       • Can only alter x9 using wheel velocity.
  • So δm “ 2 for a differential drive robot
       • Can alter x9 and θ9 just through wheel velocity.
                                                                       35 / 46                                                                          36 / 46
Steerability and maneuverability                                                    Robot maneuverability
  • Steering has an impact on how the robot moves.
  • The degree of steerability δs is then the number of independent
    steerable wheels.
                                                                                      • Differential drive has no steering wheels
  • Note that a steerable standard wheel will both reduce the degree of                    • δs “ 0
    mobility and increase the degree of steerability.
                                                                                      • δm “ 2, as before.
  • The degree of maneuverability is:
                                                                                      • Thus, δM “ 2.
                                δM “ δm ` δs
  • δM tells us how many degrees of freedom a robot can manipulate.
  • Two robots with the same δM aren’t necessarily equivalent (see on).
                                                                          37 / 46                                                   38 / 46
Robot maneuverability                                                               Common configurations
  • A bicycle has one steering wheel
      • δs “ 1
  • δm “ 1, as before
  • Thus, δM “ 2.
                                                                          39 / 46                                                   40 / 46
Robot maneuverability                                                                 Holonomy
                                                                                       • A bicycle, has a δM “ 2 yet can position itself anywhere in the plane.
  • δM “ 2 is an indication of how easy it is for a robot to move around.              • But a bicycle only has one DOF that it can control directly (x).
  • Compare with the number of DOF in the environment.                                     • Differential DOF
                                                                                           • DDOF is always equal to δm
      • 3 for the environments we care about.
                                                                                       • A general inequality:
  • Differential drive and bicycle both have δM “ 2, but you drive them
    very differently.                                                                                             DDOF ď δM ď DOF
                                                                                       • A robot with DDOF “ DOF is called holonomic
                                                                            41 / 46                                                                          42 / 46
Holonomy
                                                                                       • We could compute forward and reverse kinematics for robot arms,
                                                                                         and use these to decide how to rotate motors to move the hand.
                                                                            43 / 46                                                                          44 / 46
                                                                                Summary
                                                                                 • This lecture looked a bit at kinematics
                                                                                     • The business of relating what robots do in the world to what their
                                                                                        motors need to be told to do.
                                                                                 • We did a little maths, but most of the discussion was qualitative.
                                                                                 • The Autonomous Robotics book goes more into the mathematical
                                                                                   detail of establishing kinematic constraints.
                                                                                 • Next time we’ll look at what support LeJOS gives for handling motion.
• Of course, this is how we get robot legs to do what we want also.
                                                                      45 / 46                                                                               46 / 46