之前在虚拟机上大概熟悉了一下流程,后续学习可能消耗资源比较大,所以还是改为双系统安装ROS。
因为之前听同学说安装ubuntu不太顺利,系统崩溃,所以选择淘宝请人帮忙安装一下,过程相对顺利,如果网络条件比较好,大约一个半小时就可以装完。
ubuntu安装以及后续软件安装的过程可以参考另一篇博文 https://blog.csdn.net/gyxx1998/article/details/117848441
Ubuntu的一些小指令:
Ctrl +alt + t //打开控制终端
ctrl +shift + c //复制控制终端中的文字快的捷按键
ctrl +shift + v //把文字粘贴至控制终端中的快捷按键
sudo apt-get install +文件名 //下载文件
sudo gedit+文件名 //编辑文件内容
sudo dpkg –i //解压并安装压缩文件
sudo apt update //更新文件
双系统安装ROS和虚拟机安装的过程一致,具体可以参考 https://blog.csdn.net/gyxx1998/article/details/117400684
1、添加软件源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
2、添加秘钥(最新秘钥可去官网)
秘钥会更新,最新秘钥可去官网
官网:http://wiki.ros.org/melodic/Installation/Ubuntu
sudo apt-key adv --keyserver 'hkp://ha.pool.sks-keyservers.net:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3、安装ROS
sudo apt update
#如果需要更新,则再执行
sudo apt-get upgrade
sudo apt install ros-melodic-desktop-full
4、初始化rosdep
sudo rosdep init
rosdep update
5、配置环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
6、安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
6、测试ROS是否安装成功(运行小海龟)
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
问题1和问题4比较容易解决,问题2/3/5都是因为超时问题,试了好多方法,最后是通过设置超时时间解决的。
执行sudo rosdep init
时出现sudo rosdep
:找不到命令,这是因为python-rosdep这个包没有装,安装python-rosdep即可。
sudo apt-get install python-rosdep
,然后sudo rosdep init
就可以了。执行sudo rosdep init
时出现timed out超时
针对上面出现的超时问题,很多人说换个网络就成功了,但我换了网络后,执行sudo rosdep init
时出现cannot download default sources list
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
执行到rosdep update
出现ERROR: error loading sources list: (‘The read operation timed out’)
sudo rosdep init
可能需要下载的东西少,而rosdep update
这一步需要下载的东西多,所以就一直不成功因为一开始,我ping raw.githubusercontent.com
就是可以ping通的,而且延时50~100ms左右,没有很大,运行sudo rosdep init
和rosdep update
也是时而成功时而不成功的,所以这样子的情况可以直接选择设置延时时间,不必再尝试前面这几种方法。
后来我ubuntu坏了,重装了一次,改超时/用tizi等各种方法都没用,最后的解决方法是tizi + 更换软件源为中科大 + 在更换软件源界面选择源代码
更换软件源 ,参考:https://blog.csdn.net/u012254599/article/details/104481563
在软件和更新
中修改软件源 - 选择最佳下载服务器
- 经过一段时间后选择得到的最佳服务器
然后到终端更新一下sudo apt-get update
在这个网站 https://githubusercontent.com.ipaddress.com/raw.githubusercontent.com
查raw.githubusercontent.com的ip地址,将这些ip地址分别ping一下,选择延时最短的
sudo gedit /etc/hosts
sudo /etc/init.d/networking restart
参考1:https://blog.csdn.net/datuzijean/article/details/92620945
参考2:https://blog.csdn.net/weixin_44088559/article/details/104293074
步骤一:执行sudo gedit /etc/resolv.conf
步骤二:将原有的nameserver这一行注释,并添加以下两行:
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
步骤三:保存退出,执行
sudo apt-get update
然后继续环境配置就可以
修改20-default.list文件,将里面的将raw.githubusercontent.com
全部替换为raw.github.com
这个需要进入管理员模式下进行
sudo su
cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list
将raw.githubusercontent.com替换为raw.github.com后保存文件
退出管理员模式
exit
上面几个方法我修改了,但是都没有用,后来我修改了延时,然后成功了
注意这个方法不需要在修改上面方法的基础上完成
但是上述所以方法都可以同时进行修改,也许会有加分,更快装完呢~
参考:https://www.guyuehome.com/33258
首先,在终端里ping raw.githubusercontent.com
,只有ping成功,这个方法才有效。如果ping不通,可以参考方法三/方法四修改hosts和DNS
原设定的延时是15ms,所以现在的情况就会产生超时问题
修改 sources_list.py
、 gbpdistro_support.py
、 rep3.py
中的DOWNLOAD_TIMEOUT 值
默认情况下 DOWNLOAD_TIMEOUT = 15.0
依次打开这三个文件,ctrl+F
找到DOWNLOAD_TIMEOUT
修改DOWNLOAD_TIMEOUT = 1000.0
(具体修改为多少,可以看自己ping过程中的延时情况)
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
修改后保存,继续ROS安装过程
sudo rosdep init
rosdep update
看到有人推荐的其他方法,如果上述方法都没有用,可以试试这两个
raw.githubusercontent.com
的代理除了网络原因,也有可能是安装版本和缓存版本不同导致的(这种情况多见于已经安装pip的环境之后,再安装ros的情况)