diff --git a/.gitignore b/.gitignore index 31d0318..0dca950 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ build install log .vscode +deb_build +*.deb diff --git a/README.md b/README.md index d1a40d3..1041d1f 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,69 @@ ## 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)文件详情 @@ -25,17 +82,12 @@ | 字段类型 | 字段名称 | 取值范围 / 说明 | 功能描述 | | -------- | ------------------------------- | ----------------------------------------------- | ------------------------------------------------------------ | | uint8 | brake | 0(开)、1(关) | 电磁刹控制:0 表示解除电磁刹,1 表示激活电磁刹 | -| uint8 | gear | 0(空挡)、1(前进)、2(后退)、3(保留) | 车辆挡位控制,3 为预留挡位暂未使用 | +| uint8 | gear | 0(空挡)、1(后退)、2(前进)、3(保留) | 车辆挡位控制,3 为预留挡位暂未使用 | | uint8 | rpm | 0-6000 | 电机转速指令,数值直接对应实际电机转速(rpm) | | float32 | angle | \[-66.0, 66.0](分辨率 0.2°,建议适当缩减范围) | 轮端转向角度控制,单位为度(°) | | uint16 | angle\_speed | 120-1500 | 转向角速度控制,单位为 rpm | -| uint8 | roll\_brush\_suction\_direction | 0(不转动)、1(正转)、2(反转) | 滚刷 & 吸风电机的转动方向控制 | -| uint8 | roll\_brush\_suction | 0-100 | 滚刷 & 吸风电机的功率 / 转速占空比(0 为停止,100 为最大) | -| int8 | side\_brush | 0-100 | 边刷电机的功率 / 转速占空比(0 为停止,100 为最大) | -| int8 | dust\_shake | 0-100 | 振尘电机的功率 / 转速占空比(0 为停止,100 为最大) | -| int8 | brush\_deck\_pusher | -100-100 | 刷盘推杆电机控制:正数为推杆伸出,负数为推杆收回,0 为停止 | -| int8 | suction\_squeeqee\_pusher | -100-100 | 吸扒推杆电机控制:正数为推杆伸出,负数为推杆收回,0 为停止 | -| int8 | water\_spray | -100-100 | 喷水电机控制:正数为喷水(数值越大水量越大),负数为反向(如排水,需根据硬件支持调整),0 为停止 | +| bool | sweep | true:清扫 false:不清扫 | 清扫 | + #### 对应 Topic diff --git a/make_deb.sh b/make_deb.sh new file mode 100755 index 0000000..e5b3a9a --- /dev/null +++ b/make_deb.sh @@ -0,0 +1,102 @@ +#!/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 Humble)." +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" + +cp -a "${INSTALL_SRC}/." "${WORKDIR}/${INSTALL_DIR}/" + +# control 文件 +cat > "${WORKDIR}/DEBIAN/control" <= 2.34) +Description: ${DESCRIPTION} +EOF + +# 创建 start_all.sh +cat > "${WORKDIR}/${INSTALL_DIR}/start_all.sh" < "${WORKDIR}/etc/systemd/system/${PKG_NAME}.service" < "${WORKDIR}/DEBIAN/postinst" < "${WORKDIR}/DEBIAN/postrm" <