You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
gavanderhoorn
changed the title
constrained_ik: MoveIt planner plugin ignores passed in NodeHandle
constrained_ik: MoveIt planner plugin ignores passed in 'NodeHandle'
Jul 16, 2017
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 theNodeHandle
passed in in thePlanningManager::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, asCLIKPlannerManager::initialize(..)
seems to only pass theNodeHandle
on to theCartesianDynReconfigServer
and theManagerDynReconfigServer
, but not to theCartesianPlanner
andJointInterpolationPlanner
instances that it creates. Combined with the fact thatconstrained_ik::Constrained_IK
(used byCartesianPlanner
) also creates its ownNodeHandle
, 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 byCLIKPlannerManager
.The text was updated successfully, but these errors were encountered: