4.2 定位適配對接指南

對接說明

1. 獲取定位服務(wù)

1.1 服務(wù)初始化配置
void LocationManager_init(const SPosWorkPath & path, 
                          const SLocModeType & locModeType);

定位服務(wù)只有在LocationManager_init方法成功調(diào)用后才能正常使用,初始化時需要設(shè)置幾個參數(shù):

  1. SPosWorkPath path(定位工作目錄)
  2. SLocModeType locModeType(定位工作模式配置)

如下是SLocModeType 的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)的正確配置與否,是適配成功的很大關(guān)鍵所在

struct SLocModeType  // 定位工作模式結(jié)構(gòu)體 
{
    ELocType locType;              // 定位模式        
    SLocInstalledDegree gyro;      //陀螺儀安裝角
    SLocInstalledDegree accel;     //加速度計安裝角
    SLocSensorOption sensorOption; //傳感器選項(xiàng)
    unsigned long long sysInitTime;     //引擎啟動時間(僅在回放模式下使用)   
    ...
};

以下展開各字段的配置詳細(xì)說明

1.1 配置定位模式

SLocModeType.locType 定位模式類型,目前包含二種模式,項(xiàng)目根據(jù)情況賦值

enum ELocType
{
    ELocTypeUnknown = -1, //未知
    ELocTypeGNSS = 0,     //GPS定位模式
    ELocTypeDr = 1,       //DR模式
};
1.2 配置安裝角

LocInstalledDegree SLocModeType::gyro 陀螺儀安裝角,可選,設(shè)置后端融合模式下設(shè)備安裝角信息。(當(dāng)ELocType == ELocTypeDr時為必傳參數(shù),否則默認(rèn)不傳)
LocInstalledDegree SLocModeType::accel 加速度計安裝角,可選,設(shè)置后端融合模式下設(shè)備安裝角信息。(當(dāng)ELocType == ELocTypeDr時為必傳參數(shù),否則默認(rèn)不傳)

typedef struct LocInstalledDegree
{
    bool            isValid;
    double          roll;  // 單位:度 陀螺儀或者ACC 翻滾角 敏感軸y軸的安裝角度,繞X軸旋轉(zhuǎn)的角度
    double          pitch; // 單位:度 陀螺儀或者ACC 俯仰角 敏感軸Z軸的安裝角度, 繞Y軸旋轉(zhuǎn)的角度
    double          yaw;   // 單位:度 陀螺儀或者ACC 偏航角 敏感軸x軸的安裝角度,繞Z軸旋轉(zhuǎn)的角度
} SLocInstalledDegree;
1.3 配置傳感器選項(xiàng)

SLocSensorOption LocModeType::sensorOption 傳感器參選項(xiàng),可選,設(shè)置后端融合模式下傳感器相關(guān)參數(shù)(當(dāng)ELocType == ELocTypeDr時為必傳參數(shù),否則默認(rèn)不傳)。

struct SLocSensorOption
{
    int hasAcc;   // 加速度計軸數(shù) {0|1|3}, 0 表示沒有    
    int hasGyro;   // 陀螺儀軸數(shù) {0|1|3} , 0 表示沒有   
    int hasTemp;    // 有無陀螺溫度傳感器 0無 1有  
    int hasGsv;     // 有無GSV信息(星歷信息), 0無 1有  
    int pulseFreq;  // 脈沖信息輸入頻率,單位 Hz  
    int gyroFreq;    // 陀螺儀信息輸入頻率,單位 Hz 
    int gpsFreq;     // GNSS信息輸入頻率,單位 Hz 
    int accFreq;    // 加速度計信息輸入頻率,單位 Hz  
};

2. 定位日志開啟

調(diào)用:LocationManager_signalRecordSwitch開啟定位日志
日志開啟接口:

void LocationManager_signalRecordSwitch(bool open, const SLocLogConf& conf);

日志配置參數(shù):

struct SLocLogConf
{   
    ELocLogLevel logLevel; //日志等級
    ELocLogType logType;   //日志類型
};

3. 添加觀察者

使用者根據(jù)業(yè)務(wù)需要注冊觀察者,之后可以通過觀察者獲取相應(yīng)的信息。

源始信號觀察者

void LocationManager_addSignInfoObserver(const PosSignInfoObserverBase* pObserver);//添加
void LocationManager_removeSignInfoObserver(const PosSignInfoObserverBase* pObserver);//移除

地圖匹配反饋信息觀察者

void LocationManager_addMapMatchFeedbackObserver(const PosMapMatchFeedbackObserverBase* pObserver);//添加
void LocationManager_removeMapMatchFeedbackObserver(const PosMapMatchFeedbackObserverBase* pObserver);//移除

定位'傳感器標(biāo)定信息回傳'觀察者

void LocationManager_addSensorParaObserver(const PosSensorParaObserverBase* pObserver);//添加
void LocationManager_removeSensorParaObserver(const PosSensorParaObserverBase* pObserver);//移除

DR相關(guān)信息觀察者

void LocationManager_addPosDrInfoObserver(const PosDrInfoObserverBase* pObserver);//添加
void LocationManager_removePosDrInfoObserver(const PosDrInfoObserverBase* pObserver);//移除

AttitudeAngle信息觀察者

void LocationManager_addAttitudeAngleObserver(const PosAttitudeAngleObserverBase *pObserver);//添加
void LocationManager_removeAttitudeAngleObserver(const PosAttitudeAngleObserverBase *pObserver);//移除

軌跡本地匹配抓路結(jié)果觀察者

void LocationManager_addGraspRoadResultObserver(const PosGraspRoadResultObserverBase *observer);//添加
void LocationManager_removeGraspRoadResultObserver(const PosGraspRoadResultObserverBase *observer);//移除

4. 設(shè)置信號

定位引擎所有信號通過vvoid LocationManager_setSignInfo(const SLocSignData* pSLocSignData);接口設(shè)置。不同的工作模式所需的信號也不同

4.2.1 定位實(shí)時車速

場景圖

實(shí)時車速場景圖.png

時序圖

//TODO:時序圖

關(guān)鍵參數(shù)

返回數(shù)據(jù)結(jié)構(gòu)體:

 float speed//速度,單位:公里/小時

核心接口

定位觀察者回調(diào):

onLocInfoUpdate(LocInfo pstLocInfo);

調(diào)用示例

public void onLocInfoUpdate(LocInfo locInfo) {
    if (locInfo != null  ){
        float speed = locInfo.speed;// 獲取車速 km/h
    }
}

4.2.2 切換平行路

場景圖

切換平行路場景圖.png

時序圖

//TODO:時序圖

關(guān)鍵參數(shù)

//TODO:內(nèi)容

核心接口

定位觀察者回調(diào):

//TODO:內(nèi)容

調(diào)用示例

//TODO:內(nèi)容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容