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