日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Apollo学习之定位(一)——激光雷达定位

發布時間:2023/12/20 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apollo学习之定位(一)——激光雷达定位 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Apollo的多傳感器定位文件夾里(/modules/localization/msf)的這些文件()記錄了apollo進行激光雷達定位的方式(文件如下)
現在讓我們來剖析這些文件
首先來看看localization_lidar.cc

LocalizationLidar::LocalizationLidar()
LocalizationLidar::~LocalizationLidar()
構造函數與析構函數(構建函數里有說明雷達的高度,如果要用自己調試的車輛注意修改其高度值)

bool LocalizationLidar::Init(const std::string& map_path,
const unsigned int search_range_x,
const unsigned int search_range_y,
const int zone_id,
const unsigned int resolution_id)
確定已知地圖點云是否讀入且識別成功

void LocalizationLidar::SetVelodyneExtrinsic(const Eigen::Affine3d& pose)
進行激光雷達的外部校準

void LocalizationLidar::SetVehicleHeight(double height)
設置激光雷達的高度

void LocalizationLidar::SetValidThreshold(float valid_threashold)
設置激光雷達的定位閾值

void LocalizationLidar::SetImageAlignMode(int mode)
設置激光雷達標定的方式

void LocalizationLidar::SetLocalizationMode(int mode)
設置定位方式

void LocalizationLidar::SetDeltaYawLimit(double limit)

void LocalizationLidar::SetDeltaPitchRollLimit(double limit)

int LocalizationLidar::Update(const unsigned int frame_idx,
const Eigen::Affine3d& pose,
const Eigen::Vector3d velocity,
const LidarFrame& lidar_frame)
檢查是否載入點云地圖
load all needed map
preload map for next locate
生成合成地圖進行比較
將地圖節點傳送到的定位器
將雷達得到的點云傳送到的定位器
進行激光雷達的點云匹配lidar_locator_->Compute

void LocalizationLidar::GetResult(Eigen::Affine3d *location,
Eigen::Matrix3d *covariance)
獲得匹配結果

void LocalizationLidar::GetLocalizationDistribution(
Eigen::MatrixXd *distribution)
從固態驅動盤中分配到空間

void LocalizationLidar::RefineAltitudeFromMap(Eigen::Affine3d *pose)
獲得雷達的海拔

void LocalizationLidar::ComposeMapNode(const Eigen::Vector3d& trans)
構建地圖的節點

總結

以上是生活随笔為你收集整理的Apollo学习之定位(一)——激光雷达定位的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。