2020.02-Now 基于柔顺力控制的协作机器人插网线操作
项目背景: 利用计算机视觉引导协作机械臂(YuMi)进行网孔位置的精确搜索,网线头与网孔位姿对准,并柔顺地进行插网线操作;
关键技术: 计算机视觉(openCV),基于 2D 相机的 6D 姿态估计,力位混合伺服控制,导纳控制,阻抗控制,PD 控制,实时 Socket 通信;
基于 C++,CMake 开发网孔的旋转目标检测算法(形态学运算)和目标位姿估计算法(PnP 算法),设计基于六维力/力矩传感器反馈的机械臂柔顺控制算法框架及程序实现,来完成网孔位姿精确搜索和网线的插入过程。
2019.10-2020.05 移动复合机器人的视觉伺服控制和动态目标抓取
1.项目背景: (1)动态抓取: 提高移动复合机器人(AGV+协作机械臂 YuMi)的感知能力和抓取精度(位置<1mm, 姿态<1deg),难点是在 AGV 运动过程中对不同的目标物进行动态识别和跟踪抓取;(2)人机交互: 机械臂跟踪人手中目标物的移动,并伺机从人手中接过目标物。
2.关键技术: 计算机视觉(OpenCV),深度学习(旋转目标检测 R3Det),姿态估计(PnP),动态目标跟踪与轨迹预测,视觉伺服控制,实时 Socket 通信(~4ms),合成训练数据集生成,工业相机标定及“手眼”标定;
3.独立完成整个视觉伺服控制系统的设计和程序架构:
目标检测采用: (1)传统图像处理算法: 颜色特征提取,模板匹配,二维码检测;(C++)(2)基于深度学习的旋转目标物检测 R3Det;(python)
目标物的姿态估计算法: (1)PnP 算法(2D 图像特征估计目标物的 6D 位姿),(2)基于深度学习的6D 姿态估计算法(yolo6D);
在 Blender 物理引擎中,用 python 脚本自动生成有标注的合成数据集,并进行各种数据增广(如通过掩膜替换 VOC 背景);
基于 C++,CMake 开发视觉伺服控制器,使用 ABB-EGM 模块与机器人进行实时通信(~4ms),也自己基于多线程 Socket 通信实现了 EGM 的功能,最终实现动态目标物的位姿预测和跟踪抓取。
2019.01-2019.09 智能垃圾分类站(华为全连接大会 2019、工博会 2019 展出)
1.项目背景:展会 Demo,动态追踪并识别输送链上运动的 20 多种垃圾,控制双臂协作机器人 YuMi 进行抓取和分类,数据上传云端进一步优化,对 AI 模型进行动态更新;
2.关键技术:深度目标检测算法(SSD),输送链追踪,边缘 AI 加速,云边协同;
3.作为总负责人设计系统架构,协调三个 team 合作:Future Labs(负责视觉系统,AI 边缘加速),机器人团队(系统机器人集成),Ability 团队(负责云边协同的打通):
4.主要负责视觉算法开发:包括训练数据的采集,标注,数据增广 -> 目标检测算法选择(SSD-caffe,需要适配 AI 芯片) -> 本地训练,调参 -> 模型部署在设备端 -> 识别结果后处理 -> 打包发送给PickMaster(控制机械臂抓取)和 HW 云服务 -> Web service-UI 展示; (C++, caffe)
5.熟悉整套系统的硬件连接和配置,以及系统时序设计(PickMaster-IPC, robot controller, AI box 和相机之间的通信时序);
6.了解 AI 算法部署和 AI 芯片原理和市场现状:本项目算法部署在 HW Atlas 200DK (16TOPS)上,推理时间:< 100ms
7.云边协同 AI 模型更新:AI Box 容器中包含数据上传服务,实时上传 Cloud 端;云端进行数据半自动标注,重新训练模型,更新模型打包到 Docker 中,下发到 AI Box,系统停机,替换现有的模型,系统重启。(HW ModelArts)
2018.02-2018.12 3D Bin Picking for Random Boxes
1.项目背景:一款替代人工的按订单进行药品自动拣选系统,要求对 3D 随机杂乱放置的不同种类的药盒进行精确的位姿估计,并引导机械臂成功抓取,对机械臂进行路径优化,以加快抓取节拍(< 5s),提高精度(< 2mm)和成功率(> 98%);
2.视觉算法开发:分析项目要求,采用传统 3D 视觉算法解决,负责整个视觉算法框架的设计和实现:
3. 难点:(1)复杂场景中单个目标物的分割;(2)姿态估计;(3)3D 点云与 2D 图像的对齐问题。
4. 3D 区域生长法进行点云分割 -> 投影到 2D 提取各个待选平面的 ROI -> 2D 模板匹配算法 -> 单应性变换计算出药盒在像素空间的特征点和边界框 -> 投影回 3D 物理空间得到相机坐标系下的中心点和姿态 -> 依据“手眼”标定结果,转换到机器人世界坐标系下进行目标抓取;(C++,Cmake,PCL,openCV)
5. 机器人测试:完成相机标定,3D 点云与 RGB 图像的对齐,“手眼”标定,以及与 IRB1200 机械臂的Socket 通信和运动控制逻辑编写。(RobotStudio,RAPID 编程,Socket UDP 通信)