本文主要是介绍Move Group C++ Interface 遇到的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题一:
问题描述:
Rviz终端显示信息:
[ERROR] [1680517834.059111587]:
Invalid Trajectory: start point deviates from current robot state more than 0.01
joint 'panda_joint1': expected: -1.63258, current: 0
Moveit终端显示信息:
[ INFO] [1680517834.059803588]: ABORTED: CONTROL_FAILED
出现问题的原因:
move_group_interface_tutorial.cpp第324行:
// You can execute a trajectory like this.
// move_group_interface.execute(trajectory);
原代码中,在轨迹规划完成后,对规划轨迹进行执行,导致机器人位置发生变化,导致机器人当前位置和开始点出现偏差。
因此可以将move_group_interface.execute(trajectory)注释掉,即可避免该问题出现。
问题二:
问题描述:
Rviz终端显示信息:[ WARN] [1680518036.897648660]: Unable to find a valid state nearby the start state (using jiggle fraction of 0.050000 and 100 sampling attempts).
Moveit终端显示信息:
[ WARN] [1680518036.897928719]: Fail: ABORTED: START_STATE_IN_COLLISION
[ INFO] [1680518036.897957642]: Visualizing plan 7 (move around cuboid with cylinder) FAILED
出现问题的原因:move_group_interface.attachObject()函数需要三个变量,被夹持物体,机械臂,接触物体的机械臂,原代码中:move_group_interface.attachObject(object_to_attach.id, "panda_hand");只有两个参数(重构函数中有仅需前两个参数,在函数中生成第三个变量的形式,但是运行报错),因此对此段代码进行修改(参考moveit2该):
//新增内容
std::vector<std::string> touch_links;
touch_links = { "panda_leftfinger", "panda_rightfinger" };
//修改内容
move_group_interface.attachObject(object_to_attach.id, "panda_hand",touch_links);
上述两个地方修改完成后返回ws_catkin根目录,运行catkin_make。
小tip:如果执行该程序时,机械臂重复执行,将Planed_Path - Loop Animation取消勾选即可。此选项是重复执行。
这篇关于Move Group C++ Interface 遇到的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!