[Fwd: Re: parameters for ikfast plugins using private NodeHandles]

45 views
Skip to first unread message

G.A. vd. Hoorn - 3ME

unread,
Mar 14, 2015, 6:15:40 AM3/14/15
to moveit-users
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
>

Reply all
Reply to author
Forward
0 new messages