精准定位

2023-03-29
4 分
1 用户已评分

精准定位相关功能的头文件为dji_positioning.h,本文档描述了dji_positioning.h 文件中结构体和函数原型的关键信息和使用方法。

目录

结构体

typedef struct T_DjiPositioningEventInfo

描述一个定位事件

typedef struct {
    uint16_t eventSetIndex;       负载设备触发定位事件的索引,该索将被写入.mark 文件,
                                  若无需为定位事件设置索引,可填入0
    uint8_t targetPointIndex;     负载设备获取定位点的索引,该索将被写入.mark 文件,若
                                  无需为定位事件设置索引,可填入0
    T_DjiTimeSyncAircraftTime eventTime;    定位事件发生时的时间戳,用户需要通过时间同步
                                             模块中的PsdkTimeSync_TransferToAircraftTime()接口,该接口将该时间(负载设备上的本地时间)转换为无人机上的时间
} T_DjiPositioningEventInfo;

typedef struct T_DjiPositioningPosition

用于描述一个定位点的结构体

typedef struct {
    dji_f64_t longitude;     定位点的经度,单位:度
    dji_f64_t latitude;      定位点的维度,单位:度
    dji_f64_t height;        定位点海平面以上的高度,单位:米
} T_DjiPositioningPosition;

typedef struct T_DjiPositioningPositionStandardDeviation

定位点标准差值

typedef struct {
    dji_f32_t longitude;     定位点经度的标准差值,单位:度
    dji_f32_t latitude;      定位点纬度的标准差值,单位:度
    dji_f32_t height;        定位点海平面以上高度的标准差值,单位:m.
} T_DjiPositioningPositionStandardDeviation;

typedef struct T_DjiPositioningPositionInfo

获取目标点的细节信息

typedef struct {
    E_DjiDataSubscriptionPositionSolutionProperty positionSolutionProperty;   位置解属性
    T_DjiAttitude3d uavAttitude;                              获取目标点时无人机的姿态角,单位:度
    T_DjiVector3d offsetBetweenMainAntennaAndTargetPoint;     在NED大地坐标系下,指定无人机主天线到目标点的偏移,单位:mm
    T_DjiPositioningPosition targetPointPosition;             目标点在大地坐标系中的位置
    T_DjiPositioningPositionStandardDeviation targetPointPositionStandardDeviation;    指定目标点的标准差
} T_DjiPositioningPositionInfo;

函数原型

function DjiPositioning_Init

功能:初始化精准定位模块 product:all

在使用精准定位功能前,请在阻塞的模式下调用本接口初始化精准定位模块。

说明

  • 该接口初始化的时间可能会超出 500ms;
  • 请勿在主函数中调用该接口。
T_DjiReturnCode DjiPositioning_Init(void);


返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

function DjiPositioning_SetTaskIndex

功能:设置任务索引 product:Matrice 200 RTK V2, Matrice 300 RTK

一次任务可能包含对一个区域做航测建图,默认任务索引为0。

void DjiPositioning_SetTaskIndex(uint8_t index);
参数
index:任务索引

function DjiPositioning_GetPositionInformationSync

功能:获取精准定位信息 product:all

调用该接口获取目标点精准的定位信息以及其他信息,详情请参见:T_DjiPositioningPositionInfo。

说明

  • 开发者可同时获取多个定位事件触发的定位信息,如获取无人机上多个相机类负载设备同步变焦时的定位信息;
  • 当定位事件发生时候,该接口将以阻塞的模式获取精准的定位信息;
  • 在获取精准定位前,开发者必须注册用于获取无人机最新的PPS 时间戳的回调函数,详情请参见:DjiPositioning_RegGetNewestPpsTriggerTimeCallback();
  • 在获取精准定位时,精准定位的目标点默认为主云台接口的中心;
  • 开发者利用主云台接口的中心、主云台口与RTK 主天线的距离、无人机姿态角度、云台结构等数据计算兴趣点精准的定位信息。
  • 该接口执行的时间可能会大于600ms;
  • 所有请求的时间戳必须介于比最新同步时间戳早2秒与比最新同步时间戳早1秒的时间点之间。
T_DjiReturnCode DjiPositioning_GetPositionInformationSync(uint8_t eventCount, T_DjiPositioningEventInfo *eventInfo,
                                                            T_DjiPositioningPositionInfo *positionInfo);
参数
eventCount:同时获取定位信息的事件数量(<5)
eventInfo:指向定位时间的信息
positionInfo:目标点的定位信息
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
若您对文档有意见或疑惑,点击可快速反馈,我们会与您联系。