前言
最近,小柯因为学习的原因需要使用到ROS,但是在CSDN和官网上搜了多个教程,按照它们的步骤来做的时候,总有这样那样的问题把我卡住。幸运的是,在纠结了一天之后,这些问题都迎刃而解。为了后续参考,小柯将配置方法整理了一下,以笔记的形式发表,与大家分享,希望能对大家有所帮助。
1. 软件下载
此处,我们需要用到 VM Ware Workstation 去运行一个 Ubuntu18.04 的虚拟机,再在虚拟机上运行 ROS Melodic 系统。所以我们需要先从 VM Ware 和 Ubuntu 官网下载对应的程序和系统镜像。小柯在此附上链接:
由于我是在 Win10 上运行,所以我下载了 VMware Workstation 16.1.2 Pro for Windows 下载完成之后安装 VM Ware Workstation Pro。由于我是第一次使用这个软件,我选择了30天试用。
2. 安装Ubuntu18
打开 VM Ware Workstation,新建一个虚拟机。 用经典模式创建虚拟机: 选择刚刚下载的系统镜像。 输入用户名和密码。 设置虚拟机的存储名称
后面,VM Ware会要求设置储存空间大小。对此,官网要求至少为25GB.因为小柯之后可能会拿这个虚拟机做一些别的事情,而且硬盘空间足够。所以我设置了一个比较大的存储空间。
最后,如果有特殊需求,可以对使用的内存空间大小、占用系统核心数量进行配置。这些参数可以在之后的过程中配置。所以小柯暂时保持默认。 点了’Finish’之后,系统就开始初始化了。这个过程可能需要等很久,小柯先出去玩了~
3. 安装配置ROS
后面,我们就开始在 Ubuntu18 上安装和配置 ROS 环境。对此,Ubuntu官网有相关教程。只是小柯在根据官网教程操作时候,有几步卡住了。经过尝试,最终解决了问题,希望将解决方法写在下面。
3.1 更换软件源
登陆虚拟机之后,系统可能会提示需要更新。这时候千万不要点更新,因为Melodic版本适配的是Ubuntu18,如果更新到最新版,则需要选用最新版的ROS。不过,我们先需要更换软件源。 右键单击任务栏中的 ’Ubuntu Software’ 标签,并且选择 ‘Software & Updates’ 确保弹窗中的前四个选项框均已经勾选。 后面我们看到有一个 ‘Download from’ 选项。目前是从美国的服务器下载的。数据漂洋过海来看你势必会浪费很多时间,会很慢。所以我们需要选择国内的服务器(如阿里云、中科大等),以提升下载速度。 点击右侧框框,在下拉菜单中选择 ‘Other’,然后直接选用阿里云服务器或者点击右侧“选择最佳服务器” 然后单击 ‘Choose Server’ 保存配置。 接下来,我们按 'Cplt + Alt + T‘ 打开一个终端,并根据官网教程进行操作。
3.2 添加专用源地址
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
3.3 添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
这时,系统打印如下内容,表示添加成功:
gpg: Total number processed: 1 gpg: imported: 1
3.4 安装ROS Melodic
首先,我们需要更新软件列表
sudo apt-get update
为了方便起见,我们直接安装 ROS Melodic 完整版。
sudo apt install ros-melodic-desktop-full
不过,即使安装了完整版,后续使用过程中,还是可能提示缺少某些组件,只要键入与下面类似的命令单独安装即可。
sudo apt install ros-melodic-xxxxx
举个例子:
sudo apt install ros-melodic-slam-gmapping
同样,我们也可以用如下指令搜索可用的组件:
sudo apt search ros-melodic
这时候又需要等待很久很久。小柯又可以出去玩了,好开心o( ̄▽ ̄)ブ
3.5 初始化环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
3.6 安装相关依赖环境
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
3.7 初始化rosdep
rosdep是基于python环境的。首先我们需要安装python-rosdep
sudo apt install python-rosdep
根据官网的介绍,我们需要用以下方式初始化rosdep
sudo rosdep init
rosdep update
不过,多数情况下,它会报一个错误。 这主要是由于系统没有找到图中 http://raw.githubusercontent.com 这个网址。据一些博主说,它们让电脑连接手机热点之后可以解决这个问题。不过小柯还是失败了。最后,只能先将文件下载下来,再去修改这些文件的底层代码,将援引地址修改为本地目录。
参考文献:ROS rosdep init/update报错终极解决方法
具体操作如下:
sudo apt install git
sudo git clone https://github.com/ros/rosdistro.git
- 依次将以下四个文件中的 ‘https://raw.githubusercontent.com/ros/rosdistro/master/’ 修改为 ‘file:///home/kirk/rosdistro/’。由于我的用户名为 kirk,则这边使用 kirk。大家请替换成自己的路径名称。
rosdistro/rosdep/sources.list.d/20-default.list /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py /usr/lib/python2.7/dist-packages/rosdep2/rep3.py /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
- 将上面的第一个文件复制到 /etc/ros/rosdep/sources.list.d 目录下(需要创建目录),供后面软件引用
sudo mkdir -p /etc/ros/rosdep/sources.list.d
sudo cp rosdistro/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/
rosdep update
3.8 配置 catkin
一般情况下,我们都需要用到 catkin 工作环境去编译代码。 我们先需要创建一个工作目录。
mkdir -p catkin_ws/src
然后在 catkin_ws 目录中初始化 catkin
cd catkin_ws/src
catkin_init_workspace
这时,我们就可以在 catkin_ws 目录下编译代码。
cd ..
catkin_make
这时,系统会自动生成 build 和 devel 两个目录。最后配置一下环境变量完成操作。
source devel/setup.bash
总结
至此,小柯已经在 Ubuntu18.04 上成功安装了 ROS Melodic 并成功配置了工作环境。之后,我就可以往 catkin_ws/src 目录下加入源码,然后编译运行自己的工程了。安装过程中遇到的一些网络问题及其解决方法希望对大家有用!
|