# OpenClaw
# 龙虾
# 机器狗
# 宇树Go2
# unitree_sdk2_python
# VideoClient
# 图像采集
# 摄像头
# 入门
教程简介
本期是“机器狗养龙虾”系列的第六天,聚焦摄像头图像采集功能的实测验证。测试脚本 08_video_capture.py 支持两种运行模式:save 模式成功生成高质量静态图像,preview 模式以接近 20 FPS 的帧率实现了流畅的实时视频预览。摄像头能够如实反映机器狗在不同姿态和位置下的视野变化,为后续视觉感知与智能决策模块的开发打下了坚实基础。
## 机器狗养龙虾(OpenClaw)第六天 — 图像实时采集
在前几期的探索中,我们借助“龙虾”这套自动化代码生成与分析工具,对宇树 Go2 机器狗的主要功能模块进行了系统梳理与验证。从最基础的设备连接和状态读取,到电机控制、运动指令、高级特技动作,再到声音反馈与灯光亮度调节,每一项功能都经过了实际测试。今天是第六天,我们将把目光投向机器狗的“眼睛”——前置摄像头,验证图像的实时采集与预览能力。
所用设备为宇树科技的 Go2 四足机器人,该平台配备高清前置摄像头,支持通过 SDK 的 RPC 接口进行图像数据的远程获取。本次测试脚本为 `08_video_capture.py`,重点验证两种使用场景:单帧图像保存与连续视频预览。下一期将继续验证运动模式切换等进阶功能。

---
## 摄像头采集:08\_video\_capture.py
### 脚本概览
本脚本基于宇树 SDK 提供的 `VideoClient` 接口,通过 RPC 协议与机器狗建立通信,实时拉取前置摄像头的 JPEG 图像帧数据。整体设计简洁实用,支持两种独立运行模式,以适应不同的使用场景和硬件条件。
### 运行模式说明
**单帧保存模式(save)**
此模式适用于无图形界面的服务器环境或仅需采集静态图像的场景。脚本在建立连接后,从摄像头读取一帧图像并将其保存为 JPEG 文件,整个过程无需安装 OpenCV 等图像显示依赖库。适合用于图像采样、定期快照或远程调试场景。
**连续预览模式(preview)**
此模式会持续从摄像头拉取图像帧并通过 OpenCV 在桌面窗口中实时展示,形成连续的视频流效果。适合在桌面环境中进行视觉调试和实时观察。按下键盘 ESC 键可退出预览并输出帧数统计信息。
**依赖说明:**
- save 模式:无额外依赖,仅使用标准库;
- preview 模式:需提前安装 `opencv-python` 和 `numpy`,可通过以下命令安装:`pip install opencv-python numpy`
脚本还会实时打印每帧图像的采集耗时,通常在 100~300ms 范围内,可用于评估网络延迟和系统响应能力。
1
脚本功能概述
代码示例
pip install opencv-python numpy
2
运行方式
代码示例
# 单帧保存模式
python 08_video_capture.py save
# 或直接不带参数运行(默认为 save 模式)
python 08_video_capture.py
# 连续预览模式
python 08_video_capture.py preview
3
测试过程:save 模式
代码示例
(base) fgai@fgai-virtual-machine:~/project/resarch/unitree_sdk2_python/user_dev/go2_tests$ python 08_video_capture.py save
==================================================
Go2 VideoClient 摄像头采集(save 模式)
==================================================
网络接口:ens33
VideoClient 初始化完成
采集一帧图像...
4
测试过程:preview 模式
代码示例
(base) fgai@fgai-virtual-machine:~/project/resarch/unitree_sdk2_python/user_dev/go2_tests$ python 08_video_capture.py preview
==================================================
Go2 VideoClient 摄像头采集(preview 模式)
==================================================
网络接口:ens33
VideoClient 初始化完成
进入预览模式,按 ESC 退出...
Corrupt JPEG data: 222 extraneous bytes before marker 0xd5
图像解码失败
GetImageSample 失败,code=3104
✓ 预览结束,共采集 449 帧,平均 FPS: 19.7
5
动态场景验证
6
小结
返回教程列表
觉得有用?分享给更多朋友吧