ROS2依赖于使用shell(终端)环境组合工作空间的概念。工作空间也就是‘workspace’是一个ROS术语指的是系统上使用ROS2进行开发的位置,也就是编写代码的地方。ROS2系统的安装目录称为'underlay',自己创建的工作空间称为'overlay'。我们可以通过source不同空间的环境变量脚本来更换所使用的workspace,包括ROS2的版本。在安装完毕ROS2之后(读者可以自行百度安装方法,推荐源码方式安装),需要对bash启动脚本进行设置。以下内容仅针对Linux系统。如果给您带来帮助,希望能给点个关注,以后还会陆续更新有关机器人的内容,点个关注不迷路~欢迎大家一起交流学习。

1.source一下setup文件

当你需要运行ROS 2命令,你需要在每一个新shell上运行如下命令:

source /opt/ros/foxy/setup.bash

后面的文件位置为ROS2的安装位置。

2.自动source

为了避免每次在新打开的shell进行source操作,可以将命令添加到shell的启动脚本里。在终端运行:

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

如果撤销此操作,直接打开.bahrc文件,删掉添加的内容即可。

3.自动进入工作区(不常用)

colcon_cd命令可以快速的将shell的当前工作目录更改为包的目录。以下为示例,colcon_cd some_ros_package会自动shell的当前工作目录更改为~/ros2_install:

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

4.检查环境变量是否设置成功

在shell运行:

printenv | grep -i ROS

检查变量ROS_DISTROROS_VERSION是否设置。如果设置好了,则终端输出:

ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=foxy

如果没有正确设置,则检查ROS2的安装路径是否正确。

5.总结

在使用之前,需要正确配置ROS2开发环境。 这可以通过两种方式实现:在打开的每个新shell中source安装文件的源代码,或者将source命令添加到启动脚本中。 如果在定位或使用带有ROS 2的包时遇到任何问题,那么应该做的第一件事是检查环境变量,并确保被设置为想要的版本。

都看到这了,点个推荐再走吧~

未经允许,禁止转载。

ROS2学习之旅(2)——配置ROS2环境的更多相关文章

  1. ROS2学习之旅(4)——理解ROS2 Graph中的节点

    ROS(2)图(ROS(2) graph)是一个同时处理数据的基于ROS2元素的网络,它包含了所有的可执行文件以及它们之间的连接.图中的基本元素包括:节点(nodes).话题(topics).服务(s ...

  2. ROS2学习之旅(12)——创建工作空间

    workspace(工作空间)是包含ROS2 packages(包)的文件夹.在使用ROS 2之前,有必要在终端中source一下ROS 2的安装工作区,这样就可以在该终端中使用ROS 2的软件包. ...

  3. ROS2学习之旅(1)——初识ROS2

    本系列用来记录ROS2的学习过程,有错误或者不合理的地方请大家指正.由于博主具有ROS1的学习经历,会添加一些与ROS1的一些对比,当然这对于ROS2本身的学习内容没有丝毫影响,欢迎大家积极与我在评论 ...

  4. 【SSH学习笔记】—从配置Struts1环境到简单实例

    以下我将从一个简单点的计算器实例,介绍struts1的环境配置,以及其重要的两个核心类:ActionForm和Action  简单计算器实现思路: 1.提供一个输入界面,输入两个数字和运算符(+.-. ...

  5. 踩坑之旅:配置 ROS 环境

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16660252.html 最近在学习机器人相关的导航算法, ...

  6. Java学习笔记之linux配置java环境变量(三种环境变量)

    0x00 压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车 ...

  7. 假期学习【二】配置Scala环境(Ubuntu)以及配套Scala编程实验

    1.配置Scala环境所需要的所有命令(Ubuntu系统下) 其中scala-2.13.1版本在官网:https://www.scala-lang.org/download/  下载  2.出现该提示 ...

  8. ROS2学习之旅(13)——创建ROS2 功能包

    一个功能包可以被认为是ROS2代码的容器.如果希望能够管理代码或与他人共享代码,那么需要将其组织在一个包中.通过包,可以发布ROS2工作,并允许其他人轻松地构建和使用它. 在ROS2中,创建功能包使用 ...

  9. ROS2学习之旅(15)——编写简单的服务和客户节点(C++)

    当节点使用服务进行通信时,发送数据请求的节点称为客户节点,响应请求的节点称为服务节点.请求和响应的结构由.srv文件决定. 本文的例子是一个简单的整数加法系统:一个节点请求两个整数的和,另一个节点响应 ...

随机推荐

  1. 上传靶机实战之upload-labs解题

    前言 我们知道对靶机的渗透可以提高自己对知识的掌握能力,这篇文章就对上传靶机upload-labs做一个全面的思路分析,一共21个关卡.让我们开始吧,之前也写过关于上传的专题,分别为浅谈文件上传漏洞( ...

  2. Lua学习高级篇

    Lua学习高级篇 之前已经说了很多,我目前的观点还是那样,在嵌入式脚本中,Lua是最优秀.最高效的,如果您有不同的观点,欢迎指正并讨论,切勿吐槽.这个系列完全来自于<Programming in ...

  3. harbor搭建及使用

    harbor搭建及使用   1 系统及软件版本 1.1 系统版本 # uname -a Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP ...

  4. Linux 中/var/spool/postfix/maildrop目录下堆积大量小文件 如何删除

      Linux 中/var/spool/postfix/maildrop目录下堆积大量小文件 如何删除 1.先删除maildrop目录下的通知邮件文件 命令:find /var/spool/postf ...

  5. GO语言面向对象05---接口的多态

    package main import "fmt" type Fighter interface { Attack() (bloodloss int) Defend() } /*骑 ...

  6. Resnet-50网络结构详解

    解决的问题: 由于梯度消失,深层网络很难训练.因为梯度反向传播到前面的层,重复相乘可能使梯度无穷小.结果就是,随着网络的层数更深,其性能趋于饱和,甚至迅速下降. 核心思想: 引入一个恒等快捷键(也称之 ...

  7. 自定义 DataLoader

    自定义 DataLoader 如 数据输入 一文所介绍,OneFlow 支持两种数据加载方式:直接使用 NumPy 数据或者使用 DataLoader 及其相关算子. 在大型工业场景下,数据加载容易成 ...

  8. PyTorch 进行 Neural-Transfer

    PyTorch 进行 Neural-Transfer 1.简介 本文讲解如何实现由 Leon A. Gatys,Alexander S. Ecker和Matthias Bethge提出的Neural- ...

  9. Torchvision模型微调

    Torchvision模型微调 本文将深入探讨如何对 torchvision 模型进行微调和特征提取,所有这些模型都已经预先在1000类的magenet数据集上训练完成.将深入介绍如何使用几个现代的C ...

  10. 10: java数据结构和算法: 构建哈夫曼树, 获取哈夫曼编码, 使用哈夫曼编码原理对文件压缩和解压

    最终结果哈夫曼树,如图所示: 直接上代码: public class HuffmanCode { public static void main(String[] args) { //获取哈夫曼树并显 ...