OSDK 提供了时间同步功能,方便开发者通过使用基于OSDK 开发的应用程序同步传感器、记载计算机及无人机上的时间,实现传感器数据融合等功能;还支持同步无人机与GPS 系统的时间,实现精准定位等功能。
说明
- 仅具有RTK 功能的无人机支持使用时间同步功能。
- 使用时间同步功能前,请通过移动端APP 确认无人机与RTK 或GPS 卫星间保持良好的通信状态,该移动端APP 可为DJI 发布的APP,如DJI Pilot,也可为基于MSDK 开发的移动端APP,如 图1.查看卫星通信状态 所示,若无人机与RTK 或GPS 卫星间的通信状态较差,基于OSDK 开发的应用程序将无法实现时间同步功能。
图1.查看卫星通信状态
时间同步是一种使用PPS 信号,通过与GPS 卫星通信,实现无人机与GPS 系统时间同步的功能;具有“时间同步”功能的应用程序,不仅方便用户快速分析传感器采样的数据,还能提高相机曝光时间的精准度,以及实现获取精准定位信息等高级功能;时间同步功能支持以1Hz 的频率获取RTK 数据,支持以5Hz 的频率获取GPS 数据。
OSDK 时间同步的流程如下所示:
说明: 无人机脉冲在上升沿处(从0V上升到3.3V)产生UTC 时间戳。
void subscribeNMEAMsgs(VehicleCallBack cb, void *userData); |
bool getNMEAMsg(NMEAType type, NMEAData &nmea); |
void subscribeUTCTime(VehicleCallBack cb, void *userData); |
bool getUTCTime(NMEAData &utc); |
void subscribeFCTimeInUTCRef(VehicleCallBack cb, void *userData); |
bool getFCTimeInUTCRef(DJI::OSDK::ACK::FCTimeInUTC &fcTimeInUTC); |
void subscribePPSSource(VehicleCallBack cb, void *userData); |
bool getPPSSource(PPSSource &source); |
实现无人机、传感器与机载计算机的时间同步后,无人机所输出的PPS 硬件脉冲,如 图2.时间同步信号 所示。
图2.时间同步信号