【ROS2指南-1】配置ROS2环境

news2024/11/16 3:47:41

资料来源Configuring your ROS 2 environment — ROS 2 Documentation: Dashing documentationhttp://docs.ros.org/en/dashing/Tutorials/Configuring-ROS2-Environment.html

目标:本教程将向您展示如何准备 ROS 2 环境。

教程级别:初学者

时间: 5分钟

内容

  • 背景

  • 先决条件

  • 任务

    • 1 源安装文件

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

    • 3 添加colcon_cd到您的 shell 启动脚本

    • 4 检查环境变量

  • 概括

  • 下一步

  • 相关内容

背景

ROS 2 依赖于使用 shell 环境组合工作区的概念。“工作区”是一个 ROS 术语,指的是您在系统上使用 ROS 2 进行开发的位置。核心 ROS 2 工作区称为底层。随后的本地工作空间称为上层。使用 ROS 2 进行开发时,您通常会同时激活多个工作区。

结合工作区可以更轻松地针对不同版本的 ROS 2 或不同的包集进行开发。它还允许在同一台计算机上安装多个 ROS 2 发行版(例如 Dashing 和 Eloquent)并在它们之间切换。

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

先决条件

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

本教程中使用的命令假定您遵循了适用于您的操作系统的二进制包安装指南(适用于 Linux 的 Debian 包)。如果您是从源代码构建的,您仍然可以继续操作,但安装文件的路径可能会有所不同。如果您从源代码安装,您也将无法使用该命令(在初级教程中经常使用)。

sudo apt install ros-<distro>-<package>

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

任务

1 源安装文件

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

source /opt/ros/dashing/setup.bash

PS:确切的命令取决于您安装 ROS 2 的位置。如果您遇到问题,请确保文件路径指向您的安装。

2 将 source俄添加到您的 shell 启动脚本

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

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

3 添加colcon_cd到您的 shell 启动脚本

该命令colcon_cd允许您快速将 shell 的当前工作目录更改为包的目录。作为一个例子会很快带你到目录。

colcon_cd some_ros_package

~/ros2_install/src/some_ros_package

echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc
echo "export _colcon_cd_root=~/ros2_install" >> ~/.bashrc

根据您的安装方式colcon_cd和工作区的位置,上述说明可能会有所不同,请参阅文档以获取更多详细信息。要在 Linux 和 macOS 中撤消此操作,请找到系统的 shell 启动脚本并删除附加的 source 和 export 命令。

4 检查环境变量

查找 ROS 2 安装文件将设置运行 ROS 2 所需的几个环境变量。如果您在查找或使用 ROS 2 包时遇到问题,请确保您的环境已使用以下命令正确设置:

printenv | grep -i ROS

检查是否设置了ROS_DISTROROS_VERSION之类的变量。

ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=dashing

如果环境变量设置不正确,请返回您遵循的安装指南的 ROS 2 包安装部分。如果您需要更具体的帮助(因为环境设置文件可能来自不同的地方),您可以从社区获得答案。

3.1 ROS_DOMAIN_ID变量

有关 ROS 域 ID 的详细信息,请参阅域 ID文章。

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

export ROS_DOMAIN_ID=<your_domain_id>

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

echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc

概括

使用前需要正确配置ROS 2开发环境。这可以通过两种方式完成:在您打开的每个新 shell 中获取安装文件,或者将 source 命令添加到您的启动脚本中。

如果您在定位或使用 ROS 2 包时遇到任何问题,您应该做的第一件事是检查您的环境变量并确保它们被设置为您想要的版本和发行版。

下一步

现在您已经安装了一个可用的 ROS 2,并且知道如何获取其安装文件,您可以开始使用turtlesim 工具学习 ROS 2 的来龙去脉。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js控制页面随浏览器放大缩小,页面布局不变

一.给App.vue设置minWidth、minHeight、maxWidth以及maxHeight,值为浏览器的可视窗口大小(我的浏览器不全屏的时候是1920*937,全屏的时候是1920*1080) 1.在main.js中获取浏览器的宽高,并挂载到全局变量上以便使用 // 浏览器窗口,这个地方值不会变,你任意拉扯浏览器也不会改变…

【数据库基本操作】打开数据库

一、启动与关闭 只介绍一种方法&#xff1a; 打开命令行工具&#xff0c;以管理员身份运行 1.启动数据库 net start mysql80 //80是在安装的时候设置的名字&#xff08;默认&#xff09;&#xff0c;不用在意 2.关闭数据库 net stop mysql80 如题已经成功&#…

场景搭建、素材库、在线标绘等,四维轻云地理空间数据云管理平台新增了这些功能

四维轻云是一款地理空间数据云管理平台&#xff0c;具有地理空间数据在线管理、展示及分享等功能。在四维轻云平台中&#xff0c;用户可以不受时间地点的限制&#xff0c;随时随地管理、查看及分享各类地理空间数据。 为了更好地满足用户需求和进行地理空间数据在线管理&#…

【C++从入门到放弃】string全方面分析(常用接口、模拟实现)

&#x1f9d1;‍&#x1f4bb;作者&#xff1a; 情话0.0 &#x1f4dd;专栏&#xff1a;《C从入门到放弃》 &#x1f466;个人简介&#xff1a;一名双非编程菜鸟&#xff0c;在这里分享自己的编程学习笔记&#xff0c;欢迎大家的指正与点赞&#xff0c;谢谢&#xff01; strin…

d2l 文本预处理textDataset

这一节极其重要&#xff0c;重要到本来是d2l的内容我也要归到pyhon封面&#xff0c;这里面class的操作很多&#xff0c;让我娓娓道来&#xff01; 目录 1.要实现的函数 2.读取数据集 3.词元化 4.Vocab类 4.1count_corpus(tokens) 4.2class中的各种self 4.2.1 _token_fr…

CS5260设计电路|替代RTD2169设计方案|Typec转VGA方案应用设计

CS5260,RTD2169,AG9300都可实现Type-C TO VGA转换器设计,适用于笔记本电脑、主板、台式机、适配器和对接系统等多个细分市场和显示器应用程序&#xff0c; CS5260设计电路如下&#xff1a; 2. CS5260功能特性&#xff1a; USB-C型规格1.2 VESA显示端口tm (DP) v1.4兼容接收机…

nvm安装及使用

nvm是一个node的版本管理工具。 nvm-windows下载 1、安装 首先要卸载电脑上已经有的node版本&#xff0c;注意需要卸载干净&#xff0c;再安装nvm 一路 next 安装就可以了。 安装成功后&#xff0c;以管理员身份运行&#xff08;很重要&#xff01;&#xff01;&#xff01;&…

MIPI 打怪升级之DCS篇

目录1 Overview2 Display Architectures2.1 The Type 1 Display Architecture3 Power Level3.1 Type 1 Display Architecture Power Change Sequences3.2 Type 2 Display Architecture Power Change Sequences3.3 Type 3 Display Architecture Power Change Sequences4 Gamma C…

unity的学习,准备搞一款mmo小游戏,服务器和客户端从零学

如代码所示&#xff0c;简单了解一下。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class test : MonoBehaviour { void Awake(){Debug.Log("awake hello world!");}// 当脚本可用时&#xff0c;也就是打勾的时候可以…

线程同步-信号量-互斥量-条件变量

文章目录线程同步信号量互斥量条件变量线程同步 线程同步其实实现的是线程排队。防止线程同步访问共享资源造成冲突。多个线程访问共享资源的代码有可能是同一份代码&#xff0c;也有可能是不同的代码&#xff1b;无论是否执行同一份代码&#xff0c;只要这些线程的代码访问同…

Java避免死锁的几个常见方法(有测试代码和分析过程)

目录 Java避免死锁的几个常见方法 死锁产生的条件 上死锁代码 然后 &#xff1a;jstack 14320 >> jstack.text Java避免死锁的几个常见方法 Java避免死锁的几个常见方法 避免一个线程同时获取多个锁。避免一个线程在锁内同时占用多个资源&#xff0c;尽量保证每个锁…

Geoserver启动时提示:The GEOSERVER_HOME variable is not defined

场景 GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)&#xff1a; GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)_霸道流氓气质的博客-CSDN博客 在下载解压之后点击启动bat时提示: The GEOSERVER_HOME environment variable is not defin…

row_number 和 cte 使用实例:背包问题

row_number 和 cte 使用实例&#xff1a;背包问题背包问题01背包解决同一行数据需要引用两次的问题对 for xml 的结果进行引用时的处理完全背包多重背包小结背包问题 最近老顾从新把算法捡了起来&#xff0c;碰到了各种各样以前没见过的&#xff0c;工作中没遇到的问题&#x…

leetcode:快乐数(详解)

前言&#xff1a;内容包括&#xff1a;题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字…

坚鹏:《银行业数字化转型指导意见》政策解读及银行数字化转型

中国银保监会《关于银行业保险业数字化转型的指导意见》政策解读及银行数字化转型课程背景&#xff1a; 很多银行存在以下问题&#xff1a; 不知道如何准确理解中国银保监会《关于银行业保险业数字化转型的指导意见》相关政策 不清楚中国银保监会《关于银行业保险业数字化转型…

使用AI进行“文本纠错”

AI在现实中的应用有很多&#xff0c;你有没有想过&#xff0c;它还可以进行文本纠错呢&#xff1f;传统的校对既耗时又枯燥&#xff0c;通过“AI纠错”&#xff0c;不仅能更快完成&#xff0c;还能提高准确度。那么AI“文本纠错”背后的原理是什么呢&#xff1f;和我一起看看吧…

Python综合案例-小费数据集的数据分析(详细思路+源码解析)

目录 1. 请导入相应模块并获取数据。导入待处理数据tips.xls&#xff0c;并显示前5行。 2、分析数据 3.增加一列“人均消费” 4查询抽烟男性中人均消费大于5的数据 5.分析小费金额和消费总额的关系&#xff0c;小费金额与消费总额是否存在正相关关系。画图观察。 6分析男女顾…

chatGPT写文章攻略-用chatGPT写网文

chatGPT可以写中文吗 ChatGPT可以写中文。在过去的几年中&#xff0c;许多深度学习机器翻译模型已经开始探索中英文翻译、去噪声、语音识别等任务&#xff0c;并且在这些任务中ChatGPT具有最先进的表现。 目前&#xff0c;例如GPT-3和GPT-2都可以用来生成中文文本。为此&…

以太坊上海升级,DeFi 3.0的序章

引言 距离以太坊Shapella升级&#xff08;也曾被称为上海升级&#xff09;仅剩一天的时间&#xff01;自2015年以太坊上线以来&#xff0c;它已成为世界排名第二的加密虚拟资产&#xff0c;以太坊诞生于行业的意义在于它能够让开发者构建智能合约和去中心化应用&#xff08;DAp…

Jumpserver与Freeipa集成(以及其他配置)

背景&#xff1a; jumpserver的安装参照&#xff1a;jumpserver的简单安装使用&#xff0c;Freeipa的安装参照&#xff1a;Freeipa的简单搭建配置。准备将Freeipa与Jumpserver集成。其实Freeipa搭建后linux客户端如果安装了Freeipa client。也能完成用户的授权权限管理了&…