ROS topic,service和action的使用场景
Topics
特点:
1.单向,分工明确,处理连续数据流,topic是一种多对多的形式,一个Node可以订阅多个Topic,可以publish到多个topic上。
2.topic中的数据只要准备好了,就可以被回调函数调用。而发送端的topic的发送时机由publisher自己决定。
场景:
1.连续
比如收发传感器数据,收发控制指令
Service
特点:
1.双向,有反馈
2.往往不是固定频率发送,处理不连续数据,需要时才发送请求和处理
场景:
1.离散
2.少量时间
用于那些快速停止的程序,如查询一个node的状态,做数学运算,机械臂的运动学反解(action也可以)等。
Actions
特点:
升级版service
场景:
1.离散
2.需要反馈 / 状态跟踪
3.需要花费大量时间
4.运行过程中可以被中断(中断通常是靠Action server来实现)
如让小车前进一段时间,并在运行过程中提供反馈。比如《ROS by Example》书中想让小车走1米,运行过程中需要不断检测是否走了1米,走到了就中断它,让它停下来。
即使在同一个Action Server上运行不同的两个action goal, 它们的状态也能够利用各自的ID被区分开来。像视觉处理等需要较多时间来启动或终止的程序也是利用action来实现的一个不错的例子。
用Topic和Action能完成大部分操作
ROS topic,service和action的使用场景的更多相关文章
- dao层、service和action的运用和区别
DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,对于数据库的操作,具体到对于某个表的增删改查, 也就是说某个DAO一定是和数据库的某一张表一一对应的 ...
- <ROS> 通讯方式之 Action
Ros 官网介绍 http://wiki.ros.org/actionlib 一个简易的action教程,package -- example_action_server. action文件夹内存放 ...
- 【SSH网上商城项目实战02】基本增删查改、Service和Action的抽取以及使用注解替换xml
转自:https://blog.csdn.net/eson_15/article/details/51297698 上一节我们搭建好了Struts2.Hibernate和Spring的开发环境,并成功 ...
- Ros学习service——小海龟
rosservice 服务(services)是节点之间通讯的另一种方式.服务允许节点发送请求(request) 并获得一个响应(response) rosservice list 输出可用服务的信息 ...
- 十一:外观模式详解(Service,action与dao)
定义:外观模式是软件工程中常用的一种软件设计模式.它为子系统中的一组接口提供一个统一的高层接口.这一接口使得子系统更加容易使用. 该定义引自百度百科,它的表现很简单,将一系列子接口的功能进行整理,从而 ...
- k8s中几个基本概念的理解,pod,service,deployment,ingress的使用场景
k8s 总体概览 前言 Pod 副本控制器(Replication Controller,RC) 副本集(Replica Set,RS) 部署(Deployment) 服务(Service) ingr ...
- python ros topic demo
发布者: #!/usr/bin/env python #coding=utf- import rospy from std_msgs.msg import String def talker(): ...
- ros topic 命令
#查看topic频率rostopic hz /xxx_imu_driver/imu #查看topic信息rostopic info /xxx_imu_driver/imu #查看topic数据rost ...
- ROS Topic 常用指令
rostopic list rosnode list一樣,就是列出目前運行中的topic有哪些. rostopic echo <topic_name> 接下來這個指令比較重要啦,就是去監聽 ...
随机推荐
- PHP 字符串索引问题
php 通过下标获取的是字节,而不是字符!!!!$str{$i} 获取的是第$i个字节, 而不是第$i 个字符!!!哦 No,准确说是第$i+1个字节,因为下标是从0开始的,并且应该使用 []代替{} ...
- 019_linuxC++之_函数模板引入
(一)首先我们来看非模板程序,函数只是输入不一样的变量就需要构件很多个不一样的函数,那么这样很麻烦,则引入函数模板 int& max(int& a, int& b) { ret ...
- Codevs 1404 字符串匹配(Kmp)
1404 字符串匹配 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你两个串A,B,可以得到从A的任意位开始的子串和B匹配的 ...
- ****题(alb)
sol:较简单的dp题,n4随便写写,n3需要加一个小优化 int i,j,k,i1,j1,i2,j2; memset(dp,,sizeof dp); ;i<n;i+=) dp[][i][i+] ...
- MySQL之MyISAM和InnoDB
一.区别 1.MySQL默认采用的是MyISAM. 2.MyISAM不支持事务和外键,而InnoDB支持.InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提 ...
- react-native(ios)简单配置环境(mac)
1.首先全局安装react-native-cli npm install -g react-native-cli 2.安装xcode(appStore) 3.打开xcode,检查一下是否装有某个版本的 ...
- linux如何离线加载docker镜像?
1. 在已经部署了镜像的机器上获取镜像 1.1 获取镜像名 docker images 1.2 打包选中对应的镜像 docker save <image_name> -o <imag ...
- iommu是干什么的呢?
答: 如普通的mmu,将虚拟内存地址转换为物理地址,不同的是,iommu是将设备访问的虚拟地址转换为物理地址
- [Ubuntu]18安装navicat 破解版&官方版本
破解版本: 一.下载破解版的navicat 链接:https://pan.baidu.com/s/1ulptSderoG0EbEQpO3Adww提取码:8oc3 二.解压到桌面 在下载压缩文件之后, ...
- php连接数据库的两种方式- 面向过程 面向对象
php连接数据库的两种方式- 面向过程 面向对象 一.面向对象1. 链接数据库$conn = @new mysqli("127.0.0.1","root", ...