确认ubuntu软件设置
安装源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
更新
sudo apt-get update
安装ros melodic和rosinstall
sudo apt-get install ros-melodic-desktop-full
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
(如果默认为python3的版本需要改为python2或者手动下载对应包)
解决依赖问题
sudo rosdep init
rosdep update
问题:1)
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.
解决办法:
手动打开链接,在/etc/ros/rosdep/sources.list.d的目录下新建20-default.list文件,并将链接里的内容copy进去,注意全程需要sudo权限
问题:2)
ERROR: error loading sources list: <urlopen error <urlopen error
[Errno 111] Connection refused>
(https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml)>
解决办法:
定位rosdep资源下载函数。该函数名为download_rosdep_data,位于/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py。修改这一函数,
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
添加:
url=“https://ghproxy.com/”+url
如图:
用同样的方法修改/usr/lib/python2.7/dist-packages/rosdistro/init.py里面的DEFAULT_INDEX_URL。
即将DEFAULT_INDEX_URL 进行如下替换:
DEFAULT_INDEX_URL =
‘https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml’
除此处外,下述文件中也含有github地址,分别是:
/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行83行 119行
将对应网址的最前面加上:
https://ghproxy.com/
如将url = ‘https://raw.githubusercontent.com/%s/%s/package.xml’ % (path, release_tag)修改为:
url =
‘https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/package.xml’
% (path, release_tag)
在/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 第204行添加如下代码
gbpdistro_url = ‘https://ghproxy.com/’ + gbpdistro_url
问题:3)
File “/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py”, line 204
SyntaxError: Non-ASCII character ‘\xe2’ in file /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py on line 204, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
gbpdistro_url = 'https://ghproxy.com/' + gbpdistro_url
上面这一行的括号记得用英文
再次尝试执行
rosdep update
环境设置
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
输入
roscore
验证是否安装成功
结尾备注:
感谢朝辉和参考文献
https://blog.youkuaiyun.com/leida_wt/article/details/115120940?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163263712316780265471403%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163263712316780265471403&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-115120940.first_rank_v2_pc_rank_v29&utm_term=%E8%A7%A3%E5%86%B3ROS%E7%B3%BB%E7%BB%9Frosdep+update%E8%B6%85%E6%97%B6%E9%97%AE%E9%A2%98%E7%9A%84&spm=1018.2226.3001.4187
https://www.ncnynl.com/archives/202008/3856.html