安装ROS和Move it!
这里不多讲,大家根据自己的ubuntu版本安装吧。
我用的是ubuntu20.04,ROS neotic版本,
配置环境
安装catkin ROS构建系统:
sudo apt install ros-noetic-catkin python3-catkin-tools
安装wstool:
sudo apt install python3-wstool
创建一个Catkin工作区并下载MoveIt源
mkdir -p ~/ws_moveit/src
cd ~/ws_moveit/src
wstool init .
wstool merge -t . https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall
wstool remove moveit_tutorials # this is cloned in the next section
wstool update -t .
如果你用的是ROS neotic,上面每一步都不要修改,原原本本的复制进去。
下载示例代码
为了轻松地遵循这些教程,您将需要一个ROBOT_moveit_config软件包。默认的演示机器人是Franka Emika的Panda手臂。要获得有效的panda_moveit_config软件包,建议您从源代码安装。
在您的catkin工作区中,下载教程和panda_moveit_config软件包:
cd ~/ws_moveit/src
git clone https://github.com/ros-planning/moveit_tutorials.git -b master
git clone https://github.com/ros-planning/panda_moveit_config.git -b melodic-devel
上面第三步,可能不需要运行,你在运行第二步的时候已经把panda_moveit_config下载了。到时候去工作空间的src下面看一下。
建立您的Catkin工作区
cd ~/ws_moveit/src
rosdep install -y --from-paths . --ignore-src --rosdistro noetic
不要改,直接复制进去运行就行了
sudo sh -c 'echo "deb http://packages.ros.org/ros-testing/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt update
下一条命令将配置您的catkin工作区:
cd ~/ws_moveit
catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
上面第二步可能会出错,pkg_resources.DistributionNotFound: The ‘osrf-pycommon>0.1.1‘
参考这个博客,也是我写的。
第三步catkin build是根catkin_make 一样,都是编译环境的。
如果你用catkin build不行,也就是上面第二步执行不了,就用catkin_make。
Source一下你的工作空间,提示系统你改变数据了。
source ~/ws_moveit/devel/setup.bash
启动launch文件。
roslaunch panda_moveit_config demo.launch
如果是第一次执行此操作,则应该在RViz中看到一个空白世界,并且必须添加运动计划插件
您应该在RViz中看到一个空白的世界:
在RViz Displays Tab, 点击 Add:
从moveit_ros_visualization文件夹中,选择“ MotionPlanning”作为DisplayType。按“确定”。
您现在应该在RViz中看到panda机器人:
加载Motion Planning插件后,我们就可以对其进行配置。在“Displays”子窗口的“Global Options”选项卡中,将“Fixed Frame”字段设置为/panda_link0
现在,您可以开始为您的机器人(在这种情况下为Panda)配置插件。单击“Displays”中的“Motion Planning”。
确保“ Robot Description”字段设置为robot_description。
确保“Planning Scene Topic”字段设置为move_group/monitored_planning_scene。单击主题名称以显示主题名称下拉列表。
确保“Planned Path”下的“Trajectory Topic”设置为。/move_group/display_planned_path
在“Planning Request”中,将“Planning Group ”更改为panda_arm。您也可以在左下方的MotionPlanning面板中看到此内容。
与可视化机器人一起玩
有四种不同的重叠可视化:
move_group/monitored_planning_scene计划环境中的机械手配置(默认情况下处于活动状态)。
机械手的planned path(默认情况下处于活动状态)。
绿色:motion planning的开始状态(默认情况下处于禁用状态)。
橙色:motion planning的目标状态(默认情况下处于活动状态)。
可以使用复选框打开和关闭这些可视化的显示状态:
使用“Scene Robot”选项卡中的“Show Robot Visual”复选框来规划场景机器人。
使用“Planned Path”选项卡中的“Show Robot Visual”复选框,计划的路径。
使用“Planning Request”选项卡中的“Query Start State”复选框的开始状态。
使用“Planning Request”选项卡中的“Query Goal State”复选框的目标状态。
玩所有这些复选框可打开和关闭不同的可视化效果。
与机械臂互动
对于下一步,我们将只需要场景机器人,开始状态和目标状态:
选中“Planned Path”选项卡中的“Show Robot Visual ”复选框
取消选中“Scene Robot”选项卡中的“ Show Robot Visual”复选框
选中“Planning Request”选项卡中的“Query Goal State”复选框。
选中“Planning Request”选项卡中的“Query Start State”复选框。
现在应该有两个交互式标记。对应于橙色手臂的一个标记将用于设置运动计划的“Goal State”,对应于绿色手臂的另一个标记将用于设置运动计划的“Start State”。如果您没有看到交互式标记,请在RViz的顶部菜单中按Interact(注意:某些工具可能已隐藏,请在顶部菜单中按“ +”以添加Interact工具,如下所示)。
现在,您应该能够使用这些标记在周围拖动手臂并更改其方向。尝试一下!
关于碰撞
请注意当您尝试将一只手臂与另一只手臂碰撞时会发生什么。处于冲突状态的两个链接将变为红色。
在“Planning ”选项卡下的MotionPlanning插件中找到“Use Collision-Aware IK”复选框,您可以切换IK解算器的行为。选中该复选框时,求解器将继续尝试为所需的末端执行器姿势找到无碰撞的解决方案。如果未选中该选项,则求解器将允许在解决方案中发生冲突。无论复选框的状态如何,碰撞中的链接始终将始终显示为红色。
移出可到达的工作区
请注意当您尝试将末端执行器移出其可到达的工作空间时会发生什么。
移动关节或在零空间中
您可以使用“ Joints”选项卡移动7自由度机器人的单个关节和冗余关节。尝试移动“null space exploration”滑块,。
对panda使用运动计划
现在,您可以使用MoveIt RViz插件中的Panda开始运动计划。
将开始状态移动到所需的位置。
将目标状态移动到另一个所需的位置。
确保这两种状态均未与机器人本身发生冲突。
确保计划路径正在可视化。还要选中“Planned Path ”选项卡中的“Show Trail”复选框。
在MotionPlanning下窗Planning 选项卡中,按 Plan按钮。您应该能够看到手臂运动和轨迹的可视化。
选择特定的开始/目标状态
该Planning标签可让您从以下选项中为机器人的规划请求选择开始状态和目标状态:
当前状态current state
以前的状态previous state
随机采样状态 randomly sampled state
或.srdf在机器人文件中定义的所选计划组的命名状态。
Previous指先前计划尝试的开始状态。因此,previous在执行计划的运动路径后选择作为目标状态,可以轻松地返回到先前的机器人姿势。由于执行后状态current和previous开始/目标状态都会自动更新,因此您可以轻松地在两个状态之间来回移动,如下图所示。
观察轨迹路线图
您可以在RViz中逐点直观地检查轨迹。
从“面板”菜单中,选择“ MotionPlanning - Slider”。您将在RViz上看到一个新的Slider面板。
设定目goal pose,然后执行Plan。
使用“ Slider ”面板播放,例如,移动滑块,按“ Play ”按钮。
注意:将EEF设置到新目标后,请务必先运行plan,然后再运行Play;否则,您将看到上一个目标的航路点(如果有)。
计划笛卡尔运动
如果激活了“Use Cartesian Path”复选框,则机器人将尝试在笛卡尔空间中线性移动末端执行器。
执行轨迹,调整速度
成功计划后,单击“Plan & Execute”或“Execute”会将轨迹发送给机器人-在本教程中,由于您使用demo.launch,因此仅模拟了机器人。
最初,默认速度和加速度被缩放为机器人最大值的10%(0.1)。您可以在下面显示的“计划”选项卡中更改这些比例因子,或在机器人的moveit_config中更改这些默认值(在joint_limits.yaml中)。
下一步
RViz可视工具
许多教程都moveit_visual_tools用于逐步演示。在继续下一个教程之前,启用RvizVisualToolsGui是一个好主意。
从“面板Panels”菜单中,选择“ RvizVisualToolsGui ”。您将看到添加到RViz的新面板Panels。
保存配置
RViz使您可以将配置保存在下。您应该先执行此操作,然后再继续下一个教程。File->Save Config
由于我实在不想写C,所以下面我的教程是如何使用python‘控制机械臂。