# Introduction to Robotics

## Presentation on theme: "Introduction to Robotics"— Presentation transcript:

Introduction to Robotics
4/14/2017

General Course Information
The course introduces the basic concepts of robotic manipulators and autonomous systems. After a review of some fundamental mathematics the course examines the mechanics and dynamics of robot arms, mobile robots, their sensors and algorithms for controlling them. two robotic arms everything in Matlab (and some Java) 4/14/2017

A150 Robotic Arm link 3 link 2 Symbolic Representation of Manipulators
4/14/2017

Kinematics the study of motion that ignores the forces that cause the motion “geometry of motion” interested in position, velocity, acceleration, etc. of the various links of the manipulator e.g., where is the gripper relative to the base of the manipulator? what direction is it pointing in? described using rigid transformations of the links 4/14/2017

Kinematics forward kinematics: inverse kinematics:
given the link lengths and joint angles compute the position and orientation of the gripper relative to the base for a serial manipulator there is only one solution inverse kinematics: given the position (and possibly the orientation) of the gripper and the dimensions of the links, what are the joint variables? for a serial manipulator there is often more than one mathematical solution 4/14/2017

Wheeled Mobile Robots robot can have one or more wheels that can provide steering (directional control) power (exert a force against the ground) an ideal wheel is perfectly round (perimeter 2πr) moves in the direction perpendicular to its axis 4/14/2017

Wheel 4/14/2017

Deviations from Ideal 4/14/2017

Differential Drive two independently driven wheels mounted on a common axis 4/14/2017

Forward Kinematics for a robot starting with pose [ ]T moving with velocity V(t) in a direction θ(t) : 4/14/2017

Sensitivity to Wheel Velocity
σ = 0.05 σ = 0.01 4/14/2017

Localization using Landmarks: RoboSoccer
4/14/2017

Maps goal * start 4/14/2017

Path Finding goal start 4/14/2017

Localization goal start 4/14/2017

EKF SLAM Application www.probabilistic-robotics.org
[MIT B21, courtesy by John Leonard]

EKF SLAM Application raw odometry estimated trajectory
[courtesy by John Leonard]

Introduction to manipulator kinematics
Day 02 Introduction to manipulator kinematics 4/14/2017

Robotic Manipulators a robotic manipulator is a kinematic chain
i.e. an assembly of pairs of rigid bodies that can move respect to one another via a mechanical constraint the rigid bodies are called links the mechanical constraints are called joints Symbolic Representation of Manipulators 4/14/2017

A150 Robotic Arm link 3 link 2 Symbolic Representation of Manipulators
4/14/2017

Joints most manipulator joints are one of two types
revolute (or rotary) like a hinge allows relative rotation about a fixed axis between two links axis of rotation is the z axis by convention prismatic (or linear) like a piston allows relative translation along a fixed axis between two links axis of translation is the z axis by convention our convention: joint i connects link i – 1 to link i when joint i is actuated, link i moves Symbolic Representation of Manipulators 4/14/2017

Joint Variables revolute and prismatic joints are one degree of freedom (DOF) joints; thus, they can be described using a single numeric value called a joint variable qi : joint variable for joint i revolute qi = qi : angle of rotation of link i relative to link i – 1 prismatic qi = di : displacement of link i relative to link i – 1 Symbolic Representation of Manipulators 4/14/2017

Revolute Joint Variable
qi = qi : angle of rotation of link i relative to link i – 1 link i qi link i – 1 Symbolic Representation of Manipulators 4/14/2017

Prismatic Joint Variable
qi = di : displacement of link i relative to link i – 1 link i – 1 link i di Symbolic Representation of Manipulators 4/14/2017

Common Manipulator Arrangments
most industrial manipulators have six or fewer joints the first three joints are the arm the remaining joints are the wrist it is common to describe such manipulators using the joints of the arm R: revolute joint P: prismatic joint Common Manipulator Arrangements 4/14/2017

Articulated Manipulator
RRR (first three joints are all revolute) joint axes z0 : waist z1 : shoulder (perpendicular to z0) z2 : elbow (parallel to z1) z0 z1 z2 q2 q3 shoulder forearm elbow q1 waist Common Manipulator Arrangements 4/14/2017

Spherical Manipulator
RRP Stanford arm z0 z1 d3 q2 shoulder z2 q1 waist Common Manipulator Arrangements 4/14/2017

SCARA Manipulator RRP Selective Compliant Articulated Robot for Assembly z1 z2 z0 q2 d3 q1 Common Manipulator Arrangements 4/14/2017

Forward Kinematics given the joint variables and dimensions of the links what is the position and orientation of the end effector? a2 q2 a1 q1 Forward Kinematics 4/14/2017

Forward Kinematics choose the base coordinate frame of the robot
we want (x, y) to be expressed in this frame (x, y) ? a2 q2 y0 a1 q1 x0 Forward Kinematics 4/14/2017

Forward Kinematics notice that link 1 moves in a circle centered on the base frame origin (x, y) ? a2 q2 y0 a1 q1 ( a1 cos q1 , a1 sin q1 ) x0 Forward Kinematics 4/14/2017

Forward Kinematics choose a coordinate frame with origin located on joint 2 with the same orientation as the base frame (x, y) ? y1 a2 q2 y0 q1 a1 x1 q1 ( a1 cos q1 , a1 sin q1 ) x0 Forward Kinematics 4/14/2017

Forward Kinematics notice that link 2 moves in a circle centered on frame 1 (x, y) ? y1 a2 ( a2 cos (q1 + q2), a2 sin (q1 + q2) ) q2 y0 q1 a1 x1 q1 ( a1 cos q1 , a1 sin q1 ) x0 Forward Kinematics 4/14/2017

Forward Kinematics because the base frame and frame 1 have the same orientation, we can sum the coordinates to find the position of the end effector in the base frame (a1 cos q1 + a2 cos (q1 + q2), a1 sin q1 + a2 sin (q1 + q2) ) y1 a2 ( a2 cos (q1 + q2), a2 sin (q1 + q2) ) q2 y0 q1 a1 x1 q1 ( a1 cos q1 , a1 sin q1 ) x0 Forward Kinematics 4/14/2017

Forward Kinematics we also want the orientation of frame 2 with respect to the base frame x2 and y2 expressed in terms of x0 and y0 y2 x2 a2 q2 y0 q1 a1 q1 x0 Forward Kinematics 4/14/2017

Forward Kinematics without proof I claim: x2 = (cos (q1 + q2),
sin (q1 + q2) ) y2 x2 y2 = (-sin (q1 + q2), cos (q1 + q2) ) a2 q2 y0 q1 a1 q1 x0 Forward Kinematics 4/14/2017

Inverse Kinematics given the position (and possibly the orientation) of the end effector, and the dimensions of the links, what are the joint variables? y2 x2 (x, y) a2 q2 ? y0 a1 q1 ? x0 Inverse Kinematics 4/14/2017

Inverse Kinematics harder than forward kinematics because there is often more than one possible solution (x, y) a2 y0 a1 x0 Inverse Kinematics 4/14/2017

Inverse Kinematics law of cosines (x, y) a2 b q2 ? y0 a1 x0
4/14/2017

Inverse Kinematics and we have the trigonometric identity therefore,
We could take the inverse cosine, but this gives only one of the two solutions. Inverse Kinematics 4/14/2017

Inverse Kinematics Instead, use the two trigonometric identities:
to obtain which yields both solutions for q2 . In many programming languages you would use the four quadrant inverse tangent function atan2 c2 = (x*x + y*y – a1*a1 – a2*a2) / (2*a1*a2); s2 = sqrt(1 – c2*c2); theta21 = atan2(s2, c2); theta22 = atan2(-s2, c2); Inverse Kinematics 4/14/2017

Inverse Kinematics Exercise for the student: show that
4/14/2017

Day 03 Spatial Descriptions 4/14/2017

Points and Vectors point : a location in space
vector : magnitude (length) and direction between two points 4/14/2017

Coordinate Frames choosing a frame (a point and two perpendicular vectors of unit length) allows us to assign coordinates 4/14/2017

Coordinate Frames the coordinates change depending on the choice of frame 4/14/2017

Dot Product the dot product of two vectors 4/14/2017

Translation suppose we are given o1 expressed in {0} 4/14/2017

Translation 1 the location of {1} expressed in {0} 4/14/2017

Translation 1 the translation vector can be interpreted as the location of frame {j} expressed in frame {i} 4/14/2017

Translation 2 p1 expressed in {0} a point expressed in frame {1}
4/14/2017

Translation 2 the translation vector can be interpreted as a coordinate transformation of a point from frame {j} to frame {i} 4/14/2017

Translation 3 q0 expressed in {0} 4/14/2017

Translation 3 the translation vector can be interpreted as an operator that takes a point and moves it to a new point in the same frame 4/14/2017

Rotation suppose that frame {1} is rotated relative to frame {0}
4/14/2017

Rotation 1 the orientation of frame {1} expressed in {0} 4/14/2017

Rotation 1 the rotation matrix can be interpreted as the orientation of frame {j} expressed in frame {i} 4/14/2017

Rotation 2 p1 expressed in {0} 4/14/2017

Rotation 2 the rotation matrix can be interpreted as a coordinate transformation of a point from frame {j} to frame {i} 4/14/2017

Rotation 3 q0 expressed in {0} 4/14/2017

Rotation 3 the rotation matrix can be interpreted as an operator that takes a point and moves it to a new point in the same frame 4/14/2017

Properties of Rotation Matrices
RT = R-1 the columns of R are mutually orthogonal each column of R is a unit vector det R = 1 (the determinant is equal to 1) 4/14/2017

Rotation and Translation
4/14/2017

Rotations in 3D 4/14/2017

Day 04 Rotations 4/14/2017

Properties of Rotation Matrices
RT = R-1 the columns of R are mutually orthogonal each column of R is a unit vector det R = 1 (the determinant is equal to 1) 4/14/2017

Rotations in 3D 4/14/2017

Rotation About z-axis +'ve rotation 4/14/2017

Rotation About x-axis +'ve rotation 4/14/2017

Rotation About y-axis +'ve rotation 4/14/2017

Relative Orientation Example
4/14/2017

Successive Rotations in Moving Frames
Suppose you perform a rotation in frame {0} to obtain {1}. Then you perform a rotation in frame {1} to obtain {2}. What is the orientation of {2} relative to {0}? 4/14/2017

Successive Rotations in a Fixed Frame
Suppose you perform a rotation in frame {0} to obtain {1}. Then you rotate {1} in frame {0} to obtain {2}. What is the orientation of {2} relative to {0}? 4/14/2017

Composition of Rotations
Given a fixed frame {0} and a current frame {1} and if {2} is obtained by a rotation R in the current frame {1} then use postmulitplication to obtain: Given a fixed frame {0} and a frame {1} and if {2} is obtained by a rotation R in the fixed frame {0} then use premultiplication to obtain: 4/14/2017

Rotation About a Unit Axis
4/14/2017

Rigid Body Transformations
Day 05 Rigid Body Transformations 4/14/2017

Homogeneous Representation
translation represented by a vector d vector addition rotation represented by a matrix R matrix-matrix and matrix-vector multiplication convenient to have a uniform representation of translation and rotation obviously vector addition will not work for rotation can we use matrix multiplication to represent translation? 4/14/2017

Homogeneous Representation
consider moving a point p by a translation vector d not possible as matrix-vector multiplication always leaves the origin unchanged 4/14/2017

Homogeneous Representation
consider an augmented vector ph and an augmented matrix D 4/14/2017

Homogeneous Representation
the augmented form of a rotation matrix R3x3 4/14/2017

Rigid Body Transformations in 3D
{1} {0} {2} 4/14/2017

Rigid Body Transformations in 3D
suppose {1} is a rotated and translated relative to {0} what is the pose (the orientation and position) of {1} expressed in {0} ? {1} {0} 4/14/2017

Rigid Body Transformations in 3D
suppose we use the moving frame interpretation (postmultiply transformation matrices) translate in {0} to get {0’} and then rotate in {0’} to get {1} {0’} {0} {0’} {1} {0} Step 1 Step 2 4/14/2017

Rigid Body Transformations in 3D
suppose we use the fixed frame interpretation (premultiply transformation matrices) rotate in {0} to get {0’} and then translate in {0} in to get {1} {0} {0’} {1} {0} Step 1 {0’} Step 2 4/14/2017

Rigid Body Transformations in 3D
both interpretations yield the same transformation 4/14/2017

Homogeneous Representation
every rigid-body transformation can be represented as a rotation followed by a translation in the same frame as a 4x4 matrix where R is a 3x3 rotation matrix and d is a 3x1 translation vector 4/14/2017

Homogeneous Representation
in some frame i points vectors 4/14/2017

Inverse Transformation
the inverse of a transformation undoes the original transformation if then 4/14/2017

Day 06 Forward Kinematics 4/14/2017

Transform Equations {2} {1} {0} {4} {3} 4/14/2017

Transform Equations give expressions for: 4/14/2017

Transform Equations {1} {0} {3} {2} 4/14/2017

Transform Equations how can you find 4/14/2017

Links and Joints n joints, n + 1 links link 0 is fixed (the base)
joint i connects link i – 1 to link i link i moves when joint i is actuated joint n joint 3 joint 4 joint n-1 link 3 joint 1 link 2 link n-1 link n link 1 joint 2 link 0 4/14/2017

Forward Kinematics given the joint variables and dimensions of the links what is the position and orientation of the end effector? p0 ? a2 q2 y0 a1 q1 x0 Forward Kinematics 4/14/2017

Forward Kinematics because the base frame and frame 1 have the same orientation, we can sum the coordinates to find the position of the end effector in the base frame (a1 cos q1 + a2 cos (q1 + q2), a1 sin q1 + a2 sin (q1 + q2) ) y1 a2 ( a2 cos (q1 + q2), a2 sin (q1 + q2) ) q2 y0 q1 a1 x1 q1 ( a1 cos q1 , a1 sin q1 ) x0 Forward Kinematics 4/14/2017

Forward Kinematics from Day 02 p0 = (a1 cos q1 + a2 cos (q1 + q2),
a1 sin q1 + a2 sin (q1 + q2) ) y2 x2 x2 = (cos (q1 + q2), sin (q1 + q2) ) a2 y2 = (-sin (q1 + q2), cos (q1 + q2) ) q2 y0 q1 a1 q1 x0 Forward Kinematics 4/14/2017

Frames y2 x2 y1 a2 q2 y0 x1 a1 q1 x0 Forward Kinematics 4/14/2017

Forward Kinematics using transformation matrices 4/14/2017

Day 07 Denavit-Hartenberg 4/14/2017

Links and Joints n joints, n + 1 links link 0 is fixed (the base)
joint i connects link i – 1 to link i link i moves when joint i is actuated joint n joint 3 joint 4 joint n-1 link 3 joint 1 link 2 link n-1 link n link 1 joint 2 link 0 4/14/2017

Forward Kinematics attach a frame {i} to link i
all points on link i are constant when expressed in {i} if joint i is actuated then frame {i} moves relative to frame {i - 1} motion is described by the rigid transformation the state of joint i is a function of its joint variable qi (i.e., is a function of qi) this makes it easy to find the last frame with respect to the base frame 4/14/2017

Forward Kinematics more generally
the forward kinematics problem has been reduced to matrix multiplication 4/14/2017

Forward Kinematics Denavit J and Hartenberg RS, “A kinematic notation for lower- pair mechanisms based on matrices.” Trans ASME J. Appl. Mech, 23:215–221, 1955 described a convention for standardizing the attachment of frames on links of a serial linkage common convention for attaching reference frames on links of a serial manipulator and computing the transformations between frames 4/14/2017

Denavit-Hartenberg 4/14/2017

Denavit-Hartenberg notice the form of the rotation component
this does not look like it can represent arbitrary rotations can the DH convention actually describe every physically possible link configuration? 4/14/2017

Denavit-Hartenberg yes, but we must choose the orientation and position of the frames in a certain way (DH1) (DH2) claim: if DH1 and DH2 are true then there exists unique numbers 4/14/2017

Denavit-Hartenberg 4/14/2017

Denavit-Hartenberg proof: on blackboard in class 4/14/2017

Day 08 Denavit-Hartenberg 4/14/2017

Denavit-Hartenberg Forward Kinematics
RPP cylindrical manipulator 4/14/2017

Denavit-Hartenberg Forward Kinematics
How do we place the frames? 4/14/2017

Step 1: Choose the z-axis for each frame
recall the DH transformation matrix 4/14/2017

Step 1: Choose the z-axis for each frame
axis of actuation for joint i+1 link i link i link i+1 link i+1 joint i+1 joint i+1 4/14/2017

Step 1: Choose the z-axis for each frame
Warning: the picture is deceiving. We do not yet know the origin of the frames; all we know at this point is that each zi points along a joint axis 4/14/2017

Step 2: Establish frame {0}
place the origin o0 anywhere on z0 often the choice of location is obvious choose x0 and y0 so that {0} is right-handed often the choice of directions is obvious 4/14/2017

Step 2: Establish frame {0}
4/14/2017

Step 3: Iteratively construct {1}, {2}, ... {n-1}
using frame {i-1} construct frame {i} DH1: xi is perpendicular to zi-1 DH2: xi intersects zi-1 3 cases to consider depending on the relationship between zi-1 and zi 4/14/2017

Step 3: Iteratively construct {1}, {2}, ... {n-1}
Case 1 zi-1 and zi are not coplanar (skew) ai angle from zi-1 to zi measured about xi shortest line between and (out of page) point of intersection 4/14/2017

Step 3: Iteratively construct {1}, {2}, ... {n-1}
Case 2 zi-1 and zi are parallel ( ai = 0 ) notice that this choice results in di = 0 point of intersection 4/14/2017

Step 3: Iteratively construct {1}, {2}, ... {n-1}
Case 3 zi-1 and zi intersect ( ai = 0 ) point of intersection (out of page) 4/14/2017

Step 3: Iteratively construct {1}, {2}, ... {n-1}
4/14/2017

Step 3: Iteratively construct {1}, {2}, ... {n-1}
4/14/2017

Step 4: Place the end effector frame
“sliding” “normal” “approach” 4/14/2017

Step 4: Place the end effector frame
4/14/2017

Step 5: Find the DH parameters
ai : distance between zi-1 and zi measured along xi ai : angle from zi-1 and zi measured about xi di : distance between oi-1 to the intersection of xi and zi-1 measured along zi-1 qi : angle from xi-1 and xi measured about zi-1 4/14/2017

Step 5: Find the DH parameters
Link ai di qi 1 d1 q1* 2 -90 d2* 3 d3* * joint variable 4/14/2017

More Denavit-Hartenberg Examples
Day 09 More Denavit-Hartenberg Examples 4/14/2017

Step 5: Find the DH parameters
Link ai di qi 1 d1 q1* 2 -90 d2* 3 d3* * joint variable 4/14/2017

Step 6: Compute the transformation
once the DH parameters are known, it is easy to construct the overall transformation Link ai di qi 1 d1 q1* 2 -90 d2* 3 d3* * joint variable 4/14/2017

Step 6: Compute the transformation
Link ai di qi 1 d1 q1* 2 -90 d2* 3 d3* * joint variable 4/14/2017

Step 6: Compute the transformation
Link ai di qi 1 d1 q1* 2 -90 d2* 3 d3* * joint variable 4/14/2017

Step 6: Compute the transformation
4/14/2017

Spherical Wrist 4/14/2017

Spherical Wrist 4/14/2017

Spherical Wrist: Step 1 4/14/2017

Spherical Wrist: Step 2 4/14/2017

Spherical Wrist: Step 2 4/14/2017

Spherical Wrist: Step 4 4/14/2017

Step 5: DH Parameters Link ai di qi 4 -90 q4* 5 90 q5* 6 d6 q6*
-90 q4* 5 90 q5* 6 d6 q6* * joint variable 4/14/2017

Step 6: Compute the transformation
4/14/2017

RPP + Spherical Wrist 4/14/2017

RPP + Spherical Wrist 4/14/2017

Stanford Manipulator + Spherical Wrist
Link ai di qi 1 -90 q1* 2 90 d2 q2* 3 d3* 4 q4* 5 q5* 6 d6 q6* * joint variable 4/14/2017

SCARA + 1DOF Wrist Link ai di qi 1 a1 d1 q1* 2 a2 180 q2* 3 d3* 4 d4
d1 q1* 2 a2 180 q2* 3 d3* 4 d4 q4* * joint variable 4/14/2017