Ros2 - Moveit2 - Grasps(抓握)

news/2024/11/13 8:54:02/文章来源:https://www.cnblogs.com/ai-ldj/p/18410137

MoveIt Grasps 是一款用于抓取块或圆柱体等物体的抓取生成器,可用作 MoveIt 拾取和放置管道的替代品。MoveIt Grasps 提供基于可达性和接近、抬起和后退运动的笛卡尔规划来过滤抓取的功能。

抓握生成算法基于简单的长方体形状,不考虑摩擦锥或其他抓握动力。

MoveIt Grasps 可与平行手指夹持器和吸盘夹持器一起使用。

入门

如果您还没有这样做,请确保您已经完成入门指南中的步骤。

安装 MoveIt Graps

从源安装

moveit_grasps存储库克隆到catkin 工作区。在本教程中,我们使用来自panda_moveit_config的 Franka Emika 的 Panda 机器人设置

cd ~/ws_moveit/src
git clone -b $ROS_DISTRO-devel https://github.com/moveit/moveit_grasps.git

使用rosdep工具自动安装其依赖项:

rosdep install --from-paths . --ignore-src --rosdistro $ROS_DISTRO

构建工作区:

catkin build

从 Debian 安装

注意:截至 2019 年 4 月 11 日,此软件包尚未发布:

sudo apt-get install ros-$ROS_DISTRO-moveit-grasps

演示脚本

我们提供了 4 个演示脚本来展示 MoveIt Grasps,并用于可视化 MoveIt Grasps 配置参数。

在运行任何演示之前,您必须首先使用以下命令启动 Rviz:

roslaunch moveit_grasps rviz.launch

默认设置使用两指夹持器。要使用吸盘夹持器运行演示,请在启动 Rviz 时指定夹持器:

roslaunch moveit_grasps rviz.launch gripper:=suction

注意:panda_moveit_config的发布版本可能落后于源版本。如果您对演示程序有疑问,最好先从源代码下载并构建panda_moveit_config

1)整个 MoveIt 抓取管道

要查看整个 MoveIt Grasps 管道的运行情况,请运行:

roslaunch moveit_grasps grasp_pipeline_demo.launch

2)可视化夹持器参数

要可视化夹持器特定参数:

roslaunch moveit_grasps grasp_poses_visualizer_demo.launch

结果看起来应该是这样的:

3)可视化抓取生成

此工具演示了在抓握生成过程中评分的几个概念。它使用以下方法确定所选的抓握方式:

  • 理想 TCP 抓握姿势:生成器将根据首选抓握的输入来偏向所选抓握。例如,这允许您说“我希望抓握物体时末端执行器指向左下方”。

  • 基于姿势的抓握分数加权:通过增加特定轴的权重,偏向某些平移或旋转轴以获得更高的分数。

  • 基于深度的抓握分数加权:与其他参数相比,更深的抓握深度(手指围绕物体的程度)更具偏向性

  • 基于宽度的抓握得分权重:(仅适用于平行手指抓握器)相对于其他参数,更宽的手指抓握(物体和指垫之间有多少可用空间)

  • 悬垂抓握得分权重:(仅适用于吸盘夹持器)使吸盘抓握偏向与物体完全重叠。此评分指标使用与物体接触的吸盘区域百分比的平方。通过使用平方,具有多个吸盘区域(体素)的吸盘夹持器偏向于与一个体素 100% 重叠的解决方案,而不是一个体素 50% 重叠,另一个体素 50% 重叠。

可视化:

roslaunch moveit_grasps grasp_generator_demo.launch

 

4)掌握过滤器

演示掌握过滤:

roslaunch moveit_grasps grasp_filter_demo.launch

经过过滤后,颜色代表以下内容:

  • 红色 - 经过 ik 过滤的草

  • 粉色-通过碰撞过滤的抓取

  • 洋红色-通过切割平面过滤的抓取

  • 黄色-按方向过滤抓取

  • 蓝色 - pregrasp 由 ik 过滤

  • CYAN-通过碰撞过滤的预抓取

  • 绿色-有效

5)吸抓Pipeline

要演示使用吸盘夹持器的管道,请运行:

roslaunch moveit_grasps suction_grasp_pipeline_demo.launch

概念概述

MoveIt Grasps 基于三个主要组件:

  • 抓握生成器使用末端执行器运动学和物体形状来采样抓握姿势并使用几何评分函数对其进行优化。

  • 抓取过滤器通过搜索 IK 解决方案来验证抓取候选的可行性,以验证其可达性。

  • 抓取规划器计算构成完整抓取动作的笛卡尔接近、提升和后退轨迹。

注意:理想情况下,Grasp Planner最终将被逐步淘汰,取而代之的是新的MoveIt Task Constructor

为了运行完整的掌握管道,需要按顺序应用这三个组件。

此外,Grasp Generator还使用以下组件:

  • Grasp Scorer支持多种启发式方法,用于在已知问题/应用信息的情况下判断哪些抓握方式是有利的

在文件src/grasp_pipeline_demo.cpp中可以找到生成、过滤和规划抓取动作的示例。运行说明如下。

机器人无关的配置

MoveIt Grasps 需要在启动时指定两个配置文件:

  • ROBOT_grasp_data.yaml描述了机器人末端执行器的几何形状,并且针对每个机器人都是定制的

  • moveit_grasps_config.yaml配置Grasp GeneratorGrasp FilterGrasp Planner的行为。此外,它还包含许多可选的调试和可视化选项,使 MoveIt Grasps 的使用更加容易。

除了本教程之外,请参阅以下示例文件中的注释以获取有关参数的进一步解释:

ROBOT_grasp_数据.yaml

典型示例末端执行器配置使用 Franka Emika 的 Panda:config_robot/panda_grasp_data.yaml

在该文件中,您将找到使用吸盘或手指夹持器定制 MoveIt Grasps 所需的所有夹持器特定参数。

ROBOT_grasp_data.yaml文件中参数说明图

  1. 手指夹持器参数

../../../_images/finger_gripper_explanation.jpg

  1. 吸盘参数

../../../_images/suction_gripper_explanation.jpg

*这些变量可以直接在ROBOT_grasp_data.yaml文件中配置。

**您可以通过设置ROBOT_grasp_data.yaml文件中的tcp_name变量来配置工具中心点链接的名称

moveit_grasps_config.yaml

可以在config/moveit_grasps_config.yaml中找到Grasp GeneratorGrasp FilterGrasp Planner的示例配置文件

应用与机器人无关的配置

要应用您的 yaml 配置,请将它们作为 rosparams 加载到您的抓取应用程序/ROS 节点中。有关示例,请参阅文件launch/grasp_pipeline_demo.launch中的以下片段

<node name="moveit_grasps_demo" pkg="moveit_grasps" type="moveit_grasps_pipeline_demo"><param name="ee_group_name" value="hand"/><param name="planning_group_name" value="panda_arm"/><rosparam command="load" file="$(find moveit_grasps)/config_robot/panda_grasp_data.yaml"/><rosparam command="load" file="$(find moveit_grasps)/config/moveit_grasps_config.yaml"/>
</node>

请注意,机器人的规划组和末端执行器组必须在两个 YAML 文件之外指定,分别在参数 ee_group_nameplanning_group_name 中。

由于参数集非常庞大,你可以使用不同的演示启动文件来可视化效果。你可以将你的配置应用到本教程后面描述的演示启动文件中。

其他配置说明

tcp_to_eef_mount_transform

 

表示tcp_to_eef_mount_transform从用于抓取姿势的工具中心点到末端执行器的安装链接的变换。提供此参数是为了允许不同的 URDF 末端执行器协同工作而无需重新编译代码。

在 MoveIt 中,驱动的末端执行器手指应始终具有父链接,通常是腕部链接或手掌链接。此腕部链接应使其手掌的 Z 轴指向您想要抓取的物体,即您的食指指向的位置。

这是 John Craig 于 1955 年在《机器人学》中制定的惯例。然而,许多 URDF 不遵循此惯例,因此此转换允许您修复它。

此外,x 轴应该沿着抓握的物体指向上方,即如果你握着啤酒瓶的话,x 轴就是啤酒瓶的圆轴。

y 轴应该指向其中一个手指。

 从货箱拣选切换到货架拣选
GraspGenerator 中的setIdealGraspPoseRPY()和方法setIdealGraspPose()可用于选择理想的抓取方向。

这些方法用于对抓握候选进行评分,以偏向更接近所需方向的抓握。

这在诸如箱子和架子拾取之类的应用中很有用,在这些应用中,您可能希望用垂直对齐的抓手从箱子中拾取物体,或者用水平对齐的抓手从架子中拾取物体。

经过测试的机器人

  • UR5

  • 雅科2

  • 巴克斯特

  • 放射科医师协会

  • 熊猫

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796019.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pbootcms模板后台登录页面在哪里修改

在PBootCMS中,如果你想修改后台登录页面的内容,比如文字和链接,可以通过编辑相应的HTML文件来实现。以下是具体的步骤: 修改后台登录页面备份文件:在修改任何文件之前,务必先备份相关文件,以防万一操作失误可以恢复。找到登录页面文件:打开你的PBootCMS安装目录,找到a…

一文总览 CES 升级新特性,全面了解云上的资源使用

摘要:使用云监控服务使您全面了解云上的资源使用情况、业务的运行状况,并及时收到异常告警做出反应,保证业务顺畅运行。1. 简介 云监控服务(CES)为用户提供一个针对弹性云服务器、带宽等资源的立体化监控平台,涵盖云基础设施、高阶服务、外网网络质量监控,是基于主机监控…

解读GaussDB(for MySQL) 冷热存储分离实现原理

摘要:GaussDB(for MySQL)冷热存储分离特性,支持用户直接针对Innodb的page进行归档和回迁操作,且无需调整上层业务即可访问冷数据。本文分享自华为云社区《GaussDB(for MySQL)新特性解读:冷热存储分离》,作者:GaussDB 数据库。 技术背景 业务长期运行,但随着时间推移,越…

WTF???

不是哥们,这紫了之后还能再升一遍?哦,喜闻乐见的 plagiarism 事件啊,那没事了

算法与数据结构——二分查找插入点

二分查找插入点 二分查找不仅可用于搜索目标元素,还可以解决许多变种问题,比如搜索目标元素的插入位置。 无重复元素情况Question 给定一个长度为n的有序数组nums和一个元素target,数组不存在重复元素。现将target插入数组nums中,并保持其有序性。若数组中已存在元素target…

2022 CSP-J 阅读程序3

1 2022 CSP-J 阅读程序3 阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 √,错误填;除特 殊说明外,判断题 1.5 分,选择题 3 分) 源代码 #include<iostream>using namespace std;int n,k;int solve1() {int l=0,r=n;while(l<=r){int mid=(l+r)/2;…

第二届熵密杯-广外女生青春版

晨曦初始谜题1 由源码可知,有固定的前缀,且长度为18,超过一个块的长度,可以通过求方程的形式先将key求出来,再将整个key带入解密函数得到加密前的字符串 求key # sage N_HEX = "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123" N = Integer…

测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?

墨问西东是一家创业公司,很难一下子配齐像大公司那样的研发团队,这类 AI 编程辅助工具其实在一定程度上帮助我们的研发同学成长为全栈工程师,一个人就能顶上一个团队。内容来源 MacTalk 公众号,作者池建强 墨问西东是一家创业公司,很难一下子配齐像大公司那样的研发团队,…

一文看懂Prometheus告警原理及过程

本文详细介绍了如何在Prometheus中自定义告警规则,包括规则构成、Prometheus配置、告警流程以及告警解除的处理方法,特别关注了告警解除后的通知策略。摘要由CSDN通过智能技术生成目录 1. 自定义告警规则 2. 告警规则编写 3. prometheus配置 4. 告警过程 5. 告警解除 5.1 对s…

pytorch安装: cuda、cudatoolkit、torch版本对照

在 PyTorch 官网上有如下安装对照表,同时也有历史版本安装对照表从零开始配置python深度学习环境大概有如下配置步骤: 方案一: 电脑安装显卡驱动,然后安装CUDA、cuDNN,安装miniconda3。前面都是在电脑基础环境配置,后面的操作都是在conda环境中,安装torch、cudatoolkits…

AI实战 | 领克汽车线上营销助手:全面功能展示与效果分析

本篇文章的主要目的是为大家提供实现思路,以及如何更好地开发一个助手,而不仅仅是简单地进行拆解。如果采取拆解的方式,一篇文章可能会长达2万+字,还需要配以数十张图片,这将会非常繁琐。因此,针对拆解的详细内容,我计划单独制作一期视频,以帮助大家更清晰地理解。感谢…

ThreadLocal源码分析-

ThreadLocal源码分析 ThreadLocal是解决线程安全问题的一种方法,它通过为每个线程提供一个独立的变量副本避免了变量并发访问的冲突问题。一个ThreadLocal变量只与当前自身线程相关,对其他线程是隔离的。下面这段代码展示了ThreadLocal的使用。 public class test {private s…