ROS笔记(29) 启动Movelt!
作者:互联网
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