Manipulator Robotics Introduction

Notes of book Introduction ot Robotics Mechanics and Control.

Content

Focus on mechanical manipulator type of robot.

Table of content

  1. Introduction
  2. Describe pose in 3D
    • Position & rotation
    • Attach a coordinate system or frame to an object, then describe its pose w.r.t other reference coordinate systems
  3. Geometry of mechanical manipulators. Static Kinematics
    • Manipulator
      • consist of rigid links, which are connected by joints
      • joint angles (rotation), joint offset (translation)
      • tool frame is attached to end-effector
      • base frame is attached t o nonmoving base of manipulator
    • Kinematics
      • Treats motions without regard to the forces which cause it
      • Study time-based properties of the motion
    • Forward kinematics of manipulator
      • Given a set of joint angles, compute the pose of tool frame w.r.t the base frame
    • Inverse kinematics of manipulator
      • Given the pose of end-effector of the manipulator, calculate all possible sets of joint angles
      • non-linear optimization problem
  4. Kinematics with velocities and static forces
    • Jocobian of manipulator
      • mapping from velocities in joint space to Cartesian space
    • singularity of the mechanism
      • mechanism become locally degenerate and behaves as if it only has 1 DoF
  5. Manipulator dynamics
    • Study forces required to cause motion
  6. Motion of manipulator. Trajectory in space
    • Trajectory generation
      • spline: refer to a smooth function and passes through a set of via points
  7. Mechanical design
    • How to design a manipulator, including its mechanical structure, attached sensors
  8. linear/non-linear control theory
    • actuator perform torque on the joint
    • position and velocity sensors are monitored by control algorithm
    • linear control
      • linear approximations to the dynamics of a manipulator
    • non-linear control
      • consider nonlinear dynamics
  9. Active fore control
    • Force control vs position control
  10. Programming robots
  11. Off-line simulation

Notation

  • A: vector or matrix
  • a: scalars
  • AP: position vector under coordinate system {A}
  • BAR: rotation matrix {B} relative to {A}. AP=BARBP
  • Vectors are taken to be column vectors

Spatial Descriptions and transformations

  • Position under universal coordinate frame {A}. AP
    • APBORG is the vector from frame {A} to frame {B} origin, and expressed under frame {A}
  • Rotation matrix (3x3), frame {B} relative to frame {A}
    BAR=[AX^B,AY^B,AZ^B]
    where AX^B,AY^B,AZ^B are the coordinate of unit axes vectors of frame {B} in frame {A}. Row vectors are the axes vectors of frame {A} in frame {B} since ABR=BAR1=BART
  • Maps position from frame {B} to frame {A}
    AP=BARBP+APBORG
    or in homogenous coordinate, write as BAT
  • Transformation operators. Not transforming the frame, move the point under the same frame instead
    AP2=TAP1
    The transform that rotates by R and translate by Q is the same as the transform that describes a frame rotated by R and translated by Q relative to the reference frame.
  • Other rotation forms
    • 3 rotations taken about fixed axes (fixed-angle sets) yield the same final orientation as the same three rotations taken in opposite order about the axes of the moving frame (Euler-angle sets).
    • Equivalent angle-axis representation RK(θ). Rotating around unit vector AK^ by θ
    • Euler parameters. Unit quaternion
  • Different vectors
    • line vector: dependent on its line (or point) of action to cause its effect
    • free vector: only its direction and magnitude matters, can be placed in anywhere in space
  • Reduce computation
    • Compare matrix calculations vs matrix vector calculations
    • Calculate first 2 columns, use cross product to get the third column

Manipulator Kinematics

  • joint axis: revolute or prismatic
    • joint 1 is the first movable joint in the robot
    • joint n is the last movable joint in the robot
  • link: the arm. link i is from axis i to axis i+1
    • link 0 is from the non-moving base of the robot to the first movable joint
    • link n is from the last movable joint to the end-effector
  • link length: length of line which is perpendicular to the 2 axes (mutual perpendicular, current axe and next axe)
    • ai = distance from Z^i to Z^i+1 measured along X^i
    • a0=0 because axis joint 0 could be chosen arbitrary
    • an=0 because there is no more other joints behind
  • link twist: angle in the projected plane from axis i to axis i+1. The plane’s normal vector is ai, the angle follows the right-hand law
    • αi = angle from Z^i to Z^i+1 measured about X^i
    • α0=0 because axis joint 0 could be chosen arbitrary
    • αn=0 becaus there is no more other joints behind
  • link offset: distance between intersection of ai1 on axis i and ai on i. Distance is measured along the axis i
    • di = distance from X^i1 to X^i measured along Z^i
    • d1
      • d1=0 for revolute joint
      • d1 zero position could be chosen arbitrary for prismatic joint
    • dn same as above
  • joint angle: angle between from ai1 to ai around axis i. Also follows right-hand law
    • θi = angle from X^i1 to X^i measured about Z^i
    • θ1
      • θ1 zero position could be chosen arbitrary for revolute joint
      • θ1=0 for prismatic joint
    • θn same as above
  • link parameters: 3 fixed parameters
  • joint variable: 1 changeable parameter
    • θi for revolute joint i
    • di for prismatic joint i

Frames

  • frame {i} attach to link i (axis i)
    • Origin is the intersection point of the common perpendicular line on axis i.
    • Z-axis coincident with joint axis i
    • X-axis points along ai in the direction from joint i to joint i+1
      • or orthonormal to the Zi,Zi+1 plane
    • Frame {0} is arbitrary, but usually chose coincides with frame {1}. Frame {0} is the one stationary and serve as reference frame
    • Frame {n}
      • X-axis is chosen it aligns with X-axis of frame {n-1} when θn=0
      • Origin is chosen at axis n when dn=0
  • Frame naming convention
    • Base frame {B}: frame {0}, link {0}, nonmoving
    • Wrist frame {W}: frame {N}, last link the manipulator. Refer as WBT=N0T
    • Tool frame {T}: the end of any tool held by robot, or in the middle of fingertips. Refer as TWT
    • Station frame {S}: task-relevant location, task frame, world frame, universal frame. Refer as SBT
    • Goal frame {G}: location to which the robot is to move the tool. Tool frame and Goal frame will coincident in the end. Refer as GST
  • WHERE function
    • TST=SBT1WBTTWT, present where the tool is relative to the station
  • Frame kinematics transformation
    ii1T=[cosθisinθi0ai1sinθicosαi1cosθicosαi1sinαi1sinαi1disinθisinαi1cosθisinαi1cosαi1cosαi1di0001]
    N0T=10T10TNN1T
  • N0T is a function of n joint parameters
  • Difference spaces
    • actuator space: the parameters of actuators
    • joint space: the space of the n×1 joint vector formed by n joint variables
    • Cartesian space: the relationship between different frames
  • Reduce computation
    • Store sin cos values into lookup table
    • Store intermediate variables

Inverse Manipulator Kinematics

  • What to solve: find the required joint angles to get the required TST
    • SBT,TWT are known
    • Find required joint angles to get the required WBT=N0T
  • Workspace: the volume of space that end-effector of manipulator can reach
    • Dextrous workspace: volume of space that end-effector can reach with all orientations
    • Reachable workspace: volume of space that end-effector can reach in at least one orientation
    • But we usually care about the workspace of wrist frame {W} instead of the end-effector tool frame {T} since TWT is known
    • Workspace is a subset of the n-DoF subspace, where subspace is the reachable workspace without constraints of parameters
  • Solvable of inverse Kinematics
    • Solution existence = desired position and orientation of wrist frame {W} is in the workspace
    • Multiple solutions = desired position and orientation of wrist frame {W} is in the Dextrous workspace
      • 6 DoF manipulator could have up to 16 possible solutions
    • Proved: all systems with revolute and prismatic joints having 6 DoF in a single series chain are solvable
      • But solution is in numerical
      • Closed-form solutions of 6 DoF is solvable in special cases
        • e.g. 3 neighboring joint axes intersect at a point
  • Method of solution
    • numerical solutions: iterative method, slow, not guaranteed to find all solutions
    • closed-form solutions
      • construct the desired WBT matrix (subspace) according to the required position and orientation
      • construct equations between the constructed WBT and kinematics matrix
      • replace sin cos with single variable u, to convert transcendental equations to polynomial equations
        • Proved. Polynomials up to degrees 4 could be solved in closed form
      • forms triangles
  • Special cases

    Pieper’s solution

    • Any 3 DoF manipulator’s closed-from solution can be solved
    • Compute a modified goal frame GST such that GST lies in manipulator’s subspace and is “near” to GST
    • Compute inverse kinematics for GST

    Pieper’s solution to get closed-form solution

    • Solve for first 3 joints given the position of the origin of frame {4} {5} {6}
    • Solve for the later 3 joints given the orientation

Jocobians: velocities and static forces

Linear and angular velocities

  • Linear velocity vector for a point
    A(BVQ)=BARBVQ=AddtBQ=BARlimΔt0BQ(t+Δt)BQ(t)Δt
    is the velocity of position vector Q whose differentiation is done in frame {B} and finally expressed in frame {A}.
  • Short write cases
    • vc=UVCORG is the velocity of origin of frame {C} differentiation in reference frame {U}
    • Avc is the above velocity but expressed in frame {A}
  • Angular velocity vector for a body
    C(AΩB)
    is the rotation of frame {B} relative to frame {A}, and finally expressed in frame {C}
    • The direction of vector is the rotation axis
    • The magnitude of vector is the current speed of rotation
  • Short write cases
    • wc=UΩC is the angular velocity of frame {C} relative to reference frame {U}
    • Awc is the above angular velocity but expressed in frame {A}
  • Simultaneous linear and rotational velocity
    AVQ=AVBORG+BARBVQ+AΩB×BARBQ

    • where frame {A} is the reference frame and fixed
    • frame {B} has both linear velocity AVBORG and rotational velocity AΩB
    • point Q also has a linear velocity BVQ in frame {B}
  • Velocity of link i is given by vector vi and wi, which are gotten relative to frame {0} and can be expressed in any frame

  • velocity propagation: velocity of link i+1 is velocity of link i, plus new velocity components added by joint i+1

    i+1wi+1=ii+1Riwi+θ˙i+1i+1Z^i+1i+1vi+1=ii+1R(ivi+iwi×iPi+1)

    where

    • θ˙i+1i+1Z^i+1=i+1[00θ˙i+1]
    • iPi+1 is the coordinate of origin of frame {i+1} in frame {i}

    i+1wi+1=ii+1Riwii+1vi+1=ii+1R(ivi+iwi×iPi+1)+d˙i+1i+1Z^i+1

    where d˙i+1i+1Z^i+1=i+1[00d˙i+1]

  • Velocity transformation
    AvA=BATvBvB[AvAAwA]=[BARAPBORG×BAR0BAR][BvBBwB]

Jocobian

  • Equation
    0v=0J(Θ)Θ^
    where
    • 0v=[0v0w] is the Cartesian velocities of the link n expressed in frame {0}
    • Θ^ is the vector of joint velocity
    • 0J(Θ) is the Jocobian matrix, which represents the derivate of each term of Cartesian position and orientation on each term of joint angle. Its value changes as the joint angles change.
  • Changing frame
    AJ(Θ)=[BAR00BAR]BJ(Θ)
  • Inverse of the Jocobian could be used to calculate joint velocities given desired Cartesian velocities of link n
  • Singularities: where the joint angles make the 0J(Θ) singular
    • Workspace-boundary singularities: manipulator fully stretched out or folded back
    • Workspace-interior singularities: caused by a lining up of 2 or more joint axes

Force and torque

  • Force propagation from link to link
    ifi=i+1iRi+1fi+1ini=i+1iRi+1ni+1+iPi+1×ifi
    where
    • fi is force exerted on link i by link i-1
    • ni is torque exerted on link i by link i-1
  • Torque for joint
    • For revolute joint
      τi=iniTiZ^i
    • For prismatic joint
      τi=ifiTiZ^i
  • Jocobian
    τ=0JT0F
    where F is the Cartesian forces acting at the hand, and τ is the joint torques
  • Force transformation
    AFA=BATfBFB[AFAANA]=[BAR0APBORG×BARBAR][BFBBNB]
    and
    BATf=BATvT

Trajectory generation

  • Motions is tool frame {T} relative to station frame {S}
  • To generate a trajectory of motions
    • Spatial constraints: Path points
      • a set of intermediate frames that the tool frame should reaches
      • including initial, target point, and via points
    • Temporal attributes: the time between points
  • In order to make the trajectory smooth, the function of the trajectory and its first derivate should be continuous
  • Convert path joints to joint angles by inverse kinematics
  • For each 2 path points, fit a function of the joint angles
  • Cubic polynomial
    • 4 entries since each 2 path points provides 4 constraints (2 position constraints, 2 velocities constraints)
    • θ(t)=a0+a1t+a2t2+a3t3
    • Constraints of each 2 point
      θ(t0)=theta0θ(t1)=theta1θ˙(t0)=v0θ˙(t1)=v1
    • Higher-order polynomials
      • Quintic polynomial (5 degree, 6 entires), enabling specify position, velocity, and acceleration.
    • Linear function with parabolic blends

Reference

  • Rodd, Michael G. “Introduction to robotics: Mechanics and control: John J. Craig.” (1987): 263-264.