Task

通过机械臂分类不同颜色的立方体:

  1. 检测物体,立方体和杯子。.
  2. 确定立方体和杯子在三维空间中的位置和颜色。
  3. 生成机器手臂的Motion Plan然后实施。

立方体和杯子首先根据深度信息来识别的,深度信息相同的再信息高度信息区分,然后使用颜色信息将立方体分类到各自的有色杯子中。

杯子数据丢失

Overall algorithm

使用 Flood fill algorithm

System

检测物体 Object detection

最关键的部分是识别物体,确定物体在三维空间中的准确位置,利用RGBD摄像机获取深度和颜色信息,然后根据尺寸大小检测立方体和杯子。
使用上述的聚类算法进行目标检测。

运动规划 Motion Planning

目标检测给出了目标在三维空间中的位置。根据立方体和杯子的位置,计划动作来捕捉立方体,举起立方体,移动到最后的位置,并将其放入各自的杯子中。利用 inverse kinematics 计算 parameters of the joints。

由于所计算的 parameters of the joints 不是线性的,所以 inverse kinematics 空间的运动增量不稳定,因此利用 forward kinematics 将位姿的变化转化为 joint space。得到平滑的运动结果。

Qt配置

安装包

  • pencv
  • librealsense
  • qt5-default
  • qglviewer
  • libqt5serialport5-dev

Result