ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

一. 版本说明

ROS官方将在2021年不再维护Kinetic,后续使用Ubuntu18.04+Melodic组合,Melodic支持时间到2023年5月。

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

二. 安装前Ubuntu18.04设置

打开Ubuntu18.04,在桌面点击更多软件图标,翻页可看到软件和更新图标,点击打开。

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

在打开新窗口界面中,选择"Ubuntu软件|下载自"下拉框,选择阿里云。

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

确认后,提示“重新载入”。

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

点击“重新载入”按钮,开始更新缓存。

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

 更新结束后,开始安装ROS Melodic。

三. 安装Melodic

1. 安装说明

在国内,安装ROS任何一个版本,都不需要fq,如果安装过程中出现网络相关的问题,建议更换有线网络或者热点,然后重新执行出错指令。

2. 配置ROS软件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

3. 配置密钥

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

第2步和第3步执行输出如下:

root@ubuntu:~# sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
root@ubuntu:~# sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
Executing: /tmp/apt-key-gpghome.Cnbk5Gm1OA/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
gpg: 密钥 F42ED6FBAB17C654:公钥“Open Robotics <info@osrfoundation.org>”已导入
gpg: 合计被处理的数量:1
gpg:               已导入:1

4. 更新系统软件源

sudo apt update

执行效果如下:

root@ubuntu:~# sudo apt update
命中:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
命中:2 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease               
命中:3 http://mirrors.aliyun.com/ubuntu bionic-backports InRelease             
命中:4 http://mirrors.aliyun.com/ubuntu bionic-security InRelease              
命中:5 http://archive.ubuntukylin.com:10006/ubuntukylin xenial InRelease       
获取:6 http://packages.ros.org/ros/ubuntu bionic InRelease [4,680 B]           
获取:7 http://packages.ros.org/ros/ubuntu bionic/main amd64 Packages [776 kB]
获取:8 http://packages.ros.org/ros/ubuntu bionic/main i386 Packages [26.4 kB]
已下载 807 kB,耗时 4秒 (187 kB/s)  
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有 543 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。
执行效果如图:

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

5. 安装Melodic

sudo apt install ros-melodic-desktop-full

输出:

……x11proto-scrnsaver-dev x11proto-xinerama-dev xml-core
下列软件包将被升级:
  libcairo-gobject2 libcairo2 libdrm-amdgpu1 libdrm-common libdrm-dev
  libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libgl1-mesa-dev
  libgpgme11 libldap-2.4-2 libldap-common liblz4-1 libmysqlclient20 libnuma1
  libopenexr22 libpython2.7 libpython2.7-minimal libpython2.7-stdlib
  libpython3.6 libpython3.6-minimal libpython3.6-stdlib libqt5core5a
  libqt5dbus5 libqt5gui5 libqt5network5 libqt5widgets5 libtiff5 libwebp6
  libwebpdemux2 libwebpmux3 libxcb-shm0 mesa-common-dev python2.7
  python2.7-minimal python3.6 python3.6-minimal qt5-gtk-platformtheme
升级了 39 个软件包,新安装了 925 个软件包,要卸载 1 个软件包,有 504 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
需要下载 461 MB/498 MB 的归档。
解压缩后会消耗 1,982 MB 的额外空间。
您希望继续执行吗? [Y/n]  Y……
执行效果如图:

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

最后出现:

E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?
root@ubuntu:~# apt-get update
使用apt-get update 以及加上--fix-missing,好像都没什么问题。

root@ubuntu:~# apt-get update
命中:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
命中:2 http://archive.ubuntukylin.com:10006/ubuntukylin xenial InRelease       
命中:3 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease               
命中:4 http://mirrors.aliyun.com/ubuntu bionic-backports InRelease             
命中:5 http://mirrors.aliyun.com/ubuntu bionic-security InRelease           
命中:6 http://packages.ros.org/ros/ubuntu bionic InRelease                     
正在读取软件包列表... 完成   
root@ubuntu:~# apt-get update --fix-missing
命中:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
命中:2 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease       
命中:3 http://mirrors.aliyun.com/ubuntu bionic-backports InRelease             
命中:4 http://mirrors.aliyun.com/ubuntu bionic-security InRelease              
命中:5 http://archive.ubuntukylin.com:10006/ubuntukylin xenial InRelease       
命中:6 http://packages.ros.org/ros/ubuntu bionic InRelease                     
正在读取软件包列表... 完成   

建议使用:

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

安装时间会很长.........但也许后面的坑会少一点。

安装完成后,Ubuntu又变胖了一些了(大约2G!)。

6. 初始化rosdep

sudo rosdep init

root@ubuntu:~# sudo rosdep update
sudo: rosdep:找不到命令
root@ubuntu:~# rosdep init

Command 'rosdep' not found, but can be installed with:

apt install python-rosdep2
根据提示,运行:apt install python-rosdep2

之后,再执行sudo rosdep init,输出:

root@ubuntu:~# sudo rosdep init
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/hosts文件,在末尾添加:

151.101.84.133 raw.githubusercontent.com

或:

151.101.76.133 raw.githubusercontent.com

可以通过查询域名raw.githubusercontent.com的IP修改其实际的IP值。

如果还是不行,可以fq试试。还有一种方法,自己手动新建/etc/ros/rosdep/sources.list.d目录,写入:

# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

----没错,就是那个下载不了的文件的内容。

弄好这个文件后,执行

rosdep update

网上有不少在这一步出错,基本上都是网络问题导致,而不是软件源的问题,建议更换有线网络或者手机热点,有人找到通过编辑配置文件中url等方式,但建议尽量不要编辑软件源配置文件,如果一定要编辑,建议先备份,如果软件源配置文件出问题,会比较麻烦。

现在,可以利用@鱼香ROS开发的ROSDEC工具。C代表采用的是国内源。具体使用方式如下:

sudo pip install rosdepc  或:
sudo pip3 install rosdepc

如果没有pip3。

sudo apt-get install python3-pip

安装结束后

sudo rosdepc init
rosdepc update

以后遇到rosdep的地方都换成rosdepc即可。

输出结果如下图:

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

7. 用户环境设置

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

这两条指令相当于Windows系统中设置环境变量path,即在终端可以*使用ROS系统指令,这里强调是系统指令,而不是自己创建的包或者节点,后者是需要使能相应的工作空间,具体可以参考:ROS工作空间。

8. 安装包编译依赖

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

执行效果如图

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

9. 验证安装

rosversion -d

执行效果如图

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

四. 启动小海龟

1. 第一个终端运行命令

roscore

root@ubuntu:/# roscore

Command 'roscore' not found, but can be installed with:

apt install python-roslaunch

在文件夹 “/opt/ros/indigo/bin/” 里面查看是否存在名为 “roscore” 的二进制可执行文件:

cd /opt/ros/melodic/bin
ls -l

果然没有。

输入:

sudo apt-get install ros-melodic-desktop

cd 进去再看,有了!
执行

source ~/.bashrc

再次启动ROS

roscore

成功了!

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

这可能是因为,先前install ros-melodic-desktop-full 时缺少部分文件,再通过apt-get install ros-melodic-desktop这种方式补全。

2. 第二个终端运行命令

打开第二个终端,也可以利用 Ctrl+Shift+T 快捷键打开一个新的终端,运行如下命令,这时你会看见一只静止的小海龟

rosrun turtlesim turtlesim_node

ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

 3. 第三个终端运行命令

如果希望小海龟能够移动,打开第三个终端,利用Ctrl+Shift+T快捷键再打开一个新的终端,启动turtlesim的键盘控制节点turtle_teleop_key,运行如下命令

rosrun turtlesim turtle_teleop_key

上一篇:php内核分析(二)-ZTS和zend_try


下一篇:快速安装ROS系统(ubantu:18.---)(ROS:melodic)