Lecture 02
Lecture 02
Department of Informatics
Introduction to Robotics
Lecture 2
University of Hamburg
Faculty of Mathematics, Informatics and Natural Sciences
Department of Informatics
Technical Aspects of Multimodal Systems
Introduction
Spatial Description and Transformations
Forward Kinematics
More on presentation of a rigid body
Denavit-Hartenberg convention
Definition of joint coordinate systems
Example DH-Parameter of a single joint
Example DH-Parameter for a manipulator
Example featuring Mitsubishi PA10-7C
Robot Description
Inverse Kinematics for Manipulators
Instantaneous Kinematics
Trajectory Generation 1
Trajectory Generation 2
Dynamics
S. Li, J. Zhang 77 / 592
Outline (cont.)
Forward Kinematics Introduction to Robotics
Robot Control
Path Planning
Task/Manipulation Planning
Telerobotics
Architectures of Sensor-based Intelligent Systems
Summary
Conclusion and Outlook
I Degree of freedom
I The number of variables to determine position of a control system in space.
I Robot classification
I mechanical structure
I Rotation matrix
I A RB−1 = B RA = B RAT and A
RB B RA = I
I Homogeneous transformation matrix
R ~p
I T =
0 1
I Transformation equation
Z T6 E = BG
B = Z T6 E G −1
x
S. Li, J. Zhang 81 / 592
More on presentation of orientation: Euler angles
Forward Kinematics - More on presentation of a rigid body Introduction to Robotics
I Euler angles ϕ, θ, ψ
z y
A y B x
x z
I Euler-angles ϕ, θ, ψ
z y
-90
Pitch
A y B x
x z
I Euler-angles ϕ, θ, ψ
z y’(y)
A y z’ B
x x’(z)
I Euler-angles ϕ, θ, ψ
z y’(y)
A y z’ B
Roll
-90
x x’(z)
I Euler-angles ϕ, θ, ψ
z z”
A y B y”
x x”
I Euler-angles ϕ, θ, ψ
I rotations are performed successively around the
axes, e. g. ZYX or ZXZ (12 possibilities!)
I order depends on reference coordinates
I Intrinsic rotations
I Extrinsic (fix angle) rotations
I Roll-Pitch-Yaw
I X-Y-Z fixed angles
I used in aviation and maritime
1 0 0
Rx ,ϕ = 0 C ϕ −Sϕ
0 Sϕ C ϕ
C θ 0 Sθ
Ry ,θ = 0 1 0
−Sθ 0 C θ
C ψ −Sψ 0
Rz,ψ = Sψ C ψ 0
0 0 1
I Rotation matrix
I implicit, easy to use linear algebra to perform computation
I Euler angles
I Gimbal lock!
I When two gimbals rotate around the same axis, the system loses one degree of freedom.
17
I Rotation matrix
I implicit, easy to use linear algebra to perform computation, singularity-free
I Euler angles ϕ, θ, ψ
I explicit, but gimbal lock/singularity happens
I Equivalent angle-axis representation Rk,θ
I the angle for a rotation about an axis vector
I Quaternion [x , y , z, w ]
I 4D vectors that represent 3D rigid body orientations
I Unit quaternion: x 2 + y 2 + z 2 + w 2 = 1
Tools
python: Numpy, pyquaternion
c++: Eigen
17
https://en.wikipedia.org/wiki/Gimbal_lock
S. Li, J. Zhang 90 / 592
Manipulator
Forward Kinematics - More on presentation of a rigid body Introduction to Robotics
Purpose
Absolute determination of the position of the end effector (TCP) in the cartesian
coordinate system
Qn i−1
I Calculation of T6 = i=1 Ti , Ti short for Ti
I T6 defines, how n joint transitions describe 6 cartesian DOF
I Definition of one coordinate system (CS) per segment i
I generally arbitrary definition
I Determination of one transformation Ti per segment i = 1..n
I generally 6 parameters (3 rotational + 3 translational) required
I different sets of parameters and transformation orders possible
Solution
Denavit-Hartenberg (DH) convention
I link length ai
I link twist αi
axis i
axis i-1
I link offset di
I joint angle θi
axis i
axis i-1
Four DH parameters:
link length, link twist, link offset and joint angle
(ai , αi , di , θi )
I 3 fixed link parameters
I one joint variable
I revolute: θi variable
I prismatic: di variable
I ai , αi : describe the link i
I di , θi : describe the link’s connection
Gelenk 3
x2
Gelenk 4
x3 z2
y3 y2
y4
z3
Gelenk 1
z4 x4
x1
Gelenk 2 y1 z1
z0
x0 y0
Idea: Determination of the transformation matrix i−1 T using four joint parameters
i
(ai , αi , di , θi ) and two preconditions
Precondition 1 xi is perpendicular to zi−1
Precondition 2 xi intersects zi−1
α1
y1
z1 x1
a1 O1
d1
z0
y0
O0
x0 θ1
S. Li, J. Zhang 107 / 592
Classic Parameters
Forward Kinematics - Definition of joint coordinate systems Introduction to Robotics
Transformation order
i−1
Ti = Rzi−1 (θi ) · Tzi−1 (di ) · Txi (ai ) · Rxi (αi ) → CSi
S. Li, J. Zhang 108 / 592
Frame transformation for two links (classic)
Forward Kinematics - Definition of joint coordinate systems Introduction to Robotics
Creation of the relation between frame i and frame (i − 1) through the following
rotations and translations:
I Rotate around zi−1 by angle θi
I Translate along zi−1 by di
I Translate along xi by ai
I Rotate around xi by angle αi
Using the product of four homogeneous transformations, which transform the
coordinate frame i − 1 into the coordinate frame i, the matrix Ti can be calculated as
follows:
i−1
Ti = Rzi−1 (θi ) · Tzi−1 (di ) · Txi (ai ) · Rxi (αi ) → CSi
C θi −Sθi 0 0 ... 0 ... ai 1 0 0 0
i−1
Sθi C θi 0 0 . . .
0 . . . 0 0 C αi −Sαi 0
Ti =
0
0 1 0 . . . di . . . 0 0 Sαi C αi 0
0 0 0 1 ... 1 ... 1 0 0 0 1
C θi −Sθi C αi Sθi Sαi ai C θi
Sθi C θi C αi −C θi Sαi ai Sθi
=
0
Sαi C αi di
0 0 0 1
X
Transformation order
i−1
Ti = Rxi−1 (αi−1 ) · Txi−1 (ai−1 ) · Rzi (θi ) · Tzi (di ) → CSi
S. Li, J. Zhang 111 / 592
Definition of joint coordinate systems: Exceptions
Forward Kinematics - Definition of joint coordinate systems Introduction to Robotics
Beware
The Denavit-Hartenberg convention is ambiguous!
α1
I zi−1 is parallel to zi y1
I arbitrary shortest normal z1 x1
I usually di = 0 is chosen a1 O1
I zi−1 intersects zi
d1
x0 z0
I usually ai = 0 such that θ1
CS lies in the intersection point O0
y0
I orientation of CSn ambigous, as no joint n + 1 exists
I xn must be a normal to zn−1
I usually zn is chosen to point in the direction of the approach vector ~a of the tcp
cos θ1 − sin θ1 0 0
sin θ cos θ1 0 0
1
Rz (θ1 ) =
0 0 1 0
0 0 0 1
1 0 0 0
0 1 0 0
Tz (d1 ) =
0 0 1 d1
0 0 0 1
link length translate by a1 along x1 such that the origins of both CS are congruent
1 0 0 a1
0 1 0 0
Tx (a1 ) =
0 0 1 0
0 0 0 1
1 0 0 0
0 cos(α ) − sin(α ) 0
1 1
Rx (α1 ) =
0 sin(α1 ) cos(α1 ) 0
0 0 0 1
for the shown joint configuration, α1 = −90◦ due to construction
I Fixed origin: CS0 is the fixed frame at the base of the manipulator
I Determination of axes and consecutive numbering from 1 to n
I Positioning Oi on rotation- or shear-axis i,
zi points aways from zi−1
I Determination of normal between the axes; setting xi (in direction to the normal)
I Determination of yi (right-hand system)
I Read off Denavit-Hartenberg parameters
I Calculation of overall transformation
x4
I Definition of CS corresponding to DH convention z4
I Determination of DH-Parameter
y4
x2
x3
z3
y2
z2 y3
x1
y1 z1
z0
x0 y0
T6 = T1 · T2 · T3 · T4
− sin θ1 − sin θ2
cos θ1 0 20 cos θ1 cos θ2 0 160 cos θ2
sin θ1 0 cos θ1 20 sin θ1 sin θ2 cos θ2 0 160 sin θ2
=
0 −1 0 100 0 0 1 0 ·
0 0 0 1 0 0 0 1
− sin θ4
cos θ3 0 sin θ3 0 cos θ4 0 0
sin θ3 0 − cos θ3 0 sin θ4 cos θ4 0 0
0 1 0 28 0 0 1 250
0 0 0 1 0 0 0 1
cos θ1 cos θ4 (cos θ2 cos θ3 − sin θ2 sin θ3 ) − sin θ1 sin θ4
... ... ...
sin θ1 cos θ4 (sin θ2 cos θ3 + cos θ2 sin θ3 ) + cosθ1 sin θ4 ... ... . . .
=
− cos θ4 (sin θ2 cos θ3 + cos θ2 sin θ3 ) ... ... . . .
0 0 0 1
Sum-of-Angle formula
C23 = C2 C3 − S2 S3 ,
S23 = C2 S3 + S2 C3
Download link
18
18
Mobile Robot Programming Toolkit, https://www.mrpt.org/MRPT_in_GNU/Linux_repositories
S. Li, J. Zhang 122 / 592
Programming implementation
Forward Kinematics - Example featuring Mitsubishi PA10-7C Introduction to Robotics
[2] J. K. Yim, E. K. Wang, and R. S. Fearing, “Drift-free roll and pitch estimation for
high-acceleration hopping,” in 2019 International Conference on Robotics and Automation
(ICRA), pp. 8986–8992, IEEE, 2019.
[4] K. Fu, R. González, and C. Lee, Robotics: Control, Sensing, Vision, and Intelligence.
McGraw-Hill series in CAD/CAM robotics and computer vision, McGraw-Hill, 1987.
[5] R. Paul, Robot Manipulators: Mathematics, Programming, and Control: the Computer
Control of Robot Manipulators.
Artificial Intelligence Series, MIT Press, 1981.
[6] J. Craig, Introduction to Robotics: Pearson New International Edition: Mechanics and
Control.
Always learning, Pearson Education, Limited, 2013.
S. Li, J. Zhang 585 / 592
Bibliography (cont.)
Forward Kinematics Introduction to Robotics
[9] W. Böhm, G. Farin, and J. Kahmann, “A Survey of Curve and Surface Methods in
CAGD,” Comput. Aided Geom. Des., vol. 1, pp. 1–60, July 1984.
[10] J. Zhang and A. Knoll, “Constructing Fuzzy Controllers with B-spline Models - Principles
and Applications,” International Journal of Intelligent Systems, vol. 13, no. 2-3,
pp. 257–285, 1998.
[12] A. Cowley, W. Marshall, B. Cohen, and C. J. Taylor, “Depth space collision detection for
motion planning,” 2013.
[13] Hornung, Armin and Wurm, Kai M. and Bennewitz, Maren and Stachniss, Cyrill and
Burgard, Wolfram, “OctoMap: an efficient probabilistic 3D mapping framework based on
octrees,” Autonomous Robots, vol. 34, pp. 189–206, 2013.
[15] S. Karaman and E. Frazzoli, “Sampling-based algorithms for optimal motion planning,”
The International Journal of Robotics Research, vol. 30, no. 7, pp. 846–894, 2011.
[16] O. Khatib, “The Potential Field Approach and Operational Space Formulation in Robot
Control,” in Adaptive and Learning Systems, pp. 367–377, Springer, 1986.
[22] J. Schulman, J. Ho, A. Lee, I. Awwal, H. Bradlow, and P. Abbeel, “Finding locally
optimal, collision-free trajectories with sequential convex optimization,” in in Proc.
Robotics: Science and Systems, 2013.
S. Li, J. Zhang 588 / 592
Bibliography (cont.)
Forward Kinematics Introduction to Robotics
[23] A. T. Miller and P. K. Allen, “Graspit! a versatile simulator for robotic grasping,” IEEE
Robotics Automation Magazine, vol. 11, no. 4, pp. 110–122, 2004.
[24] A. ten Pas, M. Gualtieri, K. Saenko, and R. Platt, “Grasp pose detection in point clouds,”
The International Journal of Robotics Research, vol. 36, no. 13-14, pp. 1455–1473, 2017.
[25] L. P. Kaelbling and T. Lozano-Pérez, “Hierarchical task and motion planning in the now,”
in 2011 IEEE International Conference on Robotics and Automation, pp. 1470–1477, 2011.
[27] J. Ferrer-Mestres, G. Francès, and H. Geffner, “Combined task and motion planning as
classical ai planning,” arXiv preprint arXiv:1706.06927, 2017.
[28] M. Görner, R. Haschke, H. Ritter, and J. Zhang, “MoveIt! Task Constructor for
Task-Level Motion Planning,” in IEEE International Conference on Robotics and
Automation (ICRA), 2019.
[29] K. Hauser and J.-C. Latombe, “Multi-modal motion planning in non-expansive spaces,”
The International Journal of Robotics Research, vol. 29, no. 7, pp. 897–915, 2010.
[31] P. Sermanet, C. Lynch, Y. Chebotar, J. Hsu, E. Jang, S. Schaal, S. Levine, and G. Brain,
“Time-contrastive networks: Self-supervised learning from video,” in 2018 IEEE
International Conference on Robotics and Automation (ICRA), pp. 1134–1141, IEEE,
2018.
[32] C. Finn, P. Abbeel, and S. Levine, “Model-agnostic meta-learning for fast adaptation of
deep networks,” arXiv preprint arXiv:1703.03400, 2017.
[33] R. Brooks, “A robust layered control system for a mobile robot,” Robotics and
Automation, IEEE Journal of, vol. 2, pp. 14–23, Mar 1986.
[34] M. J. Mataric, “Interaction and intelligent behavior.,” tech. rep., DTIC Document, 1994.
[35] M. P. Georgeff and A. L. Lansky, “Reactive reasoning and planning.,” in AAAI, vol. 87,
pp. 677–682, 1987.
[36] J. S. Albus, “The nist real-time control system (rcs): an approach to intelligent systems
research,” Journal of Experimental & Theoretical Artificial Intelligence, vol. 9, no. 2-3,
pp. 157–174, 1997.
[37] T. Fukuda and T. Shibata, “Hierarchical intelligent control for robotic motion by using
fuzzy, artificial intelligence, and neural network,” in Neural Networks, 1992. IJCNN.,
International Joint Conference on, vol. 1, pp. 269–274 vol.1, Jun 1992.
[38] L. Einig, Hierarchical Plan Generation and Selection for Shortest Plans based on
Experienced Execution Duration.
Master thesis, Universität Hamburg, 2015.