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官方wiki 古月居
相关推荐: ROS笔记(28) Setup Assistant ROS笔记(27) 机械臂的组装 ROS笔记(26) Movelt! ROS笔记(25) 自主探索SLAM ROS笔记(24) Amcl
谢谢! 来源:https://www./content-4-405151.html
|