ORB-SLAM3 ペーパー アドレス:https://arxiv.org/abs/2007.11898
コード アドレス:https://github.com/UZ-SLAMLab/ORB_SLAM3
ネイティブ システム:Ubuntu 18.04 LTS
初期環境:GCC 7.5、G++ 7.5、Cmake 3.10.2
1. インストールの依存関係
1.Pangolin 0.5注意: バージョン ≤ 0.5 Github
URLを添付します:インストール コマンド:https://github.com/stevenlovegrove/Pangolin
1 #安装依赖
2 sudo apt install libglew-dev
3 sudo apt install cmake
4 sudo apt install libpython2.7-dev
5 #可选依赖见github,我没装所以就不贴出来啦
6 #下载并编译
7 git clone https://github.com/stevenlovegrove/Pangolin.git
8 cd Pangolin
9 mkdir build
10 cd build
11 cmake ..
12 cmake --build .
13 #最后不要忘了安装
14 sudo make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
2.OpenCV 3.2.0
公式 Web サイトから(https://opencv.org/releases/)
opencv3.2.0 インストール パッケージをダウンロードします
。 インストール コマンド:
1 #安装依赖
2 sudo apt-get install build-essential
3 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
4 sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
5 #再加上以下依赖,后面出错了,所以先加上
6 sudo apt-get install libgtk-3-dev
7 sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
8 #进入文件夹编译安装
9 mkdir build
10 cd build
11 cmake -D ENABLE_PRECOMPILED_HEADERS=OFF -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
12 sudo make -j8
13 sudo make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
環境構成:
1. sudo gedit /etc/ld.so.conf.d/opencv.conf #添加库路径
2. #里面应该是
3. /usr/local/lib #没有则加上
4. sudo gedit ~/.profile #添加环境变量
5. #末尾加上
6. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
7. export PKG_CONFIG_PATH
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
一般的なエラー:
パッケージが見つかりませんlibjasper-dev
1 sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
2 sudo apt update
3 sudo apt install libjasper1 libjasper-dev
- 1
- 2
- 3
- 4
3. ROS Melodic は、
ROS 公式 Web サイトに従って、対応するバージョンの ROS をインストールします(http://wiki.ros.org/melodic/Installation/Ubuntu)
。ROS Melodic インストール コマンドは、このマシンにインストールされます
。
1 #加链接和钥匙
2 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
3 sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
4 sudo apt update
5 #安装完整版,其他的见官网
6 sudo apt install ros-melodic-desktop-full
7 #环境配置
8 echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
9 source ~/.bashrc
10 安装依赖
11 sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
12 sudo apt install python-rosdep
13 sudo rosdep init
14 rosdep update
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
一般的なエラー:sudo rosdep inti、rosdep update
エラーが報告される主な理由は、この Web サイトがブロックされている
ためですwww.rawgithubusercontent.com
。このエラーは簡単に解決できます。エラーの解決策は
sudo rosdep inti
次のとおりです: 1. リソースのダウンロード機能を含むファイルを開きます。rosdep update
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
- 1
2. プロキシを追加します: (download_rosdep_data
関数 try の最初の行に次のコードを追加します)
url="https://ghproxy.com/"+url
- 1
3./usr/lib/python2.7/dist-packages/rosdistro/__init__.py
ファイルを変更しますDEFAULT_INDEX_URL
1. sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
2. DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
- 1
- 2
4. 残りの 4 つのファイルのアドレスを変更し、アドレスhttps://raw.githubusercontent.com/...
の前に追加します。https://ghproxy.com/
1. sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
2. //修改第36行的地址
3. sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行
4. //修改第72行
5. sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
6. //修改第39行
7. sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
8. //修改第68行、119行
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
5. Hitの5番目のアドレスのエラーレポートを解決する
1. sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
2. //在第204行添加如下代码(即在该函数块下的第一行处)
3. gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
4. //注意,原网址中代理地址的双引号是中文,直接粘贴复制会报字符识别错误
- 1
- 2
- 3
- 4
- もう一度実行する
rosdep update
と、問題が完全に解決されていることがわかります。
インストールが成功したら、作業ディレクトリを作成して初期化します。
1. mkdir -p ~/catkin_ws/src
2. cd ~/catkin_ws/src
3. catkin_init_workspace
4. cd ~/catkin_ws/ #直接$ cd .. 也一样
5. catkin_make
6. #catkin的构建系统的相关文件保存在build目录中,构建后的可执行文件保存在devel目录中
7. #加载与catkin构建系统相关的环境文件
8. $ source ~/catkin_ws/devel/setup.bash
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
開発者独自の ROS ワークスペースを構築および管理するには、rosinstall をインストールする必要があります。
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
- 1
テスト:
1. # 第一个终端运行如下命令
2. roscore
3. # 打开第二个终端,这时你会看见一只静止的小海龟
4. rosrun turtlesim turtlesim_node
5. # 如果希望小海龟能够移动,打开第三个终端
6. rosrun turtlesim turtle_teleop_key
- 1
- 2
- 3
- 4
- 5
- 6
4.Eigen 3
インストールコマンド:
sudo apt-get install libeigen3-dev
- 1
一般的なエラー: eigen への後続の呼び出しが行われるとエラーが報告されます。eigenfatal error: Eigen/Core: No such file or directory
ライブラリは/usr/include/eigen3/Eigen
デフォルトでパスにインストールされるため、次のコマンドを使用して/usr/include
パスにマップする必要があります。
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
- 1
5.Boost 1.72
公式サイトhttp://www.boost.org/users/download/
ダウンロードソースコード
インストールコマンド
1. #解压
2. tar -xvf boost_1_72_0.tar.bz2
3. #运行解压后生成的bootstrap.sh文件:
4. cd ./boost_1_72_0
5. ./bootstrap.sh
6. #然后使用b2工具进行安装:
7. sudo ./b2 install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
インストールが完了すると、/usr/local/include
デフォルトでヘッダー ファイルがディレクトリに配置され、.a ファイルと .so ファイルが/usr/local/lib
ディレクトリに配置されます。
6.ORB-SLAM3
ダウンロードした ORB-SLAM3 ファイルを ROS ワークスペースの src フォルダーに配置し、
インストール コマンドをコンパイルします (非 ROS バージョン)。
1. #注意在ROS工作空间的src文件夹中下载,或者是下载完成后移入工作空间
2. git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
3. #编译
4. cd ORB_SLAM3
5. chmod +x build.sh
6. ./build.sh
- 1
- 2
- 3
- 4
- 5
- 6
よくある間違い:recipe for target ‘CMakeFiles/ORB_SLAM3.dir/src/LocalMapping.cc.o‘ failed
解決策:
次のコードをORB_SLAM3-master/include/CameraModels/KannalaBrandt8.h
namespace cv
{
template<typename _Tp, int m, int n> static inline Matx<_Tp, m, n> operator / (const Matx<_Tp, m, n>& a, float alpha)
{
return Matx<_Tp, m, n>(a, 1.f / alpha, Matx_ScaleOp());
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
インストールコマンド(ROS版):
1. #添加环境变量
2. gedit ~/.bashrc
3. #加入以下内容,PATH改为自己的地址
4. #export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS
5. export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/yu/catkin_ws/src/ORB_SLAM3/Examples/ROS
6. #再加个这个吧
7. source ~/catkin_ws/devel/setup.bash
8. #编译
9. chmod +x build_ros.sh
10. ./build_ros.sh
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
7. データセットをダウンロードし、デモ公式
Web サイトを実行します。ROS を使用しない場合は、ASL 形式をダウンロードします。ROS を使用して実行する場合は、ROS バッグの非ROS バージョンをダウンロードします。 ORB-SLAM3/euroc_examples.sh ファイル。(https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets)
1. #!/bin/bash
2. #pathDatasetEuroc='/Datasets/EuRoC' #Example, it is necesary to change it by the dataset path
3. pathDatasetEuroc='/home/yu/Datasets' #Example, it is necesary to change it by the dataset path
- 1
- 2
- 3
さらに、データ セット ファイル名を euroc_examples.sh ファイル内の対応する名前に変更する必要があります (たとえば、MH_01_easy は MH01 に変更されます)。
次に、デモを実行します。
./euroc_examples.sh
- 1
ROS バージョンの
librealsense のインストール (Intel realsense D400 シリーズ カメラを使用)
1. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
2. sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
3. sudo apt-get install librealsense2-dkms
4. sudo apt-get install librealsense2-utils
5. sudo apt-get install librealsense2-dev
- 1
- 2
- 3
- 4
- 5
テスト:
Realsense-viewer
- 1
カメラドライバー realsense-ros
sudo apt-get install ros-melodic-realsense2-camera
- 1
コンパイルが完了したら、次のコマンドを使用してテストします。
roslaunch realsense2_camera demo_pointcloud.launch
- 1
対応するノードを変更します。
1. 打开 ORB_SLAM3/Examples/ROS/ORB_SLAM3/src/ros_rgbd.cc 文件
2. 修改节点(绿色字体)
3. message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/color/image_raw", 1);
4. message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "/camera/aligned_depth_to_color/image_raw", 1);
5. 回到ORB-SLAM3文件夹路径下运行以下命令
6. ./build_ros.sh
- 1
- 2
- 3
- 4
- 5
- 6
カメラのキャリブレーションが完了したら、ORB_SLAM3/Examples/ROS/ORB_SLAM3/Asus.yaml
ファイルを変更します
1. cd ~/catkin_ws/src/ORB_SLAM
2. #分别开三个终端, 按顺序每个终端运行一句
3. roscore
4. roslaunch realsense2_camera rs_rgbd.launch
5. rosrun ORB_SLAM3 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/D455.yaml
- 1
- 2
- 3
- 4
- 5
参考:
https://blog.csdn.net/qq_36804414/article/details/109241264
https://blog.csdn.net/weixin_43311920/article/details/114796748?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault %7ECTRLIST%7Edefault-1.control& Depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.control
https://zhuanlan.zhihu.com/p/392082731
https://www .jianshu.com/p/4c621a34ba69
https://blog.csdn.net/qq_39247667/article/details/116707889?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control& Depth_1- utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommmendFromBaidu%7Edefault-6.control
https://blog.csdn.net/weixin_48464886/article/details/118970304
https://github.com/UZ-SLAMLab/ORB_SLAM3
https://www.cnblogs.com/dinghongkai/p/11308805.html
https://blog.csdn.net/ByYastal/article/details/111589721?utm_medium= distribution.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link& Depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link