Download presentation
1
Introduction to Robotics
4/14/2017
2
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
3
A150 Robotic Arm link 3 link 2 Symbolic Representation of Manipulators
4/14/2017
4
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
5
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
6
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
7
Wheel 4/14/2017
8
Deviations from Ideal 4/14/2017
9
Differential Drive two independently driven wheels mounted on a common axis 4/14/2017
10
Forward Kinematics for a robot starting with pose [ ]T moving with velocity V(t) in a direction θ(t) : 4/14/2017
11
Sensitivity to Wheel Velocity
σ = 0.05 σ = 0.01 4/14/2017
12
Localization using Landmarks: RoboSoccer
4/14/2017
13
Maps goal * start 4/14/2017
14
Path Finding goal start 4/14/2017
15
Localization goal start 4/14/2017
16
EKF SLAM Application www.probabilistic-robotics.org
[MIT B21, courtesy by John Leonard]
17
EKF SLAM Application raw odometry estimated trajectory
[courtesy by John Leonard]
18
Introduction to manipulator kinematics
Day 02 Introduction to manipulator kinematics 4/14/2017
19
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
20
A150 Robotic Arm link 3 link 2 Symbolic Representation of Manipulators
4/14/2017
21
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
22
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
23
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
24
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
25
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
26
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
27
Spherical Manipulator
RRP Stanford arm z0 z1 d3 q2 shoulder z2 q1 waist Common Manipulator Arrangements 4/14/2017
28
SCARA Manipulator RRP Selective Compliant Articulated Robot for Assembly z1 z2 z0 q2 d3 q1 Common Manipulator Arrangements 4/14/2017
29
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
30
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
31
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
32
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
33
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
34
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
35
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
36
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
37
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
38
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
39
Inverse Kinematics law of cosines (x, y) a2 b q2 ? y0 a1 x0
4/14/2017
40
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
41
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
42
Inverse Kinematics Exercise for the student: show that
4/14/2017
43
Day 03 Spatial Descriptions 4/14/2017
44
Points and Vectors point : a location in space
vector : magnitude (length) and direction between two points 4/14/2017
45
Coordinate Frames choosing a frame (a point and two perpendicular vectors of unit length) allows us to assign coordinates 4/14/2017
46
Coordinate Frames the coordinates change depending on the choice of frame 4/14/2017
47
Dot Product the dot product of two vectors 4/14/2017
48
Translation suppose we are given o1 expressed in {0} 4/14/2017
49
Translation 1 the location of {1} expressed in {0} 4/14/2017
50
Translation 1 the translation vector can be interpreted as the location of frame {j} expressed in frame {i} 4/14/2017
51
Translation 2 p1 expressed in {0} a point expressed in frame {1}
4/14/2017
52
Translation 2 the translation vector can be interpreted as a coordinate transformation of a point from frame {j} to frame {i} 4/14/2017
53
Translation 3 q0 expressed in {0} 4/14/2017
54
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
55
Rotation suppose that frame {1} is rotated relative to frame {0}
4/14/2017
56
Rotation 1 the orientation of frame {1} expressed in {0} 4/14/2017
57
Rotation 1 the rotation matrix can be interpreted as the orientation of frame {j} expressed in frame {i} 4/14/2017
58
Rotation 2 p1 expressed in {0} 4/14/2017
59
Rotation 2 the rotation matrix can be interpreted as a coordinate transformation of a point from frame {j} to frame {i} 4/14/2017
60
Rotation 3 q0 expressed in {0} 4/14/2017
61
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
62
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
63
Rotation and Translation
4/14/2017
64
Rotations in 3D 4/14/2017
65
Day 04 Rotations 4/14/2017
66
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
67
Rotations in 3D 4/14/2017
68
Rotation About z-axis +'ve rotation 4/14/2017
69
Rotation About x-axis +'ve rotation 4/14/2017
70
Rotation About y-axis +'ve rotation 4/14/2017
71
Relative Orientation Example
4/14/2017
72
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
73
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
74
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
75
Rotation About a Unit Axis
4/14/2017
76
Rigid Body Transformations
Day 05 Rigid Body Transformations 4/14/2017
77
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
78
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
79
Homogeneous Representation
consider an augmented vector ph and an augmented matrix D 4/14/2017
80
Homogeneous Representation
the augmented form of a rotation matrix R3x3 4/14/2017
81
Rigid Body Transformations in 3D
{1} {0} {2} 4/14/2017
82
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
83
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
84
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
85
Rigid Body Transformations in 3D
both interpretations yield the same transformation 4/14/2017
86
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
87
Homogeneous Representation
in some frame i points vectors 4/14/2017
88
Inverse Transformation
the inverse of a transformation undoes the original transformation if then 4/14/2017
89
Day 06 Forward Kinematics 4/14/2017
90
Transform Equations {2} {1} {0} {4} {3} 4/14/2017
91
Transform Equations give expressions for: 4/14/2017
92
Transform Equations {1} {0} {3} {2} 4/14/2017
93
Transform Equations how can you find 4/14/2017
94
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
95
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
96
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
97
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
98
Frames y2 x2 y1 a2 q2 y0 x1 a1 q1 x0 Forward Kinematics 4/14/2017
99
Forward Kinematics using transformation matrices 4/14/2017
100
Day 07 Denavit-Hartenberg 4/14/2017
101
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
102
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
103
Forward Kinematics more generally
the forward kinematics problem has been reduced to matrix multiplication 4/14/2017
104
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
105
Denavit-Hartenberg 4/14/2017
106
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
107
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
108
Denavit-Hartenberg 4/14/2017
109
Denavit-Hartenberg proof: on blackboard in class 4/14/2017
110
Day 08 Denavit-Hartenberg 4/14/2017
111
Denavit-Hartenberg Forward Kinematics
RPP cylindrical manipulator 4/14/2017
112
Denavit-Hartenberg Forward Kinematics
How do we place the frames? 4/14/2017
113
Step 1: Choose the z-axis for each frame
recall the DH transformation matrix 4/14/2017
114
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
115
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
116
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
117
Step 2: Establish frame {0}
4/14/2017
118
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
119
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
120
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
121
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
122
Step 3: Iteratively construct {1}, {2}, ... {n-1}
4/14/2017
123
Step 3: Iteratively construct {1}, {2}, ... {n-1}
4/14/2017
124
Step 4: Place the end effector frame
“sliding” “normal” “approach” 4/14/2017
125
Step 4: Place the end effector frame
4/14/2017
126
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
127
Step 5: Find the DH parameters
Link ai di qi 1 d1 q1* 2 -90 d2* 3 d3* * joint variable 4/14/2017
128
More Denavit-Hartenberg Examples
Day 09 More Denavit-Hartenberg Examples 4/14/2017
129
Step 5: Find the DH parameters
Link ai di qi 1 d1 q1* 2 -90 d2* 3 d3* * joint variable 4/14/2017
130
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
131
Step 6: Compute the transformation
Link ai di qi 1 d1 q1* 2 -90 d2* 3 d3* * joint variable 4/14/2017
132
Step 6: Compute the transformation
Link ai di qi 1 d1 q1* 2 -90 d2* 3 d3* * joint variable 4/14/2017
133
Step 6: Compute the transformation
4/14/2017
134
Spherical Wrist 4/14/2017
135
Spherical Wrist 4/14/2017
136
Spherical Wrist: Step 1 4/14/2017
137
Spherical Wrist: Step 2 4/14/2017
138
Spherical Wrist: Step 2 4/14/2017
139
Spherical Wrist: Step 4 4/14/2017
140
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
141
Step 6: Compute the transformation
4/14/2017
142
RPP + Spherical Wrist 4/14/2017
143
RPP + Spherical Wrist 4/14/2017
144
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
145
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.