一般步骤
1)创建模型对象
moveit::planning_interface::MoveGroup group("arm"); //括号中是模型运动组名称,为控制的对象,这里是arm
2)定义场景接口
moveit::planning_interface::PlanningSceneInterface planning_scene_interface;//下面定义障碍时会用到
3)定义展示的轨迹,和发布轨迹话题的发布者,用于生成轨迹后,向RVIZ发布轨迹来展示
ros::Publisher display_publisher = node_handle.advertise<moveit_msgs::DisplayTrajectory>("/move_group/display_planned_path", 1, true);
moveit_msgs::DisplayTrajectory display_trajectory;
注:获取当前规划组的一些信息
ROS_INFO("Reference frame: %s", group.getPlanningFrame().c_str());//获取参考系名称
ROS_INFO("Reference frame: %s", group.getEndEffectorLink().c_str());//获取末端执行器名称
4)规划一个姿态目标,末端执行器的希望姿态
geometry_msgs::Pose target_pose1;
target_pose1.orientation.w = 1.0;
target_pose1.position.x = 0.28;
target_pose1.position.y = -0.7;
target_pose1.position.z = 1.0;
group.setPoseTarget(target_pose1);//设置目标姿态
5)调用规划器来计算规划,只是规划
moveit::planning_interface::MoveGroup::Plan my_plan;
bool success = group.plan(my_plan);
ROS_INFO("Visualizing plan 1 (pose goal) %s",success?"":"FAILED");
/* Sleep to give Rviz time to visualize the plan. */
sleep(