Skip to content

Repository files navigation

Kinematic modeling and control of serial-link robotic manipulators using dqrobotics Python: From zero to hero.

This executable book contains eight lessons representing serial-link manipulator modeling in dual quaternions using dqrobobotics described in http://doi.org/10.1109/MRA.2020.2997920. It is a derivative work of a dqrobotics MATLAB course from Murilo M. Marinho.

The theory used in this book is described in works such as [@adorno:tel-00641678], [@vilhenaadorno:hal-01478225], and https://doi.org/10.1109/TRO.2019.2920078.

Using this book

Each lesson is a Jupyter notebook. Each lesson can be downloaded, opened, and executed with popular IDEs, such as VSCode and PyCharm. The reader is expected to follow it sequentially.

Contents

Number Title and Link Content
1 The very basics of Python and numpy, including simple mathematical operations.
2 Representing and manipulating quaternions using dqrobotics Python. Unit quaternions are also introduced and used to represent the rotation of rigid bodies
3 Representing and manipulating dual quaternions using dqrobotics Python. Unit dual quaternions are introduced and used to represent the pose transformation of rigid bodies.
4 Unit dual quaternions are used to represent lines and planes. Distance functions between points, lines, and planes are also introduced
5 The basics of the kinematic control of serial-link robotic manipulators. Forward kinematics model, inverse kinematics model, task-space velocity and position control using a 1-DoF planar robot.
6 Modeling serial robots using the Denavit-Hartenberg (DH) parameters; the forward kinematics model using the DH parameters; the pose, rotation, translation Jacobians; translation, rotation, and pose task-space controlers; all using a 3-DoF planar robot.
7 Understanding and handling task-space singularities with a 7-DoF planar robot.
8 Revisiting the topic of kinematic control using mathematical optimization formulation, implement joint-space and task-space constraints using quadratic programming.

Used by

Contributors

Languages