(ros//EnvironmentVariables)ros环境变量

http://wiki.ros.org/ROS/EnvironmentVariables

ROS/ EnvironmentVariables

在ROS中,可以设置很多环境变量。最需要理解的是ROS_MASTER_URI,ROS_ROOT和ROS_PACKAGE_PATH,因为他们频繁的在系统和文件中被用到。

环境变量在ROS中有多重角色:

1  寻找packages(Finding packages ):

首先,ROS_ROOT和ROS_PACKAGE_PATH使ROS在系统文件(filesystem)中能够定位packages和stacks。同样必须设置PYTHONPATH,这样python解释器才能找到ROS库。

2 影响一个节点运行时间(Effecting a Node runtime ):

有几个环境变量会影响节点的运行。ROS_MASTER_URI是一个重要的环境变量来告诉节点Master(主机)在哪里。ROS_IP和ROS_HOSTNAME影响一个节点的网络地址,ROS_NAMESPACE能够让你改变命名空间。ROS_LOG_DIR可以让你设置日志文件写入的目录。这些也可以被映射参数覆盖,映射参数优先于环境变量。

3 修改构建系统(Modifying the build system):

ROS_BINDEPS_PATH,ROS_BOOST_ROOT,ROS_PARALLEL_JOBS和ROS_LANG_DISABLE影响在哪里寻找库,怎样构建他们,构建哪一个。

这些环境变量在下面将会有更详细的描述。

必需的ROS环境变量

大部分系统都要设置ROS_PACKGE_PATH,ROS只需要环境变量ROS_ROOT,ROS_MASTER_URI和PYTHONPATH。默认通过sourcing /opt/ros/fuerte/setup.bash来自动设置他们。

1. ROS_ROOT

ROS_ROOT设置ROS core包安装的位置。

              export ROS_ROOT=/home/user/ros/ros
              export PATH=$ROS_ROOT/bin:$PATH

2. ROS_MASTER_URI

ROS_MASTER_URI是一个必需的设置来告诉节点在哪里定位master。应该设置master的XML-RPC URI。使用localhost时需要格外小心,因为远程启动节点可能会导致意想不到的结果。

                 export ROS_MASTER_URI=http://mia:11311/

3. PYTHONPATH

ROS需要PYTHONPATH更新,尽管你可能不用Python编程!很多ROS基础工具都依靠Python,需要连接到roslib包来bootstrapping。

              export PYTHONPATH=$PYTHONPATH:$ROS_ROOT/core/roslib/src

其他的PATH环境变量

1. ROS_PACKAGE_PATH

ROS_PACKAGE_PATH是一个可选,但很常用的环境变量,能够让你从源添加更多的ROS包到当前环境。ROS_PACKAGE_PATH可以由一个或多个路径组成,路径之间由标准操作系统路径间隔符(在Unix类的系统中,用’:’)分隔。这些有序的路径告诉ROS系统到哪里搜索更多的ROS包。如果多个包有相同的名字,ROS会首先选择出现在ROS_PACKAGE_PATH的那个。

                export ROS_PACKAGE_PATH=/home/user/ros/ros-pkg:/another/path

注意ROS_PACKAGE_PATH的每个条目都被重复查找-路径中提到的包都会被找到。

引入catkin后,ROS_PACKAGE_PATH过时了,只是用来与rosbuild包保持向后兼容。

系统数据环境变量

1. ROS_HOME

默认,ROS写数据到~/.ros。可以通过设置ROS_HOME来改变这个位置。也可以在~/.ros中更改某个目录的位置(例如,ROS_TEST_RESULTS_DIR,ROS_LOG_DIR)。

2. ROS_LOG_DIR

默认,ROS写内部日志文件到ROS_HOME/log。如果这个位置对ROS不可写,或者希望日志文件写到别的地方,设置ROS_LOG_DIR到其他路径。

3. ROS_TEST_RESULTS_DIR

测试结果要写到的目录。

其他的Bash环境变量

1. ROS_LOCATIONS

ROS_LOCATIONS是一个可选的环境变量,为有用的位置提供键名。它是key-location对的分隔列表。每个key-location对用一个=分隔。例如:

              export ROS_LOCATIONS="rospkg=/path/to/rospkg:stairpkg=/path/to/stairpkg"

然后这些键就可以用一些工具了,如roscd。

2. ROS_WORKSPACE

ROS_WORKSPACE由工具rosinstall/rosws引进的,当创建一个workspace时,通过这些工具生成的setup.sh设置。它指向workspace的文件夹,通过使用rosws命令使用,作为命令的默认目标。

不带参数的调用时,fuerte中的roscd工具也改用这个变量。此前,它默认改变ROS_ROOT.

节点环境变量

1. ROS_IP/ROS_HOSTNAME

ROS_IP和ROS_HOSTNAME是可选的环境变量,用来设置ROS节点或工具的公开网地址。这两个选项是互斥的,如果两者都设置优先使用ROS_HOSTNAME。如果你指定一个IP地址,使用ROS_IP;如果制定一个主机名(a host name),使用ROS_HOSTNAME。当一个ROS成员报告URI给master或者其他成员,这个值就会被用到。这个设置只用在一台计算机有多个地址,需要强制ROS到特定的一个的情况。

除了’localhost’(本地主机),ROS成员绑定到所有可用的网络接口,他不影响实际绑定地址。如果这个值设定为本地主机,ROS成员只绑定在环回接口。这将会阻止远程成员与本地成员交流。

2. ROS_NAMESPACE

ROS_NAMESPACE可以让你推一个节点到一个命名空间。节点中的所有名字都会相对于这个值解析,包括映射名称。

3. ROSCONSOLE_CONFIG_FIE

这是一个roscpp指定环境变量。Rosconsole让你定义用在log4cxx的配置文件,通过环境变量ROSCONSOLE_CONFIG_FILE定义。在这个配置文件中有任何定义都会覆盖默认的配置文件。

4. Console Output Formatting 控制台输出格式

Rosconsole允许指定怎样通过环境变量ROSCONSOLE_FORMAT在控制台输出。默认等效于:

          export ROSCONSOLE_FORMAT='[${severity}] [${time}]: ${message}'

5. ROS_PYTHON_LOG_CONFIG_FILE

特定 rospyrosmasterroslaunch, and rostest.对于这些工具,可以指定使用自己的Python logging配置文件来代替默认配置文件,它保存在$ROS_ROOT/config/python_logging.conf.

构建系统环境变量

为了更好的了解这些环境变量,请看ROS Build System部分。

1. ROS_BOOST_ROOT

ROS_BOOST_ROOT是一个可选的环境变量,能让你覆盖哪里去寻找激励。如果ROS_BOOST_ROOT不设置,默认使用ROS_BINDEPS_PATH。

2. ROS_PARALLEL_JOBS

这个变量的值,如果设置,构建包的时候会传递给make。目的是充分使用多处理器机器。例如,如果有8处理器/核,想尽可能多的运行并行任务,只要系统负荷小于8,通过限制任务为8,可以在启动时阻止过冲:

             export ROS_PARALLEL_JOBS='-j8 -l8'

或者,可以使用-j标识带一个参数来并行运行最多8个任务,系统负载独立:

           export ROS_PARALLEL_JOBS=-j8

强烈建议使用-l标识来设置并行系统相关限制。在一个大的构建中并行过多可能会耗尽系统内存。

可以接受多少系统负载取决于有多少内核。

3. ROS_LANG_DISABLE

消息生成器/客户端库包名称应禁用一个冒号分隔的列表。Message-generation will not happen for languages in this list.

用catkin构建的包需要需要列出应当被忽视的消息生成器的名字,例如:

           export ROS_LANG_DISABLE=genlisp

用rosbuild构建的包需要列出应当被忽视的消息生成器及客户端库的名字,例如:

            export ROS_LANG_DISABLE=genlisp:roslisp

当忽视掉消息生成器的rosbuild和CMake配置步骤,将会显示一个警告,客户端库(例如,roslisp)不是一个已知的消息生成器。这个警告可以安全的忽略掉。

注意,禁用语言之前,首先必须确定你使用的代码没有与这个语言绑定。

4. ROS_OS_OVERRIDE

格式:"OS_NAME:OS_VERSION_STRING",这将会强制检测Ubuntu Lucid:

              export ROS_OS_OVERRIDE=ubuntu:10.04

如果定义,这将覆盖系统的自动检测。在外来平台上调试rosdep依赖性时,当平台很相似可能需要强制,或自动检测失败时,很有用。

email: [email protected]

时间: 2024-11-09 03:00:37

(ros//EnvironmentVariables)ros环境变量的相关文章

linux环境变量介绍

一 linux环境变量概念的重要性 最初用linux是为了学习机器人操作系统(ros),由于之前没有接触过linux,所以并不了解其中的一些关键概念,导致走了许多弯路,如在ros的安装过程中,没有理解安装教程中的1.6 环境变量建立中的指令的意义,所以导致有时在自己工作空间建立的包会有找不到的情况.因此,本文结合ros安装教程中的部分指令,重点介绍linux环境变量的概念及应用. 二 环境变量的概念 环境变量,就是描述环境的变量.环境就是与shell相关的会话和工作环境,变量就是可变的量. 三

在ASP.NET Core配置环境变量和启动设置

ASPNETCORE_ENVIRONMENT ASP.NET Core控制环境切换最核心的东西是"ASPNETCORE_ENVIRONMENT"环境变量,它直接控制当前应用程序运行的环境类型.您可以通过在项目上右键菜单选择"属性"选项,然后切换到"调试"标签来修改此环境变量. 此环境变量框架默认提供了三个值,当然您也可以定义其它的值: Development(开发) Staging(预演) Production(生产) 我们在Startup.cs

docker compose 设置环境变量

参考:https://www.cnblogs.com/sparkdev/p/9826520.html https://docs.docker.com/compose/environment-variables/ 利用环境变量,可以很方便的重复利用 compose 进行部署 原文地址:https://www.cnblogs.com/xwgli/p/12289703.html

设置ros环境变量到工作空间

设置ROS环境变量 echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc

Ros集成开发环境配置

参考资料: http://blog.csdn.net/yangziluomu/article/details/50848357 ROS使用IDE Eclipse http://blog.csdn.net/anzhu_111/article/details/5946634 如何在Ubuntu中使用Eclipse + CDT开发C/C++程序 http://www.cnblogs.com/lidabo/p/3808464.html linux下c++开发环境安装(eclipse+cdt) http:

Ubuntu虚拟机+ROS+Android开发环境配置笔记

Ubuntu虚拟机+ROS+Android开发环境配置笔记 虚拟机设置: 1.本地环境:Windows 7:VMWare:联网 2.虚拟环境 :Ubuntu 14.04, 比较稳定,且支持很多ROS 3.虚拟机配置:硬盘至少50G,因为整个工具链配置起来需要很多空间,性能方面可以尽量往高配置. 4.虚拟环境搭建起来后,Ubuntu会弹出提示窗口询问是否升级软件,升级完后重启,约30分钟,取决于网络环境. 5.重启后,terminal执行以下: $ sudo apt-get upgrade $ s

cd命令和roscd命令的区别,并解决环境变量问题

cd命令和roscd命令都是切换到指定目录的命令.不同的是,cd是Linux系统的命令,在使用时必须指定目标目录的完整路径:而roscd是ros系统中的命令,它可以直接切换到指定目录(ros系统中的软件包),而不需要输入冗长的完整路径. 例如,要切换到roscpp这个软件包,两个命令的格式分别为: cd /opt/ros/kinetic/share/roscpp    roscd roscpp 显然,在ros系统中,roscd要比cd命令更加方便. 但在使用的过程中,我们有时候会发现,roscd

Asp.Net Core 如何在 IIS 中设置环境变量

当运行一个 Asp.Net Core 应用的时候, WebHostBuilder 根据环境变量来判断当前运行的是哪个环境,可能是 Development,Staging或者Production.你也可以设置成随便的一个字符串. 这个链接将会告诉你 如何在各种平台各种环境中设置环境变量.但如果你使用 IIS来代理 Asp.Net Core.你需要在 web.config 中设置环境变量 <configuration> <system.webServer> <handlers&g

聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]

聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数] 较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参数.环境变量和物理文件作为原始配置数据的来源,如果采用物理文件作为配置源,我们可以选择不同的格式(比如XML.JSON和INI等) .如果这些默认支持的配置源形式还不能满足你的需求,我们还可以通过注册自定义ConfigurationSour