main
UGV01
UGV01 履带差速小车串口控制工程,提供底盘协议封装、手机优先的 Web 遥控界面、实时反馈显示、Wi‑Fi AP 接入、低延迟 FPV 视频、RTK/WTB 状态接入和 systemd 自启部署。
环境
- 底盘串口: 优先使用 USB
CP2102N,自动回退到/dev/ttyUSB0//dev/ttyS7 - 波特率:
115200 - Python:
/opt/miniconda3/envs/py310/bin/python - 仓库:
http://107.173.157.41:3000/clear/ugv01 - Release:
http://107.173.157.41:3000/clear/ugv01/releases
当前版本
- 当前发布版本:
1.2.2 - 控制方式: 基于底盘协议
T=1的差速控制 - Web 界面: 手机横屏优先的双摇杆控制台
- FPV 方式: UVC 双目相机左视图实时视频
- RTK 模式:
WTB2
功能
- 左右轮闭环速度控制
T=1 - 左右电机 PWM 控制
T=11 - ROS 风格速度控制
T=13 - OLED 文本设置与恢复
T=3 - 获取 IMU 数据
T=126 - 获取底盘反馈
T=130 - 串口连续反馈开关
T=131 - 串口回声开关
T=143 - 手机 Web 双摇杆遥控
- 高 / 中 / 低三挡速度切换
- 原地转向支持
- WebSocket 实时控制与控制心跳续发
- 页面切后台、断线、松手自动停车
- MCU 连续反馈流接入
- 顶部状态条显示在线状态与 3S 电池估算百分比
- 车载 AP 接入:
Clear_UGV01 - 浏览器端 Xbox 手柄支持
- HTTPS 访问支持与本地 CA 证书下载
- 双目 UVC 相机左视图 FPV
- 相机原始参数与压缩参数通过
camera_config.json配置 - FPV 优先走 WebRTC 低延迟视频,失败时回退 MJPEG
- FPV 画面内集成透明双摇杆、边界引导线与全屏按钮
- Web 端新增 Tailscale IP 状态卡片
- 顶部支持视频模式
WebRTC / MJPEG手动切换 - 顶部支持速度挡位切换与控制权切换
- 控制权支持
模拟摇杆 / 远程手柄 / WTB - 接入 RTK 综合数据与独立 WTB 路线状态卡片
Web 控制
启动:
/opt/miniconda3/envs/py310/bin/python /root/clear_tmp/ugv01/run_web.py
浏览器访问:
https://树莓派IP:8000
通过车载 AP 访问:
SSID: Clear_UGV01
Password: Bone1644
URL: https://192.168.50.1:8000
STA 网络访问示例:
https://192.168.101.177:8000
本地 CA 证书下载:
https://192.168.50.1:8000/ca.crt
界面特点:
- 顶部 FPV 视频窗口显示双目相机左视图
- 左摇杆控制方向,可原地转向
- 右摇杆控制油门
- 单按钮循环切换低速 / 中速 / 高速
- 顶部状态条显示连接、电量、视频模式与手柄状态
- 顶部状态条集成视频模式、速度挡位与控制权切换
- 布局针对手机横屏收紧优化
- 底部提供 AP / STA 开启、关闭与参数修改卡片
- AP / STA 设置卡片显示当前 IP 地址
- 底部新增 Tailscale IP 卡片
- 支持检测并接入 Xbox 手柄
- 手柄只映射两个摇杆:左摇杆方向,右摇杆油门
- WTB 卡片显示电机速度、映射速度、路线点与状态位
- RTK 卡片显示 GPS、姿态、角速度、加速度与航点信息
FPV 相机
当前默认按以下参数打开双目 UVC 相机:
原始输入: 2560x720 @ 30fps, MJPG
左视图裁切: 1280x720
推流输出: 640x360 @ 20fps
页面中仅显示左视图作为 FPV。浏览器支持时,页面会优先建立 WebRTC 视频通道以降低延迟,失败时自动回退到 MJPEG。
相机配置文件:
/root/clear_tmp/ugv01/camera_config.json
当前配置项:
device: 相机设备节点input.width / height / fps / format: 原始采集参数left_view.x / y / width / height: 左视图裁切区域stream.width / height / fps / jpeg_quality: 压缩后推流参数
调试接口:
/api/camera/status
/video/fpv.mjpg
视频模式:
WebRTC: 默认低延迟视频模式MJPEG: 兼容模式,可在顶部直接切换
systemd
- Web 服务模板: ugv01-web.service
- 系统服务:
ugv01-web.serviceugv01-ap.service
常用命令
读取 IMU:
/opt/miniconda3/envs/py310/bin/python /root/clear_tmp/ugv01/cli.py imu
读取底盘反馈:
/opt/miniconda3/envs/py310/bin/python /root/clear_tmp/ugv01/cli.py base-feedback
左右轮速度控制:
/opt/miniconda3/envs/py310/bin/python /root/clear_tmp/ugv01/cli.py speed --left 0.10 --right 0.10 --duration 1.0
ROS 风格控制:
/opt/miniconda3/envs/py310/bin/python /root/clear_tmp/ugv01/cli.py ros --x 0.10 --z 0.30 --duration 1.0
设置 OLED:
/opt/miniconda3/envs/py310/bin/python /root/clear_tmp/ugv01/cli.py oled-text --line 0 --text "UGV01 READY"
恢复 OLED 默认显示:
/opt/miniconda3/envs/py310/bin/python /root/clear_tmp/ugv01/cli.py oled-restore
说明
- 当前电量百分比为基于
3S / 12.6V 满电的估算值,MCU 原始反馈字段是电压v。 - Web 主界面显示的是精简后的关键信息;如需完整 IMU 或底盘原始字段,可通过接口继续扩展。
speed和ros支持--duration,到时后会自动发送停车指令。- AP / STA 设置页默认不回显现有密码;密码框留空表示保持原密码不变。
- HTTPS 当前使用本地 CA 签发的证书;若希望浏览器将其视为受信任来源,需要安装并信任
ca.crt。 - 相机采集采用独立后台线程,控制、反馈和网络设置仍保持原有服务链路。
- 底盘 MCU 自带 AP 已通过命令关闭,并设置为开机关闭。
- 已清理调试期加入的黑匣子、异常抓拍与调试接口,保留正式运行逻辑。
Description
UGV01 mobile web control for tracked differential robot
148 KiB
0 Stars
1 Watchers
0 Forks