diff --git a/README.md b/README.md index 22e5fe3..e4cf222 100644 --- a/README.md +++ b/README.md @@ -1,148 +1,12 @@ -# 清扫车 ROS2 控制与定位消息接口 +# ZXOS ## 1. 文档概述 -清扫车 ROS2 控制与定位消息接口 +智行智驾低速自主驾驶体系 -- 车端ROS2固件(ZXOS)。该固件适配ZX200/ZX800自主智能清扫车。 ## 2. 依赖环境 ### 2.1 系统环境 -* **ROS2 版本**:Foxy -* **Ubuntu 版本**:20.04 - -### 2.2 .deb 的安装、启动与卸载 - -在目标机器上执行安装: - -```bash -sudo dpkg -i controller_XXXX_arm64.deb -``` - -安装完成后主要文件路径: - -工作空间:/opt/controller/ - -启动脚本:/opt/controller/start_all.sh - -CAN 配置脚本:/opt/controller/can.sh - -日志文件:/var/log/controller/controller.log - -systemd 服务: - -CAN 配置服务:/etc/systemd/system/controller-can.service - -ROS2 节点服务:/etc/systemd/system/controller.service - -安装后,CAN 配置服务会先运行,确保 can0 接口可用,然后 ROS2 节点服务会启动。 - - -手动启动 ROS2 节点: -```bash -sudo systemctl start controller.service -``` - -重启服务: -```bash -sudo systemctl restart controller.service -``` - -启动 CAN 配置服务(通常自动执行,不需要手动): -```bash -sudo systemctl start controller-can.service -``` - -查看运行状态 -```bash -sudo systemctl status controller.service -sudo systemctl status controller-can.service -``` - -实时查看最新日志: -```bash -tail -f /var/log/controller/controller.log -``` - -也可以使用 journalctl 查看 systemd 输出: -```bash -sudo journalctl -u controller.service -f -``` - -旧日志会自动轮转,由 logrotate 管理,每天生成一个历史日志,历史日志会压缩 .gz,默认保留最近 14 天日志 - -轮转后的文件示例: -```bash -/var/log/controller/controller.log # 当天日志 -/var/log/controller/controller.log-20250923.gz # 历史压缩日志 -``` - -停止服务 -```bash -sudo systemctl stop controller.service -sudo systemctl stop controller-can.service -``` - -禁用开机自启 -```bash -sudo systemctl disable controller.service -sudo systemctl disable controller-can.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 | 定位解状态
0初始化, 1单点定位, 2码差分, 3无效PPS, 4固定解, 5浮点解, 6正在估算, 7,人工输入固定值, 8模拟模式, 9WAAS差分;
固定解是最优解 | -| int32 | h\_quality | 0-9 | 定向解状态
0初始化, 1单点定位, 2码差分, 3无效PPS, 4固定解, 5浮点解, 6正在估算, 7,人工输入固定值, 8模拟模式, 9WAAS差分;
固定解是最优解 | - -#### 对应 Topic - - - -* **Topic**:`/rtk_message` - - +* **ROS2 版本**:ROS2 Humble +* **Ubuntu 版本**:Ubuntu 22.04 diff --git a/controller_202509290926_arm64.deb b/controller_202509290926_arm64.deb deleted file mode 100644 index cf713fb..0000000 Binary files a/controller_202509290926_arm64.deb and /dev/null differ diff --git a/make_deb.sh b/make_deb.sh deleted file mode 100755 index 9242f90..0000000 --- a/make_deb.sh +++ /dev/null @@ -1,194 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -PKG_NAME="controller" -PKG_VERSION="$(date +%Y%m%d%H%M)" -ARCH="arm64" -MAINTAINER="LYQ" -DESCRIPTION="Binary package of remote controller nodes for robot (ROS2 foxy)." -INSTALL_DIR="/opt/${PKG_NAME}" -WORKDIR="$(pwd)/deb_build" -INSTALL_SRC="$(pwd)/install" - -# 清理工作目录 -rm -rf "${WORKDIR}" -mkdir -p "${WORKDIR}/${INSTALL_DIR}" -mkdir -p "${WORKDIR}/DEBIAN" - -# 复制 ROS2 install 文件 -cp -a "${INSTALL_SRC}/." "${WORKDIR}/${INSTALL_DIR}/" - -# control 文件 -cat > "${WORKDIR}/DEBIAN/control" < "${WORKDIR}/${INSTALL_DIR}/can.sh" <<'EOF' -#!/bin/bash -# Script: can.sh -# Description: Configures CAN interface can0 on startup - -if [[ $EUID -ne 0 ]]; then - echo "This script must be run as root" - exit 1 -fi - -if ip link show can0 &> /dev/null; then - ip link set can0 down -fi - -modprobe can -modprobe can_raw -modprobe mttcan - -ip link set can0 type can bitrate 500000 -ip link set up can0 - -if [[ $? -ne 0 ]]; then - echo "Error configuring CAN interface can0" - exit 1 -fi - -echo "CAN interface can0 configured successfully" -exit 0 -EOF - -chmod +x "${WORKDIR}/${INSTALL_DIR}/can.sh" - -# ============================ -# 创建 start_all.sh (aiec 用户执行) -# ============================ -cat > "${WORKDIR}/${INSTALL_DIR}/start_all.sh" < "${WORKDIR}/etc/systemd/system/${PKG_NAME}-can.service" < "${WORKDIR}/etc/systemd/system/${PKG_NAME}.service" < "${WORKDIR}/etc/logrotate.d/${PKG_NAME}" < "${WORKDIR}/DEBIAN/postinst" < "${WORKDIR}/DEBIAN/postrm" <