ROS
文章平均质量分 74
ROS
~Old
Nothing but more and more nothingness
展开
-
ROS——通信机制比较
三种通信机制中,参数服务器是一种数据共享机制,可以在不同的节点之间共享数据,话题通信和服务通信是在不同节点之间传递数据的,三者是ROS中最基础也是应用最为广泛的通信机制。二者的流程是比较相似的,都是涉及到四个要素:要素1:消息的发布方/客户端(Publisher/Client) 要素2:消息的订阅方/服务端(Subscriber/Server) 要素3:话题名称(Topic/Service) 要素4:数据载体(msg/srv)可以概括为:两个节点通过话题联系到一起,并使用某种类型的数据载体实原创 2022-03-21 16:44:35 · 203 阅读 · 0 评论 -
话题通信基本操作
在模型实现中ROS Master不需要实现,而连接建立也已经被封装了,需要关注的关键点有三个:发布方 接收方 数据(此处为普通文本)流程:编写发布方实现 编写订阅方实现 编写配置文件 编译并执行1、发布方/* 需求: 实现基本的话题通信,一方发布数据,一方接收数据, 实现的关键点: 1.发送方 2.接收方 3.数据(此处为普通文本) PS: 二者需要设置相同的话题 消原创 2022-03-18 16:41:36 · 1801 阅读 · 0 评论 -
ROS——话题通信
话题通信是ROS中使用频率最高的一种通信模式,话题通信是基于发布订阅模式的,也即:一个节点发布消息,另一个节点订阅该消息。话题通信的应用场景也极其广泛,比如下面一个场景:机器人在导航的时候,使用的传感器是雷达,机器人会采集激光雷达感知到信息并计算,然后生成运动控制信息驱动机器人底盘运动。在上述场景中,就不止一次使用到了话题通信以激光雷达信息的采集为例,在ROS中有一个节点需要实时的发布当前雷达采集到的数据,导航模块中也有节点会订阅并解析雷达数据。 再以运动消息的发布为例,导航模块会根据传感原创 2022-03-18 16:16:54 · 2150 阅读 · 0 评论 -
ROS架构
目录1、设计者2、维护者3、系统架构OS层,也即经典意义上的操作系统中间层:是 ROS封装的关于机器人开发的中间件,比如:应用层4、自身结构文件系统计算图开源社区如果你已经安装了ROS,运行了ROS内置的小乌龟案例,并且也编写了ROS小程序,对ROS已经有了一个大概的认识,当然这个认知可能还是比较模糊并不清晰的,接下来,我们可以从宏观上讨论下ROS的架构设计。从不同的角度,对ROS架构的描述也是不一样的,一般我们可以从设计者、维护者、系统结构与自身结构4个角.原创 2022-03-17 17:45:38 · 360 阅读 · 0 评论 -
ROS——服务通信
服务通信是ROS中一种及其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制,也即一个节点A向另一个节点B发送请求,B接收处理请求并产生响应返回给A,比如如下场景:机器人在巡逻过程中,控制系统分析传感器数据发现可疑物体或人...此时需要拍摄照片留存。在上述场景中,就用到了服务通信。一个节点需要向相机节点发送拍照请求, 相机节点处理请求,并返回处理结果。与上述应用类似的,服务通信更适用于对实时性有要求,具有一定逻辑处理的应用场景概念以请求响应的方式实现不同节点之间数据交互的通原创 2022-03-21 10:53:35 · 3217 阅读 · 3 评论 -
ROS——运行管理
ROS是多进程(节点)的分布式框架,一个完整的ROS系统实现:可能包含多台主机每台主机又有多个工作空间(workspace)每个的工作空间又包含多个功能包(package)每个功能包又包含多个节点(Node),不同节点都有自己的节点名称每个节点可能还会设置一个或者多个话题(topic)ROS 元功能包场景:完成ROS中的一个系统性功能、可能涉及到多个功能包,比如实现了机器人导航模块,该模块下有地图、定位、路径规划...等不同的子集功能包。那么调用者安装该模块时,需要逐一的安装原创 2022-03-24 11:31:31 · 2271 阅读 · 0 评论 -
ROS文件系统和文件系统操作
目录ROS文件系统1、package.xml2、CMakelists.txtROS文件系统相关命令1、增2、删3、查4、改5、执行5.1 roscoreROS文件系统ROS文件系统指的是在硬盘上ROS源代码的组织形式,其结构大致可以如下图示:WorkSpace --- 自定义的工作空间 |--- build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。 |--- devel:开发空间,用于存放...原创 2022-03-17 18:11:32 · 676 阅读 · 0 评论 -
ROS——HelloWorld实现简介
目录1、创建工作空间并初始化2、进入src创建ROS包并添加依赖HelloWorld(C++版)3、进入ROS包的 src目录编辑源文件4、编辑ROS包下的Cmakelist.txt文件5、进入工作空间目录并编译6、执行HelloWorld(Python版)3、进入ROS包添加scripts目录并编辑python文件4、为Python文件添加可执行权限5、编辑ROS包下的CmakeList.txt6、进入工作空间目录并编译7、进入工作空间目录并执行...原创 2022-03-17 10:59:44 · 4667 阅读 · 2 评论 -
ROS——工作空间和功能包
工作空间worksapce:存放工程文件的文件夹编译单独功能包:catkin_make -DCATKIN_WHITELIST_PACKAGE=“包名”自定义编译线程:catkin_make -j -l (可以定义为-j2 -l2等,数字越大,编译速度越快,但是要求CPU性能越高)创建功能包catkin create pkg<package name> [depend1][depend2][depend3]示例:catkin_create_pkg new..原创 2022-03-29 14:41:56 · 217 阅读 · 1 评论 -
ROS通信机制
机器人是一种高复杂的系统性实现,在机器人上可能集成各种传感器(雷达、摄像头、GPS...)以及运动控制实现,为了解耦合,在ROS中的每个功能节点都是一个单独的进程,每一个进程都是独立运行的,更确切地讲,ROS是进程(也成为Node)的分布式框架。因为这些进程甚至还可分布于不同主机,不同主机协同工作,从而分散计算压力,不过随之也有一个问题:不同进程之间是如何进行通信的?也即不同进程间如何实现数据交互?ROS中的基本通信机制主要有如下三种实现策略:话题通信(发布订阅模式) 服务通信(请求响应模式)原创 2022-03-18 15:57:31 · 784 阅读 · 0 评论 -
ROS——极简概念
目录1、ROS的结构和通信机制ROS结构ROS常用命令ROS工作空间文件结构工作空间1、ROS的结构和通信机制ROS结构ROS中有一些很重要的概念,节点,节点管理器、工作空间、功能包节点(node)在机器人系统中,需要同时实现多个功能,例如我想让机器人实现跟踪射击,那么可以拆分成,镜头跟踪,调整枪的位置,开枪射击。那么这里需要实现三个节点,每一个节点实现一个功能,每个节点对应功能包中的一个可执行文件。节点管理器节点通过节点管理器报告注册信息,只有通过节点管理器原创 2022-03-21 17:46:14 · 1228 阅读 · 0 评论 -
ROS中的头文件和源文件
目录自定义头文件的调用头文件可执行文件配置文件自定义源文件的调用头文件源文件可执行文件配置文件头文件与源文件相关配置:可执行文件配置:本文主要介绍ROS的C++实现,如何使用头文件和源文件的方式封装代码,具体内容如下:设置头文件,可执行文件作为源文件 分别设置头文件,源文件与可执行文件在ROS中关于头文件的使用,核心内容在于CMakeLists.txt文件的配置,不同的封装方式,配置上面也有差异。自定义头文件的调用需求:设计头文件,可执行文件.原创 2022-03-22 16:02:39 · 2696 阅读 · 0 评论