More Related Content
Similar to 3.无人飞行器安全性分析 (20)
3.无人飞行器安全性分析
- 21. 针对突破⼝口的猜想
⦿ ⾃自动返航功能
● 改变返航点 输⼊入新位置
● 触发返航条件(待其失联或触发失联)
• 等待⾃自然的失控现象发⽣生
• 可以留个后⻔门(在OpenWrt上替换)
• 实时对遥控器的干扰引起失控(暂不考虑)
• 对⾁肉眼不可操作时建议为主动触发⾃自动返回
- 31. 返航点包结构
⦿ 设置动态返航点
struct pkt {
uint16_t magic;
uint8_t len;
uint8_t port; //0x0a
uint16_t seq;
uint8_t cmd; //0x4b
uint8_t status;
uint8_t data[255 - 7];
};
⦿ 地⾯面站相关包结构
struct pkt {
uint16_t magic;
uint8_t len;
uint8_t port; 0x0a
uint16_t seq;
uint8_t cmd; // 0x5a
uint8_t status;
uint8_t data[255 - 7];
};
- 33. 地⾯面站功能的实现-数据
⦿
初始化
>1D 00 00 00 00 03 03 00 80 00 00 00 00 00 02 00 00 00 00 00 41 E8 03
00 00 CD AB 4D CA
>0F 00 00 00 00 46 03 00 80 00 00 CD AB 4A B9
⦿
上传坐标点
>43 00 00 00 00 01 03 00 80 00 00 00 00 00 00 C7 E0 69 EB 61 5B E6
3F 95 B9 4C F5 F4 3E 00 40 00 00 F0 41 00 00 00 41 00 00 00 00 B4
43 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CD AB E1
B8
⦿
起⻜飞指令
>12 00 00 00 00 05 03 00 80 00 04 00 00 00 CD AB 5D 91
- 34. 地⾯面站功能的实现-数据
⦿ 坐标点数据
w.id = p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24; p += 4;
w.turn_mode = p[0]; p += 1;
w.lat = load_le_double(p) * 180.0 / 3.141592653589793; p +=
8;
w.lon = load_le_double(p) * 180.0 / 3.141592653589793; p
+= 8;
w.alt = load_le_float(p); p += 4;
w.vel = load_le_float(p); p += 4;
w.timelimit = p[0] | p[1] << 8; p += 2;
w.heading = load_le_float(p);