第01课 安装并配置ROS环境

1. 安装ROS

  注意事项:

     如果你是使用类似apt这样的软件管理器来安装ROS的,那么安装后这些软件包将不具备写入权限,当前系统用户比如你自己也无法对这些软件包进行修改编辑。

    当你的开发涉及到ROS软件包源码层面的操作或者在创建一个新的ROS软件包时,你应该是在一个具备读写权限的目录下工作,就像在你当前系统用户的home目录下一样。

  按照官方 ROS 安装说明完成安装,具体步骤如下

    1.1 选择相应的ROS版本,本文以Melodic 为例,可根据自己的需求选择相应的版本,安装过程一样。

   2)点击“ROS Melodic Morenia",进入到 ROS Melodic 安装指南

  

   1.3 选择要安装的平台,下面以Ubuntu 为例,点击上图红色框中的”Ubuntu",即可进入 在 Ubuntu 中安装 ROS Melodic教程。

    注意:ROS Melodic Morenia 发行版可以安装在 Ubuntu Artful (17.10),Bionic (18.04 LTS),本例将其安装在 Ubuntu 18.04上。

  1.4  在 Ubuntu 中安装 ROS Melodic

    1.4.1 配置 Ubuntu 软件仓库

      配置你的 Ubuntu 软件仓库(repositories) 以允许 "restricted"、"universe" 和 "multiverse"这三种安装模式。 你可以按照 Ubuntu 中的配置指南来完成配置。

    1.4.2 添加 sources.list

      配置软件下载源,设置你的电脑以从 packages.ros.org 接收软件.

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

      注:若下载速度慢,建议使用国内或者新加波的镜像源,这样能够大大提高安装下载速度。

    1.4.3  添加公钥

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

     添加公钥的作用,就是下面安装ROS时,能被授权访问刚才添加的软件源。如果你无法连接到公钥服务器,尝试用 hkp://pgp.mit.edu:80 替换上述命令中的服务器地址。

     1.4.4 开始安装

      首先,更新软件源,确保你的 Debian 包索引是最新的:

sudo apt update

      在 ROS 中有很多不同的库和工具。我们提供了四种默认选项供你开始。你也可以单独安装 ROS 的软件包。

桌面完整版(推荐): : 包含 ROS、rqtrviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包。

sudo apt install ros-melodic-desktop-full

  桌面版: 包含 ROS,rqtrviz 和机器人通用库

sudo apt install ros-melodic-desktop

  ROS-基础包: 包含 ROS 包,构建和通信库。没有图形界面工具。

sudo apt install ros-melodic-ros-base

  单独的包: 你也可以安装某个指定的ROS软件包(使用软件包名称替换掉下面的PACKAGE):

sudo apt install ros-melodic-PACKAGE

  如:

sudo apt install ros-melodic-slam-gmapping

  1.4.5  初始化 rosdep

    在使用 ROS 之前,需要初始化 rosdeprosdep 可让你能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。

sudo rosdep init
rosdep update

  1.4.6 设置环境

    用户在使用 ROS的功能包前,需要添加ROS 环境变量,这样系统才能找到相应的ROS功能包。

    下面的命令就是在当前 bash 会话中添加 ROS 环境变量,但其只在当前会话中有效,每次打开新的终端时,都要重新设置,所以不建议使用此法。

source /opt/ros/melodic/setup.bash

    可以将配置命令写入到用户的.bashrc文件中,然后使用source命令将该配置文件使能,这样每次新开bash 会话(如打开终端)ROS 环境变量自动添加,很方便:

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

     如果你不只安装了一个 ROS 发行版, 可在~/.bashrc 文件中进行修改,使用你需要的 ROS 版本的 setup.bash 。

    到目前为止,你已经安装了运行核心 ROS 包所需的内容。

  1.4.7 构建工厂依赖

    安装 rosinstall 和其他构建ROS包的依赖项,终端运行下面命令:

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

    为了创建和管理自己的 ROS 工作区,需要有各种各样的工具。例如:rosinstall 是一个经常使用的命令行工具,它使你能够轻松地从一个命令下载许多 ROS 包的源树。

  1.5 测试ROS是否安装成功

  打开终端,输入roscore命令

roscore

  

  然后再打开一个终端输入rostopic list, 若出现 话题 /rosout 和 /rosout_agg则说明ROS安装成功。

rostopic list

  

  

2  查看ROS环境

  在安装ROS期间,你会看到提示说需要 source 多个setup.*sh文件中的某一个,或者甚至提示添加这条'source'命令到你的启动脚本里面。这些操作是必须的,因为ROS是依赖于某种组合空间的概念,而这种概念就是通过配置脚本环境来实现的。这可以让针对不同版本或者不同软件包集的开发更加容易。

  如果你在查找和使用ROS软件包方面遇到了问题,首先要检查脚本环境是否配置正确。

  一个检查像ROS_ROOTROS_PACKAGE_PATH这样的环境变量的方法是,通过以下命令查看:

$ printenv | grep ROS

  

 由上图所示,可以看到我们的ROS环境变量,ROS的功能包路径,ROS安装的根目录,ROS版本等,如果没发现我们之前的配置ROS环境变量,说明之前的配置失败。则需重新按上述配置过程重新执行。

  到此为止ROS的安装和环境配置已完成。

3、创建ROS工作空间

   在安装并配置好ROS环境后,我们需要创建自己的ROS工作空间来存放我们开发的功能包,下面我们开始创建一个 catkin 工作空间

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make

  执行上述代码即可在当前用户的主目录下创建工作空间catkin_ws。上述代码的作用分别是 在当前用户主目录下创建两级目录 catkin_ws/src,而src目录将存储我们开发的功能包源码,然后进入目录 catkin_ws 下,执行ROS编译命令 catkin_make,则完成初始化ROS工作空间 catkin_ws。

   catkin_make 命令在 catkin 工作空间 中是一个非常方便的工具。第一次在你的工作空间中运行它时,它会在你的 'src' 文件夹里创建一个 CMakeLists.txt 的链接。

   此时输入 ls,则看到 catkin_ws 下多了两个目录 build和devel,则说明 ROS工作空间 catkin_ws创建成功

   

  注意, 对于 Python 3 用户,在一个空的 catkin 工作空间中第一次运行 catkin_make 的命令应为 

$ catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

  这将会配置 catkin_make 使用 Python 3.你可以在随后的构建中只使用 catkin_make

配置工作空间:

  在创建好ROS工作空间 catkin_ws 后 ,我们需要将该工作空间添加ROS环境变量中,以便后面在此开发的ROS功能包能被系统找到。配置的方法就是使能 工作空间catkin_ws下的devel目录下的setup.bash,具体操作如下:

  在当前系统的 .bashrc 文件末尾加入下面一行命令:

source /home/ubuntu/catkin_ws/devel/setup.bash

 注意:将上述 setup.bash 文件的目录换成你的工作空间中的路径,且必须使用绝对路径。

 

 然后source .bashrc文件,使当前的配置生效:

source ~/.bashrc

 最后查看工作空间是否已配置正确,ROS_PACKAGE_PATH环境变量是否包含你的工作空间目录,命令如下:

echo $ROS_PACKAGE_PATH

  若输出的ROS包路径中含有刚才创建的工作空间,说明 配置成功。

    

原文地址:https://www.cnblogs.com/yongpan/p/14083412.html