现在实验室视觉SLAM已经不够满足,所以需要多模态融合,正巧购入高翔博士推荐的INDEMIND双目惯性模组,根据官方例程在中使用ROS接入ORB-SLAM3,这回有SDK及ORB-SLAM3安装过程中的各种常见性问题解决方法及安装细节,与官网教程略有不同,列举所有默认安装的依赖,做以记录。
系统 | 版本 |
---|---|
ubuntu | 20.04 |
ROS | noetic |
IMSEE-SDK | 1.4.2 |
OpenCV | 3.4.3 |
protobuf | 3 |
MNN | 3.4.3 |
Boost | 1.81 |
Eigen | 3.2.92 |
Pangolin | 0.6 |
官方产品手册地址
sudo apt-get install build-essential cmake git
git clone https://github.com/indemind/IMSEE-SDK.git
cd /home/geekfanr/IMSEE-SDK
make init
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
git clone https://github.com/opencv/opencv.git
cd opencv/
git checkout tags/3.4.3
mkdir build
cd build/
cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
\
-DWITH_CUDA=OFF \
\
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
..
make -j4
sudo make install
sudo apt-get install autoconf automake libtool
sudo apt-get install libcanberra-gtk-module
MNN依赖protobuf
git clone https://github.com/google/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.
autogen文件连接速度不理想,网盘自取
autogen.sh文件
519w
把protobuf的src目录下的hello.c
和Makefile.am
文件拷贝到本机protobuf的src目录
protoc --version # 若安装成功,将显示protoc版本
git clone https://github.com/alibaba/MNN.git
cd MNN
./schema/generate.sh
mkdir build
cd build
cmake ..
make -j4
sudo make install
完成这些步骤,SDK就安装完毕了
cd /geekfanr/IMSEE-SDK # 为安装的SDK具体路径
make init
在CMakeLists.txt中添加
set( CMAKE_CXX_STANDARD 14)
cd /geekfanr/IMSEE-SDK # 为安装的SDK具体路径
make demo
cd /home/geekfanr/catkin_ws/src/IMSEE-SDK/demo/output/bin
sudo su
./get_image
wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_install.sh && \
chmod 755 ./ros_install.sh && bash ./ros_install.sh catkin_ws noetic
cd /home/geekfanr/IMSEE-SDK # 为SDK具体路径
make ros
小鱼老师把国外关于ROS的库放到了自己的服务器上,所以只用向他的服务器发送命令就能快速安装
安装ROS系统配置比较复杂,Ubuntu20.04对应ROS版本为noetic,推荐使用小鱼老师的一键安装、配置ROS的代码
wget http://fishros.com/install -O fishros && bash fishros
平时使用都是ROS1,ROS2是ROS1的改进版本,支持多机,分布式,暂时不会使用。
安装git,g++
sudo apt-get install git
sudo apt install g++
建议先安装ROS中的cv_bridge
和libopencv-dev
,再安装和libopencv版本号一样的opencv库,这样可以避免opencv的版本冲突问题。
sudo apt-get install libopencv-dev
sudo apt-get install ros-noekit-cv-bridge
sudo apt-get install libeigen3-dev
sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpng-dev
cd Pangolin
mkdir build && cd build
cmake -DCPP11_NO_BOOST=1 ..
make
sudo make install
cd ../examples/HelloPangolin
mkdir build && cd build
cmake ..
make
./HelloPangolin
#成功会弹出如下窗口
①这里非常坑,官网上的依赖没有boost,但如果不安装boost会报很多的关于c++的错误,并且无法定位
②进入boost官网网址:http://www.boost.org/users/download/
③解压编译安装
tar -xvf boost_1_77_0.tar.gz
cd ./boost_1_77_0
./bootstrap.sh
sudo ./b2 install
ORB-SLAM3依赖的opencv是4.4以上的版本,而Indemind的sdk使用的是3.4.3版本。
因此,需要修改ORB-SLAM3的工程,打开ORB-SLAM3工程的cmakelist.txt,将OpenCV3.4.3
替换OpenCV 4.2.0
①编译ORB-SLAM3
cd /home/geekfanr/catkin_ws/src/ORB_SLAM3
chmod +x build.sh
./build.sh
②编译ROS下ORB-SLAM3
加入ROS节点非常重要,否则编译的时候就找不到所需要的ros_wrapper包
将节点添加ROS环境
source /home/geekfanr/IMSEE-SDK/ros/devel/setup.bash
cd /home/geekfanr/catkin_ws/src/ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh
cd IMSEE-SDK/
sudo su #开启权限模式
source ros/devel/setup.bash
roslaunch imsee_ros_wrapper start.launch
rosrun ORB_SLAM3 Stereo_Inertial Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM3/Indemind_stereo_imu_fisheye.yaml ture