industrial_moveit
industrial_moveit copied to clipboard
constrained_ik: MoveIt planner plugin ignores passed in 'NodeHandle'
I'm trying to load multiple MoveIt planning plugins into a single process and one of the approaches I'm investigating is exploiting namespacing using ros::NodeHandle
instances.
The OMPL plugin (moveit_planners_ompl
) nicely uses the NodeHandle
passed in in the PlanningManager::initialize(..)
call (here) which makes things work almost out-of-the-box.
Trying to do the same with constrained_ik::CLIKPlannerManager
does not seem to work properly, as CLIKPlannerManager::initialize(..)
seems to only pass the NodeHandle
on to the CartesianDynReconfigServer
and the ManagerDynReconfigServer
, but not to the CartesianPlanner
and JointInterpolationPlanner
instances that it creates. Combined with the fact that constrained_ik::Constrained_IK
(used by CartesianPlanner
) also creates its own NodeHandle
, parameters are then always resolved / loaded from the private namespace of the node, which breaks any namespacing / isolation attempts.
The reason I'm posting this issue is to understand why this was implemented in this way, and to see whether it would be ok (and feasible) to restructure things in such a way that a single root NodeHandle
instance (with possibly others in sub-namespaces) is used throughout the object hierarchy headed by CLIKPlannerManager
.
@gavanderhoorn, It should be OK to setup like the example you showed.