skyeyesystem/backend/Skyeye-sys-dev/skyeye-service-manager/target/classes/api-doc.md

1148 lines
18 KiB
Markdown
Raw Normal View History

# 飞行控制
## 端点: `/flight`
- **方法:** `GET`&`SET`
- **描述:** 飞行控制
## 请求
### 起飞请求
```json
{
"action": 0
}
```
---
### 强制降落
```json
{
"action": "1"
}
```
---
### 其余action请求数字代号
```json
返航2
取消返航3
着陆4
取消着陆5
确认着陆6
设置返航点7 (以飞行器当前位置为返航点)
电机急停8
开启电机9
关闭电机10
飞行拦截11
取消悬停12
紧急悬停13
取消紧急悬停14
执行遥控器操作15
```
若需要执行遥控器操作,其指令格式为:
```json
{
"action": 15,
"direction": "q\w\e\a\s\d\z\c"
}
```
# 数据订阅
## 端点:`/subscription`
- **方法:** `GET`
- **描述:** 订阅或退订无人机实时数据
## 请求和响应
### 请求
```json
{
"action": 1,
"topic": 2,
"hertz": 50
}
```
action取值<br>
1 - subscribe<br>
2 - unsubscribe<br>
topic取值<br>
0 - QUATERNION姿态四元数<br>
1 - ACCELERATION_GROUND相对地面加速度<br>
2 - ACCELERATION_BODY相对机体加速度<br>
3 - ACCELERATION_RAW原始加速度<br>
4 - VELOCITY速度<br>
5 - ANGULAR_RATE_FUSIONED融合角速度<br>
6 - ANGULAR_RATE_RAW原始角速度<br>
7 - ALTITUDE_FUSED融合高度<br>
8 - ALTITUDE_BAROMETER气压计高度<br>
9 - ALTITUDE_OF_HOMEPOINTHome点高度<br>
10 - HEIGHT_FUSION, 融合相对地面高度<br>
11 - HEIGHT_RELATIVE, 相对地面高度<br>
12 - POSITION_FUSED, 融合位置坐标<br>
13 - GPS_DATE, GPS 日期(年月日)<br>
14 - GPS_TIME, GPS 时间(时分秒)<br>
15 - GPS_POSITION, GPS 位置<br>
16 - GPS_VELOCITY, GPS 速度<br>
17 - GPS_DETAILS, GPS 信息<br>
18 - GPS_SIGNAL_LEVEL, GPS 信号强度<br>
19 - RTK_POSITION, RTK 位置<br>
20 - RTK_VELOCITY, RTK 速度<br>
21 - RTK_YAW, RTK 航向角<br>
22 - RTK_POSITION_INFO, RTK 位置信息<br>
23 - RTK_YAW_INFO, RTK 航向信息<br>
24 - COMPASS, 指南针信息<br>
25 - RC, 遥控摇杆信息<br>
26 - GIMBAL_ANGLES, 云台角度<br>
27 - GIMBAL_STATUS, 云台状态<br>
28 - STATUS_FLIGHT, 飞行状态<br>
29 - STATUS_DISPLAYMODE, 飞行模式状态<br>
30 - STATUS_LANDINGGEAR, 起落架状态<br>
31 - STATUS_MOTOR_START_ERROR, 电机启动错误码<br>
32 - BATTERY_INFO, 电池信息<br>
33 - CONTROL_DEVICE, 设备控制信息<br>
34 - HARD_SYNC, 硬件时钟同步<br>
35 - GPS_CONTROL_LEVEL, GPS 控制等级<br>
36 - RC_WITH_FLAG_DATA, 带标记遥控遥感信息<br>
37 - ESC_DATA, 电调数据<br>
38 - RTK_CONNECT_STATUS, RTK 连接状态<br>
39 - GIMBAL_CONTROL_MODE, 云台控制模式<br>
40 - FLIGHT_ANOMALY, 飞行异常信息<br>
41 - POSITION_VO, 笛卡尔坐标位置<br>
42 - AVOID_DATA, 避障数据<br>
43 - HOME_POINT_SET_STATUS, 返航点设置状态<br>
44 - HOME_POINT_INFO, 返航点信息<br>
45 - THREE_GIMBAL_DATA, 三云台信息适用M300 RTK与M350 RTK上下三个云台的信息<br>
46 - BATTERY_SINGLE_INFO_INDEX1, 1 号电池信息<br>
47 - BATTERY_SINGLE_INFO_INDEX2 2 号电池信息<br>
hertz取值<br>
1 - DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ<br>
5 - DJI_DATA_SUBSCRIPTION_TOPIC_5_HZ<br>
10 - DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ<br>
50 - DJI_DATA_SUBSCRIPTION_TOPIC_50_HZ<br>
100 - DJI_DATA_SUBSCRIPTION_TOPIC_100_HZ<br>
200 - DJI_DATA_SUBSCRIPTION_TOPIC_200_HZ<br>
400 - DJI_DATA_SUBSCRIPTION_TOPIC_400_HZ<br>
其中每个topic针对不同机型允许的最大频率请参考大疆官方文档<br>
---
### 响应
```json
{
"status": 0,
"description": "description for this response"
}
```
---
### 推送的订阅数据
订阅数据为json格式其中每个字段的含义请参考大疆官方文档。<br>
QUATERNION<br>
```json
{
"topic": 0,
"q0": 3.14,
"q1": 3.21,
"q2": 3.21,
"q3": 3.33,
"pitch": 4.44,
"roll": 5.44,
"yaw": 6.33,
"ms": 100000,
"us": 33339999
}
```
ACCELERATION_GROUND: <br>
```json
{
"topic": 1,
"x": 3.14,
"y": 3.21,
"z": 3.33,
"ms": 100000,
"us": 33339999
}
```
ACCELERATION_BODY: <br>
```json
{
"topic": 2,
"x": 3.14,
"y": 3.21,
"z": 3.33,
"ms": 100000,
"us": 33339999
}
```
ACCELERATION_RAW: <br>
```json
{
"topic": 3,
"x": 3.14,
"y": 3.21,
"z": 3.33,
"ms": 100000,
"us": 33339999
}
```
VELOCITY: <br>
```json
{
"topic": 4,
"x": 3.14,
"y": 3.21,
"z": 3.33,
"ms": 100000,
"us": 33339999
}
```
ANGULAR_RATE_FUSIONED: <br>
```json
{
"topic": 5,
"x": 3.14,
"y": 3.21,
"z": 3.33,
"ms": 100000,
"us": 33339999
}
```
ANGULAR_RATE_RAW: <br>
```json
{
"topic": 6,
"x": 3.14,
"y": 3.21,
"z": 3.33,
"ms": 100000,
"us": 33339999
}
```
ALTITUDE_FUSED: <br>
```json
{
"topic": 7,
"val": 3.14,
"ms": 100000,
"us": 33339999
}
```
ALTITUDE_BAROMETER: <br>
```json
{
"topic": 8,
"val": 3.14,
"ms": 100000,
"us": 33339999
}
```
ALTITUDE_OF_HOMEPOINT: <br>
```json
{
"topic": 9,
"val": 3.14,
"ms": 100000,
"us": 33339999
}
```
HEIGHT_FUSION: <br>
```json
{
"topic": 10,
"val": 3.14,
"ms": 100000,
"us": 33339999
}
```
HEIGHT_RELATIVE: <br>
```json
{
"topic": 11,
"val": 3.14,
"ms": 100000,
"us": 33339999
}
```
POSITION_FUSED: <br>
```json
{
"topic": 12,
"longitude": 3.14,
"latitude": 3.14,
"altitude": 3.14,
"visibleSatelliteNumber": 3,
"ms": 100000,
"us": 33339999
}
```
GPS_DATE: <br>
```json
{
"topic": 13,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
GPS_TIME: <br>
```json
{
"topic": 14,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
GPS_POSITION: <br>
```json
{
"topic": 15,
"x": 14,
"y": 21,
"z": 33,
"ms": 100000,
"us": 33339999
}
```
GPS_VELOCITY: <br>
```json
{
"topic": 16,
"x": 3.14,
"y": 3.21,
"z": 3.33,
"ms": 100000,
"us": 33339999
}
```
GPS_DETAILS: <br>
```json
{
"topic": 17,
"hdop": 3.14,
"pdop": 3.21,
"fixState": 3.33,
"vacc": 3.33,
"hacc": 3.33,
"sacc": 3.33,
"gpsSatelliteNumberUsed": 33,
"glonassSatelliteNumberUsed": 33,
"totalSatelliteNumberUsed": 33,
"gpsCounter": 33,
"ms": 100000,
"us": 33339999
}
```
GPS_SIGNAL_LEVEL: <br>
```json
{
"topic": 18,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
RTK_POSITION: <br>
```json
{
"topic": 19,
"longitude": 3.14,
"latitude": 3.21,
"hfsl": 3.33,
"ms": 100000,
"us": 33339999
}
```
RTK_VELOCITY: <br>
```json
{
"topic": 20,
"x": 3.14,
"y": 3.21,
"z": 3.33,
"ms": 100000,
"us": 33339999
}
```
RTK_YAW: <br>
```json
{
"topic": 21,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
RTK_POSITION_INFO: <br>
```json
{
"topic": 22,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
RTK_YAW_INFO: <br>
```json
{
"topic": 23,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
COMPASS: <br>
```json
{
"topic": 24,
"x": 14,
"y": 21,
"z": 33,
"ms": 100000,
"us": 33339999
}
```
RC: <br>
```json
{
"topic": 25,
"roll": 14,
"pitch": 21,
"yaw": 33,
"throttle": 33,
"mode": 33,
"gear": 33,
"ms": 100000,
"us": 33339999
}
```
GIMBAL_ANGLES: <br>
```json
{
"topic": 26,
"x": 14.99,
"y": 21.12,
"z": 33.22,
"ms": 100000,
"us": 33339999
}
```
GIMBAL_STATUS: <br>
```json
{
"topic": 27,
"mountStatus": 14,
"isBusy": 21,
"pitchLimited": 33,
"rollLimited": 33,
"yawLimited": 33,
"calibrating": 33,
"prevCalibrationgResult": 14,
"installedDirection": 21,
"disabled_mvo": 33,
"gear_show_unable": 33,
"gyroFalut": 33,
"escPitchStatus": 33,
"escRollStatus": 14,
"escYawStatus": 21,
"droneDataRecv": 33,
"initUnfinished": 33,
"FWUpdating": 33,
"reserved2": 33,
"ms": 100000,
"us": 33339999
}
```
STATUS_FLIGHT: <br>
```json
{
"topic": 28,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
STATUS_DISPLAYMODE: <br>
```json
{
"topic": 29,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
STATUS_LANDINGGEAR: <br>
```json
{
"topic": 30,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
STATUS_MOTOR_START_ERROR: <br>
```json
{
"topic": 31,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
BATTERY_INFO: <br>
```json
{
"topic": 32,
"capacity": 3000000,
"voltage": 3000000,
"current": 3000000,
"percentage": 3000000,
"ms": 100000,
"us": 33339999
}
```
CONTROL_DEVICE: <br>
```json
{
"topic": 33,
"controlAuthority": 31,
"controlAuthorityChangeReason": 30,
"ms": 100000,
"us": 33339999
}
```
HARD_SYNC: <br>
```json
{
"topic": 34,
"ts": {
"time2p5ms": 3333333,
"time1ns": 2222,
"resetTime2p5ms": 44444,
"index": 22,
"flag": 22
},
"q": {
"q0": 22.22,
"q1": 33.33,
"q2": 33.33,
"q3": 44.44
},
"a": {
"x": 22.22,
"y": 33.33,
"z": 33.44
},
"w": {
"x": 22.22,
"y": 33.33,
"z": 33.44
},
"ms": 100000,
"us": 33339999
}
```
GPS_CONTROL_LEVEL: <br>
```json
{
"topic": 35,
"val": 3,
"ms": 100000,
"us": 33339999
}
```
RC_WITH_FLAG_DATA: <br>
```json
{
"topic": 36,
"roll": 14.21,
"pitch": 21.14,
"yaw": 33.33,
"throttle": 33.44,
"flag": {
"logicConnected": 1,
"skyConnected": 2,
"groundConnected": 2,
"appConnected": 1,
"reserved": 1
},
"ms": 100000,
"us": 33339999
}
```
ESC_DATA: <br>
```json
{
"topic": 37,
"esc": [
{
"current": 18,
"speed": 100,
"voltage": 200,
"temperature": 30,
"stall": 24,
"empty": 2,
"unbalanced": 1,
"escDisconnected": 2,
"temperatureHigh": 1,
"reserved": 0
},
......数组大小为8
{
"current": 18,
"speed": 100,
"voltage": 200,
"temperature": 30,
"stall": 24,
"empty": 2,
"unbalanced": 1,
"escDisconnected": 2,
"temperatureHigh": 1,
"reserved": 0
}
],
"ms": 100000,
"us": 33339999
}
```
RTK_CONNECT_STATUS: <br>
```json
{
"topic": 38,
"val": 3,
"ms": 100000,
"us": 33339999
}
```
GIMBAL_CONTROL_MODE: <br>
```json
{
"topic": 39,
"val": 3,
"ms": 100000,
"us": 33339999
}
```
FLIGHT_ANOMALY: <br>
```json
{
"topic": 40,
"impactInAir": 3,
"randomFly": 3,
"heightCtrlFail": 3,
"rollPitchCtrlFail": 3,
"yawCtrlFail": 3,
"aircraftIsFalling": 3,
"strongWindLevel1": 3,
"strongWindLevel2": 3,
"compassInstallationError": 3,
"imuInstallationError": 3,
"escTemperatureHigh": 3,
"atLeastOneEscDisconnected": 3,
"gpsYawError": 3,
"reserved": 3,
"ms": 100000,
"us": 33339999
}
```
POSITION_VO: <br>
```json
{
"topic": 41,
"x": 3.6,
"y": 5.3,
"z": 3.9,
"xHealth": 1,
"yHealth": 1,
"zHealth": 1,
"reserved": 0,
"ms": 100000,
"us": 33339999
}
```
AVOID_DATA: <br>
```json
{
"topic": 42,
"down": 3.6,
"front": 5.3,
"right": 3.9,
"left": 6.3,
"up": 7.3,
"downHealth": 3,
"frontHealth": 3,
"rightHealth": 3,
"backHealth": 3,
"leftHealth": 3,
"upHealth": 3,
"reserved": 3,
"ms": 100000,
"us": 33339999
}
```
HOME_POINT_SET_STATUS: <br>
```json
{
"topic": 43,
"val": 3000000,
"ms": 100000,
"us": 33339999
}
```
HOME_POINT_INFO: <br>
```json
{
"topic": 44,
"latitude": 30.22,
"longitude": 30.33,
"ms": 100000,
"us": 33339999
}
```
THREE_GIMBAL_DATA: <br>
```json
{
"topic": 45,
"anglesData": [
{
"roll": 18.22,
"pitch": 10.05,
"yaw": 20.07,
},
{
"roll": 18.22,
"pitch": 10.05,
"yaw": 20.07,
},
{
"roll": 18.22,
"pitch": 10.05,
"yaw": 20.07,
}
],
"ms": 100000,
"us": 33339999
}
```
BATTERY_SINGLE_INFO_INDEX1: <br>
```json
{
"topic": 46,
"reserve": 0,
"batteryIndex": 1,
"currentVoltage": 10,
"currentElectric": 20,
"fullCapacity": 100,
"remainedCapacity": 80,
"batteryTemperature": 40,
"cellCount": 10,
"batteryCapacityPercent": 50,
"batteryState": {
"reserved": 1,
"cellBreak": 2,
"selfCheckError": 12,
"reserved1": 1,
"batteryClosedReason": 0,
"reserved2": 1,
"batSOHState": 12,
"maxCycleLimit": 20,
"reserved3": 1,
"lessBattery": 12,
"batteryCommunicationAbnormal": 1,
"reserved4": 1,
"hasCellBreak": 1,
"reserved5": 2,
"isBatteryEmbed": 1,
"heatState": 2,
"socState": 1
},
"reserve1": 1,
"reserve2": 0,
"SOP": 1,
"ms": 100000,
"us": 33339999
}
```
BATTERY_SINGLE_INFO_INDEX2: <br>
```json
{
"topic": 47,
"reserve": 0,
"batteryIndex": 2,
"currentVoltage": 10,
"currentElectric": 20,
"fullCapacity": 100,
"remainedCapacity": 80,
"batteryTemperature": 40,
"cellCount": 10,
"batteryCapacityPercent": 50,
"batteryState": {
"reserved": 1,
"cellBreak": 2,
"selfCheckError": 12,
"reserved1": 1,
"batteryClosedReason": 0,
"reserved2": 1,
"batSOHState": 12,
"maxCycleLimit": 20,
"reserved3": 1,
"lessBattery": 12,
"batteryCommunicationAbnormal": 1,
"reserved4": 1,
"hasCellBreak": 1,
"reserved5": 2,
"isBatteryEmbed": 1,
"heatState": 2,
"socState": 1
},
"reserve1": 1,
"reserve2": 0,
"SOP": 1,
"ms": 100000,
"us": 33339999
}
```
# 相机视频流
## 端点:`/video`
- **方法:** `GET`
- **描述:** 检索示例数据
## 请求和响应
### 打开相机请求
参数1Camera 具体相机<br>
7FpvCamera<br>
1MainCamera<br>
2ViceCamera<br>
3TopCamera<br>
参数2action 相机开关<br>
1打开<br>
0关闭<br>
```json
{
"camera": 7,
"action": 1
}
```
### 打开相机请求的响应
参数1status 打开相机的响应码<br>
0打开成功<br>
其他:错误信息<br>
参数2description 描述<br>
0打开成功<br>
其他:打开失败<br>
```json
{
"status": 0,
"description": "Start FpvCamera Stream successfully"
}
```
---
### 关闭相机请求
参数1Camera 具体相机<br>
7FpvCamera<br>
1MainCamera<br>
2ViceCamera<br>
3TopCamera<br>
参数2action 相机开关<br>
1打开<br>
0关闭<br>
```json
{
"camera": 7,
"action": 0
}
```
### 关闭相机请求的响应
参数1status 打开相机的响应码<br>
0关闭成功<br>
其他值:错误信息<br>
参数2description 描述<br>
0关闭成功<br>
其他:关闭失败<br>
```json
{
"status": 0,
"description": "Stop FpvCamera Stream successfully"
}
```
### 视频流
参数1name 相机号<br>
7FpvCamera<br>
1MainCamera<br>
2ViceCamera<br>
3TopCamera<br>
参数2streamData 视频流数据(未解码的h264视频流)<br>
```json
{
"name": 0,
"streamData": ""
}
```
# 运动规划
## 端点:`/waypoint_v2`
- **方法:** `GET`&`SET`
- **描述:** 检索示例数据
## 请求和响应
### 上传航点任务
```json
{
"WaypointV2Move": 0,
"uploadMission": {
"missionId": 1,
"repeatTimes": 1,
"finishedAction": 0,
"maxFlightSpeed": 10.0,
"autoFlightSpeed": 5.0,
"actionWhenRcLost": 1,
"gotoFirstWaypointMode": 0,
"waypoints": [
{
"longitude": 0.00000,
"latitude": 0.00000,
"relativeHeight": 10.0,
"waypointType": 0,
"headingMode": 0,
"useLocalCruiseVel": 1,
"useLocalMaxVel": 0,
"dampingDistance": 20,
"heading": 0.0,
"turnMode": 0,
"pointOfInterestPositionX": 0.0,
"pointOfInterestPositionY": 0.0,
"pointOfInterestPositionZ": 0.0,
"maxFlightSpeed": 10.0,
"autoFlightSpeed": 5.0
},
{
"longitude": 0.0000010,
"latitude": 0.0000020,
"relativeHeight": 15.0,
"waypointType": 0,
"headingMode": 0,
"useLocalCruiseVel": 0,
"useLocalMaxVel": 1,
"dampingDistance": 20,
"heading": 0.0,
"turnMode": 0,
"pointOfInterestPositionX": 0.0,
"pointOfInterestPositionY": 0.0,
"pointOfInterestPositionZ": 0.0,
"maxFlightSpeed": 10.0,
"autoFlightSpeed": 5.0
},
{
"longitude": 0.0000025,
"latitude": 0.0000022,
"relativeHeight": 20.0,
"waypointType": 0,
"headingMode": 0,
"useLocalCruiseVel": 1,
"useLocalMaxVel": 0,
"dampingDistance": 20,
"heading": 0.0,
"turnMode": 0,
"pointOfInterestPositionX": 0.0,
"pointOfInterestPositionY": 0.0,
"pointOfInterestPositionZ": 0.0,
"maxFlightSpeed": 10.0,
"autoFlightSpeed": 5.0
}
],
"missTotalLen": 3,
"actionList": [
{
"actionId": 1,
"actionTrigger": {
"triggerType": 2,
"sampleReachPointTriggerParam": {
"wayPointIndex": 0,
"teminateNum": 1
}
},
"actionActuator": {
"actuatorType": 0,
"actuatorIndex": 0,
"cameraActuatorParam": {
"operationType": 1,
"cameraFocusParam": {
"focusTargetX": 0.0,
"focusTargetY": 0.0,
"regionType": 0,
"width": 0.5,
"height": 0.5,
"reserve": 0,
"retryTimes": 1
}
}
}
},
{
"actionId": 2,
"actionTrigger": {
"triggerType": 2,
"sampleReachPointTriggerParam": {
"wayPointIndex": 1,
"teminateNum": 1
}
},
"actionActuator": {
"actuatorType": 1,
"actuatorIndex": 0,
"gimbalActuatorParam": {
"operationType": 1,
"gimbalRotation": {
"rotX": 0,
"rotY": -45,
"rotZ": 0,
"ctrl_mode": 0,
"rollCmdIgnore": 0,
"yawCmdIgnore": 0,
"pitchCmdIgnore": 0,
"absYawModeRef": 0,
"reserved": 0,
"durationTime": 2
}
}
}
}
],
"actionNum": 2
},
"gloabalCruiseSpeed": 5.0
}
```
### 开始任务
```json
{
"WaypointV2Move": "1"
}
```
### 停止任务
```json
{
"WaypointV2Move": "2"
}
```
### 暂停任务
```json
{
"WaypointV2Move": "3"
}
```
### 继续任务
```json
{
"WaypointV2Move": "4"
}
```
### 设置全局巡航速度
```json
{
"datWaypointV2Move": 5,
"gloabalCruiseSpeed": XXX
}
```
### 获取全局巡航速度
```json
{
"WaypointV2Move": 6
}
```