Ros2 - Moveit2 - DeepGrasp(深度抓握)

news/2024/11/14 12:51:02/文章来源:https://www.cnblogs.com/ai-ldj/p/18417995

MoveIt 深度把握

本教程演示了如何在 MoveIt 任务构造器中使用抓握姿势检测 (GPD)和 Dex-Net 。

GPD(左)和 Dex-Net(右)用于生成拾取圆柱体的抓取姿势。

https://moveit.picknik.ai/main/_images/mtc_gpd_panda.gif

 

入门

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

为了运行演示,需要安装其他依赖项。因此,深度抓取包位于其自己的存储库中。请参阅Deep Grasp Demo。此存储库包含有关安装、运行演示、模拟深度传感器和性能提示的详细说明。

 

演示将允许您在 rviz 中可视化结果,并根据需要使用 Gazebo。

概念概述

MoveIt 任务构造器包含一个DeepGraspPose生成器阶段。此阶段不直接包含 GPD 或 Dex-Net 的实现。相反,与 MoveIt 任务构造器的通信是通过 ROS 操作消息实现的。该DeepGraspPose阶段包含一个与操作服务器通信的操作客户端。操作服务器的实现位于moveit_task_constructor_dexnet和moveit_task_constructor_gpd包中。操作服务器将抓取候选连同相关成本一起作为反馈发送回操作客户端。

消息的相关字段可以在中看到moveit_task_constructor_msgs/action/SampleGraspPoses.action

 

使用DeepGraspPose阶段很简单。将下面的阶段添加到当前任务中。实现可以在Deep Grasp Task中看到。

auto stage = std::make_unique<stages::DeepGraspPose<moveit_task_constructor_msgs::SampleGraspPosesAction>>(action_name, "generate grasp pose");

模板参数是操作消息。指定action_name服务器和客户端之间通信的命名空间。可选地,可以提供抓取采样和服务器连接的超时。默认情况下,这些设置为无限时间。

抓握姿势检测

GPD 从点云中抽取抓握候选样本,并使用 CNN 来分类抓握候选是否会成功。演示中,桌子平面会自动从点云中分割出来。这很有用,因为如果没有移除,GPD 会在这个平面周围抽取抓握候选样本。

gpd_config.yaml中的workspace和 num_samples参数可以提高性能。第一个参数指定立方体的体积,以搜索以点云坐标原点为中心的抓握候选点。第二个参数指定从点云中采样的数量,以检测抓握候选点。

Dex-Net

Dex-Net 将从图像中抽取抓握候选点。必须提供彩色和深度图像。Dex-Net 使用抓握质量卷积神经网络 (GQ-CNN) 来预测抓握候选点成功的概率。GQ-CNN 是使用朝下的摄像头在图像上进行训练的。因此,网络对摄像头视点很敏感,当摄像头朝下时性能最佳。

将dex-net_4.0_pj.yaml中的参数设置deterministic为 0, 以进行非确定性抓取采样。

 

运行演示

提供了演示的点云和图像,但您可以选择使用来自 Gazebo 中的模拟深度相机的传感器数据。
由于摄像机视点的敏感性,建议使用为 Dex-Net 演示提供的圆柱体图像。
相机视点部分显示如何将相机更改为不同的位置。这将根据对象提高性能。
深度传感器数据部分展示了如何使用模拟深度相机收集数据。

虚拟控制器

首先,启动基本环境:

roslaunch moveit_task_constructor_demo demo.launch

接下来,启动 GPD 或 Dex-Net 演示:

roslaunch moveit_task_constructor_gpd gpd_demo.launch
roslaunch moveit_task_constructor_dexnet dexnet_demo.launch

结果应与教程顶部的两个动画类似。

Gazebo

确保您完成了Gazebo 支持的深度掌握演示安装指南。

gpd_demo.launch中的load_cloud参数dexnet_demo.launch中的load_images参数指定是否从文件加载传感器数据。将其中一个参数设置为 false 即可使用模拟深度摄像头。

 

首先,启动 Gazebo 环境:

roslaunch deep_grasp_task gazebo_pick_place.launch

接下来,启动 GPD 或 Dex-Net 演示:

roslaunch moveit_task_constructor_gpd gpd_demo.launch
roslaunch moveit_task_constructor_dexnet dexnet_demo.launch

下面的动画演示了 Dex-Net 使用 Gazebo 中的模拟深度相机生成抓取姿势的功能。您可能会注意到 GPD 可以成功拾取圆柱体。但是,该算法在处理更复杂的物体(例如杆夹)(如右图所示)时会遇到困难。尝试使用workspace和 num_samples参数,看看您是否可以使用 GPD 生成成功的抓取。

 

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

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

相关文章

(装)K8s 总体架构及目录结构

原文:https://www.guoshaohe.com/cloud-computing/kubernetes-source-read/12491. kubernetes 总体架构目前想对kubernetes 1.21 的源码进行一次阅读分析,本篇文章是对k8s的整体架构进行一个大致分析,先要搞清楚每个组件的功能和任务,在根据不同的组件进行深度的源码分析。…

[C++ Daily] calloc 与 malloc

转载 C++ 面试突破 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 Kind BorglQI的评论

贼好用!五分钟搭建一个美观且易用的导航页面!

Pintree 是一个开源项目,旨在将浏览器书签导出成导航网站。通过简单的几步操作,就可以将书签转换成一个美观且易用的导航页面。大家好,我是 Java陈序员。 今天,给大家介绍一个贼好用的导航网站搭建工具,只需通过几步操作,就能搭建出个性化导航网站!关注微信公众号:【Ja…

26.删除有序数组中的重复项 Golang实现

题目描述:给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以…

Hadoop(十一)HDFS 读写数据流程

HDFS读写数据流程 一、写数据流程1、客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在 2、NameNode返回是否可以上传 3、客户端请求第一个Block上传到哪几个DataNode服务器上 4、NameNode返回3个DataNode节点,分…

产品经理的日常工作

杜工库 声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/ 如出现转载未声明 将追究法律责任~谢谢合作

Hadoop(十一)HDFS 写数据流程

HDFS写数据流程 一、写数据流程1、客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在 2、NameNode返回是否可以上传 3、客户端请求第一个Block上传到哪几个DataNode服务器上 4、NameNode返回3个DataNode节点,分别…

windows定时执行python程序

先写个 bat 脚本,执行 Python 程序 :: 根据实际情况修改 Python 解释器的路径 set PYTHON=D:\python\python.exe set CODE_DIR=D:\code\projectcd /d "%CODE_DIR%" :: 启动 Python 程序 echo Running main.py... %PYTHON% main.py > nohup.log 2>&1echo A…

Prometheus修改数据存储位置

Prometheus修改数据存储位置 Prometheus的数据存储位置可以通过配置文件中的 --storage.tsdb.path 参数来指定。默认情况下,数据存储在Prometheus安装目录下的 data 文件夹中。要修改数据存储位置,可以在Prometheus启动命令中添加或修改该参数。 步骤 1:修改 Prometheus 启动…

AIoTengine智能物联引擎

新一代数智基础设施,依托AIoT2.0技术,实现感知、认知、决策和执行的一体化融合,打造云边协同的分布式智能物联引擎,驱动行业数智化革新。

WPF打包独立运行的程序

方案一:使用Costura.Fody插件将自己写的程序打包成一个可以独立运行的EXE文件 第1步:安装Costura.Fody 首先用Visual Studio 2017打开你的解决方案,依次找到“工具”---“NuGet包管理” - “管理解决方案的NuGet程序包”,到了这一步会打开NuGet-解决方案页面,在浏览选项下面…

物联网平台推荐:ThingsKit

ThingsKit物联网平台 随着物联网技术的不断进步,企业和开发者对于一个可靠、高效且易于使用的物联网平台的需求日益增长。在这样的背景下,ThingsKit物联网平台以其卓越的性能和丰富的功能,成为了市场上的一股清流。 一、ThingsKit物联网平台概述 ThingsKit是一个功能强大、易…