Skip to content

Latest commit

 

History

History
643 lines (596 loc) · 16 KB

Appendix_cn.md

File metadata and controls

643 lines (596 loc) · 16 KB

附录

坐标系

  1. Body坐标系:

bFrame

  1. Ground坐标系(北东地坐标系):
  • 北-x
  • 东-y
  • 指向地心-z *

坐标系满足右手定则。ground坐标系下通用的航向定义是以北为0,顺时针到180度,逆时针到-180 度。这样用-180到180度的数值表示飞行平台在空间中的朝向。

*Ground坐标系的高度方向与人对飞行控制的直觉不符,因此DJI将竖直方向的高度和速度都调整成了以天空方向为正,也即发送数值为正的速度会让飞行平台远离地面。但是调整高度方向并不改变Ground坐标系的另外两个轴的方向和顺序。

模式标志字节说明

模式标志字节

模式标志字节代表不同模式的配置。因为多旋翼的结构特点,飞行控制的时候,要把控制信息分解成三部分,竖直、水平和偏航,每个部分都有几种选择,通过模式标志字节进行组合。模式标志字节的定义如下。

名称 大小 说明
模式标志字节 bit7:6 0b00:HORI_ATTI_TILT_ANG
0b01:HORI_VEL
0b10:HORI_POS
bit5:4 0b00:VERT_VEL
0b01:VERT_POS
0b10:VERT_THRUST
bit3 0b0: YAW_ANG
0b1: YAW_RATE
bit2:1 0b00:水平方向坐标系为 Ground 系
0b01:水平方向坐标系为 Body 系
bit0 0b0:非增稳模式
0b1:增稳模式

控制模式

我们建议用户在室内环境中,如果没有安装Gudiance或者飞行高度超过3m时,不要使用竖直方向的位置控制,因为室内环境中气压计读数不准,影响控制器的表现。

备注:部分控制模式有进入条件限制:

  • 当且仅当GPS信号正常(health_flag >=3)时,才可以使用水平位置控制(HORI_POS)相关的控制指令
  • 当GPS信号正常(health_flag >=3),或者Gudiance系统正常工作(连接安装正确)时,可以使用水平速度控制(HORI_VEL)相关的控制指令
类别 模式 说明
竖直方向 VERT_POS 垂直方向上控制的是位置,输入的控制量为相对地面的高度
VERT_VEL 垂直方向上控制的是速度
VERT_THRUST 垂直方向上控制的是油门百分比(0-100)(危险,请小心使用)
水平方向 HORI_ATTI_TILT_ANG* 水平方向控制的是飞行器水平倾角,根据坐标系确定水平分量
HORI_POS** 水平方向控制的是飞行器飞行距离**,根据坐标系确定水平分量
HORI_VEL 水平方向控制的是飞行器速度,根据坐标系确定水平分量
偏航 YAW_ANG 偏航控制一个 Ground 坐标系下的目标角度。此模式下,飞控会将YAW坐标系强制为Ground系
YAW_RATE 偏航控制目标角速度

**HORI_ATTI_TILT_ANG模式控制量如下图,DJI飞控采用水平面直接进行整个平面旋转。其中平面旋转角度为Θ,旋转方向与x轴或roll轴方向角度为γ。输入参量Θx=Θcos(γ),Θy=Θsin(γ)。(当采用Ground坐标系时γ为飞行方向与正北方向夹角,此时飞行器飞行状态与IOC模式相似;当采用Body坐标系时γ为飞行方向与飞行器机头方向夹角,此时飞行器飞行状态与遥控器下的姿态模式相似)*

HORI_ATTI_TILT_ANG

*HORI_POS模式的输入量是相对位置的净输入量。净输入量通过GPS或Guidance等传感器获得位置移动的反馈信息,与输入作差后得到。为完成飞行的位置控制,需要连续获得反馈并发送该命令,以达到平稳的控制效果。

模式的组合

姿态控制精度大约为0.5 度,速度控制精度大约为0.2 m/s。

模式编号 组合形式 输入数值范围
(VERT/HORI/YAW)
模式标志字节
1 VERT_VEL
HORI_ATTI_TILT_ANG
YAW_ANG
-4 m/s ~ 4 m/s
-30 度 ~ 30 度
-180 度 ~ 180 度
0b00000xxy
2 VERT_VEL
HORI_ATTI_TILT_ANG
YAW_RATE
-4 m/s ~ 4 m/s
-30 度 ~ 30 度
-100 度/s ~ 100 度/s
0b00001xxy
3 VERT_VEL
HORI_VEL
YAW_ANG
-4 m/s ~ 4 m/s
-10 m/s ~ 10 m/s
-180 度 ~ 180 度
0b01000xxy
4 VERT_VEL
HORI_VEL
YAW_RATE
-4 m/s ~ 4 m/s
-10 m/s ~ 10 m/s
-100 度/s ~ 100 度/s
0b01001xxy
5 VERT_VEL
HORI_POS
YAW_ANG
-4 m/s ~ 4 m/s
米为单位的相对位置,数值无限制
-180 度 ~ 180 度
0b10000xxy
6 VERT_VEL
HORI_POS
YAW_RATE
-4 m/s ~ 4 m/s
米为单位的相对位置,数值无限制
-100 度/s ~ 100 度/s
0b10001xxy
7 VERT_POS
HORI_ATTI_TILT_ANG
YAW_ANG
0m 到最大飞行高度
-30 度 ~ 30 度
-180 度 ~ 180 度
0b00010xxy
8 VERT_POS
HORI_ATTI_TILT_ANG
YAW_RATE
0m 到最大飞行高度
-30 度 ~ 30 度
-100 度/s ~ 100 度/s
0b00011xxy
9 VERT_POS
HORI_VEL
YAW_ANG
0m 到最大飞行高度
-10 m/s ~ 10 m/s
-180 度 ~ 180 度
0b01010xxy
10 VERT_POS
HORI_VEL
YAW_RATE
0m 到最大飞行高度
-10 m/s ~ 10 m/s
-100 度/s ~ 100 度/s
0b01011xxy
11 VERT_POS
HORI_POS
YAW_ANG
0m 到最大飞行高度
米为单位的相对位置,数值无限制
-180 度 ~ 180 度
0b10010xxy
12 VERT_POS
HORI_POS
YAW_RATE
0m 到最大飞行高度
米为单位的相对位置,数值无限制
-100 度/s ~ 100 度/s
0b10011xxy
13 VERT_THRUST
HORI_ATTI_TILT_ANG
YAW_ANG
10 ~ 100 (危险,请小心使用)
-30 度 ~ 30 度
-180 度 ~ 180 度
0b00100xxy
14 VERT_THRUST
HORI_ATTI_TILT_ANG
YAW_RATE
10 ~ 100(危险,请小心使用)
-30 度 ~ 30 度
-100 度/s ~ 100 度/s
0b00101xxy

xx表示水平方向坐标系的控制位,00表示Ground系,01表示Body系
y表示增稳模式的控制位,0表示非增稳模式,1表示增稳模式,增稳模式只作用于水平方向。

飞行数据说明

飞行数据

状态包 状态包字段 数据段类型 描述 单位 默认频率
时间戳 time uint32_t 400hz时间戳 1/400s 100Hz
asr_ts uint32_t ns级时间戳 ns
sync_flag uint8_t 同步信号标志位 ---
姿态四元数 q0 float32 姿态四元数
从Ground坐标系到Body坐标系
--- 100Hz
q1 float32
q2 float32
q3 float32
加速度 agx float32 加速度(原始值/融合值) 融合值: m/s2
原始值: G
100Hz
agy float32
agz float32
速度 vgx float32 Ground系下的速度 m/s 100Hz
vgy float32
vgz float32
vgstatus uint8_t 速度信息状态字节
  • bit 0:数据有效位
    • 0:速度数据无效
      1:速度数据有效
  • bit 1:7 :保留
---
角速度 wx float32 角速度(原始值/融合值) rad/s 100Hz
wy float32
wz float32
GPS及高度 longti double GPS 位置 rad 100Hz
lati double
alti float32 气压高度(原始值/融合值) m
height float32 对地高度(原始值/融合值) m
health_flag uint8_t GPS 健康度 0-5, 5 为最好
GPS详细信息(只适用于A3) date uint32_t 日期 yy-mm-dd 50Hz
time uint32_t 时间 hh-mm-ss
longitude int32_t 经度 degree*10^7
latitude int32_t 纬度 degree*10^7
AMSL int32_t 海拔高度 mm
vel_N float32 北方向速度 cm/s
vel_E float32 东方向速度 cm/s
vel_D float32 地方向速度 cm/s
RTK详细信息(只适用于A3) date uint32_t 日期 yy-mm-dd 50Hz
time uint32_t 时间 hh-mm-ss
longitude_RTK double RTK测量经度 degree
latitude_RTK double RTK测量纬度 degree
AMSL_RTK float32 RTK测量海拔高度 m
vel_N float32 北方向速度 cm/s
vel_E float32 东方向速度 cm/s
vel_D float32 地方向速度 cm/s
yaw int16_t 天线基线与正南夹角 degree
position_flag uint8_t 定位标志位
yaw_flag uint8_t 偏航标志位 ---
磁感计 mx int16_t 磁感计数值 磁感计数值 0Hz
my int16_t
mz int16_t
遥控器通道 roll int16_t Roll 数值 --- 50Hz
pitch int16_t Pitch 数值
yaw int16_t Yaw 数值
throttle int16_t Throttle 数值
mode int16_t Mode 数值(模式选择开关)
gear int16_t Gear 数值(返航键外圈拨杆)
云台姿态 roll float32 云台在Ground 坐标系下的姿态 º 50Hz
pitch float32
yaw float32
limit_byte uint8_t 限位标志
  • bit 0: Pitch限位标志
  • bit 1: Roll限位标志
  • bit 2: Yaw限位标志
  • bit 3:7 保留
---
飞行状态 status uint8_t 飞行状态 --- 10Hz
电量 status uint8_t 剩余电量百分比 % 1Hz
控制信号源 cur_mov_control_mode uint8_t 当前飞机模式值 --- 0Hz
status uint8_t 控制设备
  • bit 0:2 :控制设备
    • 0b000 :遥控器
      0b001 :移动设备
      0b010 :机载设备
  • bit 3 :机载设备控制命令标志位
    • 0:未命令
      1:已命令
  • bit 4 :虚拟遥控标志位
    • 0:未启用
      1:已启用
  • bit 5:7 :保留
---

飞机模式值

typedef enum 
{
  ATTI_STOP                    = 0,
  HORIZ_ANG_VERT_VEL_YAW_ANG   = 1,
  HORIZ_ANG_VERT_VEL_YAW_RATE  = 2,
  HORIZ_VEL_VERT_VEL_YAW_ANG   = 3,
  HORIZ_VEL_VERT_VEL_YAW_RATE  = 4,
  HORIZ_POS_VERT_VEL_YAW_ANG   = 5,
  HORIZ_POS_VERT_VEL_YAW_RATE  = 6,
  HORIZ_ANG_VERT_POS_YAW_ANG   = 7,
  HORIZ_ANG_VERT_POS_YAW_RATE  = 8,
  HORIZ_VEL_VERT_POS_YAW_ANG   = 9,
  HORIZ_VEL_VERT_POS_YAW_RATE  = 10,
  HORIZ_POS_VERT_POS_YAW_ANG   = 11,
  HORIZ_POS_VERT_POS_YAW_RATE  = 12,
  HORIZ_ANG_VERT_THR_YAW_ANG   = 13,
  HORIZ_ANG_VERT_THR_YAW_RATE  = 14,
  HORIZ_VEL_VERT_THR_YAW_ANG   = 15,
  HORIZ_VEL_VERT_THR_YAW_RATE  = 16,
  HORIZ_POS_VERT_THR_YAW_ANG   = 17,
  HORIZ_POS_VERT_THR_YAW_RATE  = 18,
  GPS_ATII_CTRL_CL_YAW_RATE    = 97,
  GPS_ATTI_CTRL_YAW_RATE       = 98,
  ATTI_CTRL_YAW_RATE           = 99,
  ATTI_CTRL_STOP               = 100
}

原始值/融合值

原始值/融合值可通过调参软件进行选择。

因为原始数据来自与飞行器上实际的传感器,因此使用DJI模拟器时,选择原始数据输出将无法得到相应的输出数据。请选择使用融合数据。

数据类型 原始值/融合值 说明 单位
加速度 融合值(大地坐标系) 融合数据 m/s2
融合值(机体坐标系) 融合数据 m/s2
原始值(机体坐标系) 加速度计数据 G
角速度 融合值(机体坐标系) 融合数据 rad/s
原始值(机体坐标系) 陀螺仪数据
气压高度 融合值 气压计、IMU融合数据 m
原始值 气压计数据
对地高度* 融合值 气压计、IMU和超声波融合数据 m
原始值 超声波数据(3米内有效)

在室内使用飞行器时若没有安装Guidance,或飞行高度超过3米,对地高度将由气压计及IMU 计算得出。由于室内无法准确获取气压值,此数据将不可靠。

飞行状态

飞行状态 状态名称 说明
1 standby 飞行器待机
2 take_off 飞行器起飞
3 in_air 飞行器在空中
4 landing 飞行器降落
5 finish_landing 飞行器降落完成

finish_landing状态2s后会进入standby状态。
飞行器离开地面随即进入in_air状态。

遥控器通道

遥控器通道 数值范围 说明
roll [-10000,10000] 左: -10000
右: 10000
pitch [-10000,10000] 下: -10000
上: 10000
yaw [-10000,10000] 左: -10000
右: 10000
throttle [-10000,10000] 下: -10000
上: 10000
mode -8000, 0, 8000 P: -8000
A: 0
F: 8000
gear -10000, -4545 放下起落架: -4545
收起起落架: -10000