1. 程式人生 > >ROS入門筆記(二):ROS安裝與環境配置及解除安裝(重點)

ROS入門筆記(二):ROS安裝與環境配置及解除安裝(重點)

ROS入門筆記(二):ROS安裝與環境配置及解除安裝(重點) [TOC] # 1 ROS安裝步驟 ## 1.1 ROS版本 ROS目前只支援在Linux系統上安裝部署, 它的首選開發平臺是Ubuntu。 | 釋出時間 | ROS版本 | Ubuntu版本 | | :--------: | :--------------: | :--------------: | | 2017.5 | Lunar Loggerhead | Ubuntu 17.04 | | **2016.5** | **Kinetic Kame** | **Ubuntu 16.04** | | 2015.5 | Jade Turtle | Ubuntu 15.04 | | 2014.7 | Indigo lgloo | Ubuntu 14.04 | | 2013.9 | Hydro Medusa | Ubuntu 12.04 | | 2012.12 | Groovy Galapagos | Ubuntu 12.04 | **注**:如果Ubuntu版本和ROS版本不對應的話,安裝就不會成功了~ 筆者使用的平臺是Ubuntu 16.04, ROS版本是Kinetic。 說明:Ubuntu官方下載網址https://www.ubuntu.com/download/desktop ## 1.2 確定Ubuntu版本號 在終端中輸入: ``` cat /etc/issue ``` ![image-20200325180821296](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200325180821296.png) ## 1.3 安裝ROS ### 1.3.1 Ubuntu初始環境配置 `開啟 Ubuntu的設定 -> 軟體與更新 -> Ubuntu軟體 ->勾選關鍵字 universe , restricted , multiverse 三項,`和下載源。 如圖所示: ![image-20200326014808792](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200326014808792.png) ==以上配置完成後, 就可以正式開始安裝ROS了, 開啟終端。== ### 1.3.2 ①新增源地址檔案sources.list - **新增源地址檔案**使電腦系統可以接受來自packages.ros.org的軟體包; - 增加下載源(增加ubuntu版的ros資料倉庫,即下載源)(通用指令適合任何版本的ros) - 執行如下命令將映象新增到Ubuntu系統源列表中 : ```dart $ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $ DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list' ``` 本人選擇了中國科技大學的映象源,可以保證下載速度。 **注:**強烈建議使用國內或者新加波的映象源,這樣能夠大大提高安裝下載速度。 說明:一旦添加了正確的源地址檔案,作業系統就知道去哪裡下載程式,並根據命令自動安裝軟體。 ### 1.3.3 ②新增金鑰(key) 公鑰是Ubuntu系統的一種安全機制, 也是ROS安裝中不可缺的一部分。 不然在安裝的時候會通不過系統的安全認證而無法安裝。 方法一 ```dart $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 ``` 方法二 ```dart $ wget http://packages.ros.org/ros.key -O - | sudo apt-key add - ``` **尋找有效公鑰 **,官網:http://wiki.ros.org/kinetic/Installation/Ubuntu ### 1.3.4 ③安裝ROS ```dart $ sudo apt-get update # 更新系統, 確保自己的Debian軟體包和索引是最新的。 $ sudo apt-get install ros-kinetic-desktop-full # 桌面完整版安裝(推薦) ``` 簡介: **重點:安裝出現的問題及解決方法 http://wiki.ros.org/ROS/** ROS中有很多函式庫和工具, 官網提供了四種預設的安裝方式, 當然也可以單獨安裝某個特定的軟體包。 這四種方式包括桌面完整版安裝、 桌面版安裝, 基礎版安裝、 單獨軟體包安裝。 Ubuntu 16.04安裝Kinetic版本 ==1)桌面完整版安裝(推薦): 包含ROS、 rqt、 rviz、 通用機器人函式庫、 2D/3D模擬器、 導航以及2D/3D感知功能 :== ```dart $ sudo apt-get install ros-kinetic-desktop-full ``` 2)桌面版安裝:包含ROS、 rqt、 rviz、通用機器人函式庫 ```dart $ sudo apt-get install ros-kinetic-desktop ``` 3)基礎版安裝: 包含ROS核心軟體包、 構建工具、通訊相關的程式庫, 無GUI工具 ```dart $ sudo apt-get install ros-kinetic-ros-base ``` 4)單個軟體包安裝:這種安裝方式在執行ROS缺少某些**package**依賴時會經常用到。 你可以安裝某個指定的ROS軟體包,使用軟體包名稱替換掉下面的**PACKAGE**。 ```dart $ sudo apt-get install ros-kinetic-PACKAGE ``` **例如**系統提示找不到slam-gmapping, 你就可以: ```dart $ sudo apt-get install ros-kinetic-slam-gmapping ``` **查詢可用的軟體包**, 請執行: ```dart apt-cache search ros-kinetic ``` ### 1.3.5 ④初始化rosdep 在使用ROS之前,還需要初始化rosdep,即ROS的軟體包依賴項。。 rosdep可以方便在你需要編譯某些原始碼的時候為其安裝一些系統依賴, 同時也是某些ROS核心功能元件所必需用到的工具。 方法一: ```dart $ sudo rosdep init && rosdep update ``` 方法二: ```dart $ sudo rosdep init $ rosdep update ``` ### 1.3.6 ⑤設定環境變數 ```dart $ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc $ source ~/.bashrc # 為了使環境變數設定立即生效 ``` 注意: ROS的環境配置, 使得你每次開啟一個新的終端, ROS的環境變數都能夠自動配置好, 也就是新增到bash會話中, 因為命令 `source /opt/ros/kinetic/setup.bash` 只在當前終端有作用, 即具有單一時效性, 要想每次新開一個終端都不用重新配置環境, 就用`echo語句`將命令新增到`bash會話`中 。 **可能出現的問題:** https://answers.ros.org/question/247285/rosdep-update-errorthe-read-operation-timed-out/ - 如果你使用 zsh,替換其中的 bash, 你可以用以下命令來設定你的shell: ```dart $ echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc $ source ~/.zshrc ``` ### 1.3.7 ⑥安裝rosinstall rosinstall 是ROS中一個獨立分開的常用命令列工具, 它可以方便讓你通過一條命令就可以給某個ROS軟體包下載很多原始碼樹。 在ubuntu上安裝這個工具, 請執行: ```dart $ sudo apt-get install python-rosinstall ``` 至此, ROS的安裝就結束了, 下面測試ROS是否成功安裝好。 ## 1.4 ROS安裝完成 在Ubuntu中,開啟資料夾找到 Computer--opt--ros--kinetic ![image-20200320174255703](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200320174255703.png) **①bin資料夾**:放置一些具體的可執行的程式,在ros的bin資料夾下面儲存的都是ros系統和一些功能包給我們提供的可以直接執行的命令,可以在終端下面執行這些命令。 注:在執行bin資料夾下面的命令時,必須先設定環境變數,不然系統無法找到bin資料夾。 **②etc資料夾**:ros相關的配置檔案(用的相對少) **③include資料夾**:包含所有通過命令列、通過終端安裝的功能包的程式碼標頭檔案。 **④lib資料夾**:包含通過終端安裝功能包的可執行程式,也就是節點。功能包中的節點,通過執行節點,來啟動相應功能包裡面的功能。 **⑤share資料夾**:裡面有很多通過終端安裝的功能包,儲存的是功能包裡面介面的一些具體資訊,介面包含話題、服務、action等。 ## 1.5 測試ROS 第一步,開啟一個終端測試roscore是否能正常啟動,使用ROS必須保證roscore執行: ```dart $ roscore # 啟動 ROS Master ``` 第二步,重新開啟一個終端,執行以下命令: ```dart $ rosrun turtlesim turtlesim_node # 看到一隻萌萌的海龜出現在螢幕上 ``` 第三步,再開啟一個終端,執行以下命令: ```dart $ rosrun turtlesim turtle_teleop_key # 滑鼠在第三個終端視窗上,通過方向鍵操作小海龜 ``` ![image-20200326021020935](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200326021020935.png) ![image-20200325220233839](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200325220233839.png) # 2 ROS解除安裝步驟 第一步,解除安裝功能包 ``` sudo apt-get purge ros-* # *功能包的名字 ``` 第二步,解除安裝包的依賴包 ```dart sudo apt-get autoremove ``` # 3 附:檢查指令碼配置環境 如果你在查詢和使用ROS軟體包方面遇到了問題,請確保你已經正確配置了指令碼環境。一個檢查的好方法是確保你已經設定了像[ROS_ROOT](http://wiki.ros.org/ROS/EnvironmentVariables#ROS_ROOT)和[ROS_PACKAGE_PATH](http://wiki.ros.org/ROS/EnvironmentVariables#ROS_PACKAGE_PATH)這樣的[環境變數](http://wiki.ros.org/ROS/EnvironmentVariables),可以通過以下命令檢視: ```dart $ printenv | grep ROS ``` 如果發現沒有配置,那這個時候你就需要 'source' 某些 'setup.*sh’檔案了。 ROS會幫你自動生成這些‘setup.*sh’檔案,通過以下方式生成並儲存在不同地方: - 通過類似apt的軟體包管理器安裝ROS軟體包時會生成setup.*sh檔案。 - 在[編譯](http://wiki.ros.org/catkin/workspaces#Building_Packages_with_catkin)或[安裝](http://wiki.ros.org/catkin/workspaces#Installing_Packages_with_Catkin) catkin 軟體包時自動生成。 # 4 參考資料 http://wiki.ros.org/kinetic/Installation