PI-无人机通用协议
PI-无人机通用协议是一套运行在机载设备上的 WebSocket 客户端通信协议,专为无人机系统设计。该协议支持实时推送飞机遥测数据,并可异步接收来自服务器的控制命令,为无人机与地面控制站之间提供可靠的通信桥梁。
安装、使用
建议使用conda
# 首次创建环境
conda create -n pi-uav python=3.11
# 激活环境
conda activate pi-uav
安装 pi-uav-protocol,安装本地下载的库,方便开发
git clone git@gitee.com:pi-lab/pi-uav-protocol.git
cd pi-uav-protocol
pip install -e ".[all]"
本库主要给其他第三方库提供服务,因此本库主要被调用。
主要特性
- 🚀 实时数据传输 - 支持高频率遥测数据推送(最高3Hz)
- 🎮 全面飞行控制 - 涵盖起飞、降落、航线规划等完整飞行控制指令
- 📹 光电吊舱集成 - 支持云台控制、相机操作、目标跟踪等功能
- 💓 连接监控 - 内置心跳机制确保连接稳定性
- 📋 指令应答 - 完整的指令执行反馈机制
- 🔌 WebSocket 协议 - 基于标准 WebSocket 实现,易于集成
技术规格
- 协议格式: JSON
- 传输协议: WebSocket
- 数据频率:
- 遥测数据: 3Hz
- 云台数据: 3Hz
- 心跳包: 1Hz
- 设备支持: 四旋翼飞机、垂起固定翼、机器狗、无人车
协议概览
消息类型
| 消息类型 | 发送方 | 接收方 | 应答 | 描述 |
|---|---|---|---|---|
| 数据信息类 | ||||
uav_nav_data |
终端 | 服务器 | 否 | 无人机综合数据 |
gimbal_data |
终端 | 服务器 | 否 | 云台综合数据 |
heart |
终端 | 服务器 | 否 | 心跳包 |
| 指令控制类 | ||||
uav_control |
服务器 | 终端 | 是 | 飞行控制指令 |
gimbal_control |
服务器 | 终端 | 是 | 光电吊舱指令 |
| 应答类 | ||||
result |
终端 | 服务器 | 否 | 指令执行结果 |
支持的控制指令
飞行控制指令
takeoff- 起飞land- 降落hold- 悬停RTL- 返航stop- 停浆fly_to_des- 直飞航点point_flight- 指点飞行upload_route- 上传航线download_route- 下传航线start_mission- 执行任务pause_mission- 暂停任务switch_control- 切换控制源set_safety_params- 设置安全参数
光电吊舱指令
gimbal_pitch- 云台俯仰角控制gimbal_roll- 云台横滚角控制gimbal_yaw- 云台航向角控制camera_zoom- 相机变焦take_photo- 拍照start_video- 开启视频流start_tracking- 开启目标跟踪stop_tracking- 关闭目标跟踪start_identify- 开启目标识别stop_identify- 关闭目标识别start_laser- 开启激光测距stop_laser- 关闭激光测距magnetic_calibration- 磁校准gyro_calibration- 陀螺仪校准compass_calibration- 指南针校准
数据类型
遥测数据
- 飞行姿态:俯仰角、航向角、横滚角
- 位置信息:经纬度、海拔高度、相对高度
- 运动状态:水平速度、垂直速度、地面速度
- 导航信息:GPS收星数量、RTK收星数量
- 飞行状态:飞行模式、解锁状态、任务进度
- 系统状态:电池电量、系统健康状态、错误和警告信息
云台数据
- 云台姿态:俯仰角、横滚角、航向角
- 光电信息:光轴方位角、光轴俯仰角、视场角
- 相机状态:变焦倍数、视频流地址
- 目标信息:目标位置、激光测距结果
应用场景
- 无人机飞行控制 - 实现对无人机的远程控制和监控
- 任务执行 - 支持航线规划和自主任务执行
- 实时监控 - 提供飞行器状态的实时数据反馈
- 云台控制 - 精确控制光电吊舱进行目标跟踪和识别
- 数据记录 - 支持飞行数据的记录和分析
接入要求
- 支持 WebSocket 客户端连接
- 支持 JSON 格式数据解析
- 具备实时数据处理能力
- 遵循协议规定的消息格式和频率要求
协议详细文档
完整的协议规范请参考:pi-uav-protocol.md
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pi_uav_protocol-0.2.0.tar.gz
(2.4 MB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pi_uav_protocol-0.2.0.tar.gz.
File metadata
- Download URL: pi_uav_protocol-0.2.0.tar.gz
- Upload date:
- Size: 2.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af7877524e408f31a3ef6db474e2f1acabced12b85a02696b6a9fbe428878304
|
|
| MD5 |
04d6fa77216edfd4603c0f7f7a045a64
|
|
| BLAKE2b-256 |
8c91abd2a092b79ecc9942160cbc787530998520d4e59736d60ca19b516c4812
|
File details
Details for the file pi_uav_protocol-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pi_uav_protocol-0.2.0-py3-none-any.whl
- Upload date:
- Size: 64.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5a1b361f47f4d2b287026a424869897e0d1774942cf7c2f38655370390268cd
|
|
| MD5 |
7b75e1b5b4f93fa9cc1cc4f1b9476a5a
|
|
| BLAKE2b-256 |
1504d46407a2b6afbe5f3d7078e441f31e5bba7a796b3199293af4e973df84fb
|