基于地瓜RDK-X5的2D视觉识别手势跟随开发

引言

  • 背景介绍:最近地瓜机器人推出的RDK-X5开发板,板子的性能和算法都很能打,购入后初期实验了下,算法优化的效果很棒,感觉地瓜想做生态,想走wintel模式。所以自己就很感兴趣,正好我们公司手头有机械臂和灵巧手的资源,于是一个充满挑战和创意的创客项目就这样诞生了~

随着智能制造和自动化技术的不断进步,机器人灵巧手在工业自动化、医疗辅助、服务机器人等多个领域的应用需求日益增长。这些应用不仅要求机器人能够执行精确的操作任务,还要求它们能够理解和响应人类的手势,以实现更加自然和高效的交互。

结合当下比较火热的GPT和机器人,自己想做一个手势识别+智能跟随的项目。想象一下,你的机器人不仅能够理解你的指令,还能读懂你的手势,这是不是超级酷,哈哈

项目目标:让RDK-X5成为五指灵巧手的大脑,让它能够识别并跟随人的动态手势作动作。利用RDK-X5的强大计算能力和丰富的接口,结合2D双目视觉方案,打造一个能够看、能够理解、能够行动的智能跟随的五指灵巧手。本项目的核心目标是利用RDK-X5开发板的高性能计算能力和丰富的接口,结合2D双目视觉方案,实现对五指灵巧手的精确控制。自己也将借助官方提供的技术支持和论坛的生态资源,开发一套完整的控制系统,使RDK-X5成为手势跟随项目中的核心控制器板。这一系统将集成视觉识别与深度检测功能,并通过CAN总线与灵巧手进行通信,实现对手势的实时识别和响应。

项目使用的硬件平台:
机械臂:大象机器人mycobot630【刚到货,待列装熟悉控制】
具体参数:

参数
自由度 6
负载能力 2000g
重量 8800g
工作半径 600mm
定位精度 ±0.5mm
工作温度范围 -5°C ~ 45°C
工作寿命 2000h
电源输入 DC 48V
关节1旋转范围 -180° ~ +180°
关节2旋转范围 -270° ~ +90°
关节3旋转范围 -150° ~ +150°
关节4旋转范围 -260° ~ +80°
关节5旋转范围 -168° ~ +168°
关节6旋转范围 -174° ~ +174°
关节最大速度 115°/s

大象机械臂最近刚到货:
在这里插入图片描述

在这里插入图片描述

五指灵巧书:因时机器人 RH56DFTP-0R四代灵巧手【抓取+手势跟随,未到货】

参数 数值
关节总数 12个
自由度 6个
力传感器数量 6个
力传感器分辨率 0.1N
触觉传感器数量 12个
指尖重复定位精度 0.2mm
四指握力 30N
拇指握力 30N
工作电压 24V
静态电流 0.2A @24V
空载运动平均电流 1.2A @24V
最大握力抓取 4.5A @24V
通讯接口 Modbus TCP、RS485、CAN2.0

灵巧手未到货,后续更新

视觉Ai开发套件:Jetson Nano Orin 8G-40Tflops【算法验证】

参数 NVIDIA Jetson Nano 8GB 地平线RDK X5
AI性能 40 TOPS 10 TOPS
GPU 搭载32个Tensor Core的1024核NVIDIA Ampere架构GPU -
GPU频率 625MHz (Max) -
CPU 6核 Arm Cortex-A78AE v8.2 8核 Cortex A55
CPU频率 1.5GHz (Max) -
内存 8GB 128位 LPDDR5, 68GB/s 8GB
存储空间 128GB NVMe 固态硬盘 1G-bit NAND, 带TF卡槽支持UHS-I模式
功率 7W ~ 15W -
USB接口 3x USB 3.2 2.0 (10 Gbps) 3x USB 2.0 4x USB 3.0, 1x USB 2.0 Type-C, 1x USB 2.0 UART
显示接口 1x 8K30 多模DP 1.4a, eDP 1.4a/HDMI 2.1 1x MIPI DSI, 1x HDMI Type-A (支持1080P/60fps)
摄像头接口 可支持4个摄像头 8个通道MIPI CSI-2 2x 4-lane MIPI CSI(支持MIPI V2.1协议)
网络 1x GbE 1x RJ45, 支持1000M以太网和PoE, 支持Wi-Fi 6和蓝牙5.4
其他接口 40-Pin 排座 (UART, SPI, I2S, I2C, GPIO), 12-Pin按键, 4-Pin散热风扇 40 PIN排座,支持GPIOs, SPI, I2C, I2S, PWM, UART
尺寸 100 x 79 x 21 mm 85 x 56 x 20 mm

在这里插入图片描述

深度相机:图漾科技FS820-E1

参数
型号 FS820-E1
工作距离 0.3m - 1.4m
视场角 (水平/垂直) 66°/44°
深度精度 (Z) 0.14mm@400mm;1.53mm@700mm
平面精度 (XY) 4.88mm@700mm
深度分辨率 1280×800
RGB 分辨率 1920×1080
电源接口 DC 12V/24V
触发信号 HR10A-7P-6S
数据接口 Gigabit Ethernet
功耗 2.8W ~ 3.9W
温度范围 存储:-10°C55°C;操作:0°C45°C
防护等级 IP41
尺寸 95mm×45mm×43mm
重量 228g

在这里插入图片描述

当期使用本套方案作机械臂自动抓取与避障控制的验证工作,使用方案如下【参考大象官方技方案】:

特殊说明:
因为组内项目刚起步,硬件资源正在陆续到货,后续回持续更新

伴随平台搭建完毕后,会对RDK-X5平台上实现项目目标做验证
在这里插入图片描述


后续项目的具体实施步骤如下:

  1. 稳定性与识别效果论证(Step1)

    • 首先论证YOLO-V5识别方案在实际场景中的稳定性和识别效果。这包括在一般光照条件、背景干扰下的识别准确率和响应时间。
    • 具体RDK-X5入手评测,参见:https://developer.d-robotics.cc/forumDetail/256524798723994762
    • 利用教程,在RDK-X5上基于YOLOV3实现的手势识别效果,如下图,X5的处理速度约每秒30FPS
    • 参考教程:手势识别
    • 特别说明:因为使用的desktop版本的,如果跑需要 HDMI 预览画面的示例,需要执行sudo systemctl stop lightdm把图形界面关掉,否则 HDMI 不会显示预期的图像。

    • 例如本示例中,需要将摄像头的画面通过 HDMI 直出,而不是在 xfce 桌面显示。这个示例本质上就是将 nv12 数据走 BT1120 从 HDMI 硬件直出。

  2. 人体手势识别与判定(Step2)

    • 利用RDK Studio平台提供的视觉识别算法,会尝试使用Python脚本方案来整合YOLO的识别来识别人体手势,并给出判定结果。
    • 具体实施步骤,建议参考官方说明文档:基于Python的手势识别
    • 这里使用USB作手势识别,附上操作说明:
# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_lmk_detection/config/ .
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_gesture_detection/config/ .

# 配置USB摄像头
export CAM_TYPE=usb

# 启动launch文件
ros2 launch hand_gesture_detection hand_gesture_detection.launch.py

在这里插入图片描述

  • 输出log显示,程序运行成功,推理时算法输入和输出帧率为30fps,每秒钟刷新一次统计帧率。
  • 输出log显示,订阅到的算法msg中有一个hand(包含人手框和人手关键点检测结果),手势识别算法输出的手势分类结果是“Palm”手势(分类结果为5)。

在PC端的浏览器输入http://192.168.128.10:8000 即可查看图像和算法渲染效果(IP为RDK的IP地址):
在运行终端输出如下信息:
在这里插入图片描述在这里插入图片描述

  • 之后与五指灵巧手的动作指令控制配合,这将涉及到算法的优化和脚本开发工作,本部分程序完成后,我会开源到GitHub仓库。
  • 该硬件完成平台搭建后,持续更新本帖
  1. 控制板中枢实验(Step3)
    • 最后,将尝试使用RDK-X5作为机器人和灵巧手的控制板中枢,结合深度感知算法,实现机器人运动控制、物体识别以及灵巧手的抓取动作。这一步骤将验证RDK-X5在复杂任务中的控制能力和稳定性。

项目的具体目标包括:

  1. 基于视觉的分类与识别定位

    • 利用RDK-X5实现基于2D视觉的物体分类和识别定位。这将涉及到图像处理、模式识别和机器学习等多个领域的技术。
  2. 手势识别与动作跟随

    • 结合灵巧手进行手势识别,使灵巧手能够实现对人手势动作的精确跟随。这不仅要求算法的高准确率,还要求系统的低延迟和高响应速度。

通过本项目的实施,期望能够验证RDK-X5在机器人灵巧手领域的应用潜力。

  • 项目目标:视觉识别与手势跟随”项目的具体目标和预期成果。

技术方案说明记录

后面会持续更新本帖,本项目会记录自己本项目的开发过程,会以系列教程的方式,记录在本博客页面

  1. 视觉识别技术

    • YOLO-V5识别方案:详细介绍YOLO-V5的原理和在项目中的实施计划。
    • RDK-X5在视觉识别中的作用:分析RDK-X5如何执行图像处理和识别任务。
  2. 手势识别与深度检测

    • 双目视觉技术:探讨双目视觉技术在手势识别中的应用。
    • 深度检测技术:讨论深度检测在提高手势识别准确性中的重要性。
  3. 通信与控制

    • CAN总线通信:解释CAN总线如何实现RDK-X5与灵巧手之间的通信。
    • 控制中枢角色:分析RDK-X5如何作为控制中枢下达动作指令。

第三部分:项目实施步骤详解

  1. Step1:YOLO-V5识别方案的稳定性与效果论证

    • 实验设计:描述实验环境搭建和测试流程。
    • 结果评估:讨论如何通过实验数据评估识别方案的性能。
  2. Step2:人体手势识别与灵巧手动作跟随

    • RDK Studio平台应用:详细说明如何使用RDK Studio进行手势识别。
    • 动作指令下达:探讨如何将识别结果转换为灵巧手的动作指令。
  3. Step3:RDK-X5作为控制中枢的实验

    • 实验构想:描述实验的详细构想和技术挑战。
    • 集成实现:讨论如何将机器人运动控制、物体识别与灵巧手抓取动作集成。

第四部分:技术优势与挑战分析

  • 技术优势:横向对比网上已有方案,后续待定补充。
  • 技术挑战
    -- 1、YOLO算法的准确度不能实现预期效果
    -- 2、使用2D相机开发,之前不熟悉
    -- 3、很多坑还么踩过,需要持续学习优化

第五部分:项目应用待验证的场景

  • 应用场景:后续考虑在公司组内进行技术分享与交流,逐渐融入地瓜机器人生态下作持续开发。
  • 未来发展:看好地平线和地瓜机器人,当前的开发这生态正在大力推进,本人会持续关注。

结语

  • 总结:本项目会持续更新,作个人技术开发记录和技术分享,欢迎大家在线交流
  • 项目潜力:-------

附录

posted @ 2024-11-17 23:41  ACE丶打铁匠  阅读(507)  评论(0)    收藏  举报