0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ROS是如何设计的 ROS客户端库

麦辣鸡腿堡 来源:古月居 作者:古月居 2023-09-14 17:29 次阅读

实现通信的代码在ros_comm包中,如下。

其中clients文件夹一共有127个文件,看来是最大的包了。

现在我们来到了ROS最核心的地带。

图片

图片

客户端这个名词出现的有些突然,一个机器人操作系统里为什么需要客户端。

原因是,节点与主节点master之间的关系是client/server,这时每个节点都是一个客户端(client),而master自然就是服务器端(server)。

那客户端库(client libraries)是干什么的?就是为实现节点之间通信的。

虽然整个文件夹中包含的文件众多,但是我们如果按照一定的脉络来分析就不会眼花缭乱。

节点之间最主要的通信方式就是基于消息的。为了实现这个目的,需要三个步骤,如下。

弄明白这三个步骤就明白ROS的工作方式了。这三个步骤看起来是比较合乎逻辑的,并不奇怪。

消息的发布者和订阅者(即消息的接收方)建立连接;

发布者向话题发布消息,订阅者在话题上接收消息,将消息保存在回调函数队列中;

调用回调函数队列中的回调函数处理消息。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134390
  • 客户端
    +关注

    关注

    1

    文章

    282

    浏览量

    16339
  • ROS
    ROS
    +关注

    关注

    1

    文章

    271

    浏览量

    16680
收藏 人收藏

    评论

    相关推荐

    Micro-ROS:把ROS2放在MCU上

    对于熟悉机器人应用的读者,ROS想必定是不会陌生的。ROS可以说是目前机器人相关开源社区最流行的项目。每一种类型的机器人都需要以硬件的实际情况编写符合用户需要的功能,起初代码的复用率很低,大大阻碍
    的头像 发表于 04-07 07:13 6609次阅读

    系统镜像Ubuntu_ROS2中ROS2是什么意思,带有ROS2开发环境吗?

    请问一下,百度文库资料里面,下图所示的系统镜像Ubuntu_ROS2中ROS2是什么意思,带有ROS2开发环境吗?与前面4GB版本的镜像有什么区别?
    发表于 03-01 23:06

    在Android中使用ROS

    由于ROS提供了Android的对应的开发,我们可以方便的在Android中开发相应的ROS客户端程序。下面介绍一下在Android中使用ROS
    发表于 05-16 19:16

    超详细 ROS安装教程

    ROS Kinetic Kame博主分别用过 Indigo 和 Kinetic,其实在使用过程中差距并不大,除了极少数第三方,只支持 Indigo版本,毕竟 Kinetic 刚刚发布,存在一些
    发表于 05-16 19:35

    ROS与STM32之间的联系

    ROS与STM32之间的联系简介ROS主要实现的功能STM32主要实现的功能两者之间的关系两者之间的通信简介1、如何实现ROS与stm32之间的通信,ROS对stm32发送过来的数据做
    发表于 06-28 07:49

    ROS与STM32是如何进行通信的

    角速度、实际线速度STM32ROS之前运行的ROS项目都是在终端编译,用vim或者gedit修改代码,很不方便,函数跳转查看都没办法实现。所以今天先安装一个IDE试试
    发表于 08-11 07:25

    ROS与树莓派进行通信

    成了两个类而已。asio_server类运行于树莓派上作为服务器,asio_client运行于PC上作为客户端。刚开始写的代码仅仅是客户端发送,服务器端接收这么简单。但后来一想,树莓派不是还要返回数据给R...
    发表于 09-06 07:26

    什么是ROS?如何学习ROS

    什么是ROS?如何学习ROS
    发表于 11-11 07:21

    ROS简介

    目录一、ROS简介1、什么是ROS2、ROS产生、发展和壮大的原因和意义二、在Ubuntu系统中,安装对应版本的ROS软件1、确定Ubuntu配置2、添加
    发表于 12-17 08:24

    什么是ROSROS产生、发展和壮大的原因和意义

    机器人操作系统(ROS)入门(嵌入式系统应用开发)一、ROS 基本问题1. 什么是 ROS2. ROS 产生、发展和壮大的原因和意义二、安装 ROS
    发表于 12-17 06:08

    你知道ROS客户端Client的编程该怎样去编写吗

    你知道ROS客户端Client的编程该怎样去编写吗?
    发表于 02-14 07:12

    怎样通过ROS Arduino程序去点亮LED灯呢

    roscore:然后,运行rosserial客户端应用程序, 其中为你安装rosserial的工作空间,确保使用正确的串口:最后,你可以使用rostopic转换你的LEd状态。原作者:liuyu-419812
    发表于 07-07 10:43

    ROS与STM32通信

    ROS与STM32通信2020.8.1主要内容制作ROS包,将控制命令传给STM32,并将接收到的数据作为话题进行发布STM32接收数据并将姿态数据传回给ROS接收:期望角速度、期望线速度返回:实际
    发表于 12-24 19:00 11次下载
    <b class='flag-5'>ROS</b>与STM32通信

    深度解析开源无人机ROS开发方案

    rospy 是 ROS 的纯 Python 客户端库。rospy 客户端 API 使 Python 程序员能够快速与 ROS主题、服务和参数交互。rospy 的设计有利于实现速度(即开
    发表于 07-08 17:02 2431次阅读

    ros的基本概念是什么

    基本概念: ROS是一个用于在不同进程间匿名的发布、订阅、传递信息的中间件。 ROS2系统的核心部分是ROS网络(ROS Graph)。 ROS
    的头像 发表于 11-27 11:21 952次阅读