Moveit!使用注意事项

本文介绍如何使用MoveIt!与RViz进行机械臂路径规划与调试。包括配置文件创建、解决常见错误及注意事项等内容。适用于希望深入了解MoveIt!功能的开发者。
在Rviz中的使用
  1. 创建自己的urdf模型
  2. 使用moveit助手创建配置文件。
  3. roslaunch moveit_demo move_group.launch
  4. roslaunch moveit_demo moveit_rviz.launch
  5. 如果以上launch启动不了,提示信息为缺失文件是,可以拷贝过来。
  6. Fixed Frame 输入: arm_base
  7. Displays 下面的add按钮可以添加“MotionPlanning”,添加之后在Planning里面指定Start State 和 Goal State 。然后就可以Plan和Execute了


附件为diego大神 diego1 plus 模型的机械臂部分。



万一所有的事情并没有按照预期进行的话,就需要用户进行debug了。这里有一些有用的提示,来告诉我们当错误出现时如何进行修复。

  • 机器人不动: 如果机器人的关节限制不合适的话,机器人是不会动的。检查机器人的URDF文件,确保每个关节有一个可移动的范围值。检查并确保最大关节值比最小关节值大。
  • 当我定义软限制时机器人不移动: 如果在机器人的URDF文件中定义软限制,这些限制都会被MoveIt!所使用,所以一定要确保它们是可用的。
  • 运动规划没能正确产生:检查关节配置中有没有两部分产生了自冲突。尤其是你在URDF中添加了新的部分但是还没有用MoveIt! Setup Assistant进行配置时。如果有机器人部件变红,则是他们产生了冲突。运行MoveIt! Setup Assistant来为配置整个机器人以确保碰撞检测。
  • GUI接口不能正确工作:6个或者更多自由度的机器人能够在Rviz中很好地运行。少于6个自由度的机器人是比较难通过这个插件进行使用的。
  • 动作规划到碰撞区域去了:MoveIt!用一个离散值来检查每一个运动规划片段,如果这个离散值太大的话,运动片段就不能被合适的检查,就有可能产生冲突。这个值在ompl_planning.yaml文件中的longest_valid_segment参数来配置。如果使用Rviz,请确保你在规划之前已经按下了Publish Planning Scene按钮。

IK不能正常运行的主要问题是位姿没有指定正确!!!!(Solution found but controller failed during execution)

[ INFO] [1510693940.160161651]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ERROR] [1510693940.160435658]: Found empty JointState message
[ERROR] [1510693940.160521092]: Found empty JointState message
[ERROR] [1510693940.160867626]: Found empty JointState message
[ERROR] [1510693940.161946586]: Found empty JointState message
[ INFO] [1510693940.163882295]: No optimization objective specified, defaulting to PathLengthOptimizationObjective
[ INFO] [1510693940.164021761]: Planner configuration 'manipulator[RRTConnectkConfigDefault]' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1510693940.165740395]: manipulator[RRTConnectkConfigDefault]: Starting planning with 1 states already in datastructure
[ INFO] [1510693940.165801366]: manipulator[RRTConnectkConfigDefault]: Starting planning with 1 states already in datastructure
[ INFO] [1510693940.165919486]: manipulator[RRTConnectkConfigDefault]: Starting planning with 1 states already in datastructure
[ INFO] [1510693940.165986591]: manipulator[RRTConnectkConfigDefault]: Starting planning with 1 states already in datastructure
[ERROR] [1510693941.172900052]: manipulator[RRTConnectkConfigDefault]: Unable to sample any valid states for goal tree
[ INFO] [1510693941.172966059]: manipulator[RRTConnectkConfigDefault]: Created 1 states (1 start + 0 goal)
[ERROR] [1510693941.173111390]: manipulator[RRTConnectkConfigDefault]: Unable to sample any valid states for goal tree
[ERROR] [1510693941.173194763]: manipulator[RRTConnectkConfigDefault]: Unable to sample any valid states for goal tree
[ INFO] [1510693941.173277033]: manipulator[RRTConnectkConfigDefault]: Created 1 states (1 start + 0 goal)
[ERROR] [1510693941.173641889]: manipulator[RRTConnectkConfigDefault]: Unable to sample any valid states for goal tree
[ INFO] [1510693941.173697575]: manipulator[RRTConnectkConfigDefault]: Created 1 states (1 start + 0 goal)
[ INFO] [1510693941.173770942]: manipulator[RRTConnectkConfigDefault]: Created 1 states (1 start + 0 goal)
[ WARN] [1510693941.173893245]: ParallelPlan::solve(): Unable to find solution by any of the threads in 1.008947 seconds
[ INFO] [1510693942.177730249]: Unable to solve the planning problem
[ WARN] [1510693942.178190857]: Fail: ABORTED: No motion plan found. No execution attempted.
[ INFO] [1510693942.180097650]: Received new trajectory execution service request...
[ WARN] [1510693942.180181189]: The trajectory to execute is empty

Figured this out. Turns out, [0,1,0,0] is a valid quaternion, but doesn't have the required precision necessary for TRAC-IK to return a valid IK. Instead, I'd recommend using ROS's tf.transformations method to construct the quaternion for your target pose.


评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值