眾所周知最近在和工友搞SLAM,好家伙工友M1版的MAC+虛擬機(jī)跑ROS(其實(shí)一開始在英偉達(dá)的XAVIER上面跑來著,無奈空間不夠,寄了),總之就是大概一周內(nèi)都在調(diào)試(斷斷續(xù)續(xù)的那種),今天是工作日,我也實(shí)在看不下去了,也投入到了這個(gè)令人頭禿的工作中,事實(shí)證明這個(gè)東西是真的熬人。
一開始跑的FAST-LIO,是雷達(dá)+IMU的SLAM框架,在最后一步的雷達(dá)和IMU的配準(zhǔn)的時(shí)候有一些超過了我和工友能力范圍的步驟(搞不幾米了),雖然這樣,但是忙了這么久了,有點(diǎn)難過,后來找了找有沒有不用IMU的框架,然后就有了這篇文章,但是我有個(gè)疑惑的地方,我個(gè)人感覺MID-40雷達(dá)自己是帶有IMU的,因?yàn)樵隍?qū)動(dòng)里面我找到了這樣的開關(guān),以及在建圖的過程中下面車輛微小的動(dòng)作也可以在圖中有體現(xiàn),我覺得應(yīng)該是有IMU的。
emmmm,沒有IMU,無妨我們有外置的,有空加一個(gè)上去
這篇文章主要是展示使用,安裝過程中的一些坑也會(huì)說明。
先看看結(jié)果:
Loam-Livox是用于Livox 激光雷達(dá)的穩(wěn)健、低漂移和實(shí)時(shí)里程計(jì)和測(cè)繪軟件包,是專為大規(guī)模工業(yè)用途而設(shè)計(jì)的低成本和高性能激光雷達(dá)。
該LOAM 算法僅使用一個(gè) Livox Mid-40 單元,沒有融合其他傳感器如 IMU、GPS 或攝像頭。通過運(yùn)動(dòng)補(bǔ)償機(jī)制進(jìn)行連續(xù)掃描匹配,從而實(shí)現(xiàn) LiDAR位姿的實(shí)時(shí)解算(即測(cè)距)。有了LiDAR位姿, 所有LiDAR測(cè)量的點(diǎn)云就可以投影到同一個(gè)全局坐標(biāo)系中, 得到環(huán)境的三維地圖。為提升算法性能和可靠性,一系列核心問題得以解決,包括有限視場(chǎng)下的特征提取和篩選、雜點(diǎn)剔除、移動(dòng)物體過濾以及幀內(nèi)運(yùn)動(dòng)補(bǔ)償。該算法的測(cè)距和建圖部分均可以同時(shí)在MacBook上以 20 Hz 的頻率實(shí)時(shí)運(yùn)行(工友的本子沒有跑起來)。
官方測(cè)試的是Ubuntu16,18的版本(64bit),我這里使用的是20.04.
記得安裝的時(shí)候替換里面的XXX,第二個(gè)是我的安裝命令。
sudo apt-get install ros-XXX-cv-bridge ros-XXX-tf ros-XXX-message-filters ros-XXX-image-transport
sudo apt-get install ros-noetic-cv-bridge ros-noetic-tf ros-noetic-message-filters ros-noetic-image-transport
關(guān)于PCL和Ceres Solver的安裝,你可以看下篇文章,注意PCL需要安裝1.9的版本。
如果你使用的是MID-100的高端貨,需要在ROS的驅(qū)動(dòng)包里面設(shè)置這個(gè)參數(shù)
cd ~/xxxx/src git clone https://github.com/hku-mars/loam_livox.git cd ../ catkin_make source ~/xxxx/devel/setup.bash
xxxx是你自己的目錄,按部就班的執(zhí)行就好
那么我敢打包票,你會(huì)遇到一個(gè)Opencv的報(bào)錯(cuò)問題,無妨~我們已經(jīng)解決了。
有的人說要把這里的OpenCV版本號(hào)改了,其實(shí)不用
在源碼的文件夾里面修改這個(gè)文件為
#include
其實(shí)就是opencvAPI的變動(dòng)
cap.set(cv::CAP_PROP_SETTINGS, 1); // opens camera properties dialog cap.set(cv::CAP_PROP_FRAME_WIDTH, 320); cap.set(cv::CAP_PROP_FRAME_HEIGHT, 240);
這個(gè)里面修改三個(gè)文件,此時(shí)保存編譯
至少里面的這些東西都不報(bào)錯(cuò),就是都安裝OK
當(dāng)然下面給的是安裝OpenCV的命令:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev sudo apt-get install libgtk2.0-dev sudo apt-get install pkg-config sudo apt install build-essential cmake git pkg-config libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev libgstreamer-plugins-base1.0-devlibgstreamer1.0-dev
mkdir ~/opencv_build && cd ~/opencv_build git clone https://github.com/opencv/opencv.git gitclonehttps://github.com/opencv/opencv_contrib.git
cd ~/opencv_build/opencv mkdir-pbuild&&cdbuild
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules -DBUILD_EXAMPLES=ON..
make-j8
sudomakeinstall
安裝
pkg-config--modversionopencv4
驗(yàn)證
roslaunch loam_livox livox.launch roslaunch livox_ros_driver livox_lidar.launch
先運(yùn)行第一個(gè)節(jié)點(diǎn),啟動(dòng)接收和建圖的線程,然后第一個(gè),雷達(dá)開始啟動(dòng)。
建圖的時(shí)候,室內(nèi)還是算了,雷達(dá)一掃百米,室內(nèi)實(shí)在是憋屈啊。在室外測(cè)試,因?yàn)槔走_(dá)本身的范圍就很大了,這里也不就建議不停的旋轉(zhuǎn)雷達(dá),可以多繞一圈來補(bǔ)充特征點(diǎn),以及就是要?jiǎng)蛩僮咧本€,拐彎也要平緩,不能速度突變。
-
傳感器
+關(guān)注
關(guān)注
2545文章
50445瀏覽量
751040 -
攝像頭
+關(guān)注
關(guān)注
59文章
4793瀏覽量
95272 -
雷達(dá)
+關(guān)注
關(guān)注
50文章
2872瀏覽量
117164 -
PCL
+關(guān)注
關(guān)注
1文章
32瀏覽量
13656
原文標(biāo)題:港大Loam-純雷達(dá)建圖
文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論