一、前言(大神可以直接跳过)

本博客主要就是为了介绍ROS中环境变量的设置过程,还不是很了解ROS的可以去看一下我的博客,ROS简介-从零开始讲解ROS(适合超零基础阅读)

ROS为什么需要设置环境变量呢?首先大家需要清楚环境变量是什么东西,请看百度百科。

百度百科上说的可能像我这种计算机小白看了还是不懂,其实换句话说,环境变量的设置就是为了让计算机在执行命令的时候可以让计算机方便找到命令。

举个通俗易懂的栗子,假如你现在相当于一个计算机,你收到命令,命令是“去一个陌生的学校教学楼找一个手机”,教学楼那么多,你根本就不知道去哪里找手机,去学校的哪栋教学楼找?去教学楼的路线你也不知道,但是假如给你一个环境变量,环境变量=XX大学/XX校区/第一教学楼坐标/五楼/508室/讲台的桌子,那你是不是很好执行这个命令了?所以说,计算机操作系统里面设置环境变量其实就是设置一定的文件路径,让计算机执行命令的时候方便找到,否则大海捞针。

二、环境变量的设置

1.介绍

环境变量的设置分为ROS本身工作空间环境变量的设置和我们创建的工作空间的环境变量的设置。

我们在安装ROS的时候,ROS自身创建一个工作空间,路径一般是根目录下的opt/ros/…/…/,关于这个工作空间下面的各个文件夹我在我的一个博客里面也说过了,ROS简介-从零开始讲解ROS(适合超零基础阅读)博客里面的3.3.2有介绍。

我们在自己开发ROS的时候需要自己创建自己的工作空间,工作空间的创建大家就去看ROS wiki上面的教程吧,工作空间创建并且编译成功之后,会产生如图所示的文件夹。关于这几个文件夹的功能分别如下:

build:主要是放置程序编译的一些中间文件,可以不用了解;
devel:这个文件夹存放一些可执行文件以及环境变量配置的脚本文件,也就是待会我们主要讲解的一个文件夹;
src:主要存放程序代码、功能包。

上面这两个工作空间中都有存放功能包和源代码,我们调用这些功能包或者运行这些源代码的方式就是用终端来运行,这个大家应该都知道了,为了方便终端找到这些功能包和源代码,每一个工作空间在编译成功之后,ROS它自己都会自动生成一个setup.bash文件,这个文件就叫做这个工作空间的环境变量配置脚本。

ROS自身工作空间的环境变量配置脚本文件setup.bash在/opt/ros/kinetic路径下,我的ROS版本是kinetic版本,所以此处是kinetic。
我们创建的工作空间的环境变量配置脚本文件setup.bash就在上面我们说到的devel文件夹下。

接下来我们就开始为终端配置这两个环境变量脚本。

2.具体操作

由于要去吃饭了,所以这里直接说过程,此处的操作一步到位,是最简单的操作。
打开终端,依次输入如下三条命令,每一条输入之后回车一下:中间的kinetic是版本,还有melodic等版本,ros版本

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

这一条代码解释一下,首先是source这个单词,代表驱寻找的意思,后面一长串/opt/ros/kinetic/setup.bash就是ROS本身工作空间环境变量配置脚本文件的路径,>> ~/.bashrc表示将这个环境变量配置脚本写到终端配置文件.bashrc中。

这里出现了一个新的文件,也就是终端配置文件.bashrc,这是我们打开的终端的一个配置文件,拿我们上面的那个找手机的栗子来说,这个文件就相当于我们手里的一个记事本,我们要去找手机,工作空间相当于每个教学楼,工作空间的环境变量配置脚本就相当于是你去找教学楼的路线,配置环境变量就相当于把这个去教学楼的路线记录在你的记事本上。回到计算机上,配置环境变量就相当于将工作空间的环境变量脚本,包括其路径,记录到这个终端配置文件.bashrc上。

echo "source /home/zq/catkin_ws/devel/setup.bash" >> ~/.bashrc

这个代码就是配置我们所创建的工作空间的环境变量,/home/zq/catkin_ws/devel/setup.bash这个是路径,但是你们不可以完全照抄,其中的那个zq是我自己的计算机名字,你们换成你们自己的计算机名字。

source ~/.bashrc

这行命令的意思是将重新编辑的终端配置文件.bashrc保存一下。

接下来,我们查看一下现在ROS内部的环境变量有哪些,在计算机内部

echo $ROS_PACKAGE_PATH 

回车之后会显示如下语句,这个语句中间有一个冒号,冒号前面是我自己创建的工作空间的路径,那个/src文件夹是专门存放源代码和功能包的,前面说过的。冒号后面是ROS本身工作空间下源代码和软件包所存放的文件夹的路径。

/home/zq/catkin_ws/src:/opt/ros/kinetic/share

然后,我们也可以直接打开这个.bashrc文件来看有哪些环境变量,运行下面这个命令即可。

gedit ~/.bashrc

至此,环境变量配置好了。

原文链接:https://blog.csdn.net/qq_25267657/article/details/84621585

ROS环境变量的设置的更多相关文章

  1. linux环境变量的设置

    linux中环境变量分为系统环境变量和用户环境变量(和window中一样),系统环境变量对所有系统用户都有效,用户环境变量只对当前用户有效,我们以ubuntu为例说明 用户环境变量 用户环境变量通常存 ...

  2. Eclipse的安装和java环境变量的设置

    首先准备工作是要下载好Eclipse和java JDK. 必须要注意的是,Eclipse和java JDK必须下载同一位数的版本,即64位同为64位,32位同为32位.否则在安装完成运行Eclipse ...

  3. Win7下JDK环境变量的设置

    JDK并不像Microsoft阵营vs那样智能,安装好后所有的东西都给你配置好了,我们还没需要手动配置很多东西 首先说为什么要配置JDK的环境变量在任何路径下识别java命令和java类 配置分为2个 ...

  4. Linux环境变量的设置和查看方法

    1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量hello $ export HELLO="Hello!" $ ech ...

  5. uboot环境变量(设置bootargs向linux内核传递正确的参数)

    这是我uboot的环境变量设置,在该设置下可以运行initram内核(从内存下载到nandflash再运行),但是运行nfs根文件系统的时候一直出错,各种错误.查看了很多资料后猜想应该是uboot传递 ...

  6. linux —— 学习笔记(环境变量的设置)

    目录 环境变量概要 与环境变量相关的文件 设置环境变量 注意以及相关 1.环境变量概要 环境变量,简单来说,是储存了环境信息的变量.它可以让你在不指明全部路径的情况下执行某脚本或某应用程序,比如在 l ...

  7. hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)

    Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种 ...

  8. Linux下Jdk的安装和jdk环境变量的设置

    我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题.什么是环境变量?如何定制环境变量?我将在下面做一些介绍.一.什么是环境变量?Linux是一个多用户的操作系统.多用户意味着每个 ...

  9. jdk环境变量的设置

    一.jdk下载网址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.环境变 ...

随机推荐

  1. TCP三次握手中SYN,ACK,seq ack的含义

    转至:https://www.cnblogs.com/muyi23333/articles/13841268.html 1.TCP 为什么三次握手而不是两次握手 1.防止已失效的连接请求又传送到服务器 ...

  2. Shell脚本实现网络连通性检查Ping+Telnet

    转至:https://blog.csdn.net/AngelLBS/article/details/89382136 #!/bin/sh ############################### ...

  3. Vue之获取DOM元素与更新DOM后事件的特殊情况

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. c# winform中TabControl中给每个选项卡添加不同的图标(图片)

    在一个TabControl控件中,有几个选项卡,现在在每个选项卡上显示不同的图标. 1:你要现在form窗体中通过工具箱加入一个imagelist,名字为imagelist1,如下图: 2:然后在里面 ...

  5. C# Winform中FpSpread表格控件设置固定的(冻结的)行或列

    在项目中我们经常会用到固定表头的操作,FpSpread提供了冻结行或列的属性. 你可以冻结表单中的行或列(使其不可滚动). 你可以冻结任意个表单顶部的行,使其成为前导行,你也可以冻结左侧任意多个列,使 ...

  6. Appium+ios环境搭建

    appium 环境搭建 安装homebrew(Mac OSX上的软件包管理工具) $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubuse ...

  7. css样式之浮动

    什么是浮动? 添加了浮动的的元素会脱离正常的文档流. 浮动的特点: 1.可以让块级元素排在同一排 2.可以让行属性标签支持所有的css样式 3.遇到相邻的浮动元素或者父级元素会停下来 4.浮动会影响其 ...

  8. Kibana-CentOS7单机安装测试

    一.是什么 Kibana 是为 Elasticsearch设计的开源分析和可视化平台.你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互.你可以很容易实现 ...

  9. cURL error 60: SSL certificate problem: unable to get local issuer certifica 解决

    从 https://curl.haxx.se/docs/caextract.html 上下载cacert.pem 打开php.ini  搜索curl.cainfo 与 openssl.cafile,将 ...

  10. Mybatis工具类(自动提交事务)

    public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { //获取工 ...