15 int main(
int argc,
char** argv) {
23 t.stages()->setName(
"clearance IK");
29 assert(
t.getRobotModel()->getName() ==
"panda");
31 auto scene = std::make_shared<planning_scene::PlanningScene>(
t.getRobotModel());
32 auto& robot_state = scene->getCurrentStateNonConst();
33 robot_state.setToDefaultValues();
34 [[maybe_unused]]
bool found =
35 robot_state.setToDefaultValues(robot_state.getJointModelGroup(
"panda_arm"),
"extended");
38 moveit_msgs::CollisionObject
co;
40 co.primitives.emplace_back();
41 co.primitives[0].type = shape_msgs::SolidPrimitive::SPHERE;
42 co.primitives[0].dimensions.resize(1);
43 co.primitives[0].dimensions[0] = 0.1;
44 co.header.frame_id =
t.getRobotModel()->getModelFrame();
45 co.primitive_poses.emplace_back();
46 co.primitive_poses[0].orientation.w = 1.0;
47 co.primitive_poses[0].position.z = 0.85;
48 scene->processCollisionObjectMsg(
co);
50 auto initial = std::make_unique<stages::FixedState>();
51 initial->setState(scene);
52 initial->setIgnoreCollisions(
true);
54 auto ik = std::make_unique<stages::ComputeIK>();
56 ik->setGroup(
"panda_arm");
57 ik->setTargetPose(Eigen::Translation3d(.3, 0, .35) * Eigen::AngleAxisd(
M_PI, Eigen::Vector3d::UnitY()));
59 ik->setMaxIKSolutions(100);
61 auto cl_cost{ std::make_unique<cost::Clearance>() };
62 cl_cost->cumulative = nh.param(
"cumulative",
false);
63 cl_cost->with_world = nh.param(
"with_world",
true);
71 std::cout << e <<
'\n';