think the CC got lost.
-------- Original Message --------
Subject: Re: parameters for ikfast plugins using private NodeHandles
Date: Fri, 13 Mar 2015 12:05:48 -0700
From: Sachin Chitta <
robot....@gmail.com>
To: G.A. vd. Hoorn - 3ME <
g.a.van...@tudelft.nl>
References: <
54F08304...@tudelft.nl>
Hi Gijs,
per-plugin parameters should be stored and retrieved from the private
namespace of the node where the kinematics base plugin is loaded. I agree
that this is not a great solution since it requires you to include
kinematics.yaml into the private namespace of every node that you launch
that might be using it - but that's the way its setup right now for the
kinematics plugins (as you pointed out).
per-group parameters should go inside an additional group namespace - but
the kinematics plugin loader actually searches for these on the param
server:
https://github.com/ros-planning/moveit_ros/blob/indigo-devel/planning/kinematics_plugin_loader/src/kinematics_plugin_loader.cpp#L287
so they don't need to be nested in the node namespace.
Best Regards,
Sachin
On Fri, Feb 27, 2015 at 6:45 AM, G.A. vd. Hoorn - 3ME <
g.a.van...@tudelft.nl> wrote:
> Hi,
>
>
> reading the source of some KinematicsBase based ik plugins, I noticed they
> are accessing some parameters using private NodeHandles. The default
> KDLKinematicsPlugin for instance [1], and KDLCKinematicsPlugin (by Dave
> Coleman) [2] (although: "never fully finished").
>
> Now I am confused as to how this should work: I assume that the 'private
> namespace' of a KinematicsBase plugin is (ultimately) actually the
> namespace of the node in which it is loaded.
>
> I played a bit with the KDL plugin and a sample MoveGroup config, and it
> looks like the KDL plugin tries to find the 'max_solver_iterations'
> parameter under '/move_group' (when loaded there). But other parameters
> (such as 'position_ik_only') are prefixed with the actual group name (so
> 'manipulator' or whatever is configured in kinematics.yaml).
>
> Interestingly, the template used for moveit_ikfast generated plugins
> creates a NodeHandle that already appends the group_name to its private
> namespace [3], so all parameters are retrieved from '~/$GROUP_NAME'.
>
> Now for my sanity (:)): where should per-plugin (so not per-group)
> parameters be set (and stored): in kinematics.yaml, on the node that loads
> the plugin, or somewhere else entirely?
>
> thanks,
>
>
> Gijs
>
> [1]
https://github.com/ros-planning/moveit_ros/blob/
> 025ef64416ab789fab132b818bf9a940cfec3fa2/planning/kdl_
> kinematics_plugin/src/kdl_kinematics_plugin.cpp#L212-L213
> [2]
https://github.com/davetcoleman/kdlc_kinematic_plugin/blob/
> a267e3908f85b79eb490af08812de6fd25a94c7f/src/kdlc_
> kinematics_plugin.cpp#L192-L193
> [3]
https://github.com/ros-planning/moveit_ikfast/blob/
> 50d0cbaaebc8ce5c0ddd8d74de8dd6a9e1805449/templates/ikfast61_
> moveit_plugin_template.cpp#L267
>