首页 > 编程语言 >Ros2 - Moveit2 - DeepGrasp(深度抓握)

Ros2 - Moveit2 - DeepGrasp(深度抓握)

时间:2024-09-18 10:01:33浏览次数:11  
标签:Dex task 演示 GPD Moveit2 DeepGrasp 抓握 Net Ros2

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 生成成功的抓取。

 

标签:Dex,task,演示,GPD,Moveit2,DeepGrasp,抓握,Net,Ros2
From: https://www.cnblogs.com/ai-ldj/p/18417995

相关文章

  • ROS2图形化方式新建功能包工具- Turtle Nest
    提示:全文AI生成。链接:https://github.com/Jannkar/turtle_nest配置TurtleNest使用说明(中文版)一、TurtleNest简介正如海龟巢是幼海龟的诞生地,ROS2TurtleNest是ROS2包的诞生和成长之地。TurtleNest提供了一个易用的图形用户界面(GUI),简化了ROS2包的创建......
  • Ros2 - Moveit2 - Grasps(抓握)
    MoveItGrasps是一款用于抓取块或圆柱体等物体的抓取生成器,可用作MoveIt拾取和放置管道的替代品。MoveItGrasps提供基于可达性和接近、抬起和后退运动的笛卡尔规划来过滤抓取的功能。抓握生成算法基于简单的长方体形状,不考虑摩擦锥或其他抓握动力。MoveItGrasps可与平行......
  • Ros2 - Moveit2 - Pick And Place(拾取和放置)
    拾取和放置注意:本教程中使用的功能已弃用。要执行拾取和放置操作,应使用MoveIt任务构造器(MTC)(使用MoveIt任务构造器拾取和放置)。 在MoveIt中,抓取是使用MoveGroup接口完成的。为了抓取一个物体,我们需要创建moveit_msgs::Graspmsg,以便定义抓取操作中涉及的各种姿势和姿......
  • ROS2 - Moveit2 - Planning with Approximated Constraint Manifolds(使用近似约束流
    使用近似约束流形进行规划OMPL支持自定义约束,以使规划轨迹遵循所需的行为。约束可以在关节空间和笛卡尔空间中定义,后者基于方向或位置。在规划轨迹时,每个关节状态都需要遵循所有设置的约束,默认情况下,这是通过拒绝采样来执行的。然而,这可能会导致非常长的规划时间,特别是当约束非......
  • Ros2 - Moveit2 - TimeParameter(时间参数化)
    时间参数化MoveIt目前主要是一个运动规划框架-它规划关节或末端执行器的位置,但不规划速度或加速度。但是,MoveIt确实利用后处理来对速度和加速度值的运动轨迹进行时间参数化。下面我们将解释MoveIt这一部分所涉及的设置和组件。 速度控制来自文件默认情况下,MoveIt将关......
  • ROS2开发前置基础知识
    前言笔者发现现在市面上(主要是某站上)的ros2相关的教程内容大多不太基础(例如古某居(手动狗头保命),对于那些不熟悉Linux和C++甚至Python的童鞋来说不太友好,之前笔者自己在跟着学习过程中也有不少疑惑,踩了不少坑,现进行一些前置知识的总结(主要学习古某居和鱼香ros的教程,墙裂推荐),一......
  • Ros2- Moveit2 - Visualizing Collisions(可视化碰撞)
    本节将引导您了解C++示例代码,该代码可让您在RViz中移动和与机器人手臂交互时可视化机器人本身与世界之间的碰撞接触点。入门运行代码使用Roslaunch启动文件直接从moveit_tutorials运行代码:roslaunchmoveit_tutorialsvisualizing_collisions_tutorial.launch现在......
  • ROS2 - Moveit2 - 创建Moveit插件(MoveIt Plugins)
    创建MoveIt插件本节详细说明了如何在ROS中添加插件。两个必需元素是基类和插件类。插件类继承自基类并覆盖其虚拟函数。用于此目的的主要库是pluginlib。本教程包含三种不同类型的插件,即运动规划器、控制器管理器和约束采样器。运动规划器插件在本节中,我们将展示如何将新......
  • 拉取ros2_control_demos存储库
    目录克隆存储库方法1:使用gitclone和rosdep安装依赖方法2:使用vcs工具管理多个存储库区别总结rosdep和APT的关系网络问题安装依赖克隆存储库方法1:使用gitclone和rosdep安装依赖下载存储库:mkdir-p~/ros2_ws/srccd~/ros2_ws/srcgitclo......
  • ros2框架分析
    工作流包创建ros2pkgcreateimage_server--build-typeament_python--dependenciescv_bridgerclpysensor_msgsstd_msgs使用ros2pkgcreate创建的ROS2包默认位于你执行该命令时所在的当前工作目录下。定义消息类型定义服务接口配置包package.xml:作用:......