- 后端通过协议发送任务给此程序,此程序控制机器人执行任务并返回结果给后端
- 电量低于一定阈值时,自动返回充电桩充电
NOTE: 一些服务依赖库已经编译好(linux-arm64)并放置在third目录中了,程序启动会去那儿链接
library | version | way to install |
---|---|---|
opencv | 4.2 | apt |
libcurl | 8.4.0 | compile |
spdlog | 1.12.0 | compile |
cppcodec | 0.2 | compile |
mosquitto | 2.0.15 | compile |
yaml-cpp | 0.8 | compile |
- mqttx: 一个mqtt客户端程序,可以给broker发送mqtt消息.
- emqx: 一个mqtt broker,在开启本服务前需要先开启emqx服务,否则本服务无法正常工作.
- 编译:make,如果你是ubuntu20.04-arm64平台,那么可以跳过这一步,因为有一个已经编译好的程序了
- 安装开机自启服务:make powerstart
- 取消开机自启服务:make unpowerstart
- 清理临时文件:make clean
- 开启服务:systemctl start hljb_smart_service.service
- 关闭服务:systemctl stop hljb_smart_service.service
- 重启服务:systemctl restart hljb_smart_service.service
- 检查服务:systemctl status hljb_smart_service.service
- 服务开机自启:systemctl enable hljb_smart_service.service
- 禁用开机自启:systemctl disable hljb_smart_service.service
- 查看服务是否开机自启动:systemctl is-enabled hljb_smart_service.service
配置文件为yaml格式,文件名为config.yml,必须和程序放置在同一目录下
broker_ip: 127.0.0.1
broker_port: 1883
broker_username: admin
broker_password: abcd1234
broker_keep_alive: 10
mqtt_client_id: mosquitto_hj
battery_threshold: 20 #自动去充电的电量阈值
robot_type: TrackRobot #机器人类型,挂轨机器人为TrackRobot,Pad机器人为Pad
robot_id: 2885688118 #机器人本体的id
modules: #一个数组,表示机器人上的可选设备模块,例如云台,若没有可选设备模块,则此数组为空
- type: PanTilt #设备类型
name: 1467438888 #设备名称,目前直接填设备id即可
id: 1467438888 #设备id
日志保存在程序当前目录下的logs目录中,日志文件名为smart_service.log