我们最后还是没把物体抓起来 — Jackthin
Unitree Go2 系列

我们最后还是没把物体抓起来

先把完成和未完成分开

这次实验完成了不少基础工作。

机器狗能够使用 Mid-360 建图,地图能够保存和渲染,基础直线导航已经验证。D1 机械臂能够在 RViz 中用 MoveIt2 规划动作,也能够通过 MQTT 桥接控制真实机械臂。D435i 能够输出深度数据,YOLO 能够识别目标,ArUco 标定也已经完成过真机验证。

视觉定位之后的稳定自动抓取没有完成。

这个结果需要单独说明,因为每个模块单独测试成功以后,很容易让人以为系统集成只剩下最后几行代码。

相机能看见,不代表机械臂够得着

D435i 安装在机器狗前方,D1 机械臂也安装在狗的前侧。相机看到的目标需要同时满足两个条件。

它要处在深度相机可靠测量的距离范围内,也要处在机械臂能够向下伸展和闭合夹爪的工作空间内。

这两个范围只有一部分重叠。目标太近时,深度图容易受到测距下限影响。目标太远时,D1 的臂展又不够。机器狗停靠的角度稍微变化,机械臂末端可用的空间还会继续缩小。

所以自动抓取遇到的第一个问题,是相机和机械臂的安装关系没有给出足够宽的工作空间。

坐标误差会在末端集中出现

视觉坐标转换、关节方向和夹爪尖端几何,每一项单独看都只是几厘米的误差。它们叠加到末端以后,夹爪就可能落在目标旁边。

实验里确实遇到过这类情况。程序认为夹爪应该到达目标位置,真机却偏向一侧。后来我们分别修正了关节绕轴方向、标签中心和夹爪尖端之间的参考关系,也重新考虑了 URDF 末端几何与真机之间的差异。

这些修正让对准验证变得更好,但还没有把完整的开合、下降、抓取和抬升动作稳定串起来。

机器狗本体也成为限制

给 Go2 挂上 D1 机械臂以后,整台机器的重心和负荷都发生了变化。StaticWalk 步态下,机器狗可以基本保持平衡,长时间运行时腿部电机仍然会发热,开机十分钟左右可能出现瘫倒。

这会直接影响抓取实验。机械臂需要在狗身上保持稳定,机器狗也要在相机采集、坐标转换和末端动作期间持续站住。底盘状态不稳定时,视觉定位和机械臂标定都会失去参考。

后续需要找宇树官方进一步确认腿部电机和加装机械臂后的负载问题。相关公开资料比较少,这一部分不能只靠软件调参解决。

老师建议换一种相机安装方式

老师提出,可以尝试把相机安装到机械臂上,从侧面观察和抓取目标。

这个方向值得尝试,因为相机随机械臂末端移动以后,固定相机和机械臂工作空间之间的冲突可能会减小。侧面的物体也可能比机器狗前方地面上的物体更适合当前夹爪姿态。

相机安装到机械臂上以后,标定关系会变成新的问题。相机位置随关节变化,视野可能被机械臂遮挡,线缆也会增加负担。它解决的是当前最明显的空间问题,同时会带来一套新的工程问题。

这次实验的收获

我们最后没有得到一个稳定抓取物体的演示系统,但已经把问题从“抓不起来”拆成了几块可以继续验证的内容。

  • 底盘要先保持稳定
  • 相机和机械臂要有足够的共同工作空间
  • 关节正方向需要在真机上逐个核对
  • 标定参考点要和夹爪尖端分开定义
  • 夹爪开合需要完成真实映射标定
  • 导航、视觉和机械臂执行要分别保留清晰的状态反馈

下一轮实验不会从头再做一遍。更合理的顺序,是先解决机器狗长时间站立和相机安装问题,再选择一个处在有效工作空间内的简单目标,最后重新做定位和抓取。

这台机器狗还没学会抓取。我们已经知道,下一步应该先让它站稳,再让它看清楚,最后才轮到它伸手。