Skip to content

Commit 36b2926

Browse files
Create a tutorial for using moveit_opw_kinematics_plugin (#607)
Co-authored-by: G.A. vd. Hoorn <g.a.vanderhoorn@tudelft.nl>
1 parent 4dcf79b commit 36b2926

4 files changed

Lines changed: 85 additions & 0 deletions

File tree

157 KB
Loading

doc/opw_kinematics/images/opw.png

113 KB
Loading
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
OPW Kinematics Solver for Industrial Manipulators
2+
==================================================
3+
4+
Intro
5+
------
6+
7+
Taken from `opw_kinematics <https://github.com/Jmeyer1292/opw_kinematics>`_:
8+
A simple, analytical inverse kinematic library for industrial robots with parallel bases and spherical wrists.
9+
Based on the paper *An Analytical Solution of the Inverse Kinematics Problem of Industrial Serial Manipulators
10+
with an Ortho-parallel Basis and a Spherical Wrist* by Mathias Brandstötter, Arthur Angerer, and Michael Hofbaur.
11+
12+
Purpose
13+
-------
14+
15+
This package is meant to provide a simpler alternative to IK-Fast based solutions in situations where one has an
16+
industrial robot with a parallel base and spherical wrist. This configuration is extremely common in industrial robots.
17+
18+
The kinematics are parameterized by 7 primary values taken directly from the robot's spec sheet and a set of
19+
joint-zero offsets. Given this structure, no other setup is required.
20+
21+
Installation
22+
-------------
23+
24+
The `opw_kinematics_plugin <https://github.com/JeroenDM/moveit_opw_kinematics_plugin>`_ can be installed using ``apt`` on Ubuntu and Debian: ::
25+
26+
sudo apt install ros-noetic-opw-kinematics-plugin
27+
28+
Usage
29+
------
30+
31+
- Find the MoveIt `kinematics.yaml <../kinematics_configuration/kinematics_configuration_tutorial.html>`_ file created for your robot.
32+
- Replace ``kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin`` (or similar) with ``kinematics_solver: moveit_opw_kinematics_plugin/MoveItOPWKinematicsPlugin``.
33+
- Set parameters to describe the geometry of your manipulator.
34+
35+
The following is an example of the parameters needed for the KUKA KR 6 R700:
36+
37+
.. code-block:: yaml
38+
39+
manipulator:
40+
kinematics_solver: moveit_opw_kinematics_plugin/MoveItOPWKinematicsPlugin
41+
opw_kinematics_geometric_parameters:
42+
a1: 0.025
43+
a2: -0.035
44+
b: 0.000
45+
c1: 0.400
46+
c2: 0.315
47+
c3: 0.365
48+
c4: 0.080
49+
opw_kinematics_joint_offsets: [0.0, -1.57079632679, 0, 0, 0, 0]
50+
opw_kinematics_joint_sign_corrections: [-1, 1, 1, -1, 1, -1]
51+
52+
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
53+
do not match your URDF, so you can safely guess and test if needed:
54+
55+
.. image:: images/opw.png
56+
57+
Sharing OPW descriptions
58+
-------------------------
59+
60+
We plan to collect OPW parameter sets as part of the ROS-Industrial robot support packages. This has already started for FANUC.
61+
Taking the `M-10iA <https://github.com/ros-industrial/fanuc/blob/3ea2842baca3184cc621071b785cbf0c588a4046/fanuc_m10ia_support/config/opw_parameters_m10ia.yaml>`_ as
62+
an example you can reduce your ``kinematics.yaml`` to the following:
63+
64+
.. code-block:: yaml
65+
66+
manipulator:
67+
kinematics_solver: moveit_opw_kinematics_plugin/MoveItOPWKinematicsPlugin
68+
69+
and then add a ``rosparam`` ``load`` line to your ``launch/planning_context.launch`` which causes the parameters in that file to be loaded onto the parameter server:
70+
71+
.. code-block:: xml
72+
73+
<!-- Load default settings for kinematics; these settings are overridden by settings in a node's namespace -->
74+
<group ns="$(arg robot_description)_kinematics">
75+
<rosparam command="load" file="$(find opw_tutorial)/config/kinematics.yaml"/>
76+
<rosparam command="load" ns="manipulator" file="$(find fanuc_lrmate200ib_support)/config/opw_parameters_lrmate200ib.yaml"/>
77+
</group>
78+
79+
Note that the ``ns`` parameter has to match the name you gave your planning group during the setup.
80+
81+
The MoveIt Setup Assistant can automatically insert that line, removing the need to manually edit the ``planning_context.launch`` file. On the *Define Planning Group* page, select the *opw_parameters*
82+
file for your robot in the *Kin. parameters file* field
83+
84+
.. image:: images/assistant.png

index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ Before attempting to integrate a new robot with MoveIt, check whether your robot
6666
doc/hand_eye_calibration/hand_eye_calibration_tutorial
6767
doc/ikfast/ikfast_tutorial
6868
doc/trac_ik/trac_ik_tutorial
69+
doc/opw_kinematics/opw_kinematics_tutorial
6970

7071
Configuration
7172
-------------

0 commit comments

Comments
 (0)