Skip to content

Commit dd9575d

Browse files
committed
Update to new cost function interface
1 parent 68926e9 commit dd9575d

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

doc/how_to_guides/planner_cost_functions/src/planner_cost_functions_main.cpp

+18-6
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,9 @@ class Demo
176176
planning_component_->setGoal(planning_query_request_.goal_constraints);
177177
}
178178
else
179+
{
179180
RCLCPP_ERROR(LOGGER, "Planning query request does not contain any goal constraints");
181+
}
180182
}
181183

182184
/// \brief Request a motion plan based on the assumption that a goal is set and print debug information.
@@ -185,17 +187,28 @@ class Demo
185187
// Set start state as current state
186188
planning_component_->setStartStateToCurrentState();
187189

190+
// Get start state
191+
auto robot_start_state = planning_component_->getStartState();
192+
193+
// Get planning scene
194+
auto planning_scene_monitor = moveit_cpp_->getPlanningSceneMonitorNonConst();
195+
planning_scene_monitor->updateFrameTransforms();
196+
auto planning_scene = [planning_scene_monitor] {
197+
planning_scene_monitor::LockedPlanningSceneRO ls(planning_scene_monitor);
198+
return planning_scene::PlanningScene::clone(ls);
199+
}();
200+
201+
auto group_name = planning_query_request_.group_name;
188202
// Set cost function
189203
planning_component_->setStateCostFunction(
190-
[this, LOGGER](const moveit::core::RobotState& robot_state, const planning_interface::MotionPlanRequest& request,
191-
const planning_scene::PlanningSceneConstPtr& planning_scene) mutable {
204+
[robot_start_state, group_name, planning_scene](const std::vector<double>& state_vector) mutable {
192205
// Publish robot state
193206
// auto const ee_tip = robot_state.getJointModelGroup(PLANNING_GROUP)->getOnlyOneEndEffectorTip();
194207
// this->getVisualTools().publishSphere(robot_state.getGlobalLinkTransform(ee_tip), rviz_visual_tools::GREEN,
195208
// rviz_visual_tools::MEDIUM); this->getVisualTools().trigger();
196-
197-
auto clearance_cost_fn = moveit::cost_functions::getClearanceCostFn();
198-
return clearance_cost_fn(robot_state, request, planning_scene);
209+
auto clearance_cost_fn =
210+
moveit::cost_functions::getClearanceCostFn(*robot_start_state, group_name, planning_scene);
211+
return clearance_cost_fn(state_vector);
199212
});
200213

201214
auto plan_solution = planning_component_->plan();
@@ -205,7 +218,6 @@ class Demo
205218
{
206219
// Visualize the trajectory in Rviz
207220
auto robot_model_ptr = moveit_cpp_->getRobotModel();
208-
auto robot_start_state = planning_component_->getStartState();
209221
auto joint_model_group_ptr = robot_model_ptr->getJointModelGroup(PLANNING_GROUP);
210222

211223
visual_tools_.publishTrajectoryLine(plan_solution.trajectory, joint_model_group_ptr);

0 commit comments

Comments
 (0)