树莓派安装ros
之前电脑安装过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
希望这些参考文章能帮助你安装成,祝您使用愉快