0、前言
为什么我会选择在Ubuntu上使用ROS?Ubuntu已经有20.04LTS发行版了,为什么我还要使用18版本?
因为ROS的首选开发平台是Ubuntu,而且ROS的每个版本都有一个推荐运行的Ubuntu版本。
所以,本教程只适合在 Ubuntu 18.04 系统上使用!!!
目录:
graph LR
id1(添加国内镜像源) --> id2(安装 Linux4.4 内核) --> id3(安装 Docker) --> id4(安装 ROS)
一、添加国内镜像源(Ubuntu 原镜像可能安装不成功,且速度较慢)
-
原文件备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
-
编辑源列表文件
有没有注意到
bionic
频繁出现,这是Ubuntu不同版本的别名,Bionio Beaver(仿生海狸)代表 Ubuntu 18.04。#中科大镜像 deb http://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse #清华镜像 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
sudo apt-get update
二、安装Linux4.4内核
为了确保工控机联网,需要安装Linux4.4内核。
-
进入 home 目录
cd ~/
-
安装Linux4.4内核
sudo apt-get install linux-generic-lts-xenial
三、安装Docker
-
卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
-
安装软件包以允许 apt 通过 HTTPS 使用存储库
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
-
添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
验证现在是否拥有带有指纹的密钥
sudo apt-key fingerprint 0EBFCD88
-
设置稳定的存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
国内使用这个网址 download.docker.com/linux/ubunt… 下载速度会非常慢,用科学上网的方式能够提高下载速度;或者参考这个网站 www.runoob.com/docker/dock… 的方法,尝试替换为阿里云镜像(文中提到的其它镜像我没有试成功)。
-
更新apt包索引
sudo apt-get update
-
安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
-
运行”hello world“
sudo docker run hello-world
-
添加”docker group“
sudo groupadd docker
(可能已经存在) -
将用户添加到docker,使得普通用户也能使用docker命令
sudo gpasswd -a ${USER} docker
-
增加“docker.sock”文件的权限:所有人皆可读写
sudo chmod a+rw /var/run/docker.sock
-
重启服务
sudo service docker restart
或
sudo /etc/init.d/docker restart
-
切换当前会话到新 group
newgrp - docker
-
安装“Git LFS”(这个是一个git对大文件的扩展支持)
-
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
-
sudo apt-get install -y git-lfs
-
-
最后,终端执行 docker images 就可以看到只有一行内容的docker镜像表格,这是我们运行”hello world“时生成的镜像
四、安装ROS
-
设置源
sudo sh -c ' echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
注:
若下载速度缓慢,推荐选择国内的镜像源
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 apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
注:
若无法连接到密钥服务器,可以尝试替换上面命令中的
hkp://keyserver.ubuntu.com:80
为hkp://pgp.mit.edu:80
或者,使用 curl 命令替换 apt-key 命令(这在使用代理服务器的情况下比较有用):
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
-
更新软件源
sudo apt-get update
注:
如果报错出现
Get:6 http://packages.ros.org/ros/ubuntu bionic InRelease [4,669 B] Err:6 http://packages.ros.org/ros/ubuntu bionic InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
解决方法:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F42ED6FBAB17C654
(F42ED6FBAB17C654 是上面的报错内容) -
安装 ROS 的 Melodic 桌面完整版
sudo apt-get install ros-melodic-desktop-full
-
初始化rosdep
sudo rosdep init
注:
-
如果报错出现 “sudo: rosdep: command not found”
解决方法:
sudo apt-get install python-rosdep
-
如果报错出现 “error: cannot download default sources list from: raw.githubusercontent.com/ros/rosdist… Website may be down.”
解决方法:
sudo vim /etc/hosts
添加
185.199.108.133 raw.githubusercontent.com
(如果仍然不行,请自行查看 raw.githubusercontent.com 的 ip 地址,将 185.199.108.133 替换掉)
rosdep update
注:
如果出现如下这种错误,可以忽略(我继续往下执行,仍然可以安装成功)
-
-
配置 ROS 环境
-
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
-
source ~/.bashrc
注:
-
我看到有些文章上面 echo 的路径是 /opt/ros/kinetic/setup.bash,但是在我的系统中没有“kinetic”文件夹,setup.bash 而是在文件夹“melodic”中
-
如果你使用的是 zsh,那么你需要将上述命令改为 echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc && source ~/.zshrc
-
-
安装 rosinstall 和其它构建 ROS 包的依赖项(命令行工具 rosinstall 能够轻松地从一个命令下载许多 ROS 包的源树)
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
-
查看已安装的 ROS 软件
apt-cache search ros-melodic
-
检验是否安装成功
在第一个终端执行
roscore
在第二个终端执行
rosrun turtlesim turtlesim_node
(弹出一个小乌龟窗口)在第三个终端执行
rosrun rqt_graph rqt_graph
(查看节点信息)如果希望小海龟能移动,在第四个终端执行
rosrun turtlesim turtle_teleop_key
(启动 turtlesim 的键盘控制节点 turtle_teleop_key)注:鼠标停留在当前终端,使用键盘的方向键控制小海龟的移动
五、附录
参考资料:
www.runoob.com/docker/dock… (Docker镜像加速)
www.cxyzjd.com/article/qq_… (Ubuntu安装ROS报错 sudo: rosdep:找不到命令)
wiki.ros.org/cn/melodic/… (在 Ubuntu 中安装 ROS Melodic)
bbs.huaweicloud.com/blogs/21287… (Ubuntu安装ROS系统)
wangxin1248.github.io/linux/2019/… (Ubuntu 18.04 安装 ROS)
文章来源: 掘金技术社区
作者:吴下一隅的阿麦
@ 版权归原作者所有,如需转载,请联系作者!