【ORB SLAM3】三、ubuntu18.04安裝ROS Melodic,並編譯ORB SLAM3的ROS版本


一、安裝ROS Melodic

官方安裝手冊

1. 設置Ros的軟件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2. 設置密鑰

sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

3. 安裝

sudo apt-get update
sudo apt install ros-melodic-desktop-full #Desktop-Full Install: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators and 2D/3D

sudo apt-get install ros-melodic-rqt*

4. 添加Ros到環境變量

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

5. 安裝ROS的依賴包

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

6. 初始化rosdep

sudo rosdep init
rosdep update

rosdep update會出現timeout現象,找了很多解決方案,最終通過以下方案解決:
由於近期國內Github Raw的可用IP越來越少,通過修改hosts文件解決rosdep update超時問題的方法已經不太好用,本文通過修改rosdep源碼中下載資源的函數來解決這一問題。
網站https://ghproxy.com/支持github的資源代理,非常好用,我們將用此代理加速rosdep對Github Raw的訪問,進而解決rosdep update超時問題。
首先定位rosdep資源下載函數。從報錯信息中得知,該函數名為download_rosdep_data,位於/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py。我們修改這一函數,添加:

url="https://ghproxy.com/"+url 

應用ghproxy的代理服務。
用同樣的方法修改/usr/lib/python2.7/dist-packages/rosdistro/init.py里面的DEFAULT_INDEX_URL
即將DEFAULT_INDEX_URL 進行如下替換:

DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

除此處外,下述文件中也含有github地址,分別是:
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py 39行
/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 68行 119行
均可通過在地址前添加https://ghproxy.com/前綴來應用代理服務。
再次嘗試執行rosdep update,問題解決。

7. 創建並初始化工作目錄

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/src

catkin_init_workspace

cd ~/catkin_ws/

catkin_make

打開.bashrc

vim ~/.bashrc

設置如下內容

# Set ROS melodic
source ~/catkin_ws/devel/setup.bash

# Set ROS Network
export ROS_HOSTNAME=192.168.3.75  #為ifconfig自己主機的ipv4地址
export ROS_MASTER_URI=http://${ROS_HOSTNAME}:11311

7. 驗證

開啟三個終端,分別輸入:

roscore #開啟ros
rosrun turtlesim turtlesim_node #開啟小烏龜節點
rosrun turtlesim turtle_teleop_key  #開啟鍵盤輸入節點

image

二、 編譯ROS環境下的 ORB SLAM3

1. 添加ORB SLAM3到ROS編譯環境

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:"your install path"/ORB_SLAM3/Examples/ROS

2. 運行

#進入ORB_SLAM3目錄
./build.sh # ROS需要libORB_SLAM3.so
./build_ros.sh

最終會生成可執行文件如圖:
image

參考:
https://blog.csdn.net/leida_wt/article/details/115120940
https://blog.csdn.net/qq_41450811/article/details/99079041


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM