二、ROS2基本操作

2023-05-16

ROS2节点

ROS2的节点讲究分工合作,每个节点负责一个单独的模块化功能。
举一个激光雷达的例子,一个节点负责获取激光雷达的扫描数据,一个节点负责处理激光雷达数据,还有一个节点负责控制车轮转动,一个节点负责定位等等。如何实现这么多节点的通信呢?
实际上,ROS2早已为你准备好四种通信方式:
1、话题-topics
2、服务-servicces
3、动作-Action
4、参数-parameters

ROS2节点基本操作

启动节点的指令 ros2 run <package_name> <executable_name>
其意义为启动包下的中的节点,据个例子 ros2 run turtlesim turtlesim_node,这就是启动乌龟模拟器的那条指令。
查看节点列表

ros2 node list

查看节点信息

ros2 node info <node_name>

重新映射节点名称(给节点换一个名字,因为不能同时运行两个同名的节点,所以需要用到换名,例如下面这行代码就是把turtlesim换名字为my_turtle)

ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

ROS2工作空间与功能包

一个工作空间下可以有多个功能包,一个功能包可以有多个节点存在。
可以浅显的理解为一个文件夹,该文件夹下有src以及若干个功能包,所以一般新建一个工作空间的操作如下:

mkdir -p turtle_ws/src

再切换到工作空间

cd turtle_ws/src

而功能包可以理解为存放节点的地方,ROS2的功能包根据编译方式不同可以分为三种类型
1、ament_python,适用于python程序
2、cmake,适用于C++
3、ament_cmake,适用于C++程序,是cmake的增强版

安装获取功能包指令

sudo apt install ros-<version>-package_name
例如 sudo apt install ros-galactic-turtlesim

创建功能包

ros2 pkg create <package-name> --build-type {cmake,ament_cmake,ament_python} --dependencies<依赖名字>

列出可执行文件

ros2 pkg executables

列出某个功能包的可执行文件

ros2 pkg executables turtlesim

列出所有包

ros2 pkg list

输出某个包所在路径的前缀

ros2 pkg prefix <package-name>
例如找出乌龟模拟器的前缀 ros2 pkg prefix turtlesim

列出功能包的清单描述文件

ros2 pkg xml turtlesim

ROS2构建工具Colcon

colcon是一个功能包构建工具,就是用来编译代码的。
ROS2默认没有安装colcon,需要手动安装,安装指令如下:

sudo apt-get install python3-colcon-common-extensions

输入colcon指令,如果弹出usage提示则证明安装成功
下面开始实际动手编一个东西测试一下
1、创建一个工作区colcon_test

mkdir colcon_test && cd colcon_test

2、下载一个ROS2示例源码测试一下
需注意的是,-b后面对应的是你使用的ROS2版本,这里我使用的是galactic

git clone https://github.com/ros2/examples src/examples -b galactic

3、编译工程

colcon build

以上三步完成后,可以运行一个自己编的节点了,方法如下:
1、打开终端进入到我们刚才创建的工作空间里面,先source一下资源

source install/setup.bash

2、运行一个订阅节点,用以接受其他发布者的消息

ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function

3、ctrl+alt+T再打开一个新的终端,先source,再运行一个发布者节点,就可以在刚才运行的订阅节点收到消息啦

source install/setup.bash
ros2 run examples_rclcpp_minimal_publisher publisher_member_function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二、ROS2基本操作 的相关文章

  • expo优势

    优点一 xff1a 一条命令生成apk或者ipa文件 xff0c 方便发布到应用商店 优点二 xff1a 代码publish xff0c 应用内热更新 优点三 xff1a 比react native多出不少实用原生组件 xff0c 比如一些
  • C++一些常见问题

    关于赋值的疑问 1 编译器为每个类默认重载了赋值操作符 xff1b 2 默认的赋值操作符仅完成了浅拷贝 xff1b 3 当需要进行深拷贝时必须重载赋值操作符 xff1b 4 赋值操作符与拷贝构造函数有相同的存在意义 实例分析 xff1a s
  • 树莓派学习(二):更换镜像源以及安装虚拟环境miniforge3

    树莓派学习 xff08 二 xff09 xff1a 更换镜像源以及安装pytorch 步骤一 xff1a 更换镜像源步骤二 xff1a 下载前的准备2 1 原来numpy库的卸载 步骤三 xff1a 安装miniforge3 步骤一 xff
  • 3.1 python版MapReduce基础实战

    输入文件在你每次点击评测的时候 xff0c 平台会为你创建 xff0c 无需你自己创建 xff0c 只需要启动HDFS xff0c 编写python代码即可 第1关 xff1a 成绩统计 mapper py usr bin python3
  • 怎么获取li里面的内容

    获取li的内容 span class token tag span class token tag span class token punctuation lt span ul span span class token punctuat
  • 偏移量的概念

    span class token selector span span class token punctuation span span class token property padding span span class token
  • js中的二级联动

    省份市级城市联动 span class token doctype lt DOCTYPE html gt span span class token tag span class token tag span class token pun
  • 页面跳转的几种方法

    location对象 href assgin跳转到另一个页面可以返回到原来的页面 location span class token punctuation span href span class token operator 61 sp
  • 学习JS基础部分一

    数据类型 分支结构 循环结构 数据类型 简单数据类默认值Number0BooleanfalseString Undefinedundefinednullnull 复杂数据类型默认值Array Object 分支结构 分支语句说明if 条件
  • 来,带你见识一下CT三维重建

    文 xff1a 北京协和医院放射科孙昊 来源 xff1a 从医开始 xff0c 协和八的奇妙临床笔记 相信各位同学在临床工作中 xff0c 已经接触到很多CT三维重建的图像了 xff0c 那么CT三维重建到底是个啥东东 xff1f 这个问题
  • 数组常用方法

    concat span class token keyword let span arr1 span class token operator 61 span span class token punctuation span span c
  • 深拷贝和浅拷贝

    浅拷贝和深拷贝的区别 浅拷贝是复制原数据的数据内容 xff0c 引用原数据的地址 xff1b 当改变复制之后的数据时 xff0c 原数据的数据内容也会被改变 xff0c 因为这是引用原来数据的地址 xff0c 改变的是原数据地址的数据内容
  • Set集合和Map集合

    Set集合 用于存放不重复的数据 xff0c 通过构造函数的形式 参数必须是一个可迭代对象 创建Set对象 span class token keyword const span s1 span class token operator 6
  • js树型结构处理

    span class token comment 获取树形结构并处理 span span class token comment 当child为null时处理 span span class token comment 如果是childre
  • 姿态旋转与坐标变换

    姿态旋转与坐标变换 旋转还是变换 xff1f 坐标旋转 变换矩阵 xff08 Rotation Matrix xff09 等效旋转矢量 xff08 Axis Angle xff09 罗德里格斯公式 xff08 Rodrigues 39 s
  • Gitlab

    Gitlab Gitlab介绍 我们了解了git是以个人为中心 xff0c 但是人人都得数据交互呀 python程序员每天都忙着进行py交易 交互数据的方式 使用github或者码云等公有代码仓库 xff0c 托管代码的地方 xff0c 谁
  • word论文排版和写作04:用MathType和word公式编辑器插入数学公式

    写在前面 插入公式在论文写作中是一个常见的操作 xff0c 本文作为补充 xff0c 主要介绍如何规范和方便地在word中插入公式 主要的方式有两种 xff0c 一种是使用MathType xff0c 一种是使用word自带的公式编辑器 关
  • Jetson Nano ros melodic+realsense+aruco

    一 realsense SDK和realsense ros安装 参考链接 xff1a Ubuntu18 04 43 ROS melodic 安装使用 RealSenseD435i Lynn mg的博客 CSDN博客 ubuntu18安装re
  • ROS同步订阅realsense的彩色图和深度图(python实现)

    首先要保证realsense ros功能包的正常使用 xff0c 具体安装使用如下 xff1a Jetson Nano ros melodic 43 realsense 43 aruco 杰杰 xff01 的博客 CSDN博客 1 创建订阅
  • 用opencv的aruco库生成二维码marker标记

    用opencv的aruco库生成二维码marker标记 代码来源于官方提供的完整的工作实例create marker cpp 在opencv源码中的位置为opencv contrib 4 4 0 modules aruco samples

随机推荐

  • 树莓派上手实战之SSH下配置VNC服务器实现远程桌面(可以实现开机自启动vncserver)

    VNC是linux下面常用的远程桌面 xff0c 用它可以在windows或者unix主机上方便的通过网络操作远程主机而不需要一个额外的显示器 xff0c 非常实用 这篇教程将会详细讲解安装配置VNC服务器开启远程桌面服务的全部过程 首先
  • minikube搭建kubernetes

    系统环境 deepin15 11 安装virtualbox虚拟机 xff1a 应用商店就有安装minikube aizhao 64 aizhao hellonode curl Lo minikube https storage google
  • 安装软件时出现Command “python setup.py egg_info“ failed with error code 1 in /tmp的解决方案

    问题出现 pip3 install paramiko Collecting paramiko Downloading https pypi doubanio com packages be 6f f0ec5f5fb00d270ebd8094
  • flask基础总结(一)——从最简单的例子做起

    Flask是一个用Python编写的Web应用程序框架 xff0c 基于Werkzeug WSGI工具包和Jinja2模板引擎 下面从一个最简单的flask例子说起 span class token keyword from span fl
  • 为什么不建议对Intel Realsense的D400 Series和T265进行标定(Calibration)

    若非特殊情况或有专业设备 xff0c 不建议对相机进行标定 xff01 xff01 xff01 D400 Series 我就是在标定之后才发现 xff0c 标定就是个坑 xff01 xff01 xff01 我在标定后出现问题了才去问的售后
  • NVIDIA Xavier NX的Intel Realsense双目相机(T265+D435i)环境搭建

    文章目录 一 硬件部分二 环境配置1 安装ROS2 编译realsense xff08 1 xff09 查看版本 xff08 2 xff09 编译librealsense xff08 3 xff09 编译realsense ros xff0
  • 启动IntelRealsense的D435i没有数据输出的解决方法

    我在NVIDIA的NX上调试双相机的VIO时 xff0c 出现了一个问题 xff0c 在启动D435i后 xff0c 查看话题频率发现出现no new message的字样 我在包括github上寻找了很多资料和别人的解决方法 xff0c
  • windows下PX4飞行日志文件ulog转csv流程

    确保ulg文件可以使用FlightPlot等分析软件正常打开查看安装pyulog包 xff0c 开源地址 先安装anaconda xff0c 下载地址打开anaconda prompt 运行 pip install pyulog可通过在an
  • Windows平台对PX4源码进行编译的步骤

    主要使用到的工具就是PX4 Toolchain 1 首先去github上下载Toolchain安装包 xff0c 是一个 msi文件 xff0c 然后直接照着官网教程双击安装这个文件 注意最后的安装完成页有一个clone the PX4 r
  • ros多传感器融合

    转 xff1a http www rosclub cn post 1030 html 最近实验室老师在做一个多传感器数据采集实验 xff0c 涉及到了消息同步 所以就学习了ROS官网下的消息同步工具message filters http
  • 几种嵌入式RTOS的分析与比较

    1 4种操作系统的介绍 1 1 VxWorks VxWorks是美国WindRiver公司的产品 xff0c 是目前嵌入式系统领域中应用很广泛 xff0c 市场占有率比较高的嵌入式操作系统 VxWorks实时操作系统由400多个相对独立 短
  • 【python】python的命名规范:啥时候用驼峰啥时候用下划线啥时候用大写

    类属性 类方法 xff1b 私有属性 公有属性 xff1b 私有方法 公有方法 xff1b 静态属性 静态方法 xff1b python的命名规范 xx xx xx xff08 自用笔记 xff09
  • 修改Linux启动Logo(总结)

    修改Linux 启动Logo 完美 总结 1 修改启动Logo xff0c 换成自定义的图片 目的 xff1a 开机后显示自定义的图片 xff0c 替代小企鹅 xff08 1 xff09 准备一张 png 图片 xff08 2 xff09
  • 搞懂408数据结构中的结构体的定义

    对于一些跨考408的同学来说 xff0c 是不是经常会出现看见一些结构体的定义却不懂是什么意思 xff0c 或者让你定义一个节点类型时 xff0c 不懂各个部分的具体含义 希望这篇文章能够让你搞懂结构体到底是什么 xff0c 各个部分是什么
  • 无人机集群控制方案

    无人机集群控制方案 集群控制简介 多机器人群体控制系统一般分为集中式控制结构和分布式控制结构 集中式控制结构 xff1a 一个主控单元 xff0c 集中掌握了环境中全局信息和所有机器人的信息 xff0c 进行集中式处理任务与资源分配由主控单
  • 谷粒学院学习知识点汇总-------01

    前言 谷粒学院视频的系列首先先是学习一波理论知识 xff0c 最后跟着视频敲一遍整个项目 xff0c 到部署项目上线 xff0c 给自己定个flag xff0c 一个月之内完成项目部署上线 一 事务 1 1事务是数据库操作最基本单元 xff
  • Ubuntu下vscode的简单配置C/C++环境

    下载vscode并安装 方法1 在ubuntu软件中搜索 vscode下载 xff0c 但是我失败了 方法2 直接去官网下载https code visualstudio com Download xff0c 下载Linux版本的并安装 方
  • ubuntu zip和unzip命令

    zip span class token operator span r myfile span class token punctuation span zip test span class token operator span un
  • 一、ROS2简介

    ros2相关简介 ROS2的前身是ROS xff0c ROS即机器人操作系统 xff08 Robot Operating System xff09 但是ROS本身并不是一个操作系统 xff0c 而是一个软件库和工具集 Ros的出现解决了机器
  • 二、ROS2基本操作

    ROS2节点 ROS2的节点讲究分工合作 xff0c 每个节点负责一个单独的模块化功能 举一个激光雷达的例子 xff0c 一个节点负责获取激光雷达的扫描数据 xff0c 一个节点负责处理激光雷达数据 xff0c 还有一个节点负责控制车轮转动