一. 版本说明
ROS官方将在2021年不再维护Kinetic,后续使用Ubuntu18.04+Melodic组合,Melodic支持时间到2023年5月。
二. 安装前Ubuntu18.04设置
打开Ubuntu18.04,在桌面点击更多软件图标,翻页可看到软件和更新图标,点击打开。
在打开新窗口界面中,选择"Ubuntu软件|下载自"下拉框,选择阿里云。
确认后,提示“重新载入”。
点击“重新载入”按钮,开始更新缓存。
更新结束后,开始安装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’ 来查看它们。
执行效果如图:
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……
执行效果如图:
最后出现:
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即可。
输出结果如下图:
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
执行效果如图
9. 验证安装
rosversion -d
执行效果如图
四. 启动小海龟
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
成功了!
这可能是因为,先前install ros-melodic-desktop-full 时缺少部分文件,再通过apt-get install ros-melodic-desktop这种方式补全。
2. 第二个终端运行命令
打开第二个终端,也可以利用 Ctrl+Shift+T 快捷键打开一个新的终端,运行如下命令,这时你会看见一只静止的小海龟
rosrun turtlesim turtlesim_node
3. 第三个终端运行命令
如果希望小海龟能够移动,打开第三个终端,利用Ctrl+Shift+T快捷键再打开一个新的终端,启动turtlesim的键盘控制节点turtle_teleop_key,运行如下命令
rosrun turtlesim turtle_teleop_key