【ROS学习】了解ROS、rostopic和rosnode的使用

到如今我的保研历程也彻底结束,最终是去了清华大学计算机系,以后的研究方向也大致定为系统软件、机器人系统,这里就先学一下ROS,打好基础。

注明,我是跟随ROS tutorial学习的,如果有同学喜欢直接看原版,可以去看。这里附上链接 ROS Tutorial

一、了解ROS

简介

ROS是现在被广泛使用的机器人操作系统,他的开发遵循BSD许可,而且最近好像也发布了ROS2,当然还在改进升级当中,没有ROS1的使用者广泛。

基本通信机制

关于ROS,它内部的通信是由一个个的节点对象完成。
在这里插入图片描述
如上图所示,ROS Master相当于一个总的控制器,由它来负责各个节点的注册、订阅的注册、服务的注册等等,除此之外,它还负责各个节点之间的通信。可以用下面这个例子来简单的说明。
在这里插入图片描述
这是一个由摄像头采集图像,图像处理软件处理图像,同时笔记本显示图像的一个简单的机器人系统。这里一个大致的流程就是,注册以上展示的三个节点用于通信(TCP/IP),然后Camera Node发布一个topic,这样ROS Master就会记录这个topic,并且其余的两个节点可以进行接受,所以一旦Camera接受到图像,就会传递到其余两个节点。

那如果我不想接受所有来自Camera Node的消息怎么办呢?这里ROS提供了另一种通信方式 — 服务

节点可以注册一个特殊的服务,如下图所示。
在这里插入图片描述
当Image Processing Node需要消息的时候,向Camera提出一个请求,而Camera Node去采集数据给出回复。

二、rostopic和rosnode命令的使用

这里我就将toturial中的命令做一个简单的总结。

roscore 							// 启动ROS Master,运用ROS的时候需要首先执行。
rostopic list						// 列出当前所有的topic(发布的消息)
rostopic info [N]					// 列出某topic的详细信息 N是topic的名称
rostopic pub [N] [T] [C]			// 发布一条topic,N是名称,T是消息种类,C是消息内容
rostopic echo [N]					// 接收某个topic
rosnode list						// 列出当前所有的node(节点)
rosnode info [N]					// 列出某node的详细信息
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值