在Ubuntu 20.04 部署ROS2 foxy环境,执行 rosdep 更新时,一直提示连接超时,最后导致失败。
经过多次尝试后,将实测有效方法记录在这,希望能帮到有需要的小伙伴。
1. 原因
在系统执行 rosdep update 时,rosdep 会尝试访问 yaml 文件内的网址,将yaml中的信息转存到本地,这样做的目的,是为了让用户在配置或使用 ROS 工具或者 ROS 包时,系统能够依赖关系自动下载相关的依赖,而不是手动配置环境。
理论上是为用户提供了便利,但在进行 rosdep update 的过程中,会访问 github 获取相关文件信息,如果用户未使用魔法上网,访问链接会很不稳定,进而出现连接超时的报错
2. 解决方案
可以通过在rosdep的相关文件中,添加资源代理.来加速rosdep对于Github的访问,解决超时问题
查找 rosdep update 相关文件
sudo find / -name rep3.py
修改对应文件中的相关内容
sudo vim /usr/lib/python3/dist-packages/rosdep2/rep3.py
sudo vim /usr/lib/python3/dist-packages/rosdistro/__init__.py
sudo vim /etc/ros/rosdep/sources.list.d/20-default.list
结果验证
再次输入 rosdep update,结果如下