基于Ubuntu20.04 构建ORB-Slam2(实时稠密建图)
本文最后更新于417 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

由于项目需要手动安装平板系统进行软件布置,将构建方法写入如下:

力推鱼香肉丝,避免链接超时等一系列问题

wget http://fishros.com/install -O fishros && . fishros

第一步输入1,一键安装ROS版本,ubuntu20.04对应的ROS版本为 noetic

第二步安装完ROS后一定要 安装rosdep(为ROS安装运行依赖的工具)

pangolin0.5 下载链接

pangolin运行需要的前置依赖 libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev ,但是一般ROS环境是自带了的

前置安装快捷指令
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
编译命令
cd Pangolin
mkdir build
cd build
cmake ..
make
sudo make install

opencv3.4.5 下载链接 (因为ubuntu20.04的ROS自带opencv4,但是稠密建图版本的ORBSLAM2编译环境依赖opencv3.x,github有移植到opencv4的ORBSLAM2 传送门

opencv3.4.5的依赖,下面有快捷安装命令

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
注:可能遇到报错
无法定位软件包 libjasper-dev
解决方案:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

编译安装指令

cd opencv3.4.5
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.5 -D CMAKE_BUILD_TYPE="Rlease" -D OPENCV_GENERATE_PKGCONFIG=ON ..
make
sudo make install
编译完成后需要让ORBSLAM2编译的时候找对正确的opencv版本,因为现在系统存在opencv3和4两个版本
# 第一步
sudo gedit /etc/ld.so.conf.d/opencv.conf
输入:
/usr/local/opencv3.4.5/lib
# 第二步
sudo ldconfig 
sudo gedit ~/.bashrc 
在末尾输入:
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/local/opencv3.4.5/lib/pkgconfig
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/opencv3.4.5/lib
# 第三步
source ~/.bashrc
pkg-config --modversion opencv
出现3.4.5即可
pkg-config --modversion opencv4
出现4.2.0是ros中的版本
注意:!!!在find(OpenCV REQUIRED)前输入:set(CMAKE_PREFIX_PATH “/usr/local/opencv3.4.5”)指定opencv3的环境路径,否则会找不到

ORBSLAM2_with_pointcloud_map 下载链接

依赖包g2o的编译

cd g2o_with_orbslam2
mkdir build
cmake ..
make 
sudo make install

下面是一个常见的编译报错:

前面所说的怕ORBSLAM2找不到对应的依赖环境

1.将这个-march=native删除,不然后续会出现核心已转储的报错,其实主要是g2o的第三方库里面的需要删除,
但是避免问题,每一个CMakeLists.txt文件里的-march=native我都删除了
2.为了避免pcl的编译问题,在第三行加
set( CMAKE_CXX_STANDARD 14)
3.opencv3.4.5配置,在find_package(OpenCV 3.0 REQUIRED)上一行添加,其实每一个文件中用到opencv都得这样设置
set(CMAKE_PREFIX_PATH "/usr/local/opencv3.4.5")
4.Eigen3 改为对应的版本
find_package(Eigen3 3.3.7 REQUIRED)
5.pcl的版本
find_package( PCL 1.10 REQUIRED )

编译Thirdparty包

不建议直接跑build.sh文件,出现问题不好改
打开build.sh文件,自己逐个编译,有问题也好找
DBoW2里的CMakeLists.txt文件也需要改
这个-march=native删除
在find_package(OpenCV 3.0 REQUIRED)上一行添加
set(CMAKE_PREFIX_PATH “/usr/local/opencv3.4.5”)


cd Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

g2o里的CMakeLists.txt文件也需要改 这个-march=native删除

cd Thirdparty/g2o
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

编译ORBSLAM2包

cd ORB_SLAM2_modified/
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

ROS下编译ORBSLAM2包

gedit ~/.bashrc

添加一下命令,如果以前配置过ORB_SLAM2的ROS的话,需要将以前的配置注释掉

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/你的目录/ORB_SLAM2_modified/Examples/ROS
保存,关闭
source ~/.bashrc
sudo updatedb
rospack profile
echo ${ROS_PACKAGE_PATH}
会出现你刚刚加的ros路径

最后就成功了!看图->

这里有常见的报错解决合集: 传送门1

吴某某 基于Ubuntu20.04 构建ORB-Slam2(实时稠密建图) https://web.mcfrys.cn/index.php/2025/03/07/%e5%9f%ba%e4%ba%8eubuntu20-04-%e6%9e%84%e5%bb%baorb-slam2%e5%ae%9e%e6%97%b6%e7%a8%a0%e5%af%86%e5%bb%ba%e5%9b%be/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇