67 lines
1.5 KiB
Markdown
67 lines
1.5 KiB
Markdown
# UDP Loopback
|
|
|
|
独立于原 `rl_control_node.py` 的 localhost UDP 键盘测试目录。
|
|
|
|
包含:
|
|
|
|
- `udp_keyboard_sender.py`:从终端读取按键,编码 UDP 报文并发送
|
|
- `udp_loopback_node.py`:接收 UDP 报文,解码事件并计算目标值
|
|
- `protocol.py`:自定义协议和状态结构
|
|
- `config/udp_loopback.yaml`:本地测试配置
|
|
|
|
运行方式:
|
|
|
|
```bash
|
|
cd /home/meiqi/tienkung/Deploy_Tienkung
|
|
python3 udp_loopback/udp_loopback_node.py
|
|
```
|
|
|
|
另开一个终端:
|
|
|
|
```bash
|
|
cd /home/meiqi/tienkung/Deploy_Tienkung
|
|
python3 udp_loopback/udp_keyboard_sender.py
|
|
```
|
|
|
|
接回现有 FSM 的方式:
|
|
|
|
1. 把 [dex_config.yaml](/home/meiqi/tienkung/Deploy_Tienkung/config/dex_config.yaml) 里的 `control_tool` 改成 `udp_loopback`
|
|
2. 启动原控制链,例如:
|
|
|
|
```bash
|
|
cd /home/meiqi/tienkung/Deploy_Tienkung
|
|
python3 rl_control_node_sim.py
|
|
```
|
|
|
|
3. 再启动发送端:
|
|
|
|
```bash
|
|
cd /home/meiqi/tienkung/Deploy_Tienkung
|
|
python3 udp_loopback/udp_keyboard_sender.py
|
|
```
|
|
|
|
此时 UDP 接收结果会在接收侧被映射回现有 FSM 命令:
|
|
|
|
- `pose_home -> gotoZERO`
|
|
- `pose_hold -> gotoSTOP`
|
|
- `mode_stride -> gotoWALKAMP`
|
|
- `mode_dash -> gotoMYPOLICY`
|
|
- `surge/sway/spin -> x/y/yaw speed command`
|
|
|
|
当前事件码不是原工程里的 `gotoZERO` / `gotoSTOP` / `x_speed_command` 这一套,而是:
|
|
|
|
- `pose_home`
|
|
- `pose_hold`
|
|
- `mode_stride`
|
|
- `mode_dash`
|
|
- `surge_up`
|
|
- `surge_down`
|
|
- `sway_left`
|
|
- `sway_right`
|
|
- `spin_left`
|
|
- `spin_right`
|
|
- `lift_up`
|
|
- `lift_down`
|
|
- `trim_reset`
|
|
- `session_quit`
|