随笔分类 - Franka
摘要:MoveItCpp 教程 介绍 MoveItCpp 是一个新的高级接口,一个统一的 C++ API,不需要使用 ROS 操作、服务和消息来访问核心 MoveIt 功能,并且是现有MoveGroup API的替代方案(不是完全替代) ,我们建议需要更多实时控制或行业应用的高级用户使用此接口。PickN
阅读全文
摘要:子坐标是在CollisionObjects上定义的坐标。 它们可用于定义您放置在场景中的对象上的兴趣点,例如瓶子的开口、螺丝刀的尖端或螺丝的头部。它们可用于规划和编写机器人指令,例如“拿起瓶子,然后将开口移到水龙头的喷口下方”,或“拿起螺丝刀,然后将其放在螺丝头上方”。 编写专注于机器人操纵对象的代
阅读全文
摘要:MoveIt 深度把握 本教程演示了如何在 MoveIt 任务构造器中使用抓握姿势检测 (GPD)和 Dex-Net 。 GPD(左)和 Dex-Net(右)用于生成拾取圆柱体的抓取姿势。 https://moveit.picknik.ai/main/_images/mtc_gpd_panda.gi
阅读全文
摘要:MoveIt Grasps 是一款用于抓取块或圆柱体等物体的抓取生成器,可用作 MoveIt 拾取和放置管道的替代品。MoveIt Grasps 提供基于可达性和接近、抬起和后退运动的笛卡尔规划来过滤抓取的功能。 抓握生成算法基于简单的长方体形状,不考虑摩擦锥或其他抓握动力。 MoveIt Gras
阅读全文
摘要:拾取和放置 注意:本教程中使用的功能已弃用。要执行拾取和放置操作,应使用 MoveIt 任务构造器 (MTC)(使用 MoveIt 任务构造器拾取和放置)。 在 MoveIt 中,抓取是使用 MoveGroup 接口完成的。为了抓取一个物体,我们需要创建moveit_msgs::Graspmsg,以
阅读全文
摘要:使用近似约束流形进行规划 OMPL 支持自定义约束,以使规划轨迹遵循所需的行为。约束可以在关节空间和笛卡尔空间中定义,后者基于方向或位置。在规划轨迹时,每个关节状态都需要遵循所有设置的约束,默认情况下,这是通过拒绝采样来执行的。然而,这可能会导致非常长的规划时间,特别是当约束非常严格且拒绝率相应较高
阅读全文
摘要:时间参数化 MoveIt 目前主要是一个运动规划框架 - 它规划关节或末端执行器的位置,但不规划速度或加速度。但是,MoveIt 确实利用后处理来对速度和加速度值的运动轨迹进行时间参数化。下面我们将解释 MoveIt 这一部分所涉及的设置和组件。 速度控制 来自文件 默认情况下,MoveIt 将关节
阅读全文
摘要:本节将引导您了解 C++ 示例代码,该代码可让您在 RViz 中移动和与机器人手臂交互时可视化机器人本身与世界之间的碰撞接触点。 入门 运行代码 使用 Roslaunch 启动文件直接从 moveit_tutorials 运行代码: roslaunch moveit_tutorials visual
阅读全文
摘要:创建 MoveIt 插件 本节详细说明了如何在 ROS 中添加插件。两个必需元素是基类和插件类。插件类继承自基类并覆盖其虚拟函数。用于此目的的主要库是 pluginlib。本教程包含三种不同类型的插件,即运动规划器、控制器管理器和约束采样器。 运动规划器插件 在本节中,我们将展示如何将新的运动规划器
阅读全文
摘要:在Moveit中, 运动规划器被设置为规划路径。 但是, 我们经常需要预处理运动规划请求和后处理规划路径(例如, 用于时间参数化)。 在这种情况下, 我们使用规划管道,它将运动规划器与预处理和后处理阶段链接在一起。预处理和后处理阶段称为规划请求适配器,可以通过 ROS 参数服务器的名称进行配置。在本
阅读全文
摘要:在 MoveIt 中,运动规划器使用插件基础结构加载。这允许 MoveIt 在运行时加载运动规划器。在此示例中,我们将运行执行此操作所需的 C++ 代码。 入门 如果您还没有这样做,请确保您已经完成入门指南中的步骤。 运行演示 打开两个 shell。在第一个 shell 中启动 RViz 并等待所有
阅读全文
摘要:在本教程中,我们将研究如何使用规划场景差异来执行两项操作: 在世界中添加和移除物体 将物体安装到机器人上或从机器人上卸下 入门 如果您还没有这样做,请确保您已经完成入门指南中的步骤。 运行代码 打开两个 shell。在第一个 shell 中启动 RViz 并等待所有内容完成加载: ros2 laun
阅读全文
摘要:PlanningSceneMonitor是维护最新规划场景的推荐接口。RobotState、CurrentStateMonitor、PlanningScene、PlanningSceneMonitor和PlanningSceneInterface之间的 关系一开始可能非常令人困惑。本教程旨在阐明这些
阅读全文
摘要:moveit_resources_panda_moveit_config 是一个在 MoveIt 框架中常用的资源包,包含了 Panda 机器人模型(Franka Emika Panda)的配置文件。这个包用于测试和演示 MoveIt 的功能。它通常包含以下内容: URDF/XACRO 文件:描述
阅读全文
摘要:规划场景 PlanningScene类提供了用于碰撞检测和检查约束的主要接口。 在本教程中, 我们将探索此类的C++接口。 入门 如果您还没有这样做,请确保您已经完成入门指南中的步骤。 完整代码 完整代码可以在 MoveIt GitHub 项目中看到。 设置 可以使用RobotModel或URDF和
阅读全文
摘要:1. 编译调试版本: 在使用 colcon build 编译工作区时,你需要确保以调试模式编译,添加 --cmake-args -DCMAKE_BUILD_TYPE=Debug 参数: colcon build --cmake-args -DCMAKE_BUILD_TYPE=Debug 2. 使用
阅读全文
摘要:moveit_resources stderr: gz_ros2_controlCMake Error at CMakeLists.txt:27 (find_package): By not providing "Findgz_sim_vendor.cmake" in CMAKE_MODULE_PA
阅读全文
摘要:Robot Model and Robot State 在本节中,我们将向您介绍用于在 MoveIt 中使用运动学的 C++ API。 RobotModel 和 RobotState 类 RobotModel 和 RobotState 类是提供对机器人运动学访问权限的核心类。 RobotModel
阅读全文
摘要:URDF MoveIt 2 从 URDF(统一机器人描述格式)开始,这是用于在 ROS 和 ROS2 中描述机器人的原生格式。在本教程中,您将找到 URDF 的资源、重要提示以及 MoveIt 2 特定要求的列表。 URDF 资源 URDF ROS Wiki 页面 - URDF ROS Wiki
阅读全文
摘要:在 MoveIt 中,最简单的用户界面是通过 MoveGroupInterface 类。 它为用户可能想要执行的大多数操作提供了易于使用的功能,特别是设置关节或姿势目标、创建运动计划、移动机器人、将对象添加到环境中以及从机器人上连接/分离对象。 此接口通过 ROS 主题、服务和操作与 MoveGro
阅读全文