ROS2基础概念

此贴是第一遍过完古月居21讲,没完全明白示例代码,记录一下基础概念,以防自己遗忘,相信在后续自己动手完成项目的时候会二刷三刷,有新的理解,不断充实这个帖子。

工作空间

定义:放置代码、参数、脚本等文件的一个文件夹,叫做工作空间。

经典的工作空间为4个文件夹,包括buildinstalllogsrc

build,编译空间,保存编译过程中产生的中间文件,

install,安装空间,放置编译得到的可执行文件和脚本,

log日志空间,编译和运行过程中,保存各种警告、错误、信息等日志,

src,代码空间,未来编写的代码、脚本,都需要人为的放置到这里。

Ps:在工作空间内对其设置环境变量

$ source install/local_setup.sh # 仅在当前终端生效

$ echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效

功能包 pkg

定义:表示同一种功能的代码集合。

Ps:创建功能包示例(在src中)

$ cd ~/dev_ws/src

$ ros2 pkg create --build-type ament_cmake learning_pkg_c               # C++

$ ros2 pkg create --build-type ament_python learning_pkg_python          # Python

节点 node

定义:执行具体任务的进程。(如摄像头获取信息、轮轴转动等)

  1. 节点是可独立运行的执行文件,且同一系统中节点的语言、物理分布位置可以不同。
  2. 每个节点命名唯一。
  3. 需要配置才能用ros2运行

话题 topic

定义:负责在节点之间传递数据。(适合单向传递)

  1. 话题是基于DDS的发布/订阅模型。
  2. 异步通信
  3. 可以使用.msg文件定义消息结构。

服务 service

定义:负责在节点之间传递数据。(适合一问一答同步性要求高的数据)

  1. C/S模型,服务器唯一,客户端不唯一。
  2. 同步通信。
  3. .srv文件定义请求和应答数据结构

通信接口 interface

定义:给传递的数据定义的标准结构。

 

动作 action

定义:负责在节点之间传递完整的行为流程。(基于话题和服务实现的应用层通信机制)

  1. C/S模型,服务器唯一,客户端不唯一。
  2. 同步通信。
  3. .action文件定义通信接口的数据结构。

参数 param

定义:参数是ros系统中的全局字典,可以在多个节点中共享数据。

分布式通信

定义:将不同的功能分布在不同的终端中。

DDS

定义:分布式实时系统,是ros底层通信的神经网络。(所有节点都可以在DataBus上发布和订阅消息)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值