日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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学习之定位(一)——激光雷达定位的全部內容,希望文章能夠幫你解決所遇到的問題。

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