ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Moveit! Using solve type speed instead of distance

asked 2017-06-29 07:28:16 -0600

cvancleef gravatar image

updated 2017-06-29 10:01:11 -0600

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
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2017-06-29 09:13:33 -0600

v4hn gravatar image

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/movei...

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

edit flag offensive delete link more

Comments

I edited my question, do I need to change some other files to get this to work with my code?

cvancleef gravatar image cvancleef  ( 2017-06-29 10:01:45 -0600 )edit
1

answered 2017-06-29 09:39:24 -0600

gvdhoorn gravatar image

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.

edit flag offensive delete link more

Comments

I edited my question, do I need to change some other files to get this to work with my code?

cvancleef gravatar image cvancleef  ( 2017-06-29 10:01:38 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2017-06-29 07:28:16 -0600

Seen: 768 times

Last updated: Jun 29 '17