本文基于ubuntu20.04安装ROS Noetic rosdep update timed out(超时问题),对其中的一些操作进行优化,方便使用
在安装ROS的过程中我们会遇到超时问题,如下图所示:
那么在接下来可以进行如下操作
修改sources_list.py
在/usr/lib/python3/dist-packages/rosdep2/sources_list.py中的函数download_rosdep_data下添加url
sudo vim /usr/lib/python3/dist-packages/rosdep2/sources_list.py
找到311行,在函数download_rosdep_data中添加
url="https://ghproxy.com/"+url
完成后如下图
修改__ init__.py
修改/usr/lib/python3/dist-packages/rosdistro/__ init__.py里面的
DEFAULT_INDEX_URL
sudo vim /usr/lib/python3/dist-packages/rosdistro/__init__.py
修改DEFAULT_INDEX_URL,找到68行,在原网址前添加代理https://ghproxy.com/
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
继续添加代理
下面所有操作都可以在原网址前添加代理https://ghproxy.com/,或者直接整段删除,把我放在下面的代码复制进去。
sudo vim /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
找到第36行
FUERTE_GBPDISTRO_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/' \
'master/releases/fuerte.yaml'
sudo vim /usr/lib/python3/dist-packages/rosdep2/sources_list.py
找到第72行
DEFAULT_SOURCES_LIST_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'
sudo vim /usr/lib/python3/dist-packages/rosdep2/rep3.py
找到第39行
REP3_TARGETS_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
sudo vim /usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py
找到第68行和第119行
68行
url = 'https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/package.xml' % (path, release_tag)
119行
url = 'https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/%s' % \
(path, cache.ref(), package_xml_path + '/package.xml' if package_xml_path else 'package.xml')
4. 继续修改gbpdistro_support.py
在 /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py的204行添加以下代码
sudo vim /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
找到第204行
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
最后验证
rosdep update
成功后如下图
不放心的话测试一下
启动roscore
roscore
打开小海龟
注意要在新的终端中打开,不可以关闭roscore
rosrun turtlesim turtlesim_node
用键盘控制小海龟的移动
同样需要新的终端,并且在此终端输入方向信号,即鼠标点击此终端
rosrun turtlesim turtle_teleop_key