前言:
首先 ROS 大家應(yīng)該比較熟悉了哈,如果需要補充一下請看我之前的這篇文章 《嵌入式的我們?yōu)槭裁匆獙W ROS》,對于嵌入式來說 ROS 是一個很好的進階方向,所以如何快速的安裝一個 ROS 到我們電腦上是一件很重要的事情。當然 ROS 官網(wǎng)都有進行介紹如何安裝,但是由于網(wǎng)絡(luò)地址的原因,ROS 安裝如果按照官網(wǎng)的方法,你要踩很多的坑。所以我作為一個過來人,介紹一些我是如何快速安裝的。
ROS 目前主要支持 Ubuntu、OSX、Android、Arch、Debian 等系統(tǒng),ROS 也針對 ARM 處理器編譯了核心庫和部分功能包。新發(fā)布的 ROS2 也支持 Windows 系統(tǒng)。
選擇一個適合你的 ROS 版本很重要,因為我使用的本次測試使用的 Ubuntu 版本為 Ubuntu 16.04,ROS Kinetic Kame 還是比較適合的。如果你使用的是 Ubuntu 20 更新的版本,可以安裝 noetic 版本,雖然版本不一樣,但是安裝時的操作基本都是一樣的。
?
開始安裝:
首先我們看官網(wǎng)的教程,雖然有官方的教程,但是我們知道 ROS 官方相關(guān)的源都在國內(nèi),所以如果你使用官網(wǎng)的教程,那么相信你如果不使用特殊方法的話,你會安裝的很費力。大部分包括之前的我就被安裝時候下載速度驚呆。
所以第一件事情,請大家更換 ROS 的國內(nèi)鏡像
sudo?vi?/etc/apt/sources.list
設(shè)置 ROS 的 sources.list 為國內(nèi)鏡像:
這里有其他人做的參考,但是經(jīng)過使用之后發(fā)現(xiàn)有些問題:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ ?main" > /etc/apt/sources.list.d/ros-latest.list'
?
有問題?。?!
?
?
sudo apt-get update 會提示如下錯誤
E: Malformed entry 1 in list file /etc/apt/sources.list.d/ros-latest.list (Suite) E: The list of sources could not be read.
我的建議使用官網(wǎng)的命令, 再把鏈接替換成,國內(nèi)鏡像源。
sudo?sh?-c?'echo?"deb?http://mirrors.ustc.edu.cn/ros/ubuntu/?$(lsb_release?-sc)?main"?>?/etc/apt/sources.list.d/ros-latest.list'
再使用官網(wǎng)命令添加 keys
sudo?apt-key?adv?--keyserver?'hkp://keyserver.ubuntu.com:80'?--recv-key?C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
加載軟件包列表
一旦配置完軟件版本倉庫(repositories)之后,可以用下列命令得到最新的可用軟件包列表:
udo?apt-get?update
需要注意的是,這會更新你系統(tǒng)中所有的軟件版本倉庫,而不僅僅是新添加的 ROS 庫。
?
安裝 ROS 軟件包
ROS 系 統(tǒng)非常龐大,包含眾多功能包、函數(shù)庫和工具,所以 ROS 官方為用戶提供了多種安裝版本:
桌面完整版安裝(Desktop-Full):這是最為推薦的一種安裝版本,除了包含 ROS 的基礎(chǔ)功能(核心功能包、構(gòu)建工具和通信機制)外,還包含豐富的機器人通用函數(shù)庫、功能包(2D/3D 感知功能、機器人地圖建模、自主導航等)以及工具(rviz 可視化工具、gazebo 仿真環(huán)境、rqt 工具箱等)。命令為:
sudo?apt-get?install?ros-kinetic-desktop-full
默認全裝,后面大家也不需要再安裝了。分包安裝的內(nèi)容大家可以參看我篇頭所寫的那篇 ROS 文章。
如果按照官方源,那我們這里需要下載安裝好長的時間,不過用國內(nèi)鏡像 不出意外 一般是十幾分鐘就可以下載完畢。
如果提示下載失敗, 重復這個命令:
sudo?apt-get?install?ros-kinetic-desktop-full
環(huán)境設(shè)定 每次啟動新的 shell 時,如果將 ROS 環(huán)境變量自動添加到 bash 會話中,將很方便:
echo?"source?/opt/ros/kinetic/setup.bash"?>>?~/.bashrc
.?~/.bashrc?
source?~/.bashrc
構(gòu)建軟件包的依賴關(guān)系
rosinstall 是一個常用的命令行工具,我們可以通過一個命令輕松下載 ROS 軟件包的許多源代碼樹。要安裝此工具和其他依賴項以構(gòu)建 ROS 軟件包,請運行:
sudo?apt?install?python-rosdep?python-rosinstall?python-rosinstall-generator?python-wstool?build-essential
為系統(tǒng)設(shè)置 rosdep
rosdep 是 ROS 自帶的工具,主要功能是為某些功能包安裝依賴關(guān)系,同時某些 ROS 核心功能包必須用到的工具,這個初始化步驟是一次性的,一旦 ROS 正常工作,多數(shù)用戶不再需要訪問 rosdep。完成上述安裝步驟之后,需要使用如下命令進行初始化操作:
sudo?rosdep?init
rosdep?update
rosdep update 會在你的賬戶中初始化 rosdep 系統(tǒng),該命令在你的根目錄下保存一些文件,文件夾名為 .ros,因為是初始化,這個命令只需要運行一次。該命令是在普通用戶下運行。
rosdep init 經(jīng)常出現(xiàn)問題,加載失敗和下載失敗
**error loading sources list**
sudo vi /etc/hosts
在最下面添加一句這個:
151.101.84.133 raw.githubusercontent.com
?
看小烏龜
安裝小烏龜,這個看似簡單的小烏龜例程,其實蘊含 ROS 最基礎(chǔ)的原理和機制。
sudo?apt-get?install?ros-kinetic-turtlesim
打開一個終端(Terminal),這是 ROS 運行需要的管理器節(jié)點
roscore
打開第二個 Terminal,啟動 turtlesim 仿真器節(jié)點(可以把小烏龜?shù)慕缑骈L置頂)
rosrun?turtlesim?turtlesim_node
打開第三個 Terminal,通過使用鍵盤的前后左右按鍵進行控制小烏龜
rosrun?turtlesim?turtle_teleop_key
ROS 安裝完成