RobotFlow工程track

RobotFlow是封装在机器人通信系统之上的应用平台。它通过封装通用(ROS)或专用操作系统(FCI for Franka),让上层应用不用关心其输出的数据是怎么被其他模块使用,也不用担心当它需要数据时数据要怎么来的问题。

我们不追求严格的实时性和稳定性,这种事情还是需要工业界自己努力,我们只为了提供这样一个符合现代Robot AI系统的统一接口,使得上层的functionality是与平台无关的(但比如说有一些算法在实时性通信时满足不了实时性需求,用不了那是另说)。

当我们封装的通信接口足够多之后,结合实际需求(特别是服务业,家用场景),会定义一个通信标准(protocol),希望这套标准能使后来的机械臂生产厂商按照这个标准来开发通信程序(或者直接适配)。

概念设计: avatar

上图中,我只列出了几个核心的functionality,其他的例如动力学辨识,calibration等,就没有包含在内。

目前我们围绕manipulator开发,但之后会拓展到mobile manipulator。

因为实践中写着写着把原定于在第二期才做的部分内容也放到第一期里了,因此需要重新梳理一下接下来需要做的事情。

一期计划(2020.6.22~2020.8.31)(07.29 update)

  1. 本体硬件平台的搭建和调试
    • 在一期,我们将会引入两台机器人,包括UR5,和Franka。两台机器人都将分别完成其从硬件,到基本通信,到仿真环境的配置。
  2. RobotFlow
    • Environment(08.09):
      • 兼容learning和descriptive task中的环境定义方式
      • 支持从simulation,至少支持pybullet或mujoco中的一种
      • 支持真实sensor中加载world的方式(需RFlib中第三视角标定完成)
    • Perception(08.02):
      • MMDet的架构
      • YOLOv3
      • YOLOv4
      • YOLOv4-Tiny
      • YOLOv3-USD
      • YOLOv4-USD
      • YOLOv4-Tiny-USD
      • DenseFusion
      • 6-Pack (08.09)
    • Robots(08.09):
      • 整理好格式,可以被加载入world中
    • Motion:
      • 接入moveit,写好相关wrapper(08.09)
      • 不依赖moveit的motion驱动(RFLib), 写好相关wrapper(08.17)
    • Controller:
      • 为UR5封装好基本的驱动(08.09)
      • 为Franka封装好基本的驱动(08.17)
    • Message Pool Wrapper(08.31):
      • 不断迭代更新
    • Instruction:
      • 加入对于goal描述的instruction(08.23)
        • 初步加入语音接口
        • 初步加入自然语言处理接口
        • 初步加入手势接口
      • 加入对于move描述的instruction(08.31)
    • Learner:
      • 支持常用的RL算法(可延续到第二期)
    • Model Zoo:
      • 将PEARL-insertion加入model zoo
  3. RFlib
    • Calibration:根据杨理欣的工作
      • 支持hand-eye calibration
      • 支持第三视角下的calibration
    • 整合mmcv,加入对3D相关的算法的支持

简评

更新后的一期计划比起之前实际上工作量是有增无减的,所以就直接覆盖了。

第二期将围绕当前架构,继续吸收,优化,特别是注重鲁棒性问题。

这一阶段以和现有的开源架构合作为主,不寻求独立开源。开源的milestone暂定为:

  1. ROS,FCI等通信格式封装完毕
  2. 各模块基本功能都写完
  3. Learning的接口都打通
  4. primitive库包含5个以上

预计在下一个版本接入非夕机械臂。