返回Blog

2025年机器人计划:从几何方法到学到的政策

调查机器人掌握规划 <unk>GQ-CNN,GraspNet,AnyGrasp,以及何时使用学习与几何方法.

T2)

修士规划从古典几何分析转变为学习的端到端系统. 以下是可用的实际指南,以及何时使用每个方法.

总体规划问题

鉴于一个场景的RGB-D观察,预测一个6DOF抓住姿势 (位置 +方向),产生对目标对象的稳定抓住. 这种错误的简单问题陈述隐藏着显著的复杂性:可能的抓住器姿势的空间是连续的和高维的,大多数姿势将失败,并且抓住前姿势和抓住成功之间的关系取决于接触机制,这些姿势不能从单个RGB-D框架中完全可见.

问题大致分为两种模式:从上到下抓 (2.5D 忽略围绕接近轴的抓杆旋转,从上抓) 这使得这个问题简单得适用于经典方法;和6DOF抓杆 (完全姿势预测) 这需要学习的方法来实现可靠的通用化.

抓获检测方法:分类学

该领域通过三个代的方法发展,每个方法仍然适用于不同的使用情况:

**一代1 几何/分析方法:**使用电子质量指标 (抓住能抵抗最大的关键) 或强制关闭分析计算对象的几何模型的抓质质量.这些方法需要已知的对象网格和准确的姿势估计.它们是确定性,可解释和快速的,但不能处理新型对象. 仍用于工业垃圾选,该产品目录已知并固定.

第二代 学生抓获的分数: 学生抓获的样本 (随机或使用几何测量),然后通过学习的神经网络给每个候选人分数.GPD,GQ-CNN和GraspNet-1Billion属于这个类别. 与一代的关键区别是,得分函数是从数据中学习而不是分析计算,从而使其能够将其通用到新物体.

第三代 直射6DOF姿势回归: 预测从点云直接从点云中直接出现的抓住姿势,而没有明确的候选人采样. 网络学习以关注点云的有前途地区而不是评估均的样本选项.

经典方法

  • **GPD (抓取位姿 Detection):**基于点云的6DOF抓住姿势检测.样本候选人抓住姿势在点云表面,通过学习二进制分类器 (抓住质量) 评估每一个.在现代工作站上运行在约5Hz.可靠的清洁,精确的点云和传感器噪音斗争.开源 (MIT许可证).
  • GQ-CNN (伯克利AUTOLAB): 把握在深度图像补丁上运行的质量CNN.快速 (50ms推理) 和准确的从直视空中下来抓取.限制:仅限于上下走向方向不能预测侧面抓取或精确的6DOF姿势.最适合采用空头摄像头的选场景.开源,可用预训练模型.
  • PointNetGPD: 结合基于PointNet的点云编码与GPD的候选样本.学习直接从原始点云而不是声化表示中把握特征.在点云质量不均的混乱场景中改善GPD.开源,但不如GraspNet那样积极维护.

已学习的6DOF方法:详细的比较

Method Input Novel Objects Speed Training Data Availability
GraspNet-1Billion Point cloud Good (ShapeNet) 10 Hz 1.2B grasps, 97 objects Open source
Contact-GraspNet Point cloud Good (handles occlusion) 8 Hz Acronym dataset, 8K objects Open source
AnyGrasp Point cloud Best (open-set) 15 Hz GraspNet-1B + augmented Commercial API + SDK
FoundationGrasp RGB-D + language Best (language-guided) 3 Hz Multi-modal pre-training Research (code released)
GraspNeRF Multi-view RGB Good (NeRF reconstruction) 0.5 Hz NeRF + grasp labels Research only

格拉斯网-1亿和联系格拉斯网:开源工作马

GraspNet-1Billion (Fang等,CVPR 2020) 引入了最大的抓取数据集和一个基准,成为学习6DOF抓取标准评估.该数据集包含了107个日常物体中的1.2亿的抓取注释,使用分析抓取质量指标生成在全3D网格上. 该模型使用PointNet++编码点云,并预测每点抓取姿势,并以质量分数进行预测.关键创新是方法级组,限制了抓取预测到可行的方法方向,显著减少了虚假正值.

Contact-GraspNet (Sundermeyer等人,ICRA 2021) 解决了重混和部分遮蔽中抓住的困难.而不是预测对隔离物体段的抓住姿势,Contact-GraspNet 预测对场景中每个可见的接触点的抓住,无论该点属于何种物体. 这使得它对分区错误具有强大实用优势,因为在混沌场景中对象分区本身是不可靠的.该模型是在ACRONYM数据集 (8K对象, 17.7M抓住) 上训练,并在GraspNet基准上取得了90%以上的成功.

任何Grasp:零射击标准

AnyGrasp是由GraspNet-1Billion同一个团队开发的,是抓住在训练中未见的新物体的最先进方法.在GraspNet-1Billion数据集上训练 (600K+训练抓住97个物体类别) 以及额外的增强,AnyGrasp将其将用于开放式物体,在标准基准上获得90%+的抓获成功率.

您不需要在您的特定物体上调整它预训练的模型处理家庭用品,工业零件,食品物品和不规则的形状,没有额外的训练. 这种"只能工作"的特性在机器人感知中很少见,

商业API (可从Graspnet.net) 提供推理作为一个服务,Python客户端库有用的团队想要使用AnyGrasp而没有维护推理基础设施.对于需要设备推理的团队,SDK支持Jetson AGX Orin部署在8-12Hz.

精致的计划

手 (三至五指,10-20多法) 需要基本不同的抓住计划,因为接触配置空间大得多.

DexGraspNet (Wang et al., 2023) 使用优化基础的抓获合成生成了大规模的精巧抓获数据集.从随机初始手配置开始,它使用可分化物理模拟来优化对力闭合.结果的数据集 (1.3M抓获在5K物体中) 允许训练学习精巧抓获计划者,将其通用到新物体.

UniDexGrasp (Xu et al., CVPR 2023)采用强化学习方法:训练一个模拟系统,以用巧妙的手抓住任意物体,然后转移到现实硬件.该系统观察点云和手自感,并输出每个关联位置命令. 由于接触模型错误,UniDexGrasp在模拟中取得了85%以上的成功,但对真实实实实实转移仍然是一个挑战.

** 实际建议:** 如果您使用平行手,请使用AnyGrasp. 如果您使用一个精明的手 (Orca Hand, Allegro Hand, LEAP Hand),请使用DexGraspNet来生成数据,并制定生成的手柄的政策.RCSV存储[Orca Hand和兼容的精明手柄]T4) 并为精明的手柄规划管道提供集成支持.

点云与深度图像方法

实际问题是,你的抓住计划器应该使用原始深度图像还是3D点云?

Criterion 点云 Methods Depth Image Methods
Multi-view fusion Natural (register and concatenate) Requires volumetric fusion (TSDF)
Inference speed 8-15 Hz (PointNet++ backbone) 20-50 Hz (CNN backbone)
6-DOF grasp support Native (3D coordinates) Requires projection/back-projection
Clutter handling Better (3D reasoning) Struggles with overlapping objects
Pre-processing Downsampling, normal estimation Minimal (resize, normalize)
Best method AnyGrasp, Contact-GraspNet GQ-CNN (top-down only)

对于在混沌环境中捕获6DOF的点云方法是严格的更好的.对于使用固定空头摄像头上下抽取垃圾,深度图像方法 (GQ-CNN) 是更快的和足够的.除非速度要求需要深度图像方法,否则大多数团队应该默认使用点云方法.

集成管道

标准集成与ROS2 + MoveIt2堆:

步骤1:从RealSense ros2启动捕捉点云 realsense2_camera rs_launch.py \ enable_pointcloud:=true align_depth.enable:=true #步骤2:从任何grasp进口的抓住计划器 (AnyGraspDetector = AnyGraspDetector) 运行 AnyGraspDetector = AnyGraspDetector() 检测器.load_model("检查点_检测.tar") # 通过点云,获得排名的抓住候选人的抓住,得分 = 检测器.get_grasps.get_cloud, workspace\mask= 执行点_distance_plane_mask,top_=20 #步骤 3:通过可追踪性 (MoveIt2 IK) 检查器 (Gravit g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g_g

执行的关键细节:总是按工作空间的界限过抓取候选人 (排除与表碰撞或不在手臂的范围内的抓取),设定质量分数门 (0.7是一个好的起点),并在最后5厘米的方法中使用阻抗控制来处理位置错误. 对于可靠的抓住,从位置控制到接近距离的阻抗控制的转换至关重要.

移动IT2集成:全管道架构

集成一个学习的抓住计划器到生产 MoveIt2 堆中不仅仅需要调用计划器和执行.一个强大的管道需要对碰撞的规划,抓住过,接近/退缩轨迹生成和倒退逻辑.以下是详细的架构:

抓取管道节点 (ROS2 Python)

导入Pose 从传感器_msgs.msg 导入PointCloud2 导入Numpy作为 np类的GraspPipelineNode: _\init____((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 到工作空间面具 = np.all((云[:,:3] >= self.ws_min) & (云[:,:3] <= self.ws_max),轴=1) 云_ws =云[面具] # 2.运行抓取检测抓取,分数 = self.detector.get_grasps(云_ws,顶部_k=50,应用_nms=True) # 3. 过按分数值值值值 = [(g,s) 为g,s在zip(grasps,scores) 如果 s >= self.score_thresh] 如果不有效: self.get_logger().warn('No valid grasps above threshold') 返回错误#4.按分数排序,试一次直到一个成功有效.sort(key=lambda x: x[1],反向=真) 为抓取,分数在有效[:10]:#试前10#4a. 计算前抓姿势 (沿着接近轴) 方法_vec =抓.旋转[:, 2] # z-轴 =接近前抓 =抓.复制() 前抓.翻译 -=接近 _vec *自.距离# 4b. 检查两种姿势的可行性.如果不是自.移动.检查_ik(pre_grasp):继续如果不是自.移动.检查_ik(grasp):继续 # 4c. 计划和执行方法 self.moveit.open_gripper() 成功 = self.moveit.plan_and_execute(pre_grasp,速度_scaling=0.5) 如果不是成功:继续#4d. 线性方法来抓住姿势 (卡特西亚路径) 路径点 = self.moveit.compute_cartesian_path([pre_grasp,grap], max_step=0.005) 如果路径点.分数 <0.95:继续 #路径太不完整 self.moveit.execute(waypoints.trajectory, velocity_scaling=0.2) # 4e. 紧握器与力量控制 self.moveit.close_grip(强力=15.0,宽度=0.0) # 4f. 退缩 (直升) 退缩_pose =抓住.复制() 退缩_pose.translation[2] += self.retreat_dist self.moveit.plan_and_execute(退缩_pose,速度_scaling=0.3) 返回 真正的 self.get_logger().错误('所有抓住候选人失败') 返回 错误

在本管道中,主要的建筑决定:

  • 在检测之前进行工作空间剪除可减少背景表面的虚假阳性,并通过减少点数量,减少30-40%的推断时间.
  • 计划前预测IK避免昂贵的运动规划调用,无法达到的抓住.
  • 最后接近的卡特西亚路径确保对抓地姿势的直线方法,这对于在最后几厘米的时间避免碰撞至关重要.
  • 根据您的抓住器设定强力限制:食品/电子设备的5-10N,硬物件的15-30N,工业零件的50N+.
  • 前十回落循环处理了最高得分的抓获不可及或发生碰撞的常见情况.

摄像头校准用于度规划

控制器的准确性取决于相机到机器人校准 (手眼校准). 5mm校准错误直接转化为5mm抓地姿势错误 - - 足以导致小物体故障.

  1. 收集校准数据: 在观察安装在终端效应器 (眼对手) 或工作空间 (眼对手) 上安装的ArUco板或棋牌板时,将机器人移动到15-20个姿势.记录机器人FK姿势和检测到的板块姿势,以每个配置.
  2. 解决AX=XB: 使用OpenCV的T0,使用TSai-Lenz或Park方法. 这可以让您获得相机到底转换 (眼对手) 或相机到底效应器转换 (眼对手).
  3. 验证: 命令机器人触摸相机框架中已知点. 测量错误. 在整个工作空间中重复10点. 目标: <2mm平均错误, <4mm最大错误.
  4. 定期重新校准: 随着任何相机安装调整,机器人基底移动或温度变化 (热扩展将相机位置变化为每10C最大1mm).

对于使用自定义安装器的团队,我们的数据服务包括手指定位,作为硬件设置包的一部分.

按硬件平台掌握规划器 FPS

推移速度在部署硬件中大大不同.这些数字是在实点云 (工作空间产后20K-40K点) 上测量了批量1:

Method RTX 4090 RTX 3060 Jetson Orin Jetson Xavier CPU (i7-13700)
GQ-CNN (top-down) 60 Hz 45 Hz 25 Hz 12 Hz 8 Hz
GraspNet-1Billion 18 Hz 10 Hz 5 Hz 2 Hz 0.8 Hz
Contact-GraspNet 15 Hz 8 Hz 4 Hz 1.5 Hz 0.5 Hz
AnyGrasp 22 Hz 15 Hz 8 Hz 3 Hz 1.2 Hz
FoundationGrasp 5 Hz 3 Hz 1.2 Hz 0.4 Hz N/A
GPD 8 Hz 5 Hz 2.5 Hz 1 Hz 0.6 Hz

** 实际的提示:** 在Jetson Orin (移动机器人标准边缘计算) 上,AnyGrasp在8 Hz上是唯一的6DOF方法,足够快速的反应式抓取.在桌面RTX 3060上,所有方法都以可接受的速度运行,用于一次计划和执行的选择地点任务.在20+选/分钟的输送带选择时,您需要桌面GPU或GQ-CNN在Jetson上 (仅从上到下抓取).

按对象类别的成功率

实际世界抓获成功严重依赖于对象属性.这些数字是多次发表的评估和OpenArm 1上使用Robotiq 2F-85抓获器进行RCSV内部测试的结果:

Object Category AnyGrasp Contact-GraspNet GQ-CNN Notes
Rigid boxes/cans 95% 93% 90% Easiest category
Irregular shapes (toys, tools) 88% 85% 72% GQ-CNN limited to top-down
Small objects (<3cm) 78% 72% 65% Depth noise dominates
Transparent (glass, clear plastic) 35% 30% 25% Depth sensor failure
Deformable (bags, cloth) 55% 50% 40% Shape changes on contact
Heavy clutter (>15 objects) 75% 80% 58% Contact-GraspNet excels here
Flat objects (books, plates) 82% 78% 70% Side grasps often needed

语言调控的专业规划

最新一代的抓住计划器集成了语言调节,允许"拿起红杯"或"抓住最左边的瓶子"等命令.

**建筑模式:**典型的语言条件的抓管链有三个组成部分: (1) 开放词汇对象探测器 (GroundingDINO, OWLv2) 从文本查询中定位目标对象, (2) 细分模型 (SAM, Segment Anything) 产生对目标对象的面具,以及 (3) 在掩盖点云上运行的抓管计划器. 通过这种模块化方法,您可以独立交换每个组件.

语文_grasp.py -- "从 groundingdino.util.inference 导入的语言条件的抓取管道预测为gd_predict 从段_anything 导入 SamPredictor 导入 numpy 作为 np def 语文_grasp(rgb,深度,提示,抓取_检测器,sam,相机_K): """选择<unk>T1.""#1: 检测目标对象框,逻辑,短语 = gd_predict(模型=gd_model,图像=rgb,图像=tar,框_thres=0.35,文字_threshold=0.25) 如果 lenboxes) 总结:返点, "物体没有找到" ##################################################################################################################################################################################################

这条管道增加了80-150ms的延迟用于检测和分区 (RTX 3060),但显著提高了任务水平的成功,因为抓住计划器只考虑目标对象,消除了分散注意力的抓住.对于构建基于VLA的操纵系统的团队来说,语言条件的抓住是标准的感知前端.

开放标准

**GraspNet基准:**学习6DOF捕获的标准评估.使用190场景,包含88个物体 (分为见/类似/新品类别).指标:AP (不同质量门的平均精度) 和不同摩擦系数的成功率.所有主要方法都根据此基准报告结果,使跨方法比较变得简单.

YCB 抓取基准: 使用YCB对象组 (77个常见家庭对象) 具有标准化的摄像头设置和评估协议. 较GraspNet较少关注6DOF方法,但对于不同抓取器类型的抓取成功进行比较有用.

OCRTOC (Open Cloud Robot Table Organization Challenge): 桌面操作的在线基准,包括抓取规划作为一个组成部分. 对于评估完整的选择地点管道而不是孤立的抓取规划而有用.

失败方式和减轻方法

  • **透明物体 (玻璃,透明塑料):**透明表面深度传感器失败 结构光和ToF都需要表面反射.减轻:使用触摸搜索 (将抓住器移动到预计的接触点,低力探测器),添加偏光照明以提高表面可见性,或使用基于RGB的方法 (FoundationGrasp) 不需要深度.
  • 重物接近有效载荷限制: 抓载计划不考虑有效载荷限制.从错误的角度抓住手臂有效载荷限制附近的物体,你可能会成功抓住,但由于扭矩限制无法抬起.减轻:将有效载荷估计添加到你的抓载选择过器 (无论是从已知物体重量或从手腕F/T传感后最初接触).
  • 薄物体 <3mm: 标准平行爪抓紧机不能在硬件修改的情况下接近 <3mm.在标准物体上训练的抓紧机器人生产了信用卡,纸张或薄板的不有效抓紧机.减轻:专业的抓紧机几何,基于真空的抓紧机或混合式抓紧机,具有双 jaws和吸气模式.
  • **高度乱的场景 (>20个对象):**因物体间罩而导致密集的乱中点云质量会降低.联系格拉斯普网处理这一点比格拉斯普网-1亿更好,因为它不需要对象细分,但即使是联系格拉斯普网也显示15个对象以上的15-20%精度降低. 减轻:使用清理策略 首先抓住和移除容易的物体,然后重新观察现场,以发现剩下的困难物体.
  • **可变形物体 (袋子,布料,软食物):**所有目前的方法都假设是硬物体.可变形物体在接触时变形,从而无效了从接触前观察预测的抓住姿势. 减轻:使用保守的抓住力,基于[接触力反]T5实施反应性重新抓住力,或收集特定任务的示范数据,捕获可变化的操纵策略.

RCSV 存储了RealSense D435i和D405摄像头,旨在进行操纵,以及为GraspNet和AnyGrasp预建的ROS2抓取计划节点.我们的 数据服务 包括训练团队的抓取示范收集. 访问硬件目录平台文档 进行集成指南.试点数据收集从2,500美元开始.

相关阅读

  • 机器人摄像头设置指南
  • ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
  • ,我知道,我在做什么.
  • 现在,我们可以在此进行一次的转移.
  • [机器人传播政策]
  • [数据服务]
  • 其他类型的设备

感知硬件和集成

斯威尔士摄像头提供深度摄像头,抓住规划节点,并为操纵感知管道提供集成支持.

,我知道,我在做什么.