ROS的安裝與使用

1、apt方式安裝

安裝

提及ROS,可能你們如今或多或少都有所瞭解。現現在世界機器人發展之迅猛猶如幾十年前計算機行業同樣,機器人也逐漸進入到千家萬戶,大到工業機器人,小到家用的服務型機器人,各式各樣,爲各類人們生活所需的機器人以計算機技術的發展爲基礎的機器人也是如雨後春筍。機器人可主要分爲硬件層和軟件層兩個大的主要方向。每一種類型的機器人都須要以硬件的實際狀況編寫符合用戶須要的功能,漸漸的人們發現,這樣的機器人代碼的複用率很低,大大阻礙了機器人的發展。所以ROS即是爲機器人在研發的過程當中的代碼複用提供支持.ROS是Robot Operating System(機器人操做系統)的簡稱.ROS開始於2007年,在斯坦福大學人工智能實驗室斯坦福AI機器人項目的支持下開發了ROS。從2010年3月2日發佈的初版ROS Box Turtle至今(截止到2018年8月)已有12個版本。對 ROS 兼容性最好的當屬 Ubuntu 操做系統了。其中三個長期支持版本,並對應着的Ubuntu的三個LTS版本具體以下:html

ROS版本      發行時間       截止支持時間      對應的Ubuntu的版本node

ROS Indigo    2014年7月22    2019年4月  Ubuntu 14.04python

ROS Kinetic   2016年5月23    2021年4月  Ubuntu 16.04linux

ROS Melodic 2018年5月23    2023年4月  Ubuntu 18.04編程

 更多的請參考 http://wiki.ros.org/Distributions列出的支持計劃。ubuntu

 

ROS支持的Python,C ++,JAVA等編程語言。由於ROS主要支持Ubuntu的操做系統,所以本教程也是在Ubuntu的系統下安裝的。這裏比較建議安裝的Ubuntu系統或者的Windows的雙系統,這樣能夠更便於ROS學習接 下來爲你們詳細講解ROS的安裝。安全

 

(1)配置的Ubuntu的系統bash

「軟件和更新」界面中,打開後按照下圖進行配置(確保你的"restricted", "universe," 和 "multiverse."前是打上勾的),最好將源設置爲中國服務器

 

輸入sudo gedit /etc/apt/sources.listionic

打開sources.list 將一下內容複製到裏面,而後保存退出。

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties 
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted 
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties 
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted 
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties 
deb http://mirrors.aliyun.com/ubuntu/ xenial universe 
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe 
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse 
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse 
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties 
deb http://archive.canonical.com/ubuntu xenial partner 
deb-src http://archive.canonical.com/ubuntu xenial partner 
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted 
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties 
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe 
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse 

 

(2)打開終端,快捷鍵是按Ctrl + Alt + T鍵,配置sources.list

設置計算機能夠從ROS.org網站上接收軟件。

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://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

設置結果

xxxx@cheetah-Z2-R:~$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
Executing: /tmp/apt-key-gpghome.VQHtUrQqXU/gpg.1.sh --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
gpg: 密鑰 5523BAEEB01FA116:公鑰 「ROS Builder <rosbuild@ros.org>」 已導入 gpg: 處理的總數:1 gpg: 已導入:1 xxxx@cheetah-Z2-R:~$

以上錯誤以及相似的「E: 沒法定位軟件包 ros-melodic-desktop-full」的錯誤,是因爲ROS的版本不對應致使的,每一個不一樣的ubuntu系統對應着不一樣的ROS版本,若是裝錯了就會出現上述問題,在Ubuntu18.04.1環境下能夠安裝的是melodic版本的,安裝教程能夠參考官網安裝教程,ROS有Melodic、Lunar、Kinetic不一樣的種類對應着不一樣的ubuntu版本,
Melodic 主要對應:Ubuntu Artful (17.10), Bionic (18.04 LTS) 以及Debian Stretch
Kinetic 主要對應:Ubuntu Wily (15.10) and Ubuntu Xenial (16.04 LTS),
在安裝的過程當中要根據本身的ubuntu系統版本選擇對應的ROS類型進行安裝,具體的ROS類型能夠在官網分支類型介紹上查看。
解決方法:

打開軟件與更新->其餘軟件,找到ros那個軟件源,選定後點編輯,把發行版從disco 改爲bionicUbuntu18)或xenial應該就好了。

 PS: 最好以對應的方式去安裝,不然後面的麻煩事情不少。

 

 

(4)安裝

如今讀者已經將ROS版本庫地址放在代碼列表中,而後更新下軟件包。

從新定向ROS服務器

sudo apt-get update && sudo apt-get upgrade -y

 可是若是ubuntu版本對不上的話,可能會報以下錯誤

正在讀取軟件包列表... 完成 E: 倉庫 「http://packages.ros.org/ros/ubuntu disco Release」 沒有 Release 文件。
N: 沒法安全地用該源進行更新,因此默認禁用該源。 N: 參見 apt-secure(8) 手冊以瞭解倉庫建立和用戶配置方面的細節。 .. cheetah@cheetah-Z2-R:~$

 

而後咱們就能夠安裝 ROS 啦,可是問題又出現了,ROS kinetic 也有不少版本,好比工業版,基礎版,高級版,豪華版,至尊豪華..

ROS,那就安裝至尊豪華全功能版吧,指令以下

sudo apt-get install ros-kinetic-desktop-full

 或其餘版本的ros等

sudo apt-get install ros-melodic-desktop-full

可是又報錯

下列軟件包有未知足的依賴關係:

下列軟件包有未知足的依賴關係:
 ros-melodic-desktop-full : 依賴: ros-melodic-desktop 可是它將不會被安裝
                            依賴: ros-melodic-perception 可是它將不會被安裝
                            依賴: ros-melodic-simulators 可是它將不會被安裝
                            依賴: ros-melodic-urdf-sim-tutorial 可是它將不會被安裝
E: 沒法修正錯誤,由於您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關係。
cheetah@cheetah-Z2-R:~$

解決方法爲:sudo apt-get install xxx(上面報的缺乏的東西)

 

 

 

安裝完成後,能夠用下面的命令來查看可以使用的包:

apt-cache search ros-kinetic

 

(5)初始化ROS

在使用ROS以前,必須先安裝和初始化rosdep命令行工具。這樣即可以使你輕鬆的安裝庫和源代碼時的系統依賴。與此同時,ROS中的一些核心組件也須要rosdep,所以rosdep默認安裝在ROS中。可使用下面的命令安裝和初始化rosdep。

sudo rosdep init

rosdep updata

(6)初始化環境變量

你已經成功的安裝了ROS系統了。可是爲了每次打開新的終端不用執行腳原本配置環境變量,須要在.bashrc中的腳本文件結束時添加腳本,用下面這個命令來完成。

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

要是配置生效,必須使用下面的命令來執行這個文件

source ~/.bashrc

上面兩句很是很是很是重要,不少小夥伴在平常的開發過程當中,有的找不到 Package, 找不到node, 不少狀況下都是沒有添加source。

(7)安裝rosinstall

rosinstall。是一種經常使用的命令行工具,使你可使用一個命令輕鬆下載ROS包的許多源,輸入下面的命令安裝這個工具:

sudo apt-get install python-rosinstall

到此爲止,你已經在電腦上安裝了一個較爲完整的ROS系統了。

對了,這裏要提醒一下,ros中不少的第三方插件的安裝格式是

$ sudo apt-get install ros-kinetic-...

例如:

$ sudo apt-get install ros-kinetic-turtlebot*

 

卸載ROS

sudo apt-get purge ros-*

sudo rm -rf /etc/ros

edit ~/.bashrc

 

 

2、官方方式安裝

安裝

按照 ROS安裝說明Ubuntu install of ROS Melodic)完成安裝

注意: 若是你是使用相似apt這樣的軟件管理器來安裝ROS的,那麼安裝後這些軟件包將不具有寫入權限,當前系統用戶好比你本身也沒法對這些軟件包進行修改編輯。當你的開發涉及到ROS軟件包源碼層面的操做或者在建立一個新的ROS軟件包時,你應該是在一個具有讀寫權限的目錄下工做,就像在你當前系統用戶的home目錄下同樣。

管理環境

安裝ROS期間,你會看到提示說須要 source 多個setup.*sh文件中的某一個,或者甚至提示添加這條'source'命令到你的啓動腳本里面。這些操做是必須的,由於ROS是依賴於某種組合空間的概念,而這種概念就是經過配置腳本環境來實現的。這可讓針對不一樣版本或者不一樣軟件包集的開發更加容易。

若是你在查找和使用ROS軟件包方面遇到了問題,請確保你已經正確配置了腳本環境。一個檢查的好方法是確保你已經設置了像ROS_ROOTROS_PACKAGE_PATH這樣的環境變量,能夠經過如下命令查看:

$ export | grep ROS

若是發現沒有配置,那這個時候你就須要'source'某些'setup.*sh’文件了。

ROS會幫你自動生成這些‘setup.*sh’文件,經過如下方式生成並保存在不一樣地方:

  • 經過相似apt的軟件包管理器安裝ROS軟件包時會生成setup.*sh文件。
  • rosbuild workspaces中經過相似rosws的工具生成。
  • 編譯 或 安裝 catkin 軟件包時自動生成。

 

注意: 在全部教程中你將會常常看到分別針對rosbuild 和 catkin的不一樣操做說明,這是由於目前有兩種不一樣的方法能夠用來組織和編譯ROS應用程序。通常而言,rosbuild比較簡單也易於使用,而catkin使用了更加標準的CMake規則,因此比較複雜,可是也更加靈活,特別是對於那些想整合外部現有代碼或者想發佈本身代碼的人。關於這些若是你想了解得更全面請參閱catkin or rosbuild

若是你是經過ubuntu上的 apt 工具來安裝ROS的,那麼你將會在'/opt/ros/<distro>/'目錄中看到setup.*sh文件,而後你能夠執行下面的source命令:

<distro># source /opt/ros//setup.bash

請使用具體的ROS發行版名稱代替<distro>。

好比你安裝的是ROS Indigo,則上述命令改成:

$ source /opt/ros/indigo/setup.bash

在每次打開終端時你都須要先運行上面這條命令後才能運行ros相關的命令,爲了不這一繁瑣過程,你能夠事先在.bashrc文件(初學者請注意:該文件是在當前系統用戶的home目錄下。)中添加這條命令,這樣當你每次登陸後系統已經幫你執行這些命令配置好環境。這樣作也能夠方便你在同一臺計算機上安裝並隨時切換到不一樣版本的ROS(好比fuerte和groovy)。

此外,你也能夠在其它系統平臺上相應的ROS安裝目錄下找到這些setup.*sh文件。

建立ROS工做空間

這些操做方法只適用於ROS Groovy及後期版本,對於ROS Fuerte及早期版本請選擇rosbuild。

下面咱們開始建立一個catkin 工做空間

$ mkdir -p ~/catkin_ws/src

$ cd ~/catkin_ws/src

即便這個工做空間是空的(在'src'目錄中沒有任何軟件包,只有一個CMakeLists.txt連接文件),你依然能夠編譯它:

$ cd ~/catkin_ws/

$ catkin_make

catkin_make命令在catkin 工做空間中是一個很是方便的工具。若是你查看一下當前目錄應該能看到'build'和'devel'這兩個文件夾。在'devel'文件夾裏面你能夠看到幾個setup.*sh文件。source這些文件中的任何一個均可以將當前工做空間設置在ROS工做環境的最頂層,想了解更多請參考catkin文檔。接下來首先source一下新生成的setup.*sh文件:

$ source devel/setup.bash

要想保證工做空間已配置正確需確保ROS_PACKAGE_PATH環境變量包含你的工做空間目錄,採用如下命令查看:

$ echo $ROS_PACKAGE_PATH

/home/<youruser>/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks

到此你的工做環境已經搭建完成,接下來能夠繼續學習 ROS文件系統教程.

 

3、測試

爲了保險,重啓一下,測試測試咱們的ROS吧....

ROS是依靠終端來運行的系統。因此還須要打開終端。這裏給你們演示一個基本的案例--turtlrsim小海龜。運行下面的命令你即可以看到一個有小海龜的界面。

Roscore

rosrun turtlrsimn turtlesim_node

上面的第二行命令須要重新打開一個終端來輸入,由於你會發現當輸入roscore運行後終端是沒法輸入有效的命令來運行的。

 

 

 

如何使用鍵盤是小海龜運動起來呢?就須要輸入下面的命令。

rosrun turtlesim turtle_teleop_key

 

4、參考文章

ROS學習(一)ROS入門

【學習ROS】linux安裝並配置ROS環境

 ROS學習歷程(一)———— ros安裝

ROS 不能再詳細的安裝教程

19.4的版本!着急!怎樣安裝ros啊!

相關文章
相關標籤/搜索