Skip to the content.

liuyiyuan

本周学习总结(机器人视觉系统搭建)

本周主要围绕机器人视觉系统的基础搭建展开,核心目标是解决“目标在图像中的位置与距离如何获取”的问题,并构建完整的跨设备视觉数据传输与处理链路。

一、核心问题与学习目标

本周主要解决的核心问题是:

如何从摄像头图像中获取目标的位置与距离信息?

基于该问题,本阶段课程重点不在单纯使用摄像头,而是构建一个完整的机器人视觉系统,包括数据采集、网络传输、图像处理与目标识别等环节。

最终目标为实现:

ArUco 标记识别 位姿估计(Pose Estimation) 距离计算的基础能力 二、整体系统架构

本周搭建的系统整体结构如下:

手机摄像头 → HTML5 浏览器采集 → Tailscale 虚拟网络传输 → WSL Ubuntu(Flask 摄像头桥接服务) → OpenCV 图像处理 → ArUco 目标检测与识别

该链路实现了跨设备实时视频传输与视觉处理流程。

三、系统设计原因 1️⃣ 使用手机作为摄像头 成本低,无需额外硬件 接近真实机器人视觉传感器 支持远程部署与调试 2️⃣ 使用 Tailscale 网络

Tailscale 用于解决实际部署中的网络隔离问题:

解决校园网设备无法互通的问题 解决 WSL2 NAT 导致的外部访问限制问题

其本质是构建一个跨设备的虚拟局域网络,使手机与 WSL 处于同一网络环境中。

四、WSL 端实现内容

在 WSL(Ubuntu)环境中完成以下工作:

1️⃣ 网络配置 安装并配置 Tailscale,实现设备互通 使用 SSH 验证远程连接能力 2️⃣ 服务搭建 编写并运行 camera_bridge.py(Flask HTTPS 服务) 实现手机端视频帧的接收与转发 3️⃣ 环境配置

安装相关依赖库:

Flask OpenCV NumPy 五、手机端实现内容

手机端主要完成以下操作:

连接 Tailscale 网络 打开浏览器访问 WSL 服务地址 授权摄像头权限 实时上传视频帧数据

访问形式如下:

https://100.x.x.x:5000

六、实验成功标准

本次实验的最小成功标准包括:

手机端可正常显示实时摄像头画面 WSL 端可接收到视频帧数据 OpenCV 可对图像进行实时处理 成功识别 ArUco Marker(例如 ID = 6) 七、核心学习内容总结

本周学习重点不在单一技术,而在于构建完整的机器人视觉系统思维,包括:

1️⃣ 网络化视觉系统

摄像头不再是本地设备,而是可以通过网络传输的分布式传感器。

2️⃣ 机器人系统结构理解

机器人系统本质由以下部分构成:

多设备 + 网络通信 + 感知模块 + 数据处理模块

3️⃣ 视觉处理基本流程

完整流程如下:

图像采集 → 网络传输 → 数据解码 → 特征检测 → 位姿估计

八、后续学习方向

在当前系统基础上,后续将进一步扩展:

1️⃣ 相机标定 相机内参矩阵 畸变参数校正 2️⃣ 距离估计 solvePnP 位姿求解 rvec / tvec 计算 实际距离估计 九、总结

本周成功完成“手机摄像头 → WSL → OpenCV”的完整视觉链路搭建,实现了实时图像传输与 ArUco 识别功能,为后续机器人视觉系统中的目标识别与距离估计任务奠定了基础。