环境:Ubuntu18.04 + ROS Melodic
官网下载安装步骤:http://wiki.ros.org/melodic/Installation/Ubuntu
一键安装的快捷方式:
wget http://fishros.com/install -O fishros && bash fishros
保证自己的ROS可以使用。可以按照官网进行小乌龟测试。
Movelt 并没有直接附带在 ROS中,需要自行安装:
sudo apt install ros-melodic-moveit
如果是更高版本(其他版本)则安装对应的moveit. 比如Ubuntu20.04对应的是ROS Noetic .也可以直接从源码下载:https://moveit.ros.org/install/source/
如果你的手头没有现成的素材,可以从tutorial下载,首先我们建立一个工作空间用于 ROS程序的开发。后面会介绍ROS文件空间的结构。
mkdir ~/ARM/ws_moveit/src
cd ~/ARM/ws_moveit/src
git clone https://github.com/ros-planning/moveit_tutorials.git -b melodic-devel
git clone https://github.com/ros-planning/panda_moveit_config.git -b melodic-devel
安装一些必要的依赖:
cd ~/ARM/ws_moveit/src
rosdep install -y --from-paths . --ignore-src --rosdistro melodic
设置工作空间
cd ~/ARM/ws_moveit
catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
刷新工作空间,使其能够正常工作:
source ~/ARM/ws_moveit/devel/setup.bash
也可以将这句话写入 bashrc
文件,使其自动执行,就不需要每次都 source 了:
echo 'source ~/ARM/ws_moveit/devel/setup.bash' >> ~/.bashrc
上手 MoveIt 的最快方法就是通过 RViz 插件。Rviz 是 ROS 中的主要可视化工具,也是调试机器人非常有用的工具。MoveIt Rviz插件可以设置虚拟环境(场景),以交互方式创建机器人的开始和目标状态,测试各种运动规划器,并以可视化的方式输出。
在前3步中我们已经做好了初始化的准备,下面我们看一看rviz插件的相关操作。
运行 panda_moveit_config
的 demo launch文件:
cd ~/ARM/ws_moveit
source devel/setup.bash
roslaunch panda_moveit_config demo.launch rviz_tutorial:=true
这里我们提前使用 panda_moveit_config
包,这个包是封装了机械结构和运动动力学的机器人模型,后面会将介绍这个包是怎么来的。
如果是第一次运行,将会看到以下界面:
点击左下角的 Add,选择 MotionPlanning,点击 OK。看到机器人模型。
当这个机器人模型被加载出来后,我们就可以继续配置这个机器人。
在左侧自上向下依次设置:
/panda_link0
robot_description
/planning_scene
panda_arm
。/move_group/display_planned_path
Rviz 中有四种显示模式:
/planning scene
规划环境中的配置(默认情况下处于活动状态)。可以通过选择框来打开关闭各个可视化状态:
通过这些选项卡的打开关闭可以显示不同的可视化效果。
接下来我们只打开 Planned Path、Start State 以及 Goal State. 不打开 Scene Robot 。现在可以看到机械臂呈现橘色。
即作如下的可视化勾选设置:
Planned Path-Show Robot Visual
Scene Robot-Show Robot Visual
Planning Request-Query Goal State
Planning Request-Query Start State
现在应该有两个交互标记 (interactive markers):
橙色手臂标记用于表示运动规划的“目标状态”,
绿色手臂标记用于表示运动规划的“开始状态”。
如果看不到交互标记,请按RViz顶部菜单中的 "Interact".
注意:某些工具可能是被隐藏了,请按顶部菜单中的 "+" 以添加交互工具。
现在,就能够使用这些标记来拖动手臂并更改其状态:比如拖动手臂到达某个位置:
Collision. 当试图移动机械臂的某个关节与其他部分发生碰撞时,碰撞的两个部分将变为红色。
在 "Planning" 选项卡下的 MotionPlanning 插件中找到的 "Use Collision-Aware IK" 复选框允许您切换IK解算器的行为。勾选该复选框后,解算器将不断尝试为所需末端效应器位姿寻找无碰撞解决方案。
会比之前优雅很多,但还是会碰撞,只是少了很多可能。
未选中这个选项卡时,解算器会允许有碰撞的解。
无论复选框的状态如何,碰撞的两个部分依然以红色显示。
由于joint的角度限值和关节的固定长度,目标点局限在一个有效的空间(workspace)内, 对于出界的目标点,求解器将无法求出解。
现在可以通过 Motion Planning 让机械臂规划运动。
Planned Path
选项卡中勾选Planned Path;
在 MotionPlanning 插件的 Planning
中点击Plan
按钮, 可以看到机械臂运动的轨迹。
在 Rviz 中通过 slider
查看运动轨迹点。
在Panels
菜单中选择MotionPlanning - Slider
,在左边会出现一个滑块。
Panels在Rviz中最上面的file那一行。
设置目标状态,点击Plan
拖动滑块可以查看轨迹点。
注意,当你把机械臂放到一个新的目标时,先执行 Plan 再执行 slider 中的 Play,否则看到的还是上一次执行的轨迹点。
File->Save Config
这样下次打开Rviz,可以通过File->Open 调用保存的配置。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章