ROS是什么

一、ROS通信机制--松耦合分布式通信

1、核心概念

①节点(node)---软件模块

②节点管理器(ROS master)---控制中心,提供参数管理

③话题(topic)---异步通信机制,传输消息(message)

④服务(service)---同步通信机制,传输请求/应答数据

 

2、话题通信模型

3、服务通信模型

 相比于话题通信步骤减少了,是因为在第二步中master返回给listener的直接是一个TCP/IP的地址,话题通信返回的是RPC的地址。

4、话题VS服务

5、动作

①一种问答通信机制

②带有连续的反馈

③可以在任务过程中终止运行

④基于ROS的消息机制实现

action的接口

goal:发布任务目标

cancel:请求取消任务

status:通知客户端当前的状态

feedback:周期反馈任务运行的监控数据

result:向客户端发送任务的执行结果,只发布一次

二、ROS的开发工具

①命令行/编译器

②launch启动文件(通过XML文件实现多节点的配置和启动,可自启动ROS master)

③TF坐标变换库

TF功能包:可以求相对位置(如机器人中心坐标相对于全局坐标的位置、机器人嫁娶物体相对于机器人中心坐标系的位置)

TF坐标变换如何实现:广播TF变换,监听TF变换

④Qt工具箱

⑤Rviz(一款三维可视化工具,可以很好的兼容基于ROS软件框架的机器人平台)

⑥ Gazebo(一款功能强大的三维物理仿真平台)

具备强大的物理引擎、高质量的图形渲染、方便的编程与图形接口、开源免费

典型的应用场景包括(测试机器人算法、机器人设计、现实情境下的回溯测试)

Rviz只显示数据,负责渲染可视化,Gazebo创造数据,仿真

三、ROS应用功能

①导航框架

②SLAM

③Movelt!

④SMACH任务级状态机

............

四、ROS的生态系统

1、发行版(distribution):包括一系列带有版本号、可以直接安装的功能包

2、软件源(repository):ROS依赖于共享网络上的开源代码,不同组织机构可以开发或者共享自己的机器人软件

3、ROS wiki:记录ROS信息文档的主要论坛

4、邮件列表(Mailing list):交流ROS更新的主要渠道,同时也可以交流ROS开发的各种疑问

5、ROS Answers:咨询ROS相关问题的网站

6、博客(Blog):发布ROS社区中的新闻、图片、视频

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

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

相关文章

【设计模式】13、template 模板模式

文章目录 十三、template 模板模式13.1 ppl13.1.1 目录层级13.1.2 ppl_test.go13.1.3 ppl.go13.1.4 llm_ppl.go13.1.5 ocr_ppl.go 十三、template 模板模式 https://refactoringguru.cn/design-patterns/template-method 如果是一套标准流程, 但有多种实现, 可以用 template …

Leetcode 3132. Find the Integer Added to Array II

Leetcode 3132. Find the Integer Added to Array II 1. 解题思路2. 代码实现 题目链接:3132. Find the Integer Added to Array II 1. 解题思路 这一题由于是统一增加了一个位移,然后再删除了两个元素,因此我们将两个数组进行排序&#x…

MySQL入门学习-使用数据库.创建和删除数据库

MySQL是一种流行的关系型数据库管理系统,可以用于存储和管理大量数据。在MySQL中,可以通过创建和删除数据库来组织和管理数据。 一、关于MySQL中创建和删除数据库的概述: 1. 创建数据库: 在MySQL中,可以使用CREATE …

Py脚本_文件分类

最近发现通过Edge和chrome或者其他浏览器下载的文件都存放在一个地方就很繁琐,于是翻找以前的脚本来归纳这些文件,虽然有IDM下载独有会自动分类,但是相信很多同学都在一个文件里找文件,这次就写个Py脚本来实现这个功能。 # -*- c…

XML:基础

一、语法 基本结构&#xff1a; 实例一&#xff1a; <?xml version"1.0" encoding"ISO-8859-1"?> <note data"2008/08/08"> <to>George</to> <from>John</from> <heading>Reminder</heading&…

深入理解Java中的Lambda表达式

Java 8引入的Lambda表达式&#xff08;或称匿名函数&#xff09;是一种简洁优雅的语法&#xff0c;极大简化了开发者编写代码的方式。它可以作为参数传递给方法或赋值给变量&#xff0c;适用于简化代码的场景。本文将详细介绍Lambda表达式的使用&#xff0c;并结合代码实例进行…

C语言 void 指针就是空指针吗?它有什么作⽤?

一、问题 这是⼀个在⾯试时很容易出现的问题&#xff0c;但是也是很多⼈混淆的问题&#xff0c;这个问题如何回答&#xff1f; 二、解答 void 指针⼀般称为通⽤指针&#xff0c;要与空指针严格区分。void 指针⽤于指向⼀个不属于任 何类型的对象&#xff0c;所以 void 指针称为…

k8s集群安装

目录 部署步骤概览 1、基础环境部署 2、docker环境部署 3、配置k8s集群 4、集群初始化 5、安装dashboard软件 写在前面&#xff1a;本文安装单点master多node的k8s集群&#xff0c;主要用于k8s学习或k8s环境测试&#xff1b;部署的是1.23版本&#xff0c;在1.24版本起&am…

什么是TCP粘包?

TCP粘包 数据的接收和发送是无关的&#xff0c;read()/recv() 函数不管数据发送了多少次&#xff0c;都会尽可能多的接收数据。也就是说&#xff0c;read()/recv() 和 write()/send() 的执行次数可能不同。 举个栗子 write()/send() 重复执行三次&#xff0c;每次都发送字符…

stm32单片机开发四、USART“串口通信“

串口的空闲状态时高电平&#xff0c;起始位是低电平&#xff0c;来打破空闲状态的高电平 必须要有停止位&#xff0c;停止位一般为一位高电平 串口常说的数据为8N1&#xff0c;其实就是8个数据位&#xff08;固定的&#xff09;&#xff0c;N就是none&#xff0c;也就是0个校验…

【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解

一、计算机网络的发展背景 1、网络的定义 网络是指将多个计算机或设备通过通信线路、传输协议和网络设备连接起来&#xff0c;形成一个相互通信和共享资源的系统。 &#xff08;1&#xff09; 独立模式 独立模式 &#xff1a; 计算机之间相互独立。 &#xff08;2&#xff09;…

数据结构——二叉树链式结构的实现(下)

二叉树找值找为x的结点 找值不简单吗&#xff1f;轻轻松松拿捏&#xff0c;大部分同学都会写出这样的代码 但这种代码有问题&#xff0c;因为没有把查找结果返回给上一层&#xff0c;没有用返回值接收。 当找到3时返回给了上一层&#xff0c;但并没有用返回值接收&#xff0c;…

游戏名台词大赏

文章目录 原神&#xff08;圈内&#xff09; 崩坏&#xff1a;星穹铁道&#xff08;圈内&#xff09; 崩坏3&#xff08;圈内&#xff09; 原神 只要不失去你的崇高&#xff0c;整个世界都会为你敞开。 总会有地上的生灵&#xff0c;敢于直面雷霆的威光。 谁也没有见过风&…

Rust 生命周期浅谈

1. 简述 Rust 中的每一个引用都有其 生命周期&#xff08;lifetime&#xff09;&#xff0c;也就是引用保持有效的作用域。大部分时候生命周期是隐含并可以推断的&#xff0c;正如大部分时候类型也是可以推断的一样。类似于当因为有多种可能类型的时候必须注明类型&#xff0c;…

Arxml文件解析02- 自动驾驶Radar服务radar_svc.arxml

<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_00045.xsd

大数据面试题(九):Hive的高频面试考点(值得收藏)

文章目录 Hive的高频面试考点 一、Hive中两个大表实现join的操作,简单描述一下

书接上文,助力智能化诊断高质提效,基于轻量级CNN模型MobileNet开发构建人体手骨X光骨骼骨龄分析识别系统

骨龄是骨骼年龄的简称&#xff0c;需要借助于骨骼在X光摄像中的特定图像来确定。通常要拍摄左手手腕部位的X光片&#xff0c;医生通过X光片观察来确定骨龄。这在临床上是一件非常消耗精力和时间的一项放射临床工作。写一个骨龄可能要10多分钟去完成。如果一天要写几十个骨龄&am…

WPF中DispatchHelper

在WPF应用中&#xff0c;Dispatcher 是一个非常重要的概念&#xff0c;它帮助我们在正确的线程&#xff08;通常是UI线程&#xff09;上执行代码&#xff0c;这对于需要访问或更新UI元素的任务至关重要。由于WPF应用中的UI只能从UI线程进行访问&#xff0c;因此当你在后台线程上…

【汇编语言】中断及外部设备操作

【汇编语言】中断及外部设备操作 文章目录 【汇编语言】中断及外部设备操作前言一、中断及其处理中断的概念8086内中断中断处理程序案例&#xff1a;系统中的0号中断中断过程 二、编制中断处理程序中断处理程序及其结构编制中断处理程序——以除法错误中断为例do0子程序应该放在…

基础I/O--文件系统

文章目录 回顾C文件接口初步理解文件理解文件使用和并认识系统调用open概述标记位传参理解返回值 closewriteread总结 文件描述符fd0&1&2理解 回顾C文件接口 C代码&#xff1a; #include<stdio.h> int main() { FILE *fpfopen("log.txt",&…