當前位置:
首頁 > 最新 > 樹莓派3B安裝ROS-Indigo

樹莓派3B安裝ROS-Indigo

目前對於基於 ROS 的可移動平台,有兩種方案較為流行用戶較多,可參考的資料也多。一種是使用英偉達的 TK1,另外一種是使用 raspberryPi。相對於 TK1,樹莓派在價格上更親民,雖然性能上差一些,在計算 SLAM 時會有卡頓現象,但對於入門級用戶來說,也是個不錯的選擇。


平台

環境:Raspbian OS Jessie

硬體:raspberryPi 3B以及一張16G SD 卡

參考: InstallROSIndigoOnRaspberryPi


添加源以及

修改文件,增大交換空間,以免編譯源碼時出現內存不足現象。將修改為


創建一個用於存儲和編譯源碼


選擇完全版本

源代碼將會保存在目錄下,意思是開啟個線程同時下載。如果下載異常中斷,可以嘗試使用下面命令恢復:

下載時間很漫長,可以去睡一覺,回來就OK了。


在正式編譯之前,我們還需要手動安裝以下幾個依賴包:

libconsole-bridge-dev

liblz4-dev

liburdfdom-headers-dev

liburdfdom-dev

collada-dom-dev

為這些依賴包建立單獨的用於編譯安裝的文件夾,同時安裝和:

如果無法安裝,更新一下再安裝:

然後添加:

更新:


最後一步提示:

The package documentation directory ./doc-pak does not exist.

Should I create a default set of package docs? [y]: y

This package will be built according to these values:

0 - Maintainer: [ root@raspberrypi ]

1 - Summary: [ Package created with checkinstall 1.6.2 ]

2 - Name: [ urdfdom-headers ]

3 - Version: [ 20170318 ]

4 - Release: [ 1 ]

5 - License: [ GPL ]

6 - Group: [ checkinstall ]

7 - Architecture: [ armhf ]

8 - Source location: [ urdfdom_headers ]

9 - Alternate source location: [ ]

10 - Requires: [ ]

11 - Provides: [ urdfdom-headers ]

12 - Conflicts: [ ]

13 - Replaces: [ ]

這裡的就是將的安裝版本變成我們需要的版本。check-install開始會讓你輸入包的描述,可以直接按回車跳過。當詢問是否改變安裝選項時,選擇,將名字從改為,其餘有或的問題都輸入按回車, 否則會編譯出錯,完成後檢查安裝的包是否正確:

如果正確會輸出:


開始會讓提示輸入包的描述,可以直接按回車跳過。當詢問是否改變安裝選項時,選擇,將名字從改為,其餘有或的問題都輸入按回車, 否則會編譯出錯。如果編譯出錯提示找不到文件時進行如下修改:

添加一個文件到目錄下:

重新編譯


開始會讓你輸入包的描述,可以直接按回車跳過。當詢問是否改變安裝選項時,選擇,將名字從改為,其餘有或的問題都輸入按回車, 否則會編譯出錯。


命令會尋找所有目錄的並遞歸安裝依賴,要安裝的依賴包有點多,耐心等待。會檢查文件夾,安裝其他的依賴包。

在開始編譯之前,先打兩個補丁

打開文件:

在最後一個後添加

修改文件,在最後一個(如果的下一行是則放到後)行後加入以下代碼

編譯:

上面命令將編譯文件安裝到,是使用個線程編譯.


執行上面的編譯命令提示錯誤:

in file included from /home/pi/ros_catkin_ws/src/robot_model/urdf/include/urdf/model.h:43:0,

from /home/pi/ros_catkin_ws/src/robot_model/urdf/src/model.cpp:37:

/home/pi/ros_catkin_ws/devel_isolated/urdf/include/urdf/urdfdom_compatibility.h:78:14: error: 『shared_ptr』 in namespace 『std』 does not name a template type

typedef std::shared_ptrModelInterfaceSharedPtr;

^

/home/pi/ros_catkin_ws/devel_isolated/urdf/include/urdf/urdfdom_compatibility.h:79:14: error: 『shared_ptr』 in namespace 『std』 does not name a template type

typedef std::shared_ptrModelInterfaceConstSharedPtr;

^

/home/pi/ros_catkin_ws/devel_isolated/urdf/include/urdf/urdfdom_compatibility.h:80:14: error: 『weak_ptr』 in namespace 『std』 does not name a template type

typedef std::weak_ptrModelInterfaceWeakPtr;

^

CMakeFiles/urdf.dir/build.make:62: recipe for target "CMakeFiles/urdf.dir/src/model.cpp.o" failed

修改文件:

從行開始到行都屏蔽掉

再次編譯成功。這個過程非常漫長。


完成之後設置環境變數:

設置環境變數在每次啟動時自動添加到:

到這裡我們的完整版就已經成功安裝好了,不妨運行試一下:


在樹莓派上安裝過程艱辛,萬一系統出了問題怎麼辦,所以如果安裝沒問題後即刻開始備份系統。系統備份官方有一個寫好的腳本,我試過這個腳本,備份後再燒寫到卡後系統能跑起來,但運行時會有一些錯誤提示,需要重新設置一下環境變數才能正確運行,不過還有一種方法就是使用的命令,這個是全卡備份,備份後系統大小就是卡的大小,再恢復時也需要同樣大小的一張卡,不過系統運行完美,不需要另外再設置,所以全卡備份也是個不錯的選擇。

首先查看卡的

為安全起見,將卡插入系統中備份,使用如下命令:

為卡插入系統後掛載的目錄,即為上面命令獲取的卡的。為了減小鏡像所佔空間,我們可以使用壓縮命令:

也可以在文件中加入備份日期方便區分:

在恢復時將一張空白的卡插入系統,輸入以下命令進行恢復:

或者:

特別值得注意的是在備份和恢復後一定要使用命令確保數據正確的寫入到硬碟上或恢復到卡上。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 尚程功夫 的精彩文章:

TAG:尚程功夫 |