Grasp Pose Detection with Affordance-based Task Constraint Learning in Single-view Point Clouds

该研究针对机器人抓取任务,提出了一种新的方法,它结合了Affordance检测和抓取位姿规划。与传统全局Affordance检测不同,该方法通过局部Affordance检测提高泛化能力,并使用Mask-RCNN进行精准检测。在未知物体上,通过检测任务相关的affordance,生成适合任务约束的抓取策略。方法首先利用ResNet进行多任务学习,检测物体和affordance,然后通过KNN匹配将检测结果应用于点云,优化抓取位姿。这种方法提高了实时性和准确性,减少了对3D模型的依赖,尤其适用于单视角点云场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.解决的问题

Knowing how to grasp is generally more challenging than what to grasp for a robot.
从单视角点云规划抓取的挑战性在于模型需要对RGB-D感知的不精确和不完整进行补偿。

GPD方法在物体CAD模型未知的情况下直接从RGB-D传感信息中检测3DoF或6DoF抓取位姿,取得了很好的效果,而且在未知物体抓取上有很好的泛化性。与GPD抓取任意(any)物体不同的是,本文聚焦于物体操作任务中任务导向(task-specific, goal-oriented)的抓取。为了推理任务需求和满足特定任务约束,一个抓取规划器需要从物体功用属性中提取出抓取策略。

任务约束通常被归结为affordance检测的问题。传统的全局affordance检测需要先进行物体识别,然后再进行6DoF位姿估计,这些方法的局限性在于不能泛化到新物体。affordance也可以指物体的几何形状和表面,但是需要物体3D模型。相反,局部affordance检测通过手工设计的特征或CNN利用物体的patches或parts,CNN方法能端到端进行affordance检测并且能泛化到新物体。

定位和识别相关物体也很关键,同时进行物体检测和affordance检测,避免了affordance检测对正确检测物体的依赖性。采用多任务损失函数联合训练,可避免级联CNN计算效率低下。

论文受文献Affordancenet: an End-To-End Deep Learning Approach for Object Affordance Detection(ICRA2018)启发,不同之处是论文方法采用的是物体分割。

与end-to -end affordance检测的SOTA方法Knowledge Induced Deep Q-Network for Robot Push and Grasp Manipulation Skills Learning(2019 Autonomous Robots)相比,论文不同之处在于将affordance和抓取位姿结合,能保证力闭合和任务约束。

与 PointNetGPD 直接从点云中检测相比,论文方法先检测affordance,再将检测的部分与点云配准,避免了直接对点云3D分割,保证了更高的实时性;网络不依赖于标注的3D分割数据。

与 GPD 方法主要的不同在于):1)论文聚焦于任务约束的抓取,检测物体affordance作为约束,GPD确定最佳抓取;2)GPD使用完整点云训练,论文使用单视角点云。

论文的主要贡献

  1. 使用Mask-RCNN进行affordance检测,和其他CNN方法相比提高了检测精度
  2. 改进了GPD,计算局部参考坐标系,提出对位置敏感的全卷积网络进行抓取分类
  3. 将以上两点结合,实现了单视角点云下受任务约束的抓取

2.相关工作

  1. Grasp pose detection (GPD):3DoF 和 6DoF
  2. Task-specific grasping with affordance detection:任务导向的抓取需要考虑特定任务约束,如接触位置,接近方向等。介绍了一些基于特定任务的affordance检测工作…不写了

3.方法

part affordance labels: grasp, cut, scoop, contain, pound, support, wrap-grasp
与抓取相关的part affordance类型:grasp(handle-grasp) 和 warp grasp

方法概述

在这里插入图片描述

affordance检测

backbone为ResNet01,CNN 同时估计 <object, affordance>

在这里插入图片描述
为提升小区域检测能力采用特征金字塔
在这里插入图片描述
多任务损失 = 分类损失 + 边界框回归损失 + 掩膜损失

得到 grasp 和 warp grasp affordance后,f:I→Cf:I\rightarrow Cf:IC 将像素映射回点云,利用KNN进行外点移除

利用单视角点云确定最佳抓取位姿

这部分主要是针对GPD的一些改进,细节比较多,有一个Weingarten变换还不是很懂,暂时放放,有空来填。

### 安装和配置 Grasp Pose Detection 的方法 Grasp Pose Detection (GPD) 是一种用于机器人抓取姿态检测的开源工具包,广泛应用于机器人领域。以下是 GPD 的安装和配置指南: #### 1. 系统依赖项 在开始之前,请确保您的系统已满足以下依赖条件: - ROS(Robot Operating System) - PCL(Point Cloud Library) - Boost 库 - Eigen 库 可以通过以下命令安装必要的依赖库[^2]: ```bash sudo apt-get update sudo apt-get install ros-$ROS_DISTRO-perception-pcl libboost-all-dev libeigen3-dev ``` #### 2. 下载并编译 GPD 源码 访问 GPD 的官方 GitHub 存储库,并克隆源代码到本地计算机。执行以下操作以获取最新版本的代码: ```bash cd ~/catkin_ws/src git clone https://github.com/atenpas/gpd.git cd .. catkin_make source devel/setup.bash ``` #### 3. 配置传感器驱动程序 为了使 GPD 能够正常工作,您需要正确配置所使用的深度相机驱动程序。例如,如果您正在使用 Astra 或 Kinect 类型的摄像头,则可以按照以下方式启动设备驱动程序[^2]: ```bash roslaunch astra_launch astra.launch rosrun rviz rviz -f openni2.rviz ``` 这一步骤会加载点云数据流并将其实时显示在 RVIZ 中。 #### 4. 启动 GPD 教程节点 一旦硬件准备就绪,您可以尝试运行 GPD 提供的教学示例来验证其功能是否正常。通过下面这条指令调用教程模式下的抓取姿态估计过程[^2]: ```bash roslaunch gpd tutorial1.launch ``` 此命令将触发完整的抓取候选生成流程以及后续的质量评估阶段。 #### 5. 参数调整与优化 根据实际应用场景的不同需求,可能还需要进一步微调某些参数设置以便获得更好的性能表现。具体可修改文件路径如下所示: `~/catkin_ws/src/gpd/config/sampling_params.yaml` 其中涉及的关键选项包括但不限于采样密度、碰撞阈值等重要属性定义。 --- ### 注意事项 在整个部署过程中需要注意的是,由于涉及到复杂的计算任务,因此建议采用具备较高算力水平的工作站或者服务器平台来进行实验测试活动。另外也要留意不同操作系统之间可能存在兼容性差异情况的发生概率相对较大一些。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值