基于地瓜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 TOPS10 TOPS
GPU搭载32个Tensor Core的1024核NVIDIA Ampere架构GPU-
GPU频率625MHz (Max)-
CPU6核 Arm Cortex-A78AE v8.28核 Cortex A55
CPU频率1.5GHz (Max)-
内存8GB 128位 LPDDR5, 68GB/s8GB
存储空间128GB NVMe 固态硬盘1G-bit NAND, 带TF卡槽支持UHS-I模式
功率7W ~ 15W-
USB接口3x USB 3.2 2.0 (10 Gbps) 3x USB 2.04x USB 3.0, 1x USB 2.0 Type-C, 1x USB 2.0 UART
显示接口1x 8K30 多模DP 1.4a, eDP 1.4a/HDMI 2.11x MIPI DSI, 1x HDMI Type-A (支持1080P/60fps)
摄像头接口可支持4个摄像头 8个通道MIPI CSI-22x 4-lane MIPI CSI(支持MIPI V2.1协议)
网络1x GbE1x 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 mm85 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,每秒钟刷新一次统计帧率。
    在终端输出如下信息:
root@ubuntu:/# ros2 launch hand_gesture_detection hand_gesture_detection.launch.py
[INFO] [launch]: All log files can be found below /root/.ros/log/2024-11-18-15-27-47-194375-ubuntu-22094
[INFO] [launch]: Default logging verbosity is set to INFO
camera_type is  usb
using usb camera
Hobot shm pkg enables zero-copy with fastrtps profiles file: /opt/tros/humble/lib/hobot_shm/config/shm_fastdds.xml
Hobot shm pkg sets RMW_FASTRTPS_USE_QOS_FROM_XML: 1
config_file_path is  /opt/tros/humble/lib/hobot_usb_cam/config/usb_camera_calibration.yaml
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
launch webserver
pwd_path is  /
webserver_path is  /opt/tros/humble/lib/websocket/webservice
launch webserver cmd is  ./sbin/nginx -p .
camera_type is  usb
using usb camera
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
config_file_path is  /opt/tros/humble/lib/hobot_usb_cam/config/usb_camera_calibration.yaml
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
webserver has launch
camera_type is  usb
using usb camera
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
config_file_path is  /opt/tros/humble/lib/hobot_usb_cam/config/usb_camera_calibration.yaml
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
webserver has launch
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
config_file_path is  /opt/tros/humble/lib/hobot_usb_cam/config/usb_camera_calibration.yaml
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is  1 , ignore env setting
webserver has launch
[INFO] [hobot_usb_cam-1]: process started with pid [22128]
[INFO] [hobot_codec_republish-2]: process started with pid [22130]
[INFO] [mono2d_body_detection-3]: process started with pid [22132]
[INFO] [websocket-4]: process started with pid [22134]
[INFO] [hand_lmk_detection-5]: process started with pid [22136]
[INFO] [hand_gesture_detection-6]: process started with pid [22138]
[hand_gesture_detection-6] [WARN] [1731914869.725506361] [hand gesture det pkg]: This is hand gesture det pkg!
[hand_gesture_detection-6] [WARN] [1731914869.915330437] [hand gesture det node]: Parameter:
[hand_gesture_detection-6]  is_sync_mode_: 0
[hand_gesture_detection-6]  model_file_name_: config/gestureDet_8x21.hbm
[hand_gesture_detection-6]  ai_msg_sub_topic_name_: /hobot_hand_lmk_detection
[hand_gesture_detection-6]  ai_msg_pub_topic_name: /hobot_hand_gesture_detection
[hand_lmk_detection-5] [WARN] [1731914869.915627301] [hand_lmk_det]: Parameter:
[hand_lmk_detection-5]  feed_type(0:sub, 1:local): 0
[hand_lmk_detection-5]  is_sync_mode_: 0
[hand_lmk_detection-5]  model_file_name_: config/handLMKs.hbm
[hand_lmk_detection-5]  ai_msg_pub_topic_name: /hobot_hand_lmk_detection
[hand_lmk_detection-5]  is_shared_mem_sub: 1
[hand_lmk_detection-5]  dump_render_img: 0
[hand_lmk_detection-5]  ai_msg_sub_topic_name_: /hobot_mono2d_body_detection
[websocket-4] [WARN] [1731914869.916067744] [websocket]:
[websocket-4] Parameter:
[websocket-4]  image_topic: /image
[websocket-4]  image_type: mjpeg
[websocket-4]  only_show_image: 0
[websocket-4]  smart_topic: /hobot_hand_gesture_detection
[websocket-4]  output_fps: 0
[hobot_codec_republish-2] [WARN] [1731914869.934984492] [hobot_codec]: Parameters:
[hobot_codec_republish-2] sub_topic: /image
[hobot_codec_republish-2] pub_topic: /hbmem_img
[hobot_codec_republish-2] channel: 1
[hobot_codec_republish-2] in_mode: ros
[hobot_codec_republish-2] out_mode: shared_mem
[hobot_codec_republish-2] in_format: jpeg
[hobot_codec_republish-2] out_format: nv12
[hobot_codec_republish-2] enc_qp: 10
[hobot_codec_republish-2] jpg_quality: 60
[hobot_codec_republish-2] input_framerate: 30
[hobot_codec_republish-2] output_framerate: -1
[hobot_codec_republish-2] dump_output: 0
[hand_gesture_detection-6] [BPU_PLAT]BPU Platform Version(1.3.6)!
[hand_gesture_detection-6] [HBRT] set log level as 0. version = 3.15.54.0
[hand_gesture_detection-6] [DNN] Runtime version = 1.23.10_(3.15.54 HBRT)
[hand_lmk_detection-5] [BPU_PLAT]BPU Platform Version(1.3.6)!
[hand_lmk_detection-5] [HBRT] set log level as 0. version = 3.15.54.0
[hand_lmk_detection-5] [DNN] Runtime version = 1.23.10_(3.15.54 HBRT)
[hobot_codec_republish-2] [WARN] [1731914869.951594446] [HobotCodecImpl]: platform x5
[hand_gesture_detection-6] [WARN] [1731914870.141516239] [hand gesture det node]: input_idx: 0, tensorType = 8, tensorLayout = 0
[hand_gesture_detection-6] [WARN] [1731914870.143169806] [hand gesture det node]: Create subscription with topic_name: /hobot_hand_lmk_detection
[hand_gesture_detection-6] [WARN] [1731914870.153316823] [hand gesture det node]: ai_msg_pub_topic_name: /hobot_hand_gesture_detection
[hobot_usb_cam-1] [WARN] [1731914870.168912939] [hobot_usb_cam]: framerate: 30
[hobot_usb_cam-1] [WARN] [1731914870.169476544] [hobot_usb_cam]: pixel_format_name: mjpeg
[hobot_usb_cam-1] [WARN] [1731914870.195313132] [hobot_usb_cam]: Camera calibration file: [/opt/tros/humble/lib/hobot_usb_cam/config/usb_camera_calibration.yaml] does not exist!
[hobot_usb_cam-1] If you need calibration msg, please make sure the calibration file path is correct and the calibration file exists!
[hobot_usb_cam-1] [WARN] [1731914870.207705279] [hobot_usb_cam]: Try to open device [/dev/video0]
[hand_lmk_detection-5] [WARN] [1731914870.229038526] [hand_lmk_det]: Create hbmem_subscription with topic_name: /hbmem_img
[hobot_usb_cam-1] [WARN] [1731914870.460917761] [hobot_usb_cam]: This devices supproted formats:
[hobot_usb_cam-1] [WARN] [1731914870.461207292] [hobot_usb_cam]:        Motion-JPEG: 1280 x 720 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461269165] [hobot_usb_cam]:        Motion-JPEG: 1280 x 720 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461317372] [hobot_usb_cam]:        Motion-JPEG: 160 x 120 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461363495] [hobot_usb_cam]:        Motion-JPEG: 176 x 144 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461408577] [hobot_usb_cam]:        Motion-JPEG: 320 x 240 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461453742] [hobot_usb_cam]:        Motion-JPEG: 352 x 288 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461498949] [hobot_usb_cam]:        Motion-JPEG: 848 x 480 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461543739] [hobot_usb_cam]:        Motion-JPEG: 800 x 600 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461589071] [hobot_usb_cam]:        Motion-JPEG: 960 x 540 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461634277] [hobot_usb_cam]:        Motion-JPEG: 640 x 480 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461678984] [hobot_usb_cam]:        Motion-JPEG: 1280 x 720 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461724191] [hobot_usb_cam]:        Motion-JPEG: 1280 x 720 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461768689] [hobot_usb_cam]:        YUYV 4:2:2: 1280 x 720 (10 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461813188] [hobot_usb_cam]:        YUYV 4:2:2: 1280 x 720 (10 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461857853] [hobot_usb_cam]:        YUYV 4:2:2: 160 x 120 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461902018] [hobot_usb_cam]:        YUYV 4:2:2: 176 x 144 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461949683] [hobot_usb_cam]:        YUYV 4:2:2: 320 x 240 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.461994431] [hobot_usb_cam]:        YUYV 4:2:2: 352 x 288 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.462038888] [hobot_usb_cam]:        YUYV 4:2:2: 848 x 480 (25 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.462083595] [hobot_usb_cam]:        YUYV 4:2:2: 800 x 600 (20 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.462127885] [hobot_usb_cam]:        YUYV 4:2:2: 960 x 540 (20 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.462172258] [hobot_usb_cam]:        YUYV 4:2:2: 640 x 480 (30 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.462216882] [hobot_usb_cam]:        YUYV 4:2:2: 1280 x 720 (10 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.462261338] [hobot_usb_cam]:        YUYV 4:2:2: 1280 x 720 (10 Hz)
[hobot_usb_cam-1] [WARN] [1731914870.478744132] [hobot_usb_cam]: Open & Init device /dev/video0 success.
[mono2d_body_detection-3] [WARN] [1731914870.656439070] [example]: This is mono2d body det example!
[mono2d_body_detection-3] [WARN] [1731914870.757045479] [mono2d_body_det]: Parameter:
[mono2d_body_detection-3]  is_sync_mode_: 0
[mono2d_body_detection-3]  model_file_name_: config/multitask_body_head_face_hand_kps_960x544.hbm
[mono2d_body_detection-3]  is_shared_mem_sub: 1
[mono2d_body_detection-3]  ai_msg_pub_topic_name: /hobot_mono2d_body_detection
[mono2d_body_detection-3]  ros_img_topic_name: /image_raw
[mono2d_body_detection-3]  image_gap: 1
[mono2d_body_detection-3] [BPU_PLAT]BPU Platform Version(1.3.6)!
[mono2d_body_detection-3] [HBRT] set log level as 0. version = 3.15.54.0
[mono2d_body_detection-3] [DNN] Runtime version = 1.23.10_(3.15.54 HBRT)
[mono2d_body_detection-3] [WARN] [1731914870.980748169] [mono2d_body_det]: Enabling zero-copy
[mono2d_body_detection-3] [WARN] [1731914870.980890456] [mono2d_body_det]: Create hbmem_subscription with topic_name: /hbmem_img
[mono2d_body_detection-3] (MOTMethod.cpp:39): MOTMethod::Init config/iou2_euclid_method_param.json
[mono2d_body_detection-3]
[mono2d_body_detection-3] (IOU2.cpp:34): IOU2 Mot::Init config/iou2_euclid_method_param.json
[mono2d_body_detection-3]
[mono2d_body_detection-3] (MOTMethod.cpp:39): MOTMethod::Init config/iou2_method_param.json
[mono2d_body_detection-3]
[mono2d_body_detection-3] (IOU2.cpp:34): IOU2 Mot::Init config/iou2_method_param.json
[mono2d_body_detection-3]
[mono2d_body_detection-3] (MOTMethod.cpp:39): MOTMethod::Init config/iou2_method_param.json
[mono2d_body_detection-3]
[mono2d_body_detection-3] (IOU2.cpp:34): IOU2 Mot::Init config/iou2_method_param.json
[mono2d_body_detection-3]
[mono2d_body_detection-3] (MOTMethod.cpp:39): MOTMethod::Init config/iou2_method_param.json
[mono2d_body_detection-3]
[mono2d_body_detection-3] (IOU2.cpp:34): IOU2 Mot::Init config/iou2_method_param.json
[mono2d_body_detection-3]
[hand_lmk_detection-5] [WARN] [1731914871.017001557] [hand_lmk_det]: Loaned messages are only safe with const ref subscription callbacks. If you are using any other kind of subscriptions, set the ROS_DISABLE_LOANED_MESSAGES environment variable to 1 (the default).
[mono2d_body_detection-3] [WARN] [1731914871.017086971] [mono2d_body_det]: Loaned messages are only safe with const ref subscription callbacks. If you are using any other kind of subscriptions, set the ROS_DISABLE_LOANED_MESSAGES environment variable to 1 (the default).
[mono2d_body_detection-3] [WARN] [1731914871.017407418] [mono2d_body_det]: Recved img encoding: nv12, h: 480, w: 640, step: 640, index: 0, stamp: 1731914870_677700000, data size: 460800, comm delay [339.6931]ms
[mono2d_body_detection-3] [W][DNN]bpu_model_info.cpp:491][Version](2024-11-18,15:27:50.951.416) Model: multitask_body_head_face_hand_kps_960x544. Inconsistency between the hbrt library version 3.15.54.0 and the model build version 3.15.47.0 detected, in order to ensure correct model results, it is recommended to use compilation tools and the BPU SDK from the same OpenExplorer package.
[mono2d_body_detection-3] [WARN] [1731914872.069802390] [mono2d_body_det]: input fps: 34.83, out fps: 34.82, infer time ms: 11, post process time ms: 0
[hand_lmk_detection-5] [WARN] [1731914872.070653277] [hand_lmk_det]: input fps: 34.82, out fps: 34.82
[hand_gesture_detection-6] [WARN] [1731914872.071434374] [hand_gesture_det]: Sub smart fps 34.85
[hand_gesture_detection-6] [WARN] [1731914872.071958814] [hand_gesture_det]: Pub smart fps 34.82
  • 输出log显示,订阅到的算法msg中有一个hand(包含人手框和人手关键点检测结果),手势识别算法输出的手势分类结果是“Palm”手势(分类结果为5)。
手势说明数值
ThumbUp竖起大拇指2
Victory"V"手势3
Mute"嘘"手势4
Palm手掌5
OkayOK手势11
ThumbLeft大拇指向左12
ThumbRight大拇指向右13
Awesome666手势14

在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、很多坑还么踩过,需要持续学习优化
第五部分:项目应用待验证的场景
  • 应用场景:后续考虑在公司组内进行技术分享与交流,逐渐融入地瓜机器人生态下作持续开发。
  • 未来发展:看好地平线和地瓜机器人,当前的开发这生态正在大力推进,本人会持续关注。
结语
  • 总结:本项目会持续更新,作个人技术开发记录和技术分享,欢迎大家在线交流
  • 项目潜力:-------
附录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值