一. 版本说明
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
注意:这里你的鼠标要停留在当前这个终端界面,按键盘上面的 上下左右 来控制小海龟的移动
键盘上面的“上下左右” | 小海龟移动情况 |
---|
上 | 前进 | 下 | 后退 | 左 | 原地向左转 | 右 | 原地向右转 |
执行效果如下图:
?
五. 小结
Melodic安装其实并不复杂,难点可能主要在于以下两步:
sudo rosdep init
rosdep update
需要连接外网,却老是连接不上。要多试几次,实在不行就使用国内的源(比如鱼香ROS开发的ROSDEC工具)。更改配置是最后的办法吧。
参考链接:
1、Ubuntu18.04安装ROS Melodic(一路到站型)-物联网技术文章-傲云电气网
2、Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)_mango-CSDN博客
|