当前位置: 首页 > news >正文

Ros2 - Moveit2 - DeepGrasp(深度抓握)

本教程演示了如何在 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 生成成功的抓取。

相关文章:

  • Open3D 体素化下采样
  • Python面向对象编程精解:从两大编程范式到类与对象实战
  • 前后端分离博客 Weblog 项目实战
  • 启动窗体自动输入上次内容——CAD c#二次开发
  • 50. Pow(x, n)
  • 『 测试 』软件测试全流程与Bug管理核心要点解析
  • 前端~三维地图(cesium)动态材质扩散圆环
  • 编译openssl源码
  • LLM定制新路径:微调与上下文学习的博弈与融合
  • JS中本地存储(LocalStorage)和会话存储(sessionStorage)的使用和区别
  • python使用matplotlib画图
  • 交易所功能设计的核心架构与创新实践
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(21):复习
  • 一般枚举题目合集
  • 【HALCON】 HALCON 教程:正确使用 `get_dict_tuple` 获取字典内容
  • gd32e230c8t6 keil6工程模板
  • loss = -F.log_softmax(logits[:, -1, :], dim=1)[0, irrational_id]
  • 快消零售AI转型:R²AIN SUITE如何破解效率困局
  • CK-S654-PA60一拖四分体式半导体电子货架专用RFID读写器|读码器接线使用说明
  • java day 11
  • 沧州低空经济起飞:飞行汽车开启千亿赛道,通用机场布局文旅体验
  • 王征、解宁元、牛恺任西安市副市长
  • 迪奥部分客户数据遭泄露,公司称正持续展开调查
  • 《新时代的中国国家安全》白皮书(全文)
  • 富家罹盗与财富迷思:《西游记》与《蜃楼志》中的强盗案
  • 哈尔滨工业大学原副校长王魁业逝世,享年92岁