【如何集成⾼精度定位服务】之终端侧 SDK 的集成

⾼精度定位综述分别介绍了集成高精度位置服务的各个步骤,我们不难发现,整个过程最核心的内容,就是集成SDK。

千寻SDK主要负责从服务器获取RTCM数据,整个过程包括鉴权,数据播发,接收,上传GGA等多个环节,但具体的底层细节用户不需要关心,千寻已经封装好了完整的上层API供开发者使用。千寻可以提供嵌入式,Linux,Android等多个操作系统版本的SDK,本章将根据账号体系,首先介绍不同平台如何集成的差分数据SDK;然后再以千寻魔方120M为例,说明包含千寻RTK算法的SDK。对于特殊的定制化平台,强烈建议用户联系千寻的客服,并提供相关编译环境信息,千寻能够定制对应的SDK包。


 

1. 千寻账号体系概述

 

千寻会为每一个用户提供对应的账号,用户在千寻官网完成注册,并实名认证后,就可以登录自己的控制中心,在这里面可以看到自己有效的服务实例。点击进入后,能够看到自己服务实例的AK和AS,

【如何集成⾼精度定位服务】之终端侧 SDK 的集成_第1张图片

另外,在设备服务号中,也能看到对应激活的设备类型(devicetype)与设备ID(deviceID),

【如何集成⾼精度定位服务】之终端侧 SDK 的集成_第2张图片

这四个参数构成了千寻服务账号最核心的部分。服务器通过这四个参数,能够识别唯一的终端,进而对应播发RTCM。在后续集成SDK的过程中,需要在代码中指定的位置填入这四个变量。


 

2. 安卓平台差分SDK集成

 

安卓平台相对较简单,由于Java虚拟机的原理,安卓平台的开发不依赖于底层,任何硬件环境运行的都是同一套代码。千寻SDK中包含相关的jar包,以及So文件,用户仅需将SDK中的jar文件与so库加入到自己工程中,配置好千寻账号,按照要求调用API即可。

SDK解压后,内部包含说明文档《千寻SDK接入文档》,里面详细介绍了代码流程,以及API的调用方法,强烈建议用户先阅读文档,再继续开发。

本小节仅说明Java层的内容,如果用户需要在安卓NDK层进行开发,建议联系千寻的客户获取相关技术支持。

 


 

3. Linux与嵌入式平台差分SDK集成

Linux与嵌入式的特殊性,底层会有巨大的不同,这决定了不同版本很多差异化的内容。目前能够统一的仅为x86平台的Linux系统,因此千寻官网仅能提供x86平台的LinuxSDK,若用户基于不同的ARM架构进行开发,需要进行定制。这里建议用户联系千寻客服,提供自己使用的编译链,由千寻向用户提供定制好的版本。

Linux平台的开发相对容易,用户在代码中配置好账号信息,调用API通过GGA语句上传自己的位置信息,然后在对应的回调函数中就可以获取到服务器播发的RTCM差分数据,以二进制流的形式传送。开发者仅需将RTCM通过串口发送给内置RTK的定位模组,就可以完成高精度的定位。

嵌入式平台相对于Linux更加开放,用户如果在嵌入式平台使用FreeRTOS等系统,或者baremetal裸跑,需要首先联系千寻客服,获取对应版本的SDK。在嵌入式系统中,需要用户自己根据底层网络的接口,按照千寻指定的要求,实现并封装好底层socket接口,具体细节可以参考SDK包中的《千寻SDK网络层接口指南》。

嵌入式和Linux平台的SDK包中,同样包含相关的说明文档《差分数据SDK开发指南》,强烈建议用户仔细阅读。

 


 

4. 千寻魔方120M的RTK算法SDK

千寻魔方120M是千寻自有的高精度定位模组,低成本、高可用性,可直接内置千寻服务,并且易于集成到用户的原有系统中。

与前面提到的定位模组和板卡相比,120M内部不具有RTK解算能力,因此需要借助于千寻自有RTK算法。在这种应用场景中,RTK算法运行在主处理器一侧,千寻魔方通过串口将卫星原始观测量发送到处理器,处理器一方面从千寻服务器获取RTCM,再同时结合收到的原始观测量,进行高精度解算,最终直接获取高精度定位结果。这类用户需要集成这个特殊版本的SDK。整个流程如下图所示:

【如何集成⾼精度定位服务】之终端侧 SDK 的集成_第3张图片

 

在这种应用中,千寻也提供了对应的SDK,支持安卓、Linux、嵌入式环境,该SDK打包了千寻算法,以及与服务器交换的内容,用户仅需集成该SDK,便可以完成所有开发。

你可能感兴趣的:(解决方案)