So far we have worked out the torques on a robot’s joints based on joint position, velocity and acceleration. For simulation we want the opposite, to know its motion given the torques applied to the joints. This is called the forward dynamics problem.
Search Results for: inverse dynamics
In a serial-link manipulator arm each joint has to support all the links between itself and the end of the robot. We introduce the recursive Newton-Euler algorithm which allows us to compute the joint torques given the robot joint positions, velocities and accelerations and the link inertial parameters.
A number of strategies exist to reduce the effect of these coupling torques between the joints, from introducing a gearbox between the motor and the joint, to advanced feedforward strategies.
We will introduce resolved-rate motion control which is a classical Jacobian-based scheme for moving the end-effector at a specified velocity without having to compute inverse kinematics.
If your knowledge of dynamics is a bit rusty then let’s quickly revise the basics of second-order systems and the Laplace operator. Not rusty? Then go straight to the next section.
We can factorise the joint torque expression into an elegant matrix equation with terms that describe the effects of inertia, Coriolis and centripetal and gravity effects.
Let’s look at numerical approaches to inverse kinematics for a couple of different robots and learn some of the important considerations. For RTB10.x please note that the mask value must be explicitly preceded by the ‘mask’ keyword. For example: >> q = p2.ikine(T, [-1 -1], ‘mask’, [1 1 0 0 0 0])
For real robots such as those with 6 joints that move in 3D space the inverse kinematics is quite complex, but for many of these robots the solutions have been helpfully derived by others and published. Let’s explore the inverse kinematics of the classical Puma 560 robot.
To simplify the inverse kinematics most robots have a spherical wrist, a particular mechanical wrist design. For robots where the inverse kinematics is too hard to figure out we can solve the problem numerically, treating it as an optimisation problem.