环境
ubuntu16,ros-kinetic
开始
在设置里面更换安装源,选择中科大源,比较稳定
close ,reload一下,等待片刻,不要断网
打开一个终端。
1
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
点击回车
2设置公钥
先安装curl
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
如果失败的话
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
结果如下图
F42ED6FBAB17C654这个东西,我们可以先运行sudo apt-get update 一般来说最下面会有警告,警告里面就会有这个。
W: GPG 错误:http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
把后面这一串替换上面的就可以了。
3、更新软件列表
sudo apt-get update
4、开始安装
sudo apt-get install ros-kinetic-desktop-full
回车,等待安装完成
如果:
E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
sudo rm -r -f /var/lib/dpkg/lock-frontend
sudo rm -r -f /var/lib/dpkg/lock
再执行以上命令。
5、设置环境变量
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
6、安装构建ROS包时的依赖项
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
初始化rosdep
sudo apt install python-rosdep
sudo rosdep init
这个可能报错:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
原因:网站被墙了,挂vpn可以访问
解决方法:
1、换手机热点,成功几率不大
2、sudo gedit /etc/hosts
底部添加:
151.101.84.133 raw.githubusercontent.com
185.199.111.133 raw.github.com
可能有效
3、直接写入文件
我挂vpn访问上面这个网站,得到
# 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
sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list
把上面的内容粘贴到该文件中,保存、退出
rosdep update
ERROR: error loading sources list:
<urlopen error (https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml)>
可能会出现连接超时这种错误,多运行几次,还可以换阿里云源试试,注意网络环境一定要好。
终极方法-----修改下载源文件。
网站https://ghproxy.com/支持github的资源代理,非常好用,我们将用此代理加速rosdep对Github Raw的访问,进而解决rosdep update超时问题
1、/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
ctrl+f 搜索download_rosdep/ 定位到310行
添加
url = 'https://ghproxy.com/'+url
如下图:
其它的都与此类似啦。
不要关闭,定位到该文件72行
如下修改
2、/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
第36行,如下添加:
第204行如下添加:
gbpdistro_url = 'https://ghproxy.com/'+gbpdistro_url
3、/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
定位到39行,如下添加
4、/usr/lib/python2.7/dist-packages/rosdistro/init.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
注意,是双下划线
定位到68行,修改如下
5、/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
定位到68行修改如下:
定位到119行,修改如下
每一步记得保存一下。
再rosdep update一下,成功!!!!!
rosdep update解决法参考链接:
https://blog.csdn.net/leida_wt/article/details/115120940?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242