  This is the second and final article on the tutorial on manipulator
differential kinematics. In Part 1, we described a method of modelling
kinematics using the elementary transform sequence (ETS), before formulating
forward kinematics and the manipulator Jacobian. We then described some basic
applications of the manipulator Jacobian including resolved-rate motion control
(RRMC), inverse kinematics (IK), and some manipulator performance measures.
  In this article, we formulate the second-order differential kinematics,
leading to a definition of manipulator Hessian. We then describe the
differential kinematics' analytical forms, which are essential to dynamics
applications. Subsequently, we provide a general formula for higher-order
derivatives. The first application we consider is advanced velocity control. In
this section, we extend resolved-rate motion control to perform sub-tasks while
still achieving the goal before redefining the algorithm as a quadratic program
to enable greater flexibility and additional constraints. We then take another
look at numerical inverse kinematics with an emphasis on adding constraints.
Finally, we analyse how the manipulator Hessian can help to escape
singularities.
  We have provided Jupyter Notebooks to accompany each section within this
tutorial. The Notebooks are written in Python code and use the Robotics Toolbox
for Python, and the Swift Simulator to provide examples and implementations of
algorithms. While not absolutely essential, for the most engaging and
informative experience, we recommend working through the Jupyter Notebooks
while reading this article. The Notebooks and setup instructions can be
accessed at https://github.com/jhavl/dkt.
