ROS的source用法--环境变量

source devel/setup.bashsource /opt/ros/humble/setup.sh 这两个命令在 ROS(Robot Operating System)环境中确实有区别,主要体现在以下几个方面:

1. 作用范围

  • source /opt/ros/humble/setup.sh

    • 作用:设置 ROS Humble 版本的全局环境变量。这些环境变量指向 ROS 官方安装的路径,使得用户可以使用 ROS 官方提供的命令、工具和库。

    • 适用场景:当你需要使用 ROS 官方提供的功能,如 ros2 命令行工具、官方的库文件等时,需要执行这个命令。

  • source devel/setup.bash

    • 作用:设置本地工作空间(workspace)的环境变量。当你在本地工作空间中编译(build)了自定义的 ROS 包(packages)后,这个命令会将这些自定义包的路径添加到环境变量中,使得这些包能够被 ROS 系统识别和使用。

    • 适用场景:当你开发了自己的 ROS 包,并且在本地工作空间中进行了编译,需要使用这些自定义包时,执行这个命令可以将自定义包的路径添加到环境变量中。

2. 环境变量的覆盖关系

  • 优先级:如果同时执行了 source /opt/ros/humble/setup.shsource devel/setup.bashdevel/setup.bash 中设置的环境变量会覆盖 /opt/ros/humble/setup.sh 中设置的同名环境变量。

  • 原因devel/setup.bash 通常会在设置环境变量时,将本地工作空间的路径放在前面。例如,对于 PATH 环境变量,devel/setup.bash 会将本地工作空间的可执行文件路径插入到 PATH 的前面,这样在执行命令时,优先查找本地工作空间中的可执行文件。

3. 使用场景

  • 仅使用 ROS 官方功能

    • 如果你只需要使用 ROS 官方提供的功能,如运行官方的示例程序、使用官方的工具等,只需要执行 source /opt/ros/humble/setup.sh

  • 开发自定义 ROS 包

    • 当你在本地工作空间中开发了自己的 ROS 包,并且进行了编译,需要使用这些自定义包时,应该先执行 source /opt/ros/humble/setup.sh,然后再执行 source devel/setup.bash。这样可以确保既能使用 ROS 官方的功能,又能使用本地工作空间中的自定义包。

示例

假设你有一个本地工作空间 my_ws,并且在其中编译了自定义的 ROS 包,你可以按照以下步骤设置环境变量:

bash复制

# 首先设置 ROS 官方环境变量
source /opt/ros/humble/setup.sh

# 然后设置本地工作空间的环境变量
source ~/my_ws/devel/setup.bash

通过这种方式,你可以同时使用 ROS 官方的功能和本地工作空间中的自定义包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值