基于VMware平台Ubuntu20.04环境下安装ROS的一点小经验

虚拟机平台:VMware

操作系统:Ubuntu20.04

ROS类型:官方推荐的Desktop-Full(ros-noetic-desktop-full)

ROS安装源:国内中科大安装源( http://mirrors.ustc.edu.cn/ros/ubuntu)

1、前期准备

       如果您是在虚拟机下安装ROS。首先,您需要安装虚拟机软件(VMware/virtualbox)。其次,在安装好了虚拟机后需要在虚拟机软件上虚拟一台主机,虚拟主机的操作系统需采用Ubuntu。因为,Ubuntu与ROS兼容,至于Ubuntu的版本可以选用20.04功能较为齐全。然后,在安装好虚拟主机之后就可以在Ubuntu上安装ROS了。最后,测试ROS环境是否可以正常运行。

        大致流程就是:安装虚拟机软件;在虚拟机软件上安装Ubuntu操作系统;将ROS安装在Ubuntu环境内;测试ROS是否可以正常运行。

2、虚拟机软件的安装

         这里简要的说一下虚拟机软件的安装。目前我个人所知道的虚拟机软件有两款:一、VMware(我选用的就是这个);二、是VirtualBox(这个是免费的)。大家可以根据自身的需求来选择适合自己的虚拟机软件,至于安装流程我就不在这里过多赘述,网上的教程和资源一搜一大堆,我就不班门弄斧了。(附:VrtualBox 官网下载地址:Downloads – Oracle VM VirtualBox

3、虚拟主机Ubuntu操作系统的安装

         Ubuntu系统的安装采用的是镜像安装,需要预先下载一个Ubuntu的镜像文件,这里需要注意一下,在Ubuntu镜像文件下载完成后需要将其放在一个路径清晰的文件夹内,因为,在后续的安装过程中需要添加镜像文件的路径才可以完成安装。还有一点可以跟大家分享一个小妙招,在安装Ubuntu时常会遇到对话框过大超过桌面以至于遮挡住选项按钮的情况,类似像下图的情况:

大家可以尝试按住Alt+F7这样就可以随意移动对话窗口了。其余的,我也不过多赘述了,Ubuntu的安装流程很简单,大家按流程操作就可以了。

4、ROS的安装

       我们主要说一下ROS的安装过程以及安装过程中一些常见的问题及解决办法。

       首先,要打开你的虚拟主机,打开虚拟主机之后找到软件和更新,找到之后进入这个软件,选中Ubuntu软件这个选项,确保这里的main、universe、restricted、multiverse都被选中。

       其次、按住Ctrl+Alt+T进入Ubuntu的终端(也可以点击鼠标右键选择进入),进入终端以后,第一步先配置安装源,这里推荐大家选用国内的中科大的安装源。因为,国内的安装源安装速度比较快。在键入配置安装源指令之后,可能会让你输入管理源密码,但是,当大家开始输入密码的时候会发现,你输入的内容不在终端界面上显示,大家不必多虑正常输入就可以,不显示是由于版本原因所导致的,对ROS的安装不会产生影响。

        在配置完安装源之后需要设置key,大家这一步直接在终端输入设置key的指令按enter键就可以了。

        在配置完安装源与key之后 需要更新 apt(官方建议使用 apt 而非 apt-get),apt 是用于从互联网仓库搜索、安装、升级、卸载软件或操作系统的工具。在更新apt可能会出现下载错误的情况,大家只要重复操作几次apt更新指令就可以解决这个问题了,更新成功的效果如下:

          在对apt更新完成之后,就开始安装所需类型的 ROS,ROS 有多个类型,例如:Desktop-Full、Desktop、ROS-Base。这里我安装的为较为常用的也是官方推荐的Desktop-Full,在终端中输入安装ros的指令以后需要等待一段时间,至于等待时间的长短主要取决于你的网络环境的好坏,在这个环节里你可能会出现这一种错误提示你有些安装包安装失败,如下图:

       这个错误主要是由于网络的原因所导致的,你可以通过多次的更新操作与安装操作来进行解决。但如果你发现,你已经进行了太多次的更新与安装,可是问题还是没有解决,你可以采取如下的方法:在Ubuntu中找到并打开软件和更新将源代码这一选项也勾选上并将ROS源的下载路径修改为国内中科大的下载路径,具体如下图:

 在进行完上图的配置操作之后,再次进行更新操作与安装操作,就可以很顺利的安装了。

       安装完成之后需等待一段时间,系统会对安装包进行解压缩,一切就绪之后安装构建依赖的相关工具,在 noetic 最初发布时,和其他历史版本稍有差异的是,没有安装构建依赖这一步骤。随着 noetic 不断完善,官方补齐了这一操作。

       在上述操作都完成之后进行ROS安装中出错几率最大的环节:对ROS进行rosdep 初始化与更新,如果你幸运的话在对rosdep进行初始化与更新之后会直接成功,如下图:

但是,在进行rosdep初始化操作与更新时多半会出现无法下载源列表的错误,如下图:

       这是由于网络的原因,境外的资源被屏蔽掉了,我们无法使用国内网络来下载境外的资源。我通过不断地查找,发现有一位大佬前辈,想出了一个很好地解决办法,就是预先将需要从境外网站上下载的资源存储到国内的网站上,然后通过访问国内的资源网站,来对rosdep进行初始化,就可以很好地解决这个问题了,具体操作方法如下(以下操作方法来于:http://www.autolabor.com.cn/book/ROSTutorials/chapter1.html):首先通过cd ."/usr/lib/python3/dist-packages/" 进入."/usr/lib/python3/dist-packages/" 查找rosdep中和raw.githubusercontent.com相关的内容。进入相关文件通过sudo gedit命令进行修改,主要有: ./rosdistro/__init__.py、./rosdep/gbpdistro_support.py、./rosdep2/sources_list.py 、./rosdep2/rep3.py。文件中涉及的 URL 内容,如果是:raw.githubusercontent.com/ros/rosdistro/master都替换成步骤1中准备的gitee.com/zhao-xuzuo/rosdistro/raw/master即可。修改完毕之后,再重新执行初始化更新命令。

        但是,进行完上述操作之后,在初始化环节出现这个错误时:ERROR: default sources list file already exists: /etc/ros /rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize这个错误时可以使用这条指令:sudo rm /etc/ros/rosdep/sources.list.d/20-default.list就可以能很好的解决了。在处理完rosdep的初始化问题之后就可以对rosdep进行更新了。

       在进行rosdep更新操作时经常会出现连接超时无法获取资源的情况,这主要是由于你的网络状况所导致的。因为即使你将一部分资源挪到了国内的网站上,但是,rosdep在进行更新的时候,还是会从境外下载一部分资源,所以,你可以多次重复更新操作就可以了。

       在进行网rosdep的初始化与更新之后需要对ROS配置环境变量,方便在任意终端中使用 ROS。这一步很简单两条命令就解决了。

       最后,对ROS进行测试。ROS 内置了一些小程序,可以通过运行这些小程序以检测 ROS 环境是否可以正常运行。首先,启动三个命令行(ctrl + alt + T),命令行1键入:roscore,命令行2键入:rosrun turtlesim turtlesim_node(此时会弹出图形化界面),命令行3键入:rosrun turtlesim turtle_teleop_key(在3中可以通过上下左右控制2中乌龟的运动)。最终结果如下所示:

5、最后

本人是一名在读硕士研究生,没有太多的工程实践经验,也是第一次发CSDN博客,写的东西一定会有许许多多的不足,希望各位前辈多多批评,多多指正,谢谢。

 附:各个操作的指令

设置安装源(国内中科大):

                                               sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

设置key:

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

安装:

更新apt:

                sudo apt update

安装ros-noetic-desktop-full:

                                              sudo apt install ros-noetic-desktop-full

安装构建依赖:

                        sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

初始化、更新rosdep:

                                    sudo rosdep init
                                    rosdep update

访问文件夹:

                       cd /usr/lib/python3/dist-packages/

修改相关文件:

       sudo gedit ./rosdistro/__init__.py

                         sudo gedit ./rosdep2/gbpdistro_support.py

                         sudo gedit ./rosdep2/sources_list.py

                         sudo gedit ./rosdep2/rep3.py

处理初始化时ERROR:

                                   default sources list file already exists: /etc/ros /rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize错误:

                                   sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

配置环境变量:

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

测试ROS:

                   roscore

                   rosrun turtlesim turtlesim_node

                   rosrun turtlesim turtle_teleop_key

卸载ROS:

                   sudo apt remove ros-noetic-*

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值