主题模式
C30D 底板小车:硬件与准备工作
本页介绍教程适用范围、通信链路、软硬件准备、参数记录,以及 C30D 版本和 UART5 参数确认。
1. 教程适用范围与最终效果
1.1 适用范围
本文适用于以下软硬件组合:
- WHEELTEC R550/V550 等使用 C30D 控制板的小车;
- C30D 2.0、2.1、2.2 底板;
- 支持 AT 指令和串口 UDP 透传的 WiFi 模块;
- ROS2 Humble;
wheelswarm_bridgeUDP 桥接包;- aiswarmlab ROS2 地面站。
不同批次 WiFi 模块的 AT 固件可能存在差异。本文使用以下已验证指令格式:
text
AT+UARTCFG=921600,8,1,0
AT+SOCKET=2,192.168.2.128,8888
AT+SOCKETAUTOTT=2,192.168.2.128,8888如果模块不识别这些指令,应先核对模块型号和对应 AT 指令手册,不要直接尝试其他厂商的命令。
1.2 完成后的通信链路
text
C30D 小车固件
UART5:921600 8N1
PC12/TX -----------------> RX/WiFi 模块
PD2/RX <----------------- TX/WiFi 模块
GND ------------------ GND
|
| 串口原始数据
v
WiFi 串口透传模块
STA 模式 + UDP Client + 上电自动透传
|
| WiFi 局域网
| 状态帧:小车 -> 地面站
| 控制帧:地面站 -> 小车
v
地面站主机:<GROUND_IP>:8888
|
+-- wheelswarm_bridge
| +-- /robot_{id}/velocity
| +-- /robot_{id}/imu
| +-- /robot_{id}/battery
| +-- /vehicle_info
| +-- /robot_{id}/cmd_vel
|
+-- EKF / 动捕
| +-- /robot_{id}/odom
| +-- /robot_{id}/pose
|
+-- ROS2 地面站和集群算法1.3 数据方向
| 方向 | 内容 | 典型长度 |
|---|---|---|
| C30D小车 -> WiFi -> 地面站 | 速度、IMU、电池等状态 | 24 字节状态帧 |
| 地面站 -> WiFi -> C30D小车 | 线速度、角速度控制 | 11 字节控制帧 |
WiFi 模块只负责串口与 UDP 之间的透明转发,不解析小车协议。协议解析和 ROS2 话题转换由 wheelswarm_bridge 完成。
2. 准备工作
2.1 硬件清单
- C30D 底板小车;
- WiFi 串口透传模块;
- USB-TTL 串口模块,必须是 TTL 电平,不可使用 RS232 转换器;
- 与模块匹配的连接线或杜邦线;
- 用于配置 WiFi 模块的电脑;
- 无线路由器或热点;
- 运行 ROS2 地面站的电脑。
2.2 软件清单
- 串口调试助手,例如之前在配置无人机 Wi-Fi 模块时用到的 sscom5.13.1.exe ,或其他可以配置 CRLF 的串口软件;
- USB-TTL 对应驱动;
- Ubuntu 22.04;
- ROS2 Humble;
tcpdump、ss等网络诊断工具;- aiswarmlab ROS2 工作空间和地面站。
2.3 配置参数记录表
开始操作前必须先注意下表所示参数。当在实验室中进行操作时,部分参数的常用值已经在“本文示例”一栏给出,但仍有许多参数并非完全固定值,需要结合实际情况进行调整。
| 参数 | 本文示例 |
|---|---|
| WiFi 名称(SSID) | aiswarmlab |
| WiFi 密码 | 22222222 |
| 地面站 IPv4 地址 | 192.168.1.43(本栏目需以实际为准) |
| UDP 目标端口 | 8888 |
| WiFi 模块/小车源 IP | 192.168.1.45(本栏目需以实际查询到的ip为准) |
| 车辆物理 ID | 2 |
| ROS2 映射 ID | 2 |
| WiFi 模块初始波特率 | 115200 |
| C30D UART5 运行波特率 | 921600 |
| 串口数据格式 | 8N1 |
2.4 查询地面站 IP
在 Ubuntu 地面站执行:
bash
ip -br address
ip route找到与小车 WiFi 位于同一局域网的网卡地址。例如:
text
wlp3s0 UP 192.168.1.43/22此时 UDP 目标 IP 为 192.168.1.43。不要填写 Docker 容器内部地址、127.0.0.1,也不要填写 WiFi 模块自己的地址。
3. 确认 C30D 版本和 UART5 参数
3.1 识别 C30D 接口
C30D V2.2 侧面接口图如下:

图中右侧中部的四针插座标注为“雷达串口”,从上到下为:
text
PC12
GND
PD2
5V不要把 WiFi 模块接到旁边的 USB、CAN 或巡线接口。
3.2 UART5 引脚方向
当前 C30D 固件中:
| C30D 引脚 | UART5 功能 | 接线方向 |
|---|---|---|
PC12 | TX,C30D 发送 | 接 WiFi 模块 RX |
PD2 | RX,C30D 接收 | 接 WiFi 模块 TX |
GND | 信号地 | 接 WiFi 模块 GND |
5V | 电源输出 | 仅在模块确认支持该电压时接入 |
仓库中的当前固件在 system.c 中调用:
c
uart5_init(921600);因此 C30D 与 WiFi 模块之间必须配置为:
text
波特率:921600
数据位:8
停止位:1
校验位:None
硬件流控:None3.3 关于 115200 与 921600
本教程涉及两个波特率阶段:
| 阶段 | 波特率 | 用途 |
|---|---|---|
| WiFi 模块首次配置或恢复出厂后 | 115200 | 初始阶段配置 USB-TTL 与 WiFi 模块发送 AT 指令 |
| 修改模块参数并重启后 | 921600 | 继续发送 AT 指令,以及连接 C30D UART5 正式运行 |
发送信息时所用的波特率一旦更改,后面就必须一直使用更改后的波特率进行收发数据。举例而言,如果串口工具仍是 115200,而模块已经切换到 921600,接收区会乱码或完全没有有效返回。反之亦然。
解决方案:尝试重置 wifi 模块。在 WiFi 模块的 TypeC 接口已与电脑 USB 接口相连接的情况下,长按下图红圈标出的按钮:

长按一段时间后,关闭串口,更改波特率,随后重新打开串口,测试是否能够正常收发数据。
完成硬件检查并确认 UART5 参数后,继续进行 WiFi 模块 AT 配置。
