视觉感知
适用配置
AI Perception Pack · 视觉感知功能模块
VISION PERCEPTION PACK
相机、图像与目标结果
参考配置使用 USB / UVC 相机与 RDK S100/S100P。相机型号、安装位置、视角、设备号和可用模型以交付清单为准,本节重点说明视觉外设接入与后续功能关系。
- 接口类型:USB / UVC 视频输入
- 默认位置:胸腔前向主视觉
- 典型用途:图像采集、手势识别、颜色识别、目标跟踪
首次运行建议保存原始样张,作为后续排查画面质量与识别效果的基线。
相机模块简介
机器人胸腔内部装配有USB超清相机模组:4K 800万像素,90度广角无畸变,实现主视觉全方位防盲区感知。采用1/2.8英寸高性能IMX415传感器,分辨率可达3840*2160,画质清晰细腻,色彩更还原。
图像采集
图像采集功能用于读取摄像头画面,并将摄像头图像作为后续视觉识别功能的输入。系统识别后会生成 /dev/video* 设备节点,当前为/dev/video0。程序采用自动扫描方式寻找摄像头设备,会依次尝试:/dev/video0~4,只要其中某个设备能够成功打开并读取图像,程序就会自动使用该摄像头。
注:出厂已完成安装,只需在打开终端时,输入Driver对应工作空间的数字,再键入Enter即可直接使用预装好的开发环境。
=================================
请选择要进入的工作空间和虚拟环境:
=================================
1) Driver (~/driver)
2) RDK AI (~/rdk_ai)
3) TROS (~/tros)
4) 不进入任何虚拟环境 (保持默认)
=================================
请输入数字 [1-4] (直接按 Enter 保持默认):1
手势识别
手势识别功能基于摄像头实时画面,对人手姿态进行识别,并通过网页进行画面推流显示。手势识别功能同样使用独立的uv 虚拟环境进行管理,Python 版本使用 Python 3.12。该环境主要安装 Flask3.0.3、NumPy 1.26.4、opencv-python 4.10.0.84、mediapipe 0.10.14 以及protobuf<5。其中,opencv-python 负责摄像头画面采集和图像处理;MediaPipe 负责手部关键点检测和手势识别;NumPy 用于图像和坐标数据计算;Flask用于网页推流和手势文本接口输出。
SSH连接算力大脑,开启终端输入如下指令:
cd bipedal_robot_proj/src/driver/camera_ws/apps
python3 gesture_detect_stream/gesture_detect_stream.py
| 手势 | 说明 |
| Rock | 握拳 |
| Paper | 张开手掌 |
| Scissors | 剪刀手 |
| OK | OK 手势 |
| Thumbs Up | 点赞 |
| Index Up | 食指向上 |
| Index Down | 食指向下 |
| Index Left | 食指向左 |
| Index Right | 食指向右 |

手势识别:手掌张开
综合控制/手势控制步态
手势控制功能用于通过摄像头识别用户手势,并控制机器人完成步态动作。系统启动手势控制程序后,用户可在摄像头前做出指定手势,机器人会根据识别结果执行前进、后退、左转、右转、停止等动作。
SSH连接算力大脑成功后,终端输入如下指令:
终端一:识别手势动作并转换为数字指令,通过ZMQ发送给运控接口。
终端二:接收指令并发送给运控小脑。启动控制接口
#激活Drive环境
cd ~/driver
python3 nav_tools/zmq_json_send.py --cmd set_sdk_mode --sdk-mode 1
#启动动作指令发送程序
python3 action_cmd_forward.py
| 手势 | 功能说明 |
|---|---|
| 剪刀手 | 激活手势控制 |
| 手掌张开 | 停止运动 |
| 食指向上 | 前进 |
| 食指向下 | 后退 |
| 食指向左 | 左转 |
| 食指向右 | 右转 |
| OK 手势 | 原地转圈 |


推流显示界面
手势控制程序终端日志可看到当前状态,并通过ZMQ发送对应数字指令:
----------------------------------------------
[识别] Scissors
[状态] READY | Scissors 激活
----------------------------------------------
[识别] Index Up
[发送] 1
[动作] Index Up -> 1
----------------------------------------------
动作指令发送程序收到对应数字指令并发送对应指令给运控小脑。
🎮 机器人简单指令
消息格式: v2 (速度协议)
ZMQ 数字指令接收: tcp://0.0.0.0:7001
ZMQ 指令发送: tcp://192.168.8.202:6061
请输入命令编号:
🤚 收到数字: 1
🚀 已发送: forward
⏱️ 将在 2.0s 后自动停止
请输入命令编号: ⏱️ 定时停止: stop
颜色识别
颜色识别功能基于摄像头画面,对画面中的指定颜色区域进行识别和标记,并通过网页进行实时推流显示。使用独立的 uv 虚拟环境进行管理,Python 版本使用 Ubuntu 22.04 默认的 Python 3.10。该环境与手势识别使用同一套 Flask 、NumPy 、 和 opencv-python 。其中,opencv-python 用于摄像头图像采集、图像格式处理和颜色区域检测;NumPy 用于图像数组计算;Flask 用于搭建网页服务,将识别后的摄像头画面通过指定端口推流到浏览器。
SSH连接算力大脑成功后,开启终端输入如下指令:
启动成功后,终端会显示推流网址,例如:http://192.168.1.152:5000,浏览器登录该网址即可查看当前画面,并可进行颜色识别。当前颜色识别功能支持常见颜色识别:红、绿、蓝、黄。
颜色识别跟踪
综合控制/颜色跟踪
颜色识别跟踪功能用于通过摄像头识别指定颜色目标,并根据目标在画面中的位置和距离控制机器人运动。系统启动后,用户可在浏览器推流页面中添加目标色块样本,勾选需要识别的颜色后,机器人会自动识别该目标颜色,并根据目标位置执行前进、后退或停止动作。该功能适用于机器人对特定颜色目标进行跟随或距离保持。
SSH连接算力大脑成功后,终端输入如下指令:
终端一:识别目标颜色的位置并转换为数字指令,通过ZMQ发送给指令接收端。
终端二:接收数字指令并发送给运控小脑。启动控制接口
# 激活Drive环境
cd ~/driver
python3 nav_tools/zmq_json_send.py --cmd set_sdk_mode --sdk-mode 1
# 启动动作指令发送程序
python3 action_cmd_forward.py
| 识别状态 | 机器人动作 |
|---|---|
| 目标距离较远 | 向前移动 |
| 目标距离过近 | 向后移动 |
| 目标距离合适 | 停止运动 |
| 目标丢失或画面异常 | 停止运动 |

推流显示界面
颜色识别跟踪程序终端日志可看到当前状态,并通过ZMQ发送对应数字指令:
[色块选择] sample_1783675265294_3 已勾选,进入识别控制流。
[控制] 已勾选色块 sample_1783675265294_3,安全运动状态机开始工作。
[候选] STOP -> FORWARD,持续确认 1.5s
----------------------------------------------
[状态] STOP -> FORWARD
[原因] FORWARD 持续确认 1.5s
[发送] 1.
----------------------------------------------
动作指令发送程序收到对应数字指令并发送对应指令给运控小脑。
🎮 机器人简单指令
消息格式: v2 (速度协议)
ZMQ 数字指令接收: tcp://0.0.0.0:7001
ZMQ 指令发送: tcp://192.168.8.202:6061
请输入命令编号:
🤚 收到数字: 1.
🚀 已发送: forward