之前電腦安裝過ros感覺還好,沒成想這次在樹莓派上安裝費老勁了,出現了很多錯誤,裝了卸,卸了裝廢了半天勁下面將一些安裝的錯誤和問題做個總結方便以后的安裝也希望給別人一個參考
ros安裝(對照自己的版本,我的是melodic)
國內源
下面兩個都可以
網絡問題
無線網絡
樹莓派連接wifi的方法
首先使用sudo iwconfig wlan0 up 啟動無線網絡:
樹莓派安裝ubuntu后命令行直接連接WIFI
在Ubuntu中使用命令連接wifi
以太網
樹莓派安裝Ubuntu18.04和ROS(沒有屏幕也能安裝)這篇文章中介紹了使用電腦共享網絡使樹莓派聯網的方式
安裝ros中的問題
sudo ros init錯誤問題
來自:Ubuntu18.04 melodic 安裝與下載ROS(超詳細教程)
錯誤類型1:
解決辦法1
打開hosts文件
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133 raw.githubusercontent.com
#保存后退出再嘗試
解決辦法2
sudo c_rehash /etc/ssl/certs
sudo -E rosdep init
rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml]: <urlopen error _ssl.c:495: The handshake operation timed out> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml) Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml ERROR: error loading sources list: The read operation timed out
reading in sources list data from /etc/ros/rosdep/sources.list.d
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml]:
<urlopen error _ssl.c:495: The handshake operation timed out> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml)
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
ERROR: error loading sources list:
The read operation timed out
運行:(網絡換成手機熱點,如果是time out,那就多嘗試幾次) 如果還是提示錯誤,請將源更更換為清華源,然后sudo apt update
(請將網絡換成手機熱點) rosdep update出錯
sudo apt-get update sudo apt-get install python-rosdep
錯誤類型2:
這個問題原因在於,20-default.list在你的系統中已經存在,刪除掉:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
再次嘗試
sudo rosdep init
rosdep update問題
可以嘗試使用電腦/樹莓派連接手機熱點來rosdep update
不行可以參考下面步驟,很有效
來自:rosdep update 超時失敗2021最新解決方法
2021最新解決方法
但近期,通過修改hosts文件解決rosdep update失敗的方法也不太好用了,成功幾率很低。
參考 leida_wt 的方法,網站https://ghproxy.com/支持github的資源代理,非常好用,我們將用此代理加速rosdep對Github的訪問,進而解決rosdep update失敗問題。
我們要做的,是在rosdep的若干個腳本文件中,把 https://ghproxy.com/ 添加到相應URL前面即可。
注:修改各個文件前以防萬一可以線備份一下 ,例如:
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py_backup
注:這些文件的屬性時只讀 可以使用 chmod命令改變文件屬性,例如:
sudo chmod 777 sudo cp /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py_backup
下面開始操作
1.首先 修改rosdep下載資源的腳本文件:/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py,把以下行添加到腳本中的download_rosdep_data()函數中,以應用代理服務:
url="https://ghproxy.com/"+url
2.然后,用同樣的方法修改/usr/lib/python2.7/dist-packages/rosdistro/__init__.py里面的DEFAULT_INDEX_URL參數,如下:
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
3.接着,以下4個文件中也使用了“raw.githubusercontent.com”網址,同樣的方法把“https://ghproxy.com/”添加到網址前:
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行 /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行 /usr/lib/python2.7/dist-packages/rosdep2/rep3.py 39行 /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 68行 119行
4.最后,在 /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 的第204行添加如下代碼:
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
大功告成,現在你可以愉快地執行 rosdep update 啦!預祝一把過。
除此之外古月居中的方法也應該沒問題,但是我還沒試,我是用上面的方式就成功了
rosdep init/rosdep update error:timeout
希望這些參考文章能幫助你安裝成,祝您使用愉快