机器人操作系统入门(四)

参考资料:

https://www.icourse163.org/course/ISCAS-1002580008?tid=1003713012  //中国大学MOOC

https://www.bilibili.com/video/av23401751  //B站

《ROS操作系统入门讲义》PDF下载

链接:https://pan.baidu.com/s/1OCja2WLDRnjYXMrpnZ3-sQ 
提取码:mziy

第四章 ROS通信架构(二)

一、Service 服务  //适用于临时的、非周期性的数据

(1)同步通信:Node A发布请求后会在原地等待reply(阻塞状态),直到Node B处理完了请求并且完成了reply,Node A才会继续执行

(2)topic VS service

注:service是不能重名的,一个service只能由一个server提供

(3)常用命令  //注意与 rossrv 的区别

二、 srv  //和msg文件类型,srv文件是用来描述服务service的通信数据格式

1. 示例 msgs_demo/srv/DetectHuman.srv  //查询当前深度摄像头中的人体姿态和关节数

(1)srv文件以 --- 隔开请求和应答,上方为请求,下方为应答;本例中请求为请求为是否开始检测,应答为一个数组,数组的每个元素为某个人的姿态(HumanPose)

(2)srv可以嵌套msg,但不能嵌套srv;本例中HumanPose为嵌套的msg

三、参数服务器   //参数服务器是节点存储参数的地方,用于配置全局共享参数

1. “特殊”的通信方式:使用互联网传输,在节点管理器中运行

2. 参数服务器维护一个数据字典,字典内存储各个参数和配置,更加静态

3. 维护方式

(1)命令行维护:使用 rosparam 命令

注:load和dump的文件需要遵守YAML格式,即“名称 + :+ 值”  //可以理解为键值对的字典

(2)launch文件内读写:<param>标签和<rosparam>标签

  • <param name="publish_frequency" value="100.0"/>  //直接给出值value
  • <param name="robot_description" command="$(find xacro)/xacro.py $(find robot_sim_demo)/urdf/robot_xacro"/>  //值由脚本运行结果给定
  • <rosparam file="$(find robot_sim_demo)/config/xbot2_control.yaml" command="load"/>  //先指定YAML文件,再施加command,等价于 rosparam load file_name

(3)node源码:利用API对参数服务器进行操作

4. 参数类型:ROS参数服务器为参数值使用XMLRPC数据类型,其中包括:strings, integers, floats, booleans, lists, dictionaries, iso8601 dates, and base64-encoded data

四、Action  //适合长时间的通信过程,且需要知道状态和结果的场景,可以随时查看过程进度(反馈),也可以终止请求

1. 通信接口

注:客户端会向服务器发送目标指令和取消动作指令,而服务器则可以给客户端发送实时的状态信息、结果信息和反馈信息等

2. Action规范文件.action格式

注:由 --- 分隔开动作的三部分内容,从上到下分别为 目标、结果、反馈

原文地址:https://www.cnblogs.com/hg-love-dfc/p/10396727.html

时间: 2024-08-06 18:30:19

机器人操作系统入门(四)的相关文章

机器人操作系统入门(七)rospy客户端库

参考资料: https://www.icourse163.org/course/ISCAS-1002580008?tid=1003713012 //中国大学MOOC https://www.bilibili.com/video/av23401751 //B站 <ROS操作系统入门讲义>PDF下载 链接:https://pan.baidu.com/s/1OCja2WLDRnjYXMrpnZ3-sQ 提取码:mziy 第七章 rospy 一.rospy VS roscpp 1.位于 /opt/ro

Java使用Protocol Buffers入门四步骤

Protocol Buffers(简称protobuf)是谷歌的一项技术,用于将结构化的数据序列化.反序列化,经常用于网络传输. 这货实际上类似于XML生成和解析,但protobuf的效率高于XML,不过protobuf生成的是字节码,可读性比XML差.类似的还有json.Java的Serializable等. protobuf支持各种语言.本文以Java为例,简单介绍protobuf如何使用.其他语言使用方法类似. 首先需要下载: http://download.csdn.net/downlo

Thinkphp入门 四 —布局、缓存、系统变量 (48)

原文:Thinkphp入门 四 -布局.缓存.系统变量 (48) [控制器操作方法参数设置] http://网址/index.php/控制器/操作方法 [页面跳转] [变量调节器] Smarty变量调节器 TP变量调节器:普通的php函数 (count  strlen   str_replace) 定义:前者的输出,是后者的输入 [子模板包含] 当前模块彼此包含 <include  file=”模板名称”  /> [使用布局layout] 1. 开启布局,配置变量信息config.php 2.

Redbean:入门(四) - 反射机制 以及 事务

<?php //引入rb入口文件 include_once 'rb.php'; //定义dsn以及相关的数据 $dsn = 'mysql:host=localhost;dbname=hwibs_model'; $user = 'root'; $pass = ''; $table = 'link'; //链接数据库 R::setup($dsn,$user,$pass); //链接数据表 $handler = R::dispense($table); //inspect::反射表,将表的字段结构返回

ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot

一直在寻找一个示例可以将ROS学习中常用的基础内容大部分都包含进去,最好还包括Gazebo仿真, 这样即使没有硬件设备,也可以很好的学习ROS相关内容,但又必须有对应的硬件,便于后续研究. 这里,介绍一款意外发现的ROS的robot示例----evarobot---- 官方教程网址:http://wiki.ros.org/Robots/evarobot 仿真源码网址:https://github.com/inomuh/evarobot_simulator 下面进入正文: ROS(indigo)机

[WebGL入门]四,渲染准备

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 必须准备的东西 上次介绍了3D绘图的基础知识.讲了一下由Z坐标的不同决定的两种坐标系,以及坐标变换的种类.这一次,说一说实际WebGL绘图的时候必须准备的东西. 首先,HTML,javascript相关的基础知识就不解释了.如果,有不明白的单词或概念的话,请自己查一下.我是认为你有一定的HTM

机器人操作系统 除了Android还有一个ROS(转)

你知道市面上的机器人都采用了哪些操作系统吗? 估计大多数人给出的答案就是 Android 了.从市面上的产品来看,基于 Android 系统开发的机器人确实是主流,但是还有一种操作系统却鲜为人知,它叫 ROS(机器人操作系统,Robot Operating System),是专门为机器人设计的一套开源操作系统,时至今日已经诞生八年时间了. ROS 究竟为何物? ROS 的前身是斯坦福人工智能实验室为了支持 STAIR(斯坦福大学人工智能机器人项目)而建立的交换庭(Switchyard)项目.要了

【原创】NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战

概述 本文演示的是一个Android客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo. 当前由于NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2.而Netty的主要版本是Netty3和Netty4(Netty5已经被取消开发了:详见此文). 本文中,服务端将分别用MINA2和Netty4进行实现,但在你实际的项目中服务端实现只需选其一就行了.本文中的Demo同时

AppleWatch开发入门四——Table视图的应用

AppleWatch开发入门四--Table视图的应用 一.Watch上的Table WatchOS中的TableView和iOS中的TableView还是有很大的区别,在开发之前,首先我们应该明白WatchOS中的Table有哪些局限性和特点.下面几点是我总结WatchOS中Table的特殊之处: 1.Table只有行的概念,没有分区的概念,没有头尾视图的概念. 2.可以通过创建多个Table,来实现分区的效果. 3.因为Watch上是通过Gruop进行布局适应的,所以没有行高等设置. 4.T