-
Notifications
You must be signed in to change notification settings - Fork 688
Create a tutorial for using moveit_opw_kinematics_plugin #607
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
2f052e8
Create a tutorial for using moveit_opw_kinematics_plugin
simonschmeisser bdf7495
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser 79c7f91
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser d9eae07
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser d3b7202
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser 62903c4
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser 6a88486
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser 36283a4
fix rst syntax errors
simonschmeisser bafdcf8
include in toc tree
simonschmeisser 565d8ef
Apply suggestions from code review
simonschmeisser 9d1cff4
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser c65533d
highlight parameter field
simonschmeisser 6b43203
Apply suggestions from code review
simonschmeisser 28f6793
Apply suggestions from code review
simonschmeisser 1e1b2f6
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser d003cec
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser 00fe0f9
Update doc/opw_kinematics/opw_kinematics_tutorial.rst
simonschmeisser File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| OPW Kinematics Solver for Industrial Manipulators | ||
| ================================================== | ||
|
|
||
| Intro | ||
| ------ | ||
|
|
||
| Taken from `opw_kinematics <https://github.com/Jmeyer1292/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. | ||
|
|
||
| Purpose | ||
| ------- | ||
|
|
||
| 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. | ||
|
|
||
| Installation | ||
| ------------- | ||
|
|
||
| The `opw_kinematics_plugin <https://github.com/JeroenDM/moveit_opw_kinematics_plugin>`_ can be installed using ``apt`` on Ubuntu and Debian: :: | ||
|
|
||
| sudo apt install ros-noetic-opw-kinematics-plugin | ||
|
|
||
| Usage | ||
| ------ | ||
|
|
||
| - Find the MoveIt `kinematics.yaml <../kinematics_configuration/kinematics_configuration_tutorial.html>`_ file created for your robot. | ||
| - Replace ``kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin`` (or similar) with ``kinematics_solver: moveit_opw_kinematics_plugin/MoveItOPWKinematicsPlugin``. | ||
| - Set parameters to describe the geometry of your manipulator. | ||
|
|
||
| The following is an example of the parameters needed for the KUKA KR 6 R700: | ||
|
|
||
| .. code-block:: yaml | ||
|
|
||
| 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: | ||
|
|
||
| .. image:: images/opw.png | ||
|
|
||
| Sharing OPW descriptions | ||
| ------------------------- | ||
|
|
||
| We plan to collect OPW parameter sets as part of the ROS-Industrial robot support packages. This has already started for FANUC. | ||
| Taking the `M-10iA <https://github.com/ros-industrial/fanuc/blob/3ea2842baca3184cc621071b785cbf0c588a4046/fanuc_m10ia_support/config/opw_parameters_m10ia.yaml>`_ as | ||
| an example you can reduce your ``kinematics.yaml`` to the following: | ||
|
|
||
| .. code-block:: yaml | ||
|
|
||
| manipulator: | ||
| kinematics_solver: moveit_opw_kinematics_plugin/MoveItOPWKinematicsPlugin | ||
|
|
||
| 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: | ||
|
|
||
| .. code-block:: xml | ||
|
|
||
| <!-- Load default settings for kinematics; these settings are overridden by settings in a node's namespace --> | ||
| <group ns="$(arg robot_description)_kinematics"> | ||
| <rosparam command="load" file="$(find opw_tutorial)/config/kinematics.yaml"/> | ||
| <rosparam command="load" ns="manipulator" file="$(find fanuc_lrmate200ib_support)/config/opw_parameters_lrmate200ib.yaml"/> | ||
| </group> | ||
|
|
||
| Note that the ``ns`` parameter has to match the name you gave your planning group during the setup. | ||
|
|
||
| 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* | ||
| file for your robot in the *Kin. parameters file* field | ||
|
|
||
| .. image:: images/assistant.png | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.