OPW Kinematics Solver for Industrial Manipulators¶
Taken from opw_kinematics: A simple, analytical inverse kinematic library for industrial robots with parallel bases and spherical wrists. Based on the paper An Analytical Solution of the Inverse Kinematics Problem of Industrial Serial Manipulators with an Ortho-parallel Basis and a Spherical Wrist by Mathias Brandstötter, Arthur Angerer, and Michael Hofbaur.
This package is meant to provide a simpler alternative to IK-Fast based solutions in situations where one has an industrial robot with a parallel base and spherical wrist. This configuration is extremely common in industrial robots.
The kinematics are parameterized by 7 primary values taken directly from the robot’s spec sheet and a set of joint-zero offsets. Given this structure, no other setup is required.
The opw_kinematics_plugin can be installed using
apt on Ubuntu and Debian:
sudo apt install ros-noetic-moveit-opw-kinematics-plugin
- Find the MoveIt kinematics.yaml file created for your robot.
kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin(or similar) with
- Set parameters to describe the geometry of your manipulator.
The following is an example of the parameters needed for the KUKA KR 6 R700:
manipulator: kinematics_solver: moveit_opw_kinematics_plugin/MoveItOPWKinematicsPlugin opw_kinematics_geometric_parameters: a1: 0.025 a2: -0.035 b: 0.000 c1: 0.400 c2: 0.315 c3: 0.365 c4: 0.080 opw_kinematics_joint_offsets: [0.0, -1.57079632679, 0, 0, 0, 0] opw_kinematics_joint_sign_corrections: [-1, 1, 1, -1, 1, -1]
The meaning of the parameters can best be understood with a sketch and some tinkering. The plugin will print a
ROS_ERROR on startup if they
do not match your URDF, so you can safely guess and test if needed:
Open Source Feedback
See something that needs improvement? Please open a pull request on this GitHub page