3D-激光SLAM筆記

目錄

定位方案

編譯tbb

ros2humble安裝

命令 colcon commond not found

柵格地圖生成:

evo畫軌跡曲線

安裝gtsam4.0.2

安裝ceres-solver1.14.0


定位方案

1 方案一:改動最多
fasterlio 建圖,加閉環優化,參考fast-lio增加關鍵幀
定位: 用讀入pcd點云,創建體素ivox結構地圖,用ieskf ikfom ivox結構緊耦合匹配輸出位姿
重定位:用讀入pcd點云,創建體素ivox結構,給定初始位姿用ieskf定位
柵格地圖生成:用octomap mapserver生成,離線。或改為在線生成。
2 方案二:直接測試
建圖:fastlio 建圖,fast-lio-slam 包含閉環和優化
定位/重定位:用fast-lio-localization包含定位功能,配合open3d
柵格地圖生成:用octomap mapserver生成,離線。或改為在線生成。
3 方案三:改動多
建圖:fasterlio,加閉環優化,參考fast-lio增加關鍵幀
定位重定位:參考《自動駕駛與機器人中的slam技術》十講,進行前端融合。
柵格地圖生成:用octomap mapserver生成,離線。或改為在線生成。
4 方案四:入門級別
建圖、定位、重定位:參考《自動駕駛與機器人中的slam技術》九講十講
柵格地圖生成:用octomap mapserver生成,離線。或改為在線生成。

編譯tbb

make compiler=gcc-9 stdver=c++17 tbb_build_prefix=my_tbb_build

sudo mkdir /usr/local/oneTBB-2019_U8

sudo cp -r include /usr/local/oneTBB-2019_U8/include

sudo ln -s /usr/local/oneTBB-2019_U8/include/tbb /usr/local/include/tbb

sudo cp -r build/my_tbb_build_release /usr/local/oneTBB-2019_U8/lib

sudo ln -s /usr/local/oneTBB-2019_U8/lib/libtbb.so.2 /usr/local/lib/libtbb.so

sudo ln -s /usr/local/oneTBB-2019_U8/lib/libtbbmalloc.so.2 /usr/local/lib/libtbbmalloc.so

sudo ln -s /usr/local/oneTBB-2019_U8/lib/libtbbmalloc_proxy.so.2 ? ? ?/usr/local/lib/libtbbmalloc_proxy.so

echo 'export LD_LIBRARY_PATH=/usr/local/oneTBB-2019_U8/lib:$LD_LIBRARY_PATH' ?>> ? ? ?~/.bashrc

source ~/.bashrc


/usr/local/lib/libtbb.so
/usr/local/lib/libtbbmalloc.so
/usr/local/lib/libtbbmalloc_proxy.so

ros2humble安裝

1.首先將本地的編碼格式修改為utf-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

2.添加ROS2 GPG key
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

3.安裝ROS2
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc?
source ~/.bashrc ?#使環境生效

wget http://fishros.com/install -O fishros && . fishros
?rosdepc update

命令 colcon commond not found


?pip3 install -U colcon-common-extensions
?sudo apt update && sudo apt install -y \
? build-essential \
? cmake \
? git \
? python3-colcon-common-extensions \
? python3-pip \
? python-rosdep \
? python3-vcstool

柵格地圖生成:

octomap 安裝
sudo apt-get install ros-melodic-octomap-ros
sudo apt-get install ros-melodic-octomap-msgs
sudo apt-get install ros-melodic-octomap-server
sudo apt-get install ros-melodic-octomap-rviz-plugins

map_server 安裝
sudo apt-get install ros-melodic-map-server
?

evo畫軌跡曲線

?tum格式是 time x y z qx qy qz qw ? KITTI格式的數據通常是一個4x4的變換矩陣 ? ? 不包含時間戳
pip install evo --upgrade --no-binary evo

evo_traj tum --ref=gt.txt 1.txt 2.txt 3.txt ?-a ?-p ?--save_plot ?./output.pdf
evo_traj tum --ref=traj.txt optimized_poses.txt ?-a ?-p ?--save_plot ?./output.pdf
evo_traj tum traj.txt ?-a ?-p ?--save_plot ?./output.pdf
軌跡對比
evo_traj tum --ref=bef.txt aft.txt ?-a ?-p ?--save_plot ?./output.pdf
絕對差
evo_ape tum bef.txt aft.txt ? -va -p?

安裝gtsam4.0.2


wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.2/
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j4

安裝ceres-solver1.14.0


sudo apt-get install -y libgoogle-glog-dev
sudo apt-get install -y libatlas-base-dev
wget -O ~/Downloads/ceres.zip https://github.com/ceres-solver/ceres-solver/archive/1.14.0.zip
cd ~/Downloads/ && unzip ceres.zip -d ~/Downloads/
cd ~/Downloads/ceres-solver-1.14.0
mkdir ceres-bin && cd ceres-bin
cmake ..
sudo make install -j4

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83463.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83463.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83463.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

貪心算法應用:分數背包問題詳解

貪心算法與分數背包問題 貪心算法(Greedy Algorithm)是算法設計中一種重要的思想,它在許多經典問題中展現出獨特的優勢。本文將用2萬字篇幅,深入剖析貪心算法在分數背包問題中的應用,從基礎原理到Java實現細節&#x…

PyTorch——非線性激活(5)

非線性激活函數的作用是讓神經網絡能夠理解更復雜的模式和規律。如果沒有非線性激活函數,神經網絡就只能進行簡單的加法和乘法運算,沒法處理復雜的問題。 非線性變化的目的就是給我們的網絡當中引入一些非線性特征 Relu 激活函數 Relu處理圖像 # 導入必…

iOS 電子書聽書功能的實現

在 iOS 應用中實現電子書聽書(文本轉語音)功能,可以通過系統提供的 AVFoundation 框架實現。以下是詳細實現步驟和代碼示例: 核心步驟: 導入框架創建語音合成器配置語音參數實現播放控制處理后臺播放添加進度跟蹤 完整…

ES中must與filter的區別

在 Elasticsearch 的布爾查詢(bool query)中,must 和 filter 是兩個核心子句,它們的核心區別在于 是否影響相關性評分,這直接決定了它們在查詢性能、使用場景和結果排序上的差異。以下是詳細對比: 一、核心…

vscode實時預覽編輯markdown

vscode實時預覽編輯markdown 點擊vsode界面,實現快捷鍵如下: 按下快捷鍵 CtrlShiftV(Windows/Linux)或 CommandShiftV(Mac)即可在側邊欄打開 Markdown 預覽。 效果如下:

Android第十一次面試flutter篇

Flutter基礎? 在 Flutter 中,?三棵樹(Widget Tree、Element Tree、RenderObject Tree)?? 是框架的核心設計,它們協同工作以實現高效的 UI 渲染和更新機制。 ?1. Widget Tree(Widget 樹)?? ?是什么…

多線程編程中的數據競爭與內存可見性問題解析

引言 在多線程編程中,看似簡單的代碼往往隱藏著復雜的并發問題。今天我們來分析一個經典的生產者-消費者場景,看看在多核CPU環境下可能出現的各種"意外"情況。 問題代碼分析 讓我們先看看這段看似正常的C#代碼: using System; u…

Linux 與 Windows:哪個操作系統適合你?

Linux vs Windows:系統選擇的關鍵考量 在數字化轉型浪潮中,操作系統作為底層基礎設施的重要性日益凸顯。Linux與Windows作為主流選擇,其差異不僅體現在技術架構上,更深刻影響著開發效率、運維成本與安全性。本文將從??7個核心維度??展開對比分析,并提供典型應用場景建…

佰力博科技與您探討低溫介電溫譜測試儀的應用領域

低溫介電溫譜測試應用領域有如下: 一、電子材料: 低溫介電溫譜測試儀廣泛應用于電子材料的性能測試,如陶瓷材料、半導體材料、壓電材料等。通過該設備,可以評估材料在高溫或低溫環境下的介電性能,為材料的優化和應用提…

Windows 下徹底刪除 VsCode

徹底刪除 VS Code (Visual Studio Code) 意味著不僅要卸載應用程序本身,還要刪除所有相關的配置文件、用戶數據、插件和緩存。這可以確保你有一個完全干凈的狀態,方便你重新安裝或只是徹底移除它。 重要提示: 在執行以下操作之前&#xff0c…

STM32與GD32標準外設庫深度對比

近年來,隨著全球芯片短缺和市場價格波動,工程師們開始尋求對常用MCU的替代方案。在STM32因產能受限而頻頻漲價的背景下,GD32作為國產替代的重要選項,獲得了越來越多的關注。尤其是GD32F103系列,由于其在硬件封裝、功能特性乃至軟件支持上的“高相似度”,成為STM32F103的熱…

使用Redis的四個常見問題及其解決方案

Redis 緩存穿透 定義:redis查詢一個不存在的數據,導致每次都查詢數據庫 解決方案: 如果查詢的數據為空,在redis對應的key緩存空數據,并設置短TTL。 因為緩存穿透通常是因為被惡意用不存在的查詢參數進行壓測攻擊&…

Java高級 | 【實驗一】Spring Boot安裝及測試 最新

隸屬文章:Java高級 | (二十二)Java常用類庫-CSDN博客 目錄 一、SpringBoot的特點 二、Spring Boot安裝及測試 (一)安裝Intellij IDEA (二)安裝MySQL (三)安裝postma…

Oracle RMAN自動恢復測試腳本

說明 此恢復測試腳本,基于rman備份腳本文章使用的fullbak.sh做的備份。 數據庫將被恢復到RESTORE_LO參數設置的位置。 在恢復完成后,執行一個測試sql,確認數據庫恢復完成,數據庫備份是好的。恢復測試數據庫的參數,比如SGA大小都…

從Java的JDK源碼中學設計模式之裝飾器模式

裝飾器模式是一種極具彈性的結構型設計模式,它允許我們通過組合的方式動態擴展對象功能而無需修改原有結構。本文將通過JDK源碼中的實際應用和通俗易懂的代碼示例,帶你深入了解這一強大模式的精髓。 裝飾器模式核心原理 裝飾器模式的核心思想&#xff…

調教 DeepSeek - 輸出精致的 HTML MARKDOWN

【序言】 不知道是不是我閑的蛋疼,對百度AI 和 DeepSeek 的回答都不太滿意。 DeepSeek 回答句子的引用鏈接,始終無法準確定位。有時鏈接只是一個域名,有時它給的鏈接是搜索串如: baidu.com/?q"搜索內容"。 百度AI 回答句子的引用…

第1章_數據分析認知_知識點筆記

來自:數據分析自學課程-戴戴戴師兄 逐字稿:【課程4.0】第1章_分析認知_知識點筆記 【課程4.0】第1章 分析認知 知識點總結 一、數據分析的本質認知 數據分析是什么? 不是酷炫看板、復雜模型或升值秘籍,而是認知世界的基礎方法。…

【從0-1的HTML】第2篇:HTML標簽

文章目錄 1.標題標簽2.段落標簽3.文本標簽brbstrongsubsup 4.超鏈接標簽5.圖片標簽6.表格標簽7.列表標簽有序列表ol無序列表ul定義列表dl 8.表單標簽9.音頻標簽10.視頻標簽11.HTML元素分類塊級元素內聯元素 12.HTML布局13.內聯框架13.內聯框架 1.標題標簽 標題標簽&#xff1a…

快速排序(Quick Sort)算法詳解(遞歸與非遞歸)

引言 在計算機科學中,排序算法是最基礎且重要的算法之一。快速排序(Quick Sort)作為一種高效的排序算法,在實際應用中被廣泛使用。平均時間復雜度為 (O(n log n)),最壞情況下為 (O(n^2))。本文將詳細介紹快速排序算法…

修改 vscode 左側導航欄的文字大小 (更新版)

新增, 個人常用 按 Ctrl Shift P 打開命令面板 輸入并選擇 : Developer: Toggle Developer Tools 打開開發者工具。 1. 起因, 目的: 問題: vscode 左側的文字太小了!!!我最火的一篇文章,寫的就是這個…