UR inverse kinematics plugin for ROS MoveIt. Core ik solver code is from the official ur_kinematics package and the structure is generated by ikfast.
The official ur_kinematics package only supports one ik solution in its MoveIt api.
The UR ik solver generated by ikfast is slow (over 1000us on average), and often returns no solution if the 6th axis of UR is vertical.
This plugin combines the above two solutions. We replaced the ik solver code of ikfast with functions from the official ur_kinematics package. Now this plugin can output all the 8 solutions of UR within 25us via MoveIt, which are important features in motion planning tasks.
-
Clone this repo to the
srcfolder of your ROS workspace. Usually you should also have theuniversal_robotpackage in the same worksapce. -
Run
catkin_maketo build the project, Thensource devel/setup.bashto source the project. -
Set the kinematics_solver option in
config/kinematics.yamlof yourur*_moveit_configpackage to the following lines to enable the plugin.
ur_ik_plugin/UR3KinematicsPlugin
ur_ik_plugin/UR5KinematicsPlugin
ur_ik_plugin/UR10KinematicsPlugin
example:
edit ur3_moveit_config/config/kinematics.yaml:
manipulator:
kinematics_solver: ur_ik_plugin/UR3KinematicsPlugin
kinematics_solver_attempts: 3
kinematics_solver_search_resolution: 0.005
kinematics_solver_timeout: 0.005- Enjoy! You can run
roslaunch ur3_moveit_config demo.launch, drag the end effector and try motion planning to test if it works correctly.