精准定位
精准定位相关功能的头文件为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 错误码。