0
$\begingroup$

Rosanswers logo

I switched to using trac_ik for my kinematics plugin and set the solve type to distance. Here's my kinematics.yaml

manipulator:
  kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin
  solve_type: Distance
  kinematics_solver_search_resolution: 0.002
  kinematics_solver_timeout: 0.1
  kinematics_solver_attempts: 300

However, when I launch MoveIt I get the following messages:

[ INFO] [1498738699.604294668]: Looking in private handle: /move_group_commander_wrappers_1498738699102337314 for param name: manipulator/solve_type
[ INFO] [1498738699.605287670]: Using solve type Speed

Am I setting the solve type incorrectly for use in MoveIt?


EDIT: I added

 <group ns="move_group">
    <rosparam command="load" file="$(find PACKAGE_NAME)/config/kinematics.yaml"/>
  </group>

to the start of my move_group.launch file. MoveIt! now displays the correct solve type on launch, but when I run code to move my robot, the terminal running my code still says its using solve type Speed.

[ INFO] [1498748362.955713863]: Looking in private handle: /move_group_commander_wrappers_1498748362452794445 for param name: manipulator/position_only_ik
[ INFO] [1498748362.960244821]: Looking in private handle: /move_group_commander_wrappers_1498748362452794445 for param name: manipulator/solve_type
[ INFO] [1498748362.961557738]: Using solve type Speed

Originally posted by cvancleef on ROS Answers with karma: 24 on 2017-06-29

Post score: 0

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

This is a bug in where parameters are expected to be by MoveIt and the plugins. Have a look at this issue for details and a workaround:

https://github.com/ros-planning/moveit_ros/issues/629#issuecomment-282573234

A proper fix for upstream MoveIt would be highly appreciated! :)


Originally posted by v4hn with karma: 2950 on 2017-06-29

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by cvancleef on 2017-06-29:
I edited my question, do I need to change some other files to get this to work with my code?

$\endgroup$
0
$\begingroup$

Rosanswers logo

It's slightly inconvenient, but IK plugins tend to search for their parameters in the namespace of the process (ie: node) that is hosting them. In the case of MoveIt Commander, that would be move_group_commander_wrappers_1498738699102337314.

But simply putting it in that namespace won't do: you probably have three instances of trac_ik hosted:

  1. in move_group (this is MoveIt 'proper')
  2. in rviz (for the MoveIt RViz plugin)
  3. in moveit_commander

I'm not sure (as I wasn't around when this was designed) but I think that is because of efficiency reasons (ie: avoid having to call an IK solver over a ROS service, which adds overhead to every call). But to get consistent behaviour, it'd be important to make sure all instances get the same parameters.

See traclabs/trac_ik#25 for a related issue.


Originally posted by gvdhoorn with karma: 86574 on 2017-06-29

This answer was NOT ACCEPTED on the original site

Post score: 1


Original comments

Comment by cvancleef on 2017-06-29:
I edited my question, do I need to change some other files to get this to work with my code?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.