机器人运动控制

机器人运动控制

项目内容
共24个实验
实验1 实验1:MoveIt! 入门
这是ROS Kinetic版教程,仅面向ROS Kinetic用户。

如果您使用的是ROS的Melodic 发布,我们建议您使用Melodic 教程或最新的主分支教程。

实验2 实验2:RViz快速入门
开始使用MoveIt!的最快方法是通过它的RViz插件。Rviz是ROS中的主要可视化工具,也是调试机器人的非常有用的工具。MoveIt !Rviz 插件允许您设置虚拟环境(场景),交互式地为机器人创建启动和目标状态,测试各种运动规划器,并可视化输出。
实验3 实验3:Move Group C++ 接口
在MoveIt!中,最简单的用户接口是通过MoveGroup类。它为用户可能要执行的大多数操作提供了易于使用的功能,特别是设置关节或姿势目标,创建运动计划,移动机器人,将对象添加到环境中以及从机器人上附着/分离对象。该接口通过ROS主题,服务和操作与MoveGroup节点进行通信。
实验4 实验4:Move Group Python 接口
一个最简单的MoveIt!用户接口是通过基于python的MoveGroup接口实现的。这些包装器为普通用户可能需要的大多数操作提供了功能,特别是设置关节或姿势目标、创建运动计划、移动机器人、向环境中添加对象和从机器人上附加/分离对象。
实验5 实验5:MoveIt!指挥官脚本
moveit_commander Python包为MoveIt!中提供的功能提供了包装器。简单的接口可用于运动规划,计算Cartesian 路径,拾取和放置。moveit_commander包还包括一个命令行接口moveit_commander_cmdline.py。
实验6 实验6:机器人模型和机器人状态
在本节中,我们将带您了解在MoveIt!中使用运动学的C ++ API。
实验7 实验7:规划场景
PlanningScene类提供了将用于碰撞检测和约束检查的主接口。在本教程中,我们将探索这个类的c++接口。
实验8 实验8:规划场景ROS API
在本教程中,我们将研究如何使用计划场景差异执行两个操作:

向世界添加和删除对象
在机器人上附加和分离物件

实验9 实验9:运动计划API
在MoveIt!中,使用插件基础结构来加载运动规划器。这允许MoveIt!在运行时加载运动规划器。在此示例中,我们将浏览执行此操作所需的C ++代码。
实验10 实验10:可视化碰撞
本节将带您浏览c++示例代码,使您可以在RViz中移动机器人手臂并与之交互时,可视化机器人,自身与世界之间的碰撞接触点。
实验11 实验11:时间参数化
MoveIt!当前主要是运动学运动计划框架-它计划关节或末端执行器的位置,但不计划速度或加速度。然而,MoveIt !利用后处理时间参数化运动轨迹的速度和加速度值。下面我们解释MoveIt!这部分涉及的设置和组件。
实验12 实验12:用近似约束流形规划
OMPL支持自定义约束,以支持遵循期望行为的规划轨迹。约束可以在关节空间和Cartesian空间中定义,Cartesian空间可以是基于方向的,也可以是基于位置的。在规划轨迹时,每个关节状态都需要遵循所有设置的约束,默认情况下是通过拒绝采样来执行。然而,这可能会导致非常长的计划时间,特别是当约束非常严格且拒绝率相应较高时。

Sucan等人提出了一种方法,他们可以预先计算约束流形的近似值,并在此基础上进行轨迹规划。OMPL插件包含针对给定约束集执行此操作并将其保存在数据库中的功能。在以后的实例中,可以使用任何OMPL计划程序来加载数据库以用于约束计划,从而极大地减少了计划时间。

本教程包括有关如何构造约束近似数据库以及如何将其用于约束轨迹规划的步骤。

实验13 实验13:拾放教程
在MoveIt!中,使用MoveGroup接口完成抓取。为了抓取物体,我们需要创建moveit_msgs::Grasp msg ,以允许定义抓取操作中涉及的各种姿势和姿势。
实验14 实验14:MoveIt!设置助手
这是ROS Kinetic版教程,仅面向ROS Kinetic用户。

如果您使用的是ROS的Melodic 发布,我们建议您使用Melodic 教程或最新的主分支教程。

实验15 实验15:URDF 和 SRDF
这是ROS Kinetic版教程,仅面向ROS Kinetic用户。

如果您使用的是ROS的Melodic 发布,我们建议您使用Melodic 教程或最新的主分支教程。

实验16 实验16:低层控制器
在本节中,我们将逐步配置机器人上带控制器的MoveIt!。我们将假定您的机器人为机器人的手臂提供了FollowJointTrajectory动作服务,并且为抓取器提供了(可选)GripperCommand服务。如果您的机器人不提供此功能,我们建议使用ROS控制框架,以便在硬件通信层周围轻松添加此功能。
实验17 实验17:TRAC-IK运动学求解器
这是ROS Kinetic版教程,仅面向ROS Kinetic用户。

如果您使用的是ROS的Melodic 发布,我们建议您使用Melodic 教程或最新的主分支教程。

实验18 实验18:运动学配置
在本节中,我们将研究一些参数,这些参数用于为机器人配置运动学。
实验19 实验19:伪控制器管理器
这是ROS Kinetic版教程,仅面向ROS Kinetic用户。

如果您使用的是ROS的Melodic 发布,我们建议您使用Melodic 教程或最新的主分支教程。

实验20 实验20:自定义约束采样器
本教程是一个存根。如果您有时间帮助我们改进它,请这样做!
实验21 实验21:OMPL 规划器
开放的运动规划库(OMPL)是最先进的基于采样的运动规划算法一个强大的集合,在MoveIt!中是默认的规划器。有关更多信息,请参见项目网页:http://ompl.kavrakilab.org/
实验22 实验22:CHOMP 规划器
这是ROS Kinetic版教程,仅面向ROS Kinetic用户。

如果您使用的是ROS的Melodic 发布,我们建议您使用Melodic 教程或最新的主分支教程。

实验23 实验23:规划适配器教程
规划请求适配器是MoveIt中的一个概念,它可用于修改运动规划器的轨迹(预处理和/或后处理)。MoveIt!中现有规划适配器的一些示例包括AddTimeParameterization、FixWorkspaceBounds、FixStartBounds、FixStartStateCollision、FixStartStatePathConstraints、CHOMPOptimizerAdapter等。使用规划适配器的概念,可以在管道中使用多种运动规划算法来生成可靠的运动规划。例如,运动规划的示例管道可能包括OMPL生成的初始规划,然后CHOMP可以对其进行优化,从而生成可能比OMPL或CHOMP单独生成的路径更好的运动规划。类似地,使用规划适配器的概念,可以根据机器人所处的环境混合和匹配其他运动规划器。本节提供了一个循序渐进的教程,介绍如何使用混合和匹配不同的运动规划器,并提供了何时使用哪种特定的运动规划器的见解。
实验24 实验24:集成/单元测试
如何在各种机器人上测试MoveIt!的更改,包括单元测试和集成测试。
注意: 这是一个存根教程,将在以后进行扩展

实验1:MoveIt! 入门

共24个实验

参加本项目
机器人运动控制