今年8月10日雷军在小米发布会上推出了 CyberDog 仿生四足机器人(外号铁蛋),简单起见我把它看作是一款会行走的智能手机。智能手机通常具备以下功能:

  • 人脸识别
  • 人体跟随
  • 语音交互
  • 触摸交互
  • 高清图传
  • 影像拍摄

根据使用说明书,铁蛋相比于智能手机还具备四种关键能力:

  • 地图构建
  • 自主定位
  • 导航规划
  • 自动避障

从而让手机学会了走路,成为了一条名副其实的机器狗。我认为,具备四种关键能力是一款机器人将来能融入百姓家庭的前提,扫地机器人作为第一款大规模走近百姓家庭的机器人亦是成功案例。下面介绍铁蛋软硬件基础及其导航功能。

铁蛋软硬件核心模块

系统框图

铁蛋完成自主导航功能需要协调大脑、小脑、眼睛和腿。

铁蛋的大脑

铁蛋的感知主机采用 Jetson Xavier NX (软件系统为 Ubuntu 18.04 + ROS 2 Foxy + Cyclone DDS),CPU 为 6 线程,内存 8G,相当于人类的大脑。

登录方法1: 局域网内 (dafault password is 123) 登录

ssh mi@NX_IP_Address

登录方法2: 使用 USB线连接 Download 接口登录

ssh mi@192.168.55.1
铁蛋的小脑

铁蛋的运动主机采用 Allwinner MR813 (操作系统为 Tina Linux),CPU 为 4 线程,内存 1G,相当于人类的小脑,负责实时运行 MPC 算法,登录方法

ssh root@192.168.55.233
铁蛋的眼睛

铁蛋的深度感知模块采用 Intel 的 D450,相当于人类的眼睛,负责测量空间尺度信息。

铁蛋的腿

铁蛋的每条腿由 3 个行星齿轮减速永磁无刷电机驱动,即每条腿有 3 个自由度。总共 12 个电机。

导航功能

官方应用提供 视觉SLAM (定位和建图) 和导航功能,对应仓库为 athena_automation。视觉SLAM 和导航通过调用如下开源程序实现。

节点管理

感知主机采用 Systemd 的方式管理 ROS 2 节点。铁蛋开机启动的 service 文件有

  • /etc/systemd/system/bluetooth_ros2.service
  • /etc/systemd/system/cyberdog_ros2.service
  • /etc/systemd/system/cyberdog_automation.service

调用 cyberdog_automation.service 开启导航功能。

导航测试

每到一个新场景,用户都需要用手机遥控铁蛋,边行走边建图,地图会显示在手机上,地图需尽可能覆盖所有区域。建图完成后命名保存,然后用户只需要在地图上点选目标点并确认,铁蛋即可自动导航至目的地。测试发现导航存在速度慢不流畅视觉里程计定位抖动的问题,需要用户进一步调优相关算法。优点是操作流程较简单,用户易用。用户端界面如图

把感知主机 NX 端修改为多播模式,可在局域网内订阅相关话题,并用 RViz 可视化

体验总结

优点

  • 价格亲民
  • 核心软件开源
  • 基于 ROS 2 开发,支持跨平台
  • 接口丰富,便于开发与调试
  • 铁蛋背部提手方便,人性化设计

缺点

  • 官方应用仅支持安卓手机
  • 腿太短上下楼梯容易磕碰
  • 续航时间短而充电时间长
  • 铁蛋的体积较大略显笨重
  • 文档还不完善
  • 代码仓库从 GitLab 转移到 GitHub 存在版本统一问题

改进建议

  • 开源运动控制程序
  • 优化融合腿部和视觉的状态估计
  • 提供 URDF 文件
  • 提供仿真案例

References