Skip to main content

精准定位

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

说明: 使用psdk 开发的负载设备可使用uav_positioning.h

目录

宏定义、枚举与结构体

  • typedef enum E_UAVPositioningProperty
  • typedef struct T_UAVPositioningEventInfo
  • typedef struct T_UAV_PositioningPositionDeviation
  • typedef struct T_UAVPositioningPositionInfo

函数原型

  • function uav_positioning_init
  • function uav_positioning_deinit
  • function UAV_Positioning_GetCurrentPositioning_Sync

目宏定义、枚举与结构体

typedef enum E_UAVPositioningProperty

typedef enum {
UAV_POSITIONING_PROPERTY_NOT_AVAILABLE = 0, /*!< Position solution is not available. */
UAV_POSITIONING_PROPERTY_FIX_POSITION = 1, /*!< Position solution is available. */
}E_UAVPositioningProperty;

typedef struct T_UAVPositioningEventInfo

typedef struct {
/*! Index of event set in which positioning event is located. If not needed, fill in 0. */
uint16_t eventIndex;
/*! Timestamp in aircraft time system when the positioning event occur. Users should transfer time in local time
* system to time in aircraft time system from time synchronization module. */
T_UAVTimeSyncAircraftTime timestamp;
}T_UAVPositioningEventInfo;

typedef struct T_UAV_PositioningPositionDeviation

typedef struct {
float longitude; /*!< Longitude in degrees. */
float latitude; /*!< Latitude in degrees. */
float altitude; /*!< Altitude in meters. */
}T_UAV_PositioningPositionDeviation;

typedef struct T_UAVPositioningPositionInfo

typedef struct {
E_UAVPositioningProperty property;
T_UAVAttitude3d uavAttitude; /*!< Specifies UAV attitude, unit: degree. */
T_UAV_PositioningPosition position;
T_UAV_PositioningPositionDeviation positionDeviation; /*!< Specifies position deviation, unit: meter. */
}T_UAVPositioningPositionInfo;

函数原型

function UAV_Positioning_Init

精准定位初始化请求

说明: 用户需要自行注册一个GPIO回调函数,用于控制GPIO触发RTK事件。

extern T_UAVReturnCode UAV_Positioning_Init(T_UAVRtkGpioSetCallback gpioCallback, const std::string rtkDevPath);

function UAV_Positioning_Deinit

精准定位注销请求

extern void UAV_Positioning_Deinit(void);

function UAV_Positioning_GetCurrentPositioning_Sync

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

说明:

  • 开发者可同时获取多个定位事件触发的定位信息,如获取无人机上多个相机类负载设备同步变焦时的定位信息;
  • 当定位事件发生时候,该接口将以阻塞的模式获取精准的定位信息;
  • 在获取精准定位前,开发者必须注册用于获取无人机最新的PPS 时间戳的回调函数,详情请参见:UAV_TimeSync_RegGetNewestPpsTriggerTimeCallback();
  • 在获取精准定位时,精准定位的目标点默认为主云台接口的中心;
  • 开发者利用主云台接口的中心、主云台口与RTK 主天线的距离、无人机姿态角度、云台结构等数据计算兴趣点精准的定位信息。
  • 该接口执行的时间可能会大于600ms;
  • 所有请求的时间戳必须介于比最新同步时间戳早2秒与比最新同步时间戳早1秒的时间点之间。
extern T_UAVReturnCode UAV_Positioning_GetCurrentPositioning_Sync(T_UAVPositioningPositionInfo *positionInfo);
  • 参数positionInfo:指向位置信息
  • 返回值 根据程序执行的情况输出对应的返回值,详情请参见:UAV 错误码