1685|7

84

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

RDK X3测评:10. 手势控制小车 [复制链接]

简介

RDK X3 是一款强大的开发板,支持通过手势控制机器人小车的运动。本文将详细介绍如何利用 RDK X3 和其配套工具(如 MIPI 或 USB 摄像头)实现手势控制功能,并通过 ROS 2 的 cmd_vel topic 发布控制指令,驱动小车完成前进、后退、左右旋转等操作。此外,我们还将展示如何在 Gazebo 仿真环境中测试控制效果,确保系统的稳定性和可靠性。

系统架构

具体流程如下图所示:

相应的代码仓库:https://github.com/D-Robotics/gesture_control
板端程序通过cmd_vel topic发布控制指令,既能够控制PC端Gazebo仿真环境下的虚拟小车,也可以直接用于控制实物小车。

手势识别

首先将RDK X3联网,确保PC和RDK X3在同一网段下。
之后,在RDK X3中运行如下命令,启动USB摄像头采集,手势识别和控制,通过PC端web浏览器实时查看采集到的图像。

  1. # 配置tros.b环境
  2. source /opt/tros/humble/setup.bash
  3. # 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
  4. cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
  5. cp -r /opt/tros/${TROS_DISTRO}/lib/hand_lmk_detection/config/ .
  6. cp -r /opt/tros/${TROS_DISTRO}/lib/hand_gesture_detection/config/ .
  7. # 配置USB摄像头
  8. export CAM_TYPE=usb
  9. # 启动launch文件
  10. ros2 launch gesture_control gesture_control.launch.py

如果要使用mipi摄像头,只需要将CAM_TYPE从usb修改为mipi即可。
之后,在PC端的浏览器中输入http://192.168.2.12:8000 即可查看摄像头采集的图像及算法渲染效果(其中192.168.2.12为RDK的IP地址)。下面是其中两种手势的是被效果图:

可以看到,系统能够准确识别当前的手势。并且在网页的左下角可以看到当前的系统状态信息

其中的fps为实时AI推理输出的帧率,当前为17帧。ai_delay为540,表示的是单帧推理的延迟为540ms。

手势控制

具体的控制方式可以从代码仓库的src/main.cpp代码文件中查看

相应的手势与对应的控制功能如下:

  • Okay:Wake up
  • Palm:Reset
  • Awesome:Forward
  • Victory:Backward
  • ThumbRight:Turn Right
  • ThumbLeft:Turn Left

下面我们在PC上新建终端,执行如下命令,查看不同手势下cmd_vel topic上发布的内容,其中包含线速度和角速度的信息。

  1. ros2 topic echo /cmd_vel

我们分别做出了手掌和“V”手势,可以看到,分别发出了reset指令和后退指令。

仿真测试

下面我们在PC端运行Gazebo仿真程序,展示实际的控制效果。
首先执行如下命令,启动Gazebo仿真程序。

  1. source /opt/ros/humble/setup.bash
  2. export TURTLEBOT3_MODEL=burger
  3. ros2 launch turtlebot3_gazebo empty_world.launch.py

运行的仿真环境如下图所示:

之后我们分别给出不同的手势,控制小车的运行状态。测试效果如下:

播放器加载失败: 未检测到Flash Player,请到安装
仿真测试

小结

本节中,我们成功借助 RDK X3 实现了基于手势控制的机器人小车运动功能,包括前进、后退、左右旋转及重置等操作。通过集成手势识别算法与 ROS 2 的 cmd_vel 控制机制,系统展示了良好的实时性和稳定性。此外,结合仿真工具如 Gazebo,为算法的测试与调试提供更便捷的支持。

最新回复

那估计就是我跑的例程有问题了,我还是RDK X5呢   详情 回复 发表于 2025-2-24 17:52
点赞 关注(1)

回复
举报

7515

帖子

2

TA的资源

版主

沙发
 

我跑的例程感觉手势识别不对劲,你跑的也是官方例程吧?

点评

大佬觉得那儿哪儿不对劲呀  详情 回复 发表于 2025-2-21 21:21
 
 

回复

84

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
wangerxian 发表于 2025-2-21 17:46 我跑的例程感觉手势识别不对劲,你跑的也是官方例程吧?

大佬觉得那儿哪儿不对劲呀

点评

识别的手指没有你这个点多,我用的是USB摄像头,不过我感觉和这个没关系。  详情 回复 发表于 2025-2-24 09:02
 
 
 

回复

6891

帖子

9

TA的资源

版主

4
 

一般手势识别需要控制在怎样的频率范围比较合理?

点评

感觉正常应该越大越好。频率越高,系统的实时性通常会更强,能够更快地响应用户的手势变化。但也要考虑到设备的性能,测试的时候识别帧率是十几Hz,控制起来基本没有明显的卡顿现象。  详情 回复 发表于 2025-2-22 16:48
 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 

回复

84

帖子

0

TA的资源

一粒金砂(高级)

5
 
秦天qintian0303 发表于 2025-2-22 14:30 一般手势识别需要控制在怎样的频率范围比较合理?

感觉正常应该越大越好。频率越高,系统的实时性通常会更强,能够更快地响应用户的手势变化。但也要考虑到设备的性能,测试的时候识别帧率是十几Hz,控制起来基本没有明显的卡顿现象。

 
 
 

回复

7515

帖子

2

TA的资源

版主

6
 
waterman 发表于 2025-2-21 21:21 大佬觉得那儿哪儿不对劲呀

识别的手指没有你这个点多,我用的是USB摄像头,不过我感觉和这个没关系。

点评

这次我用的也是USB摄像头。感觉它程序里不仅包含了人手关键点检测,还融合了人体关键点检测,并且这两个是相互关联的。测试的时候,只有识别到人体关键点之后,才会进一步显示人手的关键点。  详情 回复 发表于 2025-2-24 14:03
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(高级)

7
 
查看本帖全部讨论,请登录或者注册

点评

那估计就是我跑的例程有问题了,我还是RDK X5呢  详情 回复 发表于 2025-2-24 17:52
 
 
 

回复

7515

帖子

2

TA的资源

版主

8
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播 | AI之眼——安森美图像传感器 报名中
直播时间:2025年4月25日(周五)上午10:00-11:30
直播主题:AI之眼——安森美图像传感器
报名观看直播、直播间提问、填写问卷均有机会获得精美礼品!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表