本文介绍如何在ubuntu18.04上安装ROS Melodic。其实在ubuntu16.04上安装kinetic也是类似的,一般来说是将Melodic改为kinetic就可以了。
大家可以先参考官网的安装方式
KineticMelodic 两个ROS版本与Ubuntu的版本是一一对应的。即
Kinetic——Ubuntu16.04
Melodic——Ubuntu18.04
推荐使用双系统安装,如果实在不方便或者只是日常体验的可以使用虚拟机

虚拟机安装

虚拟机使用比较多的就是VMware Workstation和Oracle VM的比较多。根据本人使用经验,VMware Workstation的有可能在运行Gazebo的时候出现闪退的情况,不太稳定。但Oracle就不怎么出现。具体安装过程这里就不在介绍。本文给出Oracle的安装包以及扩展程序的下载链接,安装使用教程可以百度,如果以后有时间会补上具体的安装和使用。百度网盘链接
链接:https://pan.baidu.com/s/10J6SegtsETuQhOZgOvZFpQ
提取码:092i

双系统安装

(多次亲测有效,win10环境下,但不保证对所有电脑都有效,如果电脑有重要记录记得备份)
双系统安装

安装

1.在正式的安装前,先检查下Ubuntu初始环境是否配置正确

打开 Ubuntu的设置 -> 软件与更新 -> Ubuntu软件 ->勾选关键;字 universe , restricted , multiverse 三项。

melodic支持python3吗_ubuntu

2.设置软件源

国内源(推荐):

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'

清华源:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

3.配置密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

NOTE:ROS由于公钥更新导致用户在3.1步骤时执行apt-get update报错,那么用户前往密钥更新链接找到set up your key步骤,按照官网提示,新终端运行更新公钥的指令,上面的公钥已经失效了,务必前往提到的网址进行更新!!!!!

4.更新软件源

sudo apt-get update
sudo apt-get upgrade

5.安装桌面完整版

sudo apt-get install ros-melodic-desktop-full

6.初始化rosdep

sudo rosdep init

备注1:sudo rosdep init,反馈没有该指令。我在网上查找的一个方法是:在终端输入rosdep init,终端提示安装"sudo apt install python-rosdep2 "
备注2:这一步很容易出现如下报错:
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
解决方法:基本是网络问题,不要轻易按照网上的方法尝试,先尝试利用手机热点多次尝试(尝试20次左右还是不行就添加美国的地址,操作方法如下:)
命令行输入

sudo vim /etc/hosts

再下面添加
199.232.68.133 raw.githubusercontent.com
前面的IP地址根据www.ipaddress.com网站来查询
最后命令行输入

/etc/init.d/networking restart

7.更新rosdep

命令

rosdep update

这一段也很容易出现网络问题,此时修改网络延迟时间(大概设置为90s),再多次(20次)尝试,同样推荐连接手机热点

具体修改方法
更改 /usr/lib/python2.7/dist-packages/rosdep2/下的三个文件sources_list.py、gbpdistro_support.py、rep3.py中的DOWNLOAD_TIMEOUT = 15.0值,改大一点就可以了。

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py

特别提醒:在连接中途如果发现光标不闪动即卡住了,这时按ctrl+C中断,重新尝试几次就好了

8.环境配置

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

9.安装包编译依赖

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

10.测试ROS

roscore

备注:但是sudo apt install python-rosdep2会导致之前sudo apt-get install ros-melodic-desktop-full安装的包部分丢失(这是后面才意识到的问题),执行楼主所有步骤后,发现没有roscore这个指令,所以还要重新执行

sudo apt-get install ros-melodic-desktop-full

就有roscore指令了
重新打开一个新终端:

rosrun turtlesim turtlesim_node

再重新打开一个新的终端

rosrun turtlesim turtle_teleop_key

如果发现无法移动小乌龟,此时要点击控制小乌龟的终端窗口而不是显示小乌龟的窗口

ubuntu的常见问题

1.当遇到”无法定位软件包XXX”的时候,先进行

sudo apt-get update

如果实在不行就将无法定位的软件包名称在网站Ubuntu软件包上进行搜索,尽量只输入英文名称,后面的数字一般是版本号,就可以查询出对应的ubuntu版本下的软件包的名称。