【ROS2】初级:CLI工具 -配置环境

目标:本教程将指导您如何准备您的 ROS 2 环境。

 教程级别:初学者

 时间:5 分钟

 目录

  •  背景

  •  先决条件

  •  任务

    • 源代码设置文件

    • 将源添加到您的 shell 启动脚本

    • 检查环境变量

  •  摘要

  •  下一步

 背景

ROS 2 依赖于使用 shell 环境组合工作空间的概念。“Workspace 工作空间”是 ROS 中用于您的系统上正在进行 ROS 2 开发的位置的术语。核心的 ROS 2 工作空间称为底层。随后的本地工作空间称为覆盖层。在使用 ROS 2 开发时,通常会同时有多个工作空间处于活动状态。

将工作空间结合起来可以更容易地针对 ROS 2 的不同版本或不同的包集进行开发。它还允许在同一台计算机上安装多个 ROS 2 发行版(或“发行套件”,例如 Dashing 和 Eloquent)并在它们之间切换。

这是通过每次打开一个新的 shell 时都获取设置文件,或者在您的 shell 启动脚本中添加一次 source 命令来实现的。如果不获取设置文件,您将无法访问 ROS 2 命令,或找到或使用 ROS 2 包。换句话说,您将无法使用 ROS 2。

 先决条件

在开始这些教程之前,请按照 ROS 2 安装页面上的说明安装 ROS 2。

本教程中使用的命令假设您已按照操作系统的二进制包安装指南(Linux 的 Debian 包)进行了安装。如果您是从源代码构建的,仍然可以继续操作,但您的设置文件的路径可能会有所不同。如果您从源代码安装,您也无法使用 sudo apt install ros-<distro>-<package> 命令(在初级教程中经常使用)。

如果您使用的是 Linux 或 macOS,但还不熟悉 shell,本教程将会有所帮助。

 任务

1 Source the setup files

您需要在每个新打开的 shell 上运行此命令,以便访问 ROS 2 命令,如下所示:

# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/jazzy/setup.bash
source ~/ros2_jazzy/install/setup.sh

 便条

确切的命令取决于您在哪里安装了 ROS 2。如果您遇到问题,请确保文件路径指向您的安装。

将源添加到您的 shell 启动脚本

如果您不想每次打开新的 shell 时都必须加载设置文件(跳过任务 1),那么您可以将该命令添加到您的 shell 启动脚本中:

echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
echo "source ~/ros2_jazzy/install/setup.sh" >> ~/.bashrc

要撤销此操作,请找到系统的 shell 启动脚本并删除附加的 source 命令。

检查环境变量

加载 ROS 2 设置文件将设置操作 ROS 2 所需的多个环境变量。如果您在查找或使用 ROS 2 包时遇到问题,请确保使用以下命令正确设置了您的环境:

printenv | grep -i ROS

02cfb1f8d40af988d5156ca677b1eb3b.png

检查像 ROS_DISTRO 和 ROS_VERSION 这样的变量是否已设置。

ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=jazzy
如果环境变量没有正确设置,请返回到您所遵循的安装指南中的 ROS 2 包安装部分。如果您需要更具体的帮助(因为环境设置文件可能来自不同的地方),您可以从社区获得答案。https://robotics.stackexchange.com/
3.1 变量 ROS_DOMAIN_ID 

有关 ROS 域 ID 的详细信息,请参阅域 ID 文章。https://docs.ros.org/en/jazzy/Concepts/Intermediate/About-Domain-ID.html

e4bc3096807cbfc1cb7c3725a4f78cbe.png

b52e8b37845ac57b24f229e80fec9b3f.png

418418b4fd6af54836bcf2f4dcf89e5e.png

一旦您为 ROS 2 节点组确定了一个唯一整数,您可以使用以下命令设置环境变量:

export ROS_DOMAIN_ID=<your_domain_id>

要在 shell 会话之间保持此设置,您可以将该命令添加到您的 shell 启动脚本中:

echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc
3.2 变量 ROS_AUTOMATIC_DISCOVERY_RANGE 

默认情况下,ROS 2 通信不限于 localhost。 ROS_AUTOMATIC_DISCOVERY_RANGE 环境变量允许您限制 ROS 2 发现范围。在某些设置中使用 ROS_AUTOMATIC_DISCOVERY_RANGE 是有帮助的,例如教室,那里多个机器人可能会发布到同一个主题,导致奇怪的行为。有关更多详细信息,请参阅改进的动态发现。

 摘要

ROS 2 开发环境在使用前需要正确配置。这可以通过两种方式完成:要么在你打开的每一个新 shell 中配置设置文件,要么在你的启动脚本中添加 source 命令。

如果您在定位或使用 ROS 2 的包时遇到任何问题,您应该首先做的是检查您的环境变量,并确保它们设置为您所期望的版本和发行版。

 下一步

现在您已经安装了 ROS 2 并且知道如何配置其设置文件,您可以开始使用 turtlesim 工具学习 ROS 2 的方方面面。

https://community.rti.com/content/forum-topic/statically-configure-firewall-let-omg-dds-traffic-through  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/769303.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# Winform自制多轴力臂(简单易懂,方便扩展)

WinForms框架广泛应用于上位机开发领域&#xff0c;其中对力臂的精准控制是常见需求之一。本文深入探讨了如何创建自定义的多轴力臂图形控件&#xff0c;不仅涵盖了力臂图形控件的角度调节机制&#xff0c;还详细展示了如何实现力臂运动的生动动态效果&#xff0c;为开发者提供…

解决VSCode中导入PyTorch时报错的HTTP错误与Channel冲突

问题描述与解释 在Anaconda中成功安装PyTorch&#xff0c;并进行了验证&#xff1a; (base) C:\Users\Hui>conda activate pytorch(pytorch) C:\Users\\Hui>python Python 3.8.19 (default, Mar 20 2024, 19:55:45) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on …

妙手ERP支持授权TikTok Shop全托管店铺,支持智能编辑、定时发布等操作!

全托管模式可以说是近两年跨境电商的热潮&#xff0c;在全托管模式下&#xff0c;卖家只需备货&#xff0c;平台进行运营、履约。因此&#xff0c;这种模式也迅速成为计划出海的跨境卖家重点关注方向。 一、TikTok Shop全托管 目前&#xff0c;几大主流跨境电商平台都已上线全…

springboot旅游管理系统-计算机毕业设计源码16021

摘 要 本文旨在设计和实现一个基于Spring Boot框架的旅游管理系统。该系统通过利用Spring Boot的快速开发特性和丰富的生态系统&#xff0c;提供了一个高效、可靠和灵活的解决方案。系统将实现旅游景点信息的管理、线路规划、跟团游玩、旅游攻略、酒店信息管理、订单管理和用户…

【操作与配置】VSCode配置C/C++及远程开发

MINGW环境配置 进入网站&#xff0c;如下图下载&#xff1a;MinGW Distro - nuwen.net 运行安装包&#xff0c;使其安装在你指定的位置 将MinGW的bin目录添加到系统的环境变量PATH中 使用 winx 选择进入“系统”点击“高级系统设置”在“系统属性&#xff1a;高级”窗口中&am…

Vue前端打包

关于NGINX 介绍:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;在各大型互联网公司都有非常广泛的使用。 NGiMx 官网:https://nginx.org/ conf 配置文件目录 html静态资源文件目录 lo…

学习笔记(linux高级编程)11

进程间通信 》信号通信 应用&#xff1a;异步通信。 中断&#xff0c;&#xff0c; 1~64&#xff1b;32应用编程。 如何响应&#xff1a; Term Default action is to terminate the process. Ign Default action is to ignore the signal. wait Core Default action is …

Ignis 应用: 社交 + 游戏 + 工业4.0,Ignis 构建Web3生态圈

引言 在数字经济快速发展的今天&#xff0c;Web3技术为我们带来了前所未有的变革。作为Ardor平台的主要子链&#xff0c;Ignis公链在推动Web3生态系统建设中扮演了重要角色。本文将通过介绍Vessel Chain、Mythical Beings和Bridge Champ等应用&#xff0c;探讨Ignis公链如何通…

基于循环神经网络的一维信号降噪方法(简单版本,Python)

代码非常简单。 import torch import torch.nn as nn from torch.autograd import Variable from scipy.io.wavfile import write #need install pydub module #pip install pydub import numpy as np import pydub from scipy import signal import IPython import matplot…

基于强化学习DQN的股票预测【股票交易】

强化学习笔记 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 第四章 值迭代和策略迭代 第五章 强化学习实例分析:GridWorld 第六章 蒙特卡洛方法 第七章 Robbins-Monro算法 第八章 多臂老虎机 第九章 强化学习实例分析:CartPole 第十章 时序差分法 第十一…

swiftui中常用组件picker的使用,以及它的可选样式

一个可选项列表就是一个picker组件搞出来的&#xff0c;它有多个样式可以选择&#xff0c;并且可以传递进去一些可选数据&#xff0c;有点像前端页面里面的seleted组件&#xff0c;但是picker组件的样式可以更多。可以看官方英文文档&#xff1a;PickerStyle | Apple Developer…

【Week-G2】人脸图像生成(DCGAN)--pytorch版本

文章目录 0、遇到的问题1、配置环境 & 导入数据2、定义模型3、训练模型4、什么是DCGAN? &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 本文环境&#xff1a; 系统环境&#xff1a;…

从搜索框的提示词中再探防抖和节流

前言 最近逛掘金时&#xff0c;看到了一篇文章。发现是我之前写过的一篇文章主题是防抖和节流的&#xff0c;看防抖时没感觉哪里不一样&#xff0c;但是当我看到节流时发现他的节流怎么这么繁琐(・∀・(・∀・(・∀・*)&#xff1f; 抱着疑惑的想法&#xff0c;我仔细拜读了这…

PyCharm 如何设置作者信息

1、点击pycharm右上角的齿轮&#xff0c;选择settings 2、选择editor 3、选择 Editor File and Code Templates 4、选择作者信息的文件类型&#xff0c;中间选择框选择Python Script 5、然后在右边的输入框中输入相关的信息 # -*- coding: utf-8 -*- """ Time …

kotlin接口,前端怎么调用?

文章目录 &#x1f389;欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;该系列文章专栏&#xff1a;Java学习路线&#x1f4dc;其他专栏&#xff1a;Java学习路线 Jav…

构建大数据生态:Sqoop、Hadoop、IDEA和Maven的完整安装与数据预处理指南【实训Day03】

一、Sqoop安装 1 上传安装包并解压缩(在hadoop101上) # cd /opt/software 点击xftp上传sqoop的安装文件sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz # tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/ # cd /opt/module/ # mv s…

vue3+vue-router+vite 实现动态路由

文章中出现的代码是演示版本&#xff0c;仅供参考&#xff0c;实际的业务需求会更加复杂 什么是动态路由 什么场景会用到动态路由 举一个最常见的例子&#xff0c;比如说我们要开发一个后台管理系统&#xff0c;一般来说后台管理系统都会分角色登录&#xff0c;这个时候也就涉…

基于Vue.js和SpringBoot的地方美食分享网站系统设计与实现

你好&#xff0c;我是计算机专业的学姐&#xff0c;专注于前端开发和系统设计。如果你对地方美食分享网站感兴趣或有相关需求&#xff0c;欢迎随时联系我。 开发语言 Java 数据库 MySQL 技术 Vue.js SpringBoot Java 工具 Eclipse, MySQL Workbench, Maven 系统展示…

【Spring Boot】关系映射开发(一):一对一映射

关系映射开发&#xff08;一&#xff09;&#xff1a;一对一映射 1.认识实体间关系映射1.1 映射方向1.2 ORM 映射类型 2.实现 “一对一” 映射2.1 编写实体2.1.1 新建 Student 实体2.1.2 新建 Card 实体 2.2 编写 Repository 层2.2.1 编写 Student 实体的 Repository2.2.2 编写…

AMEYA360代理:海凌科60G客流量统计雷达模块 4T4R出入口绊数计数

数字化时代&#xff0c;不管是大型商城还是各种连锁店&#xff0c;客流统计分析都可以帮助企业更加精准地了解顾客需求和消费行为。 海凌科推出一款专用于客流量统计的60G雷达模块&#xff0c;4T4R&#xff0c;可以实时进行固定范围内的人体运动轨迹检测&#xff0c;根据人体的…