Integrate IKFastKinematicPlugin into MoveIt2

asked 2023-04-26 10:44:43 -0500

robin_rob96 gravatar image

updated 2023-04-26 10:45:35 -0500

Hi there,

I'm following the tutorial for generating an IKFast Plugin for my robot. For me, It seems like the generating-part was successful, since the output suggested no error and said it was doing tests (to confirm the IK results) with 0% error margin.

It also changed the kinematics.yaml file (within the moveit config pkg):

rv7fm_arm:
  kinematics_solver: rv7fm_rv7fm_arm/IKFastKinematicsPlugin
  kinematics_solver_search_resolution: 0.005
  kinematics_solver_timeout: 0.005

Problem is, that I get an error when launching demo.launch.py from my moveit-config-pkg:

[move_group-2] [INFO] [1682522998.594980211] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint
[move_group-2] [WARN] [1682522998.598176058] [moveit_robot_model.robot_model]: Could not identify parent group for end-effector 'ee'
[move_group-2] [ERROR] [1682522998.601066475] [kinematics_plugin_loader]: The kinematics plugin (rv7fm_arm) failed to load. Error: According to the loaded plugin descriptions the class rv7fm_rv7fm_arm/IKFastKinematicsPlugin with base class type kinematics::KinematicsBase does not exist. Declared types are  cached_ik_kinematics_plugin/CachedKDLKinematicsPlugin cached_ik_kinematics_plugin/CachedSrvKinematicsPlugin kdl_kinematics_plugin/KDLKinematicsPlugin lma_kinematics_plugin/LMAKinematicsPlugin prbt_manipulator/IKFastKinematicsPlugin srv_kinematics_plugin/SrvKinematicsPlugin
[move_group-2] [ERROR] [1682522998.601078235] [moveit_ros.robot_model_loader]: Kinematics solver could not be instantiated for joint group rv7fm_arm.

and further down below:

[rviz2-3] [ERROR] [1682523002.461158968] [kinematics_plugin_loader]: The kinematics plugin (rv7fm_arm) failed to load. Error: According to the loaded plugin descriptions the class rv7fm_rv7fm_arm/IKFastKinematicsPlugin with base class type kinematics::KinematicsBase does not exist. Declared types are  cached_ik_kinematics_plugin/CachedKDLKinematicsPlugin cached_ik_kinematics_plugin/CachedSrvKinematicsPlugin kdl_kinematics_plugin/KDLKinematicsPlugin lma_kinematics_plugin/LMAKinematicsPlugin prbt_manipulator/IKFastKinematicsPlugin srv_kinematics_plugin/SrvKinematicsPlugin
[rviz2-3] [ERROR] [1682523002.461172528] [moveit_ros.robot_model_loader]: Kinematics solver could not be instantiated for joint group rv7fm_arm.

If i launch the setup assistant and try to edit the solver, I get the following error message:

Unable to find the kinematic solver 'rv7fm_rv7fm_arm/IKFastKinematicPlugin'. Trying running rosmake for this package. Until fixed, this setting will be lost the next time the MoveIt configuration files are generated.

I cannot choose the generated plugin because its not listed in the dropdown field.

What can I do? Any ideas?

edit retag flag offensive close merge delete

Comments

It might has something to do with that the package is not "advertised" as a library (don't know how to call it). I saw some examples with an additional xyz_plugins.xml file + some additional lines in CMakeLists.txt.

I will try further.

robin_rob96 gravatar image robin_rob96  ( 2023-05-04 05:15:59 -0500 )edit

Did you find a solution?

superdiodo gravatar image superdiodo  ( 2023-06-15 10:42:41 -0500 )edit

I did. Seems like the tutorial is not up-to-date, some steps are missing. Somebody made an example here: https://github.com/ros-planning/movei...

robin_rob96 gravatar image robin_rob96  ( 2023-06-15 11:39:24 -0500 )edit