下载并编译好后,我们就可以在rviz中玩panda机械臂了。
1 运行程序并配置rviz
运行demo程序
roslaunch panda_moveit_config demo.launch rviz_tutorial:=true
如果是第一次运行rviz,会看到一个空的世界,这时需要手动添加插件
点击左下角的
Add
-
在
moveit_ros_visualization
文件夹中选择MotionPlanning
,点击OK
-
这时Panda机械臂的3D模型会出现在世界里
-
配置rivz
- 在
Global Options
下,将Fixed Frame
设置成/panda_link0
- 点击
MotionPlanning
,确认以下设置正确-
Robot Description
为robot_description
-
Planning Scene Topic
为/planning_scene
-
Planning Request
中的Planning Group
为panda_arm
-
Planned Path
中的Trajectory Topic
为/move_group/display_planned_path
-
- 在
2 设置可视化选项
MotionPlanning中有4种不同的可视化选项
- 机器人本身3D模型 (默认打开),可在
Scene Robot
-Show Robot Visual
设置
- 机器人本身3D模型 (默认打开),可在
- 规划的运动路径 (默认打开),可在
Planned Path
-Show Robot Visual
设置
- 规划的运动路径 (默认打开),可在
- 绿色:机器人运动的起始状态 (默认关闭),可在
Planning Request
-Query Start State
设置
- 绿色:机器人运动的起始状态 (默认关闭),可在
- 橙色:机器人运动的目标状态 (默认打开),可在
Planning Request
-Query Goal State
设置
- 橙色:机器人运动的目标状态 (默认打开),可在
3 使用Interact
通过rviz左上角工具中的Interact
可以调整机械臂的状态。
作如下的可视化勾选设置:
- 勾选
Planned Path-Show Robot Visual
- 取消勾选
Scene Robot-Show Robot Visual
- 勾选
Planning Request-Query Goal State
- 勾选
Planning Request-Query Start State
此时机械臂上会出现两个交互标记 (interactive markers),分别控制起始状态和目标状态,点击拖动可以进行改变。
碰撞 (collision)
MoveIt会检测目标状态是否会发生碰撞。标为红色的link表示到达目标状态会发生碰撞。
在MotionPlanning插件Planning
选项卡中可以通过勾选`Use Collision-Aware IK'选项让运动求解器不断尝试找出无碰撞的解。若不勾选,则求解器会允许有碰撞的解。
出界 (workspace)
由于joint的角度限值和关节的固定长度,目标点需要再一个有效的空间(workspace)内, 对于出界的目标点,求解器将无法求出解。
4. 使用Motion Planning
现在可以通过Motion Planning让机械臂规划运动。
- 点中Start State 拖到想要的起始位置
- 点中Goal State 拖到想要的目标位置
- 检查起始和目标状态下都没有碰撞
- 在
Planned Path
选项卡中勾选Planned Path
在MotionPlanning插件的Planning
中点击Plan
按钮, 可以看到机械臂运动的轨迹。
查看轨迹点 (waypoints)
通过slider
查看运动轨迹点。
- 在
Panels
菜单中选择MotionPlanning - Slider
,在左边会出现一个滑块。 - 设置目标状态,点击
Plan
-
拖动滑块可以查看轨迹点。
保存Rviz配置
File->Save Config
下次打开Rviz可以通过File->Open 调用保存的配置。