Skip to main content

机器人上位机 RobotMonitor

项目地址:https://github.com/yltzdhbc/RobotMonitor


项目简介

top

  • 这是一个用于机器人监控以及控制的软件。
  • 项目主要技术栈为 python+pyqt 运行在 树莓派 平台上。
  • 通过wifi模块与下位机,机器人主控进行通信和数据交互。

项目展示

运行方法

  1. 首先保证你安装了 python3,我使用的版本是python3.8,使用如下命令查看Python版本
python -v
  1. 安装 PyQt5、pyqtgraphy、matplotlab、serial、socket、numpy、re、threading等依赖
pip install -r ./requirements.txt 
  1. 运行 robotMonitor.py
python3 ./robotMonitor.py

自定义通信协议

一帧数据为:[消息头(2字节)][命令(2字节)] [长度(1字节)][数据(n字节,n=长度)] [校验(1字节)][消息尾(2字节)]

消息头固定为[0x55 0xaa],消息尾固定为[0x0d 0x0a]

主控发给上位机(显示)

消息作用消息头(2字节)命令(2字节)长度(1字节)数据(n字节,n=长度)校验(1字节)消息尾(2字节)
电压、速度55 aa5a 5a10(16)电压、速度、里程计帧数据域CRC0d 0a
里程计55 aa5a 550c(12)位置x、y、航向角wCRC0d 0a
板载硬件状态55 aa5a aa10(16)基本状态域CRC0d 0a
激光数据55 aa5a a510(16)激光数据帧数据域CRC0d 0a

电压、速度帧数据域:

电压v线速度x线速度y角速度w
4byte4byte4byte4byte

里程计帧数据域:

位置x位置y航向角z
4byte4byte4byte

测试: 55 aa 5a 55 0c 3f c9 0c b2 00 00 00 01 00 00 00 01 88 0d 0a x1.5707 y ... z...

板载硬件状态帧数据域:

底盘电源状态底盘模式红点激光状态底盘速度限制比例............
1byte1byte1byte1byte1byte1byte1byte1byte
....................
1byte1byte1byte1byte1byte1byte1byte1byte

激光数据帧数据域:

激光1激光2激光3激光4...
4byte4byte4byte4byte...

上位机发给主控(控制)

消息作用消息头(2字节)命令(2字节)长度(字节)数据(n字节,n=长度)校验(1字节)消息尾(2字节)
速度控制55 aa55 aa14(20)速度控制指令数据域CRC0d 0a
控制按键55 aa55 cc1(1)按键/数值域-00CRC0d 0a

速度控制指令数据域:

线速度x设定线速度y设定角速度w设定航向角设定
4byte4byte4byte4byte

速度控制指令数据域:

项目数据取值
红点激光0x010/1
.........