Skip to content

Commit 482dc9d

Browse files
authored
Fix LERP planner example (#671)
* Propagate planning pipeline's namespace * Provide fallback default for `num_steps` parameter * Simplify code
1 parent 3842a6d commit 482dc9d

File tree

5 files changed

+13
-38
lines changed

5 files changed

+13
-38
lines changed

doc/creating_moveit_plugins/lerp_motion_planner/include/lerp_interface/lerp_planning_context.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ MOVEIT_CLASS_FORWARD(LERPPlanningContext);
4747
class LERPPlanningContext : public planning_interface::PlanningContext
4848
{
4949
public:
50-
LERPPlanningContext(const std::string& name, const std::string& group, const moveit::core::RobotModelConstPtr& model);
50+
LERPPlanningContext(const std::string& name, const std::string& ns, const std::string& group,
51+
const moveit::core::RobotModelConstPtr& model);
5152
~LERPPlanningContext() override
5253
{
5354
}
Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,10 @@
11
<launch>
22

3-
<!-- GDB Debug Arguments -->
4-
<arg name="debug" default="false" />
5-
<arg unless="$(arg debug)" name="launch_prefix" value="" />
6-
<arg if="$(arg debug)" name="launch_prefix"
7-
value="gdb -x $(find moveit_planners_lerp)/launch/gdb_settings.gdb --ex run --args" />
8-
9-
<!-- Callgrind Arguments -->
10-
<arg name="callgrind" default="false" />
11-
<arg unless="$(arg callgrind)" name="launch_prefix2" value="" />
12-
<arg if="$(arg callgrind)" name="launch_prefix2" value="valgrind --tool=callgrind --collect-atstart=no" />
13-
14-
<!-- Valgrind Arguments -->
15-
<arg name="valgrind" default="false" />
16-
<arg unless="$(arg valgrind)" name="launch_prefix3" value="" />
17-
<arg if="$(arg valgrind)" name="launch_prefix3" value="valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all" />
18-
193
<!-- Launch main node -->
20-
<node name="$(anon moveit_tutorials)" launch-prefix="$(arg launch_prefix) $(arg launch_prefix2) $(arg launch_prefix3)" pkg="moveit_tutorials" type="lerp_example" respawn="false" output="screen">
4+
<node name="$(anon moveit_tutorials)" pkg="moveit_tutorials" type="lerp_example" respawn="false" output="screen">
215

226
<!-- Robot-specific settings -->
237
<rosparam file="$(find panda_moveit_config)/config/lerp_planning.yaml" command="load"/>
248
</node>
259

26-
27-
2810
</launch>

doc/creating_moveit_plugins/lerp_motion_planner/src/lerp_interface.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ bool LERPInterface::solve(const planning_scene::PlanningSceneConstPtr& planning_
6060
moveit_msgs::MotionPlanDetailedResponse& res)
6161
{
6262
// Load the planner-specific parameters
63-
nh_.getParam("num_steps", num_steps_);
63+
nh_.param("num_steps", num_steps_, 10);
6464

6565
ros::WallTime start_time = ros::WallTime::now();
6666
moveit::core::RobotModelConstPtr robot_model = planning_scene->getRobotModel();
@@ -72,9 +72,9 @@ bool LERPInterface::solve(const planning_scene::PlanningSceneConstPtr& planning_
7272
std::vector<double> start_joint_values;
7373
start_state->copyJointGroupPositions(joint_model_group, start_joint_values);
7474

75-
// This planner only supports one goal constriant in the request
76-
std::vector<moveit_msgs::Constraints> goal_constraints = req.goal_constraints;
77-
std::vector<moveit_msgs::JointConstraint> goal_joint_constraint = goal_constraints[0].joint_constraints;
75+
// This planner only supports one goal constraint in the request
76+
const std::vector<moveit_msgs::Constraints>& goal_constraints = req.goal_constraints;
77+
const std::vector<moveit_msgs::JointConstraint>& goal_joint_constraint = goal_constraints[0].joint_constraints;
7878

7979
std::vector<double> goal_joint_values;
8080
goal_joint_values.reserve(goal_joint_constraint.size());

doc/creating_moveit_plugins/lerp_motion_planner/src/lerp_planner_manager.cpp

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,12 @@ class LERPPlannerManager : public planning_interface::PlannerManager
5252
{
5353
}
5454

55-
bool initialize(const moveit::core::RobotModelConstPtr& model, const std::string& /*ns*/) override
55+
bool initialize(const moveit::core::RobotModelConstPtr& model, const std::string& ns) override
5656
{
5757
for (const std::string& gpName : model->getJointModelGroupNames())
5858
{
59-
std::cout << "group name " << gpName << std::endl << "robot model " << model->getName() << std::endl;
6059
planning_contexts_[gpName] =
61-
LERPPlanningContextPtr(new LERPPlanningContext("lerp_planning_context", gpName, model));
60+
LERPPlanningContextPtr(new LERPPlanningContext("lerp_planning_context", ns, gpName, model));
6261
}
6362
return true;
6463
}
@@ -99,21 +98,14 @@ class LERPPlannerManager : public planning_interface::PlannerManager
9998
return planning_interface::PlanningContextPtr();
10099
}
101100

102-
// create PlanningScene using hybrid collision detector
103-
planning_scene::PlanningScenePtr ps = planning_scene->diff();
104-
105-
// set FCL as the allocaotor
106-
ps->setActiveCollisionDetector(collision_detection::CollisionDetectorAllocatorFCL::create(), true);
107-
108101
// retrieve and configure existing context
109102
const LERPPlanningContextPtr& context = planning_contexts_.at(req.group_name);
110103
ROS_INFO_STREAM_NAMED("lerp_planner_manager", "===>>> context is made ");
111104

112-
context->setPlanningScene(ps);
105+
context->setPlanningScene(planning_scene);
113106
context->setMotionPlanRequest(req);
114107

115108
error_code.val = moveit_msgs::MoveItErrorCodes::SUCCESS;
116-
117109
return context;
118110
}
119111

doc/creating_moveit_plugins/lerp_motion_planner/src/lerp_planning_context.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@
4444

4545
namespace lerp_interface
4646
{
47-
LERPPlanningContext::LERPPlanningContext(const std::string& context_name, const std::string& group_name,
48-
const moveit::core::RobotModelConstPtr& model)
47+
LERPPlanningContext::LERPPlanningContext(const std::string& context_name, const std::string& ns,
48+
const std::string& group_name, const moveit::core::RobotModelConstPtr& model)
4949
: planning_interface::PlanningContext(context_name, group_name), robot_model_(model)
5050
{
51-
lerp_interface_ = LERPInterfacePtr(new LERPInterface());
51+
lerp_interface_ = LERPInterfacePtr(new LERPInterface(ros::NodeHandle(ns)));
5252
}
5353

5454
bool LERPPlanningContext::solve(planning_interface::MotionPlanDetailedResponse& res)

0 commit comments

Comments
 (0)