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 识别功能,为后续机器人视觉系统中的目标识别与距离估计任务奠定了基础。