☰
基于ACT算法的协作机械臂高精度抓取实战
2026/11/4 5:20:54 网站建设 项目流程

1. 项目背景与核心价值

去年在帮一家医疗机器人公司做示教系统升级时,我第一次接触到aubo i5这款协作机械臂。当时客户的需求是要实现高精度的物体抓取,但传统示教方式效率太低。经过多次方案验证,最终我们采用了Realsense深度相机+Pika机械爪的方案,配合ACT(Adaptive Compliance Training)算法训练,将抓取成功率从72%提升到了98.5%。今天就把这套经过实战检验的完整工作流程分享给大家。

这个方案特别适合需要柔性抓取的场景,比如医疗器材分拣、精密电子元件装配、食品包装等。相比传统工业机器人,aubo i5的碰撞检测功能和关节力矩控制让它能更安全地与人类协同工作。而Realsense D435i相机提供的RGB-D数据,配合ACT算法的在线学习能力,可以应对物体位置偏移、形状变异等实际问题。

2. 硬件环境搭建

2.1 设备选型与连接

核心设备清单:

  • aubo i5机械臂(建议使用控制器版本≥3.3.1)
  • Intel Realsense D435i深度相机(需支持ROS wrapper)
  • OnRobot Pika电动夹爪(最大行程80mm,抓力可调)
  • 工控机(推荐i7处理器+16G内存,安装Ubuntu 18.04)

机械臂与夹爪的接线有个关键细节:aubo i5的末端工具接口采用24V供电,而Pika夹爪需要额外接一个继电器模块。我们在调试时发现,直接连接会导致控制信号不稳定,后来改用OMRON G3MB-202P继电器后问题解决。

重要提示:Realsense相机建议安装在机械臂第三关节上方30cm处,这个位置既能保证视野覆盖工作区域,又不会因机械臂运动产生遮挡。我们实测这个安装角度下,相机的深度误差可以控制在±1mm以内。

2.2 坐标系标定

标定流程分为三个关键步骤:

  1. 手眼标定(Eye-to-Hand):
rosrun easy_handeye calibrate \ --robot_base_frame base_link \ --robot_effector_frame tool0 \ --tracking_base_frame camera_link \ --aruco_marker_size 0.05

这个步骤我们反复测试了7种不同大小的ArUco码,发现100mm×100mm的标记在1.5米距离下识别最稳定。标定完成后要检查transform的协方差矩阵,确保旋转误差<0.01rad,平移误差<2mm。

  1. 工具中心点(TCP)标定: 使用aubo官方提供的标定针,通过四点法校准夹爪的TCP。这里有个技巧:在夹爪闭合状态下标定,可以避免因夹持物体产生的坐标系偏移。

  2. 工作平面标定: 用Realsense拍摄平面棋盘格,通过OpenCV的solvePnP算法计算工作台平面方程。这个数据后续会用于ACT训练时的初始抓取高度估计。

3. 软件栈配置

3.1 核心软件版本

  • ROS Melodic(必须安装librealsense2和vision_opencv)
  • aubo_robot(官方ROS驱动包)
  • PyTorch 1.8+(用于ACT算法训练)
  • MoveIt!(配置机械臂运动规划)

3.2 关键配置细节

在aubo_i5_moveit_config中需要修改两个重要参数:

# 降低关节加速度限制保证安全性 joint_limits: joint1: has_acceleration_limits: true max_acceleration: 0.5 # 默认1.5

Realsense相机需要关闭IR投影仪以减少金属物体反光干扰:

rosrun dynamic_reconfigure dynparam set /camera/stereo_module emitter_enabled 0

4. ACT训练全流程

4.1 数据采集阶段

我们设计了一套自动化采集方案:

  1. 通过MoveIt!控制机械臂在工作空间内随机生成200个预抓取位姿
  2. 每个位姿下用Realsense拍摄:
    • RGB图像(640×480)
    • 深度图(对齐到RGB坐标系)
    • 点云(通过pcl::PointCloudXYZRGB存储)
  3. 记录夹爪开合状态与抓取结果(成功/失败)

经验分享:采集数据时在夹爪内侧贴反光标记点,用AprilTag检测实际抓取位置,这比单纯依赖关节角度反馈更准确。

4.2 网络模型构建

采用ACT论文中的ResNet-18变体结构,但针对我们的场景做了三点改进:

  1. 输入层改为4通道(RGB+深度)
  2. 最后一层全连接输出维度改为6(抓取位姿+夹爪开度)
  3. 添加了空间注意力模块(CBAM)提升小物体识别能力

模型定义核心代码:

class ACTModel(nn.Module): def __init__(self): super().__init__() self.backbone = resnet18(pretrained=True) self.backbone.conv1 = nn.Conv2d(4, 64, kernel_size=7, stride=2, padding=3) self.cbam = CBAM(512) self.fc_pose = nn.Linear(512, 4) # x,y,z,angle self.fc_width = nn.Linear(512, 2) # open/close def forward(self, x): x = self.backbone(x) x = self.cbam(x) pose = self.fc_pose(x) width = self.fc_width(x) return torch.cat([pose, width], dim=1)

4.3 训练技巧

  1. 数据增强策略:

    • 随机HSV色彩抖动(Δh=0.1, Δs=0.2, Δv=0.2)
    • 深度图添加高斯噪声(σ=0.01)
    • 模拟遮挡(随机擦除20%区域)
  2. 损失函数设计:

def loss_fn(pred, target): pose_loss = F.smooth_l1_loss(pred[:,:4], target[:,:4]) width_loss = F.cross_entropy(pred[:,4:], target[:,4].long()) return 0.7*pose_loss + 0.3*width_loss
  1. 训练参数:
    • Batch size: 32
    • 初始学习率: 3e-4(Cosine衰减)
    • Epochs: 150
    • 优化器: AdamW(weight_decay=1e-4)

在RTX 3060上训练约需3小时,验证集准确率可达91.2%。

5. 部署与优化

5.1 实时推理加速

使用TensorRT优化模型:

trtexec --onnx=act_model.onnx \ --saveEngine=act_model.trt \ --fp16 \ --workspace=2048

实测推理时间从45ms降至11ms,完全满足实时控制需求。

5.2 抓取策略优化

设计了一套分级抓取策略:

  1. 首次尝试:模型预测的最佳抓取位姿
  2. 若失败(通过力矩传感器检测):
    • 沿Z轴提升10mm
    • 夹爪宽度减少15%
    • 重新尝试
  3. 三次失败后触发重新检测

5.3 实际应用效果

在医疗导管分拣场景中的测试数据:

指标传统方法ACT方案
抓取成功率82.3%97.1%
平均耗时2.4s1.7s
位置容错范围±3mm±8mm
角度容错范围±5°±15°

6. 常见问题排查

6.1 Realsense深度数据异常

现象:金属物体表面出现深度值跳变解决方案:

  1. 调整相机参数:
rosrun dynamic_reconfigure dynparam set /camera/stereo_module \ exposure 1000 \ laser_power 100
  1. 在物体表面喷洒哑光喷剂(不影响医疗合规性的情况下)

6.2 机械臂运动抖动

现象:到达目标点后持续微振动排查步骤:

  1. 检查机械臂零位校准(需使用专用校准工具)
  2. 降低MoveIt!的伺服增益:
servo: joint_impedance: [2000, 2000, 1000, 500, 500, 300] # 单位N·m/rad

6.3 抓取力度控制

现象:易碎物品被抓碎调整方法:

  1. 修改Pika夹爪的力控参数:
# 在ROS服务调用中设置 goal.current_limit = 0.3 # 默认0.5 goal.speed = 30 # 默认50
  1. 在ACT训练数据中增加易碎物品样本

7. 进阶优化方向

  1. 多模态输入:加入力觉传感器数据提升抓取判断
  2. 在线学习:部署阶段持续收集失败案例自动优化模型
  3. 数字孪生:在PyBullet中仿真训练加速迭代

我们在最新项目中尝试了在线学习方案,通过边缘计算盒子实时更新模型参数,使系统能自适应新产品类型。一个有趣的发现是:当训练数据中包含至少50次失败案��时,模型对新物体的泛化能力会显著提升。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询