18 int main(
int argc,
char** argv) {
22 t.stages()->setName(
"alternative path costs");
25 assert(
t.getRobotModel()->getName() ==
"panda");
27 auto scene{ std::make_shared<planning_scene::PlanningScene>(
t.getRobotModel()) };
28 auto& robot_state{ scene->getCurrentStateNonConst() };
29 robot_state.setToDefaultValues();
30 robot_state.setToDefaultValues(robot_state.getJointModelGroup(
"panda_arm"),
"extended");
32 auto initial{ std::make_unique<stages::FixedState>(
"start") };
33 initial->setState(scene);
36 auto pipeline{ std::make_shared<solvers::PipelinePlanner>() };
38 auto alternatives{ std::make_unique<Alternatives>(
"connect") };
40 auto connect{ std::make_unique<stages::Connect>(
42 connect->setCostTerm(std::make_unique<cost::PathLength>());
47 auto connect{ std::make_unique<stages::Connect>(
49 connect->setCostTerm(std::make_unique<cost::TrajectoryDuration>());
53 auto connect{ std::make_unique<stages::Connect>(
55 connect->setCostTerm(std::make_unique<cost::LinkMotion>(
"panda_hand"));
59 auto connect{ std::make_unique<stages::Connect>(
61 connect->setCostTerm(std::make_unique<cost::LinkMotion>(
"panda_link4"));
67 auto goal_scene{ scene->diff() };
68 goal_scene->getCurrentStateNonConst().setToDefaultValues(robot_state.getJointModelGroup(
"panda_arm"),
"ready");
69 auto goal = std::make_unique<stages::FixedState>(
"goal");
70 goal->setState(goal_scene);
76 std::cout << e <<
'\n';