m. de cecco - lucidi del corso di robotica e sensor fusion a manipulator can be modelled as a...
TRANSCRIPT
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
A manipulator can be modelled as a kinematic chain made of rigid bodies (links) connected by joints (rotoidal or prismatic)
For each joint correspond a degree of freedom
Cinematica dei Manipolatori e dei robot mobili
In manipulators one extreme is rigidly constrained to a base, to the other end is fixed an end effector.Knowing the variable associated with each joint (joint variable: angle for revolute, relative position for prismatic), the position and orientation (pose or posture) of the terminal are uniquely determined
In the case of mobile robots we do not have rigid constraints to determine the position unequivocally, but wheels (generally) that determine a speed constraintKnowing the variable connected with each joint (total angle of rotation of the wheel) there is no information about the pose of the vehicle
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Cinematica dei Manipolatori
In manipulators the overall motion is realized by means of the composition of the relative motions of each arm with respect to the previousIn the operations of manipulation is necessary to describe the position and orientation of the end effector (pose), in the case where there are obstacles it is necessary to consider position and orientation of each joint (posture)
Regarding the kinematics of manipulators we will consider:- the direct kinematics by means of which, as a function of the variables of the joint, is possible to derive the end effector pose with respect to the reference system- the working space and the joint space for the management of the workspace of the robot- the calibration of kinematic parameters in order to obtain a better positioning accuracy- the solution of inverse kinematics by which we determine the joint variables from the end effector pose
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Cinematica dei Manipolatori
A rigid body is completely described by means of the pose, or by the position of a reference point and the attitude of the body reference system wrt the reference
Dove:
o’x o’y o’z vector o’ along the reference system
x y z unit vector wrt the reference system
o’ = o’x x + o’y y + o’z z
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Cinematica dei Manipolatori
The vector o’ is an applied vector since, in addition to the direction and module, it is also specified the application point
O- x y z reference
’ O’- x’ y’ z’ body reference
Wrt reference system the unit vectors of the body reference are expressed by the equations:
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Cinematica dei Manipolatori
O- x y z absolute reference
’ O’- x’ y’ z’ body reference
The orthonormality allows the above relation that also implies:
ηξξη ⋅= ''
… that is a simple scalar product
’The body reference unit vectors decomposition wrt the absolute reference:
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Cinematica dei Manipolatori
The three vectors can be combined to form a matrix:
And therefore:
R is defined ortogonal, and holds:
IRRT =⋅
1−=RRT
0'' =⋅ηξ
1'' =⋅ξξThe vectors of the columns of R build an orthonormal reference so that:
R provides the orientation of the body reference wrt the absolute reference
€
RT ⋅R ⋅R−1 = I ⋅R−1
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Cinematica dei Manipolatori – Trasformazione coordinate
If the body reference origin coincides with the absolute reference origin: o’ = 0 (zero)
P can be represented wrt both references:
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
P and p’ are representations of the same vector:
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅=++=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
z
y
x
zyx
z
y
x
p
p
p
zyxzpypxp
p
p
p
'
'
'
'''''' '''
Note: x’, y’, z’ are the unit vectors of ’ wrt , i.e. we observe from the absolute reference
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
z
y
x
z
y
x
p
p
p
R
p
p
p
'
'
'
So R is the coordinates transformation matrix of the vector expressed wrt ’ in the coordinates of the same vector expressed with respect to and vice versa via RT
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
z
y
x
z
y
xT
p
p
p
p
p
p
R
'
'
'
Cinematica dei Manipolatori – Trasformazione coordinate
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Cinematica dei Manipolatori – Rotazione di un vettore
'
'
'
'
pR
p
p
p
R
p
p
p
p
z
y
x
z
y
x
⋅=⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
p’ is always identical whichever motion (are the body reference coordinates),
p varies as a function of the rotation providing the vector wrt the absolute reference
So R represent the rotation matrix of the vector p’ from the position solidal to to the actual one
If p' is the representation of the vector with respect to the body reference, if we assume that the initial conditions of the reference and the solidarity reference coincide: p' = p at the beginning.Following a pure rotation (still suppose o'= 0) of the body:
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
’’
At the beginning the two references coincide and so p = p’
After the rotation p = R p’
p’
p
[ ] '''''' pppIppRRp
p
p
p
ppppp TTTT
z
y
x
zyxT ⋅=⋅⋅=⋅⋅⋅=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅=⋅
Nota: rotation preserve modulus:
Cinematica dei Manipolatori – Rotazione di un vettore
⇒⋅=⇒⋅= TTT RpppRp ''
p = p’
p = R p’
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
R resembles three different geometrical meanings:
1. the orientation of one reference wrt another
2. Coordinates transformation
3. Rotation matrix
Cinematica dei Manipolatori – significato di R
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
C. M. – composizione matrici di trasformazione coordinate
Given 3 references: O-x0 y0 z0, O-x1 y1 z1, O-x2 y2 z2, with the same origin
A vector p can be expressed wrt each of the three p0 p1 and p2
If we define Ri j the matrix of coordinates transformation from i to j (j is the
reference, the one wrt the coordinates are expressed)
101
0
212
1
pRp
pRp
⋅=
⋅=21
201
101
0 pRRpRp ⋅⋅=⋅= 12
01
02 RRR ⋅=
The matrix that expresses the coordinates of a point with respect to the reference 0 starting from those expressed with respect to 2 is equal to the composition of two partial transformations: transformation from 2 to 1 transformation from 1 to 0The overall transformation matrix is determined by multiplying from right to left
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
C. M. – composizione matrici di rotazione (terna corrente)
Starting with a reference superimposed to the 0
The rotation expressed by R2 0 (rotation from 0 till 2: note that from the point of view
of the rotation sense is from the apex to the subscript) we obtain:
1. Rotation from 0 to 1 (current reference 0)
2. Rotation from 1 to 2 (current reference 1)
The composition of rotations from 0 to 2 are obtained multiplying from left to right
12
01
02 RRR ⋅=
Since each partial rotation is obtained from the outcome of the previous one, the rotation reference is called the current reference
The operation is defined "successive rotations wrt current reference axes”
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Note: the result depends from the order of rotation
C. M. – composizione matrici di rotazione (terna corrente)
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Rotazioni rispetto alla terna corrente - Esempio
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −=°
100
001
010
90zR
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=°
001
010
100
90yR
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−=°010
100
001
90xR
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
( ) ( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −=⋅°⋅°=
0
0
1
001
010
100
100
001
010
9090'' pRRp yz
Rotazioni rispetto alla terna corrente - Esempio
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −=
1
0
0
1
0
0
100
001
010
0
0
1
001
010
100
100
001
010
''p
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
0
0
1
p
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=
1
0
0
''p
Comp sx toward dx
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
C. M. – operazioni di rotazione rispetto a terna fissa
'''
'
2
1
pRp
pRp
⋅=⋅=
pRRp ⋅⋅= 12''
In this case the multiplication is from right to left
If the rotations are defined wrt the absolute (fixed) reference then the operation is defined "successive rotations wrt fixed reference axes”
Suppose we have a point p that rotate:
1. first according to a rotation matrix defined by R1
2. then according to a rotation matrix defined by R2
The resulting vector p'' is given by:
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
C. M. – operazioni di rotazione rispetto a terna fissa
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
Rotazioni rispetto alla terna fissa - Esempio
( ) ( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −⋅
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=⋅°⋅°=
0
0
1
100
001
010
001
010
100
9090'' pRRp zy
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
0
0
1
p
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
0
1
0
''p
Comp dx verso sx
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
0
1
0
'p
'p
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
C. M. – Trasformazioni Omogenee
In this case the homogeneous representation is used:
If we have also a translation
So we define a ,matrix of homogeneous transformation:
So the coordinates transformation(from reference 1 to 0) can be written:
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
C. M. – Trasformazioni Omogenee
From 0 to 1 :01
01 ~~ pAp ⋅=
where:
Note :
Note:
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
€
p0 = R10 ⋅ p1 + o1
0 ⇒
p1 = R10−1
⋅ p0 − R10−1
⋅o10 = R0
1 ⋅ p0 − R01 ⋅o1
0 ⇒
˜ p 1 = A01 ⋅ ˜ p 0 =
R01 −R0
1 ⋅o10
0T 1
⎡
⎣ ⎢
⎤
⎦ ⎥⋅ ˜ p 0
Verification:
M. De Cecco - Lucidi del corso di Robotica e Sensor Fusion
As for the coordinates transformation we have a product from right to left :
nnn pAAAp ~...~ 11
201
0 ⋅⋅⋅⋅= −
C. M. – Trasformazioni Omogenee
Comp dx verso sx