ROS笔记(29) 启动Movelt!
1. 启动move_group
在 Setup Assistant 配置完成后,生成 hharm_moveit_config
功能包
它包含大部分Movelt!启动所需要的配置文件和启动文件
以及包含一个简单的演示demo,可以用来测试配置是否成功
在启动demo之前,有个地方可以改善一下
在Setup Assistant时没有配置 3D Perception,而配置好的启动文件是默认启动配置的
所以可以先在hharm_moveit_config/launch/sensor_manager.launch.xml
文件注释掉启动配置sensors_3d
的代码
这样可以避免出现error,不过出现也没太大功能上的影响
<!-- Params for 3D sensors config -->
<!-- <rosparam command="load" file="$(find hharm_moveit_config)/config/sensors_3d.yaml" /> -->
启动演示demo
$ roslaunch hharm_moveit_config demo.launch
这个界面在rviz的基础上加入了Movelt!插件
为了方便理解,在新的终端使用rqt_graph查看当前系统运行情况的动态图形
$ rqt_graph
可以看到move_group节点启动了
在rviz通过左下角的插件窗口可以配置 Movelt!的相关功能,控制机械臂完成运动规划
例如控制机械臂完成拖动规划、随机目标规划、初始位姿更新、碰撞检测等功能
2. 拖动规划
拖动机械臂的前端,可以改变机械臂的姿态
然后在MotionPlanning -> Planning -> Commands 标签页中点击 “Plan and Execute” 按钮
Movelt! 开始规划路径,并且控制机器人向目标位置移动
3. 随机目标规划
在MotionPlanning -> Planning -> Query工具栏中
选择的起始和目标状态默认是current,即保持当前的姿态
“Select Goal State” 的下拉选项中选择 “random valid”
Movelt!会在机器人的工作范围内随机生成一个目标位姿
接着继续点击 "Plan and Execute"按钮,机器人会自动运动到随机产生的目标位姿
4. 初始位姿更新
很多情况下,机器人运动的初始位姿并不是当i显示的位姿
这时就可以使用"Seleet Start State"设置机器人的初始位姿与"Select Goal State"的设置类似
- 可以通过鼠标拖动机器人的终端选择一个初始位姿,在鼠标拖动的时候,需要在Displays的"Planning Request"中匀选"Query Start State选项
- 在下拉菜单中选择"random valid"就可以随机生成一个初始位姿
- 在下拉菜单中选择自定义的状态home作为初始位姿
确定初始位姿后、还需要像拖动规划和随机规划一样,选择运动的目标态
然后点击 "Plan"按钮,可以看到Movelt!规划出来的路径了
点击" Execute"按钮,让机器人执行运动指令
但是,因为当前位姿与设置的初始位姿相差较大
所以机器人并不会开始运动,而且会在终端中看到报错信息
如果直接点击"Plan and Execute"按钮
会把当前实际的初始位姿 current 作为起点开始规划并运动
如果希望从指定起点运动,则需要先在"Select Goal State"按钮并且执行达到上述的起始状态
5. 碰撞检测
在Moveil!框架中有一个planning seene 模块,允许创建一个虚拟环境
在 MotionPlanning -> Seene Objects 中点击 " Import File" 按钮,加载场景物体的dae模型文件
例如加载一个bowl模型,可以通过周围的箭头控制模型的位置和姿态
或者在插件页面调节位置和姿态
加入模型后, 在运动规划时会进行碰撞检测
假如目标姿态和外部模型发生碰撞,进行运动规划时就会提示失败
界面中变成红色的 link 即为发生碰撞的部分
参考:
相关推荐:
ROS笔记(28) Setup Assistant
ROS笔记(27) 机械臂的组装
ROS笔记(26) Movelt!
ROS笔记(25) 自主探索SLAM
ROS笔记(24) Amcl
谢谢!
标签:拖动,29,Movelt,位姿,ROS,规划,初始 来源: https://blog.csdn.net/qq_32618327/article/details/99816364
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。