4.1 理解 Host/Client 架构

理解 Host/Client 架构

在开始遥操作之前,先理解 LeKiWi 的软件架构,有助于后续操作顺利进行。

什么是 Host 和 Client

LeKiWi 的软件架构分为**机器人端(Host)和遥控端(Client)**两个独立的进程。

组件 角色 运行位置 职责
Host(lekiwi_host) 机器人端服务进程 树莓派(机器人主控) 管理硬件(电机、相机、底盘),监听网络连接
Client(teleoperate.py、record.py 等) 遥控端控制进程 桌面 / 笔记本电脑 发送遥操作指令,记录数据集,显示相机画面
┌──────────────────────┐      Wi-Fi/LAN      ┌──────────────────────┐
│       Host            │ ◄──────────────────► │       Client          │
│  树莓派(机器人上)      │                      │  桌面电脑(用户操作)    │
│                        │                      │                        │
│  · 管理电机/相机/底盘    │                      │  · 发送遥操作指令        │
│  · 监听网络等待连接      │                      │  · 记录数据集            │
│  · 执行动作指令          │                      │  · 显示相机画面          │
│  · 回传传感器数据        │                      │  · 键盘/手柄输入映射      │
└──────────────────────┘                      └──────────────────────┘

为什么要分离

设计考量 说明
硬件接口统一 Host 只负责驱动硬件,Client 只负责交互逻辑,各司其职
网络透明 本地用 127.0.0.1,远程用实际 IP,Client 代码无需修改
安全保护 Client 断开后 Host 继续运行,自动停止底盘(超时保护),机器人不会失控
多端接入 同一个 Host 可被键盘控制、手柄控制、自动推理等不同 Client 连接
减轻主控负担 数据记录的文件 I/O 在 Client 端完成,不占用树莓派存储和 CPU

本地模式 vs 远程模式

本地模式 远程模式
Host 和 Client 位置 同一台机器 不同机器
IP 配置 127.0.0.1 机器人实际 IP
适用场景 开发调试 实际场地使用

有线版 LeKiWi 无需远程模式,所有命令在桌面电脑直接执行。

操作顺序

必须先启动 Host,再启动 Client。Host 启动后会打印 Listening on tcp://*:5555,表示等待 Client 连接。
接下来的两节将分别讲解如何在树莓派上启动 Host,以及在桌面端启动 Client 进行遥操作。