![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SNhhzM0U2Y2EmY3cDZlFWZyUDNzYGZygDNjRGN3IGNx8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
硬體樹莓派raspi 3B+
軟體平台:armhf 即樹莓派安裝的是32位ubuntu mate 18.04
官網參考
https://wiki.ros.org/melodic/Installation/Ubuntuwiki.ros.org
由上圖可以指導,ros系統是支援3種架構下的ubuntu 18.04系統。
- amd64就是平時我們用的電腦,筆記本安裝的64位ubuntu 系統 ;
- arm64是樹莓派上安裝的64位的ubuntu 18.04系統;
- armhf是樹莓派上安裝的32位的ubuntu 18.04系統;
安裝步驟:
在/etc/apt/sources.list.d/檔案夾下面建立一個ros-latest.list檔案,并将deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main寫入該檔案。這裡$lsb_release -sc實際就是bionic。不同版本的ubuntu 的$lsb_release -sc值不同。18.04是bionic;17.10是artful;16.04是xenial。可以在ctrl+alt+t 打開終端輸入lsb_release -sc檢視自己的Ubuntu版本。這裡我們直接在終端執行下面這句即可。
sudo sh -c 'echo "deb http:// packages.ros.org/ros/ub untu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
添加密鑰{這裡知乎顯示有問題,我把密鑰截圖放在這裡}
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
更新
sudo apt update
選擇安裝ros;考慮到樹莓派3B+資源少,安裝的是ros-base。然後通過PC機+樹莓派構成主從機模式。rqt和rviz都在pc機上實作。4B+可以嘗試desk install。
環境變量添加。就是将這一句“source /opt/ros/melodic/setup.bash”解除安裝~/.bashrc的末尾,并且source以下,是這個檔案重新生效。ps:每一次打開終端時,都會執行一次~/.bashrc。也就是會執行這一句“source /opt/ros/melodic/setup.bash”。
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
安裝ros的依賴包
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
初始化rosdep
sudo apt install python-rosdep
sudo rosdep init
rosdep update
運作sudo rosdep init很容易報錯,一般是無法通路外網,可以上http://google.com的同學不會遇到這個問題。sudo rosdep init的作用是在建立檔案詢夾"/etc/ros/rosdep/sources.list.d",并建立一個20-default.list檔案,在檔案中寫入以下文字。是以無法上外網的同學,自己手動建立檔案夾和檔案,把下面這段文字複制進去就可以了。這時候運作sudo rosdep init依然會提示報錯,不過不用管它。直接運作rosdep update即可,這個時候可能會出現time out的提示,把網絡切換快一點就行或手機熱點!!!!。多運作幾次rosdep update就好了。
# os-specific listings first
yaml https:// raw.githubusercontent.com /ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
# generic
yaml https:// raw.githubusercontent.com /ros/rosdistro/master/rosdep/base.yaml
yaml https:// raw.githubusercontent.com /ros/rosdistro/master/rosdep/python.yaml
yaml https:// raw.githubusercontent.com /ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https:// raw.githubusercontent.com /ros/rosdistro/master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
其他解決無法聯網方法
修改hostsUbuntu直接在終端輸入,這裡樹莓派應該輸入sudo nano /etc/hosts 普通桌上型電腦直接輸入sudo vi /etc/hosts即可。
sudo vi /etc/hosts
或者
sudo nano /etc/hosts
添加以下内容儲存即可。在 http://IPAddress.com查詢到的http://raw.githubusercontent.com的ip是199.232.28.133。在https://site.ip138.com/raw.Githubusercontent.com/查詢raw.githubusercontent.com的ip有很多個,使用ping找一個最快的。
199.232.28.133 raw.githubusercontent.com
或者
151.101.84.133 raw.githubusercontent.com
參考:
關于rosdep init 失敗問題的研究blog.csdn.net
修改Hosts臨時解決GitHub的raw.githubusercontent.com無法連結的問題 - 秦晉之巅社群qjzd.net:3000
解決GitHub raw.githubusercontent.com 無法連結www.jianshu.com