# 清扫车 ROS2 控制与定位消息接口

## 1. 文档概述

清扫车 ROS2 控制与定位消息接口

## 2. 依赖环境

### 2.1 系统环境

*   **ROS2 版本**：Humble 
*   **Ubuntu 版本**：2204

### 2.2 .deb的安装、启动与卸载

在目标机器上执行：

```bash
sudo dpkg -i controller_XXXX_arm64.deb
```

如果提示依赖缺失（比如 ros-humble-ros-base 没装），可以让 apt 自动补全：

```bash
sudo apt-get -f install
```

安装完成后，文件会放到：

工作空间：/opt/controller/

启动脚本：/opt/controller/start_all.sh

systemd 服务：/etc/systemd/system/controller.service

驱动会开机自启, 如果要手动启动/重启：

```bash
sudo systemctl start controller.service
sudo systemctl restart controller.service
```

查看运行状态（是否正常启动节点）：

```bash
sudo systemctl status controller.service
```

查看日志 : systemd 管理的服务日志可以通过 journalctl 查看：

```bash
sudo journalctl -u controller.service -f
```

停止

```bash
sudo systemctl stop controller.service
```

禁用开机启动：

```bash
sudo systemctl disable controller.service
```

卸载 deb 包：

```bash
sudo dpkg -r controller
```

## 3. 消息（msg）文件详情

### 3.1 McCtrl.msg（车辆控制指令消息）


#### 字段定义



| 字段类型 | 字段名称                        | 取值范围 / 说明                                 | 功能描述                                                     |
| -------- | ------------------------------- | ----------------------------------------------- | ------------------------------------------------------------ |
| uint8    | brake                           | 0（不刹）、1（刹）                                | 电磁刹控制：0 表示解除电磁刹，1 表示激活电磁刹               |
| uint8    | gear                            | 0（空挡）、1（后退）、2（前进）、3（保留）      | 车辆挡位控制，3 为预留挡位暂未使用                           |
| uint8    | rpm                             | 0-4000                                          | 电机转速指令，数值直接对应实际电机转速（rpm）                |
| float32  | angle                           | \[-40.0, 40.0] | 轮端转向角度控制，单位为度（°），[-左、+右]                              |
| uint16   | angle\_speed                    | 120-1500                                        | 转向角速度控制，单位为 rpm                                   |
| bool     | sweep | true（清扫）、false（不清扫）               | 清扫                                |


#### 对应 Topic



*   **Topic**：`/auto_mc_ctrl`



### 3.2 Rtk.msg（RTK 定位信息消息）


#### 字段定义



| 字段类型 | 字段名称   | 取值范围 / 说明                           | 功能描述                                                     |
| -------- | ---------- | ----------------------------------------- | ------------------------------------------------------------ |
| float64  | lat        | 无固定范围（符合 WGS84 坐标系经纬度格式） | 车辆所在位置的纬度 |
| float64  | lon        | 无固定范围（符合 WGS84 坐标系经纬度格式） | 车辆所在位置的经度 |
| float32  | head       | 0-360                                     | 车辆航向角（单位：度），0° 表示正北方向，顺时针递增          |
| float32  | speed      |                                         |    |
| int32    | p\_quality | 0-9    | 定位解状态<br />  0初始化， 1单点定位， 2码差分， 3无效PPS， 4固定解， 5浮点解， 6正在估算， 7，人工输入固定值， 8模拟模式， 9WAAS差分;<br />  固定解是最优解                   |
| int32    | h\_quality | 0-9    | 定向解状态<br />  0初始化， 1单点定位， 2码差分， 3无效PPS， 4固定解， 5浮点解， 6正在估算， 7，人工输入固定值， 8模拟模式， 9WAAS差分;<br />  固定解是最优解                   |

#### 对应 Topic



*   **Topic**：`/rtk_message`



## 4. 版本历史



| 版本 | 更新日期 | 更新内容                                                     | 开发者             |
| ---- | -------- | ------------------------------------------------------------ | ------------------ |
| V1.0 | 2025-09-02 | 初始版本，定义`McCtrl.msg`和`Rtk.msg`结构，明确 Topic  | \[zxwl] |
| V1.1 | 2025-09-16 | controller.deb的安装、启动与卸载  | \[zxwl] |

