ROS之导学及通信整理

本文探讨了ROS在机器人系统中的角色,强调了其作为协议、框架和数据通信的核心作用。重点介绍了ROS的三种通信机制:话题、服务和参数服务器,并详细阐述了话题通信的实现。此外,还讲解了CMakeLists.txt和catkin工具在ROS项目构建中的应用,以及在机器视觉工作中如何利用ROS进行数据传递和节点管理。
摘要由CSDN通过智能技术生成

我们学习ros是为了什么?
 

在我看来:ros是一种协议,框架,库还有连接高度集合的集合体。

就拿我学习机器人视觉的直观感受来讲:

从硬件配备来讲:一个linux系统的小主机是我们机器人的根本所在,没这个东西大家都没得玩。

从通信的角度来讲:当我们的算法成功跑出结果之后,如果不把他传递给中间处理层,那这坨数据就是一摊废物。即:数据无法互通,我需要记录得出结果的独立路径,通过某种协议把数据传输给中间处理层,告诉他:“小y的数据来了,给我速度分析结束然后把相对应的结果传输给机械臂”

那么谁是这一切的大前提呢?

ros

在上述过程结束后,我们通过视觉,语言,导航的信息就可以被中间层的某种协议恰到好处的处理掉,那么学会独立处理建立协议,定向处理数据,输出数据这一套过程,就是我们学习ros的目的

ros中有三种通信机制:话题通信 服务通信 参数服务器(数据共享)

在进行视觉的封装过程中,使用次数比较多的还是话题通信。

话题通信更像是在不停在的吐出数据,而服务通信需要一个中间商master做中介

先想一个问题:一次成功的话题通信都需要什么?

1:发布方(pub)接收方(sub)

2:框架:包

在大致明白了我们需要做什么之后我们开始介绍相关包(库)

1:Cmakelist,CMAKE

ex:
#进入终端
#进入工程包
cd visual_part_WS
catkin_make

通过编写简单的 CMakeLists.txt 规则文件,就能自动生成 makefile 文件,并且 CMake 是跨平台的,十分强大。ROS 的编译器便是 CMake,为了更加人性化,ROS 在 CMake 基础上封装了 catkin 命令,用 cmake 命令创建功能包时,会自动生成 CMakeList.txt 文件,已配置了多数编译选项,且包含详细的注释,只需稍作修改便可编译自己的文件。在每次catkin-make的时候系统都会找到每个工程包下的CMake.

我们平常所使用的:catkin_make,在终端经行运行命令之后,找到每个工程文件下的CMake.list文件

CMake.list文件直接表明了:这个工程项目要依赖哪些包,编译的最终结果是什么。既是:由源码到目标文件的过度使用。

注1:catkin 是 ROS 定制的编译构建系统,是对CMake的扩展

注2:Cmake文件中有其他名称
在Cmake文件CMakeLists.txt中有一个add_executable宏定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值