按照古月老师给的例子,使用随机轨迹的代码时出现以下问题:
test_random.cpp:
#include <moveit/move_group_interface/move_group_interface.h>
int main(int argc, char **argv)
{
ros::init(argc,argv,”move_group_interface_demo”,ros::init_options::AnonymousName);
ros::AsyncSpinner spinner(1);
spinner.start();
moveit::planning_interface::MoveGroupInterface group(“arm”);
group.setRandomTarget();
group.move();
ros::waitForShutdown();
}
上面的代码是胡春旭博客给的例子(test_random.cpp),但是运行时不对,出现上面出现的问题。需要添加下面两行代码:
moveit::core::RobotStatePtr current_state = group.getCurrentState();//设置机器人初始状态为当前状态
group.setPlanningTime(10);//设置时间,之前默认为5秒,会超时
最终代码如下:
#include <moveit/move_group_interface/move_group_interface.h>
int main(int argc, char **argv)
{
ros::init(argc,argv,”move_group_interface_demo”,ros::init_options::AnonymousName);
ros::AsyncSpinner spinner(1);
spinner.start();
moveit::planning_interface::MoveGroupInterface group(“arm”);
moveit::core::RobotStatePtr current_state = group.getCurrentState();
group.setPlanningTime(10);
group.setRandomTarget();
group.move();
ros::waitForShutdown();
}
之后运行代码,达到预期效果:
参考:
https://answers.ros.org/question/240723/fail-aborted-no-motion-plan-found-no-execution-attempted/