简单消息协议

            简单消息协议:定义了ROS与工业机器人之间简单的消息协议。额外的处理程序和管理器类包含用于处理有限连接的系统。这个包是ROS-Industrial计划的一部分。

            

            简单消息协议定义了ROS驱动层与机器人控制器层通信的消息结构。该消息结构符合下列要求:

            1、结构足够简单,可以让ROS与控制器之间共同处理。(对于那些支持C/C++的控制器)。对于那些不支持C/C++的控制器,结构要足够简单,以适应解码能力有限的机器人编程语言。这个需求的一个必然的结果是:协议不应如此繁重,而耗尽机器人控制器有限的资源。

             2、结构应该允许数据流(ROS 服务等)

             3、结构应该允许数据回复(ROS服务等)

             4、协议并不打算封装版本信息。由个体开发人员以确保交流平台开发的代码没有任何版本冲突(这包括消息类型标识符)。



消息结构:

            PREFIX Not considered part of the message 前缀     不作为消息的一部分考虑


            int    LENGTH (HEADER + DATA) in bytes   文件头与文件主体加在一起的字节数。

            HEADER   文件头

            int MSG_TYPE    确定消息的类型  ( 标准和机器人特定的值 )  identifies type of message (standard and robot specific values)

            int COMM_TYPE 确定通信类型  identified communications type

            int REPLY CODE  回复服务  (service reply only) reply code

            BODY         文件主体

            Byte Array     被数据类型和通信类型确定的,可变长度的数据变量,具体数据变量的结构,可参考下面:  DATA variable length data determined by message type and and communications type.




消息类型

             消息协议允许任意的消息类型和通讯类型的载体数据。但是,客户端/服务器模式  要求双方都需要理解不同的消息类型和通讯类型相关的载体数据。消息类型强制要求载体的数据结构。  消息类型的基类提供 创建主题,回复,请求消息的方法。   如果在客户端和服务器共同使用,开发人员不需要了解载体的数据结构。    不幸的是,一个典型的机器人控制器不能使用C + +类,因此,开发人员必须理解该消息的协议和载体数据的数据结构,以从语法上解析机器人侧发过来的载体数据。消息的具体结构的文档可以在头文件中找到。 为方便起见,消息结构也在这里显示为普通的消息类型。对于类型化的消息结构的更详细的例子, tutorial.



Joint Message

关节消息

           这个消息代表关节数据。 注:在早期版本,JOINT message被简单提供,很多关节消息因此造成了混淆(位置、速度、返回值)。为了消除混淆,这个消息类型被改为JOINT_POSITION.        其他类型的消息也会创建,如速度消息、返回值消息。

Member

Type

Value

Size

Message Type:

StandardMsgType::JOINT_POSITION

10

4 bytes

Communications Type:

CommType

ANY

4 bytes

Reply Type:

ReplyType

ANY

4 bytes

Data (Topic, Requests, & Response)

 

sequence

shared_int

ANY

4 bytes

joints

shared_real[10]

ANY

40 bytes




File: trajectory_msgs/JointTrajectoryPoint.msg

Raw Message Definition

# Each trajectory point specifies either positions[, velocities[, accelerations]]
# or positions[, effort] for the trajectory to be executed.
# All specified values are in the same order as the joint names in JointTrajectory.msg

float64[] positions
float64[] velocities
float64[] accelerations
float64[] effort
duration time_from_start

Compact Message Definition

float64[] positions
float64[] velocities
float64[] accelerations
float64[] effort
duration time_from_start




Joint Trajectory Point Message

关节轨迹点消息

        点数据作为一个沿着一个轨迹运动的方式,其目的是镜像trajectory_msgs/JointTrajectory点消息。这个点与ROS的轨迹点有以下不同:

        的关节速度在工业机器人的标准方法(作为一个单一的值)。
       持续时间是一些什么比ROS时间戳不同。时间戳指定当移动应该开始,因为那里的持续时间是移动需时多久。一个很大的假设是,继续执行点的序列。这通常是一个ROS的轨迹真实的,但不是必需的。

The point data serves as a waypoint along a trajectory and is meant to mirror thetrajectory_msgs/JointTrajectoryPoint message. This point differs from the ROS trajectory point in the following ways:

  • 关节速度通过工业机器人的标准方法。The joint velocity in an industrial robot standard way (as a single value).
  • 持续时间与ROS的时间戳有所不同。 时间戳制定了什么时候应该移动,应该移动的距离。一个大的假设是:持续执行点的队列。这通常是一个真实的ROS轨迹,但不是必须的。The duration is somewhat different than the ROS timestamp. The timestamp specifies when the move should start, where as the duration is how long the move should take. A big assumption is that a sequence of points is continuously executed. This is generally true of a ROS trajectory but not required.

Member

Type

Value

Size

Message Type:

StandardMsgType::JOINT_TRAJ_PT

11

4 bytes

Communications Type:

CommType

ANY

4 bytes

Reply Type:

ReplyType

ANY

4 bytes

Data(Topic & Requests, Response data are empty)

 

sequence

shared_int

ANY

4 bytes

joints

shared_real[10]

ANY

40 bytes

velocity

shared_real

ANY

4 bytes

duration

shared_real

ANY

4 bytes




             简单的信息利用抽象的连接(SmplMsgConnection)接口发送消息到工业机器人控制器。接口有两个假设:

  1. 能够发送原始字节的连接(raw bytes)。
  2. 数据连接有一个明确的连接,建立连接(方法)和断开连接的方法。注意:无连接的数据连接,如UDP连接,连接方法可以是一个空操作,用以占位。

             tcp套接字连接被包裹在连接接口中。这是推荐的连接类型。

连接管理器和消息处理程序

          消息管理器和处理器(MessageHandler 和 MessageManager)类可以用来管理连接,允许多个消息类型处理。消息管理器包含一个消息处理程序列表和接收到消息时执行适当的处理程序。      在拥有少量连接的机器人控制器中,这些类是特别有用的。

Wireshark协议解析器

A Lua Wireshark dissector plugin for the simple message protocol is available fromros-industrial/packet-simplemessage at GitHub. See the readme for information on how to install it.



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos安装Vmware-Tools工具

1、打开指定的Centos虚拟机&#xff0c;点击清单-->虚拟机-->客户机-->安装/升级VMware-Tools&#xff08;<u>W</u>&#xff09;&#xff1b; 2、登录Centos会话台&#xff0c;Applications-->Systme Tools-->Terminal&#xff1b; 3、使用“su -”…

【sqlite常用操作SQL语句】

目录 1、创建一个新的数据表 2、在已有的数据表中增加一个新的字段&#xff08;列&#xff09; 3、 在已有的数据表中增加一条新的记录&#xff08;行&#xff09; 1、创建一个新的数据表 "create table user(id int(11) primary key, name varchar(20))" 含义&…

perl-基础

1、Perl 语法入门&#xff1a; 1、print 语句&#xff1a; print "Hello, world\n"; print("Hello, world\n"); 2、引号&#xff1a; Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量&#xff0c;而单引号无法解析会原样输出。 3、perl数…

wdk1703+vs2015编译的诡异问题

wdk1703vs2015编译的诡异问题 最近将wdk升级到1703&#xff08;10.0.15063.0&#xff09;版本&#xff0c;编译一个新建的minifiter项目居然出现了失败 提示错误为 WindowsDriver.common.targets(460,5): error MSB6004: The specified task executable location "\stampi…

centos6虚拟机复制后修改网卡

方法1&#xff1a; 使用vmware创建centos6.4虚拟机&#xff0c; 创建完成后复制该虚拟机&#xff0c; 打开复制的虚拟机发现网卡名字是eth1&#xff0c;而网卡配置文件为eth0&#xff0c;mac地址变了 这时修改网卡配置文件&#xff0c; 删除uuid&#xff0c;修改deivce为eth1&a…

【pyinstaller打包pyqt5编写的项目为exe(脱离环境可运行)】

目录 下载pyinstaller库 0、pyinstaller语句介绍 1、单个py文件打包成exe 1)只有py文件 假设只有一个py文件&#xff1a;pyinstaller -F xxx.py 加上图标&#xff1a;pyinstaller -F xxx.py -i xxx.ico 取消命令行窗口:pyinstaller -F -w xxx.py -i xxx.ico 2) 不但有py…

熔化极气体保护电弧焊简介

1概述 熔化极气体保护电弧焊&#xff08;英文简称GMAW&#xff09;是采用连续等速送进可熔化的焊丝与被焊工件之间的电弧作为热源来熔化焊丝和母材金属&#xff0c;形成熔池和焊缝的焊接方法&#xff0c;如图1所示。为了得到良好的焊缝应利用外加气体作为电弧介质并保护熔滴、熔…

python 中cPickle学习二

写入&#xff1a; import cPickle as p shoplistfile data.data shoplist [meili,[current_account,[100000,1222],basis_account,[5555555,888]],qinshan,[current_account,[1089000,12292],basis_account,[55555955,888]],jiayou,[current_account,[10000,12292],basis_acc…

4.0 多线程基础篇

本文并非最终版本&#xff0c;如有更新或更正会第一时间置顶&#xff0c;联系方式详见文末如果觉得本文内容过长&#xff0c;请前往本人 “简书”4.0-1.1 进程 概念 : 进程是指在系统中正在运行的一个应用程序 (操作系统中每一个 APP 就是一个进程)  性质 : 每个进程之间是独…

【python pandas excel操作】

目录 1、打开Excel&#xff0c;获取不同sheet的名称 2、获取不同sheet的内容 3、 获取行数以及表头 4、对某一列的信息进行筛选 5、根据列号和索引号提取一行或者一列的数据 6、其他panda对Excel的操作 摘自&#xff1a;python对excel操作获取某一列&#xff0c;某一行的值…

焊接机器人应用现状及发展趋势

据不完全统计&#xff0c;全世界在役的工业机器人中大约有将近一半的工业机器人用于各种形式的焊接加工领域&#xff0c;焊接机器人应用中最普遍的主要有两种方式&#xff0c;即点焊和电弧焊。图4所示是这两种焊接机器人在工业机器人中所占的大致比例。我们所说的焊接机器人其实…

线性期望(BUPT2015校赛.F)

将整体期望分成部分期望来做。 F. network 时间限制 3000 ms 内存限制 65536 KB题目描述 A social network is a social structure made up of a set of social actors (such as individuals or organizations) and a set of the relationships between these actors. In simp…

【pyqt5学习】——进度条progressBar

# 进度条 self.progressBar.setValue(0) # 设置进度条的最小值 self.progressBar.setMaximum(100) # 设置进度条的最大值 # 设置进度条当前值 self.progressBar.setValue((int(curindex/excelNum)*100)) 常用方法 方法值说明setRangeQProgressBar.setRange(min, Max)通过 setR…

弧焊 不同气体对焊缝的影响 100二氧化碳 15%氩气CO2混合

Ar含量提高后&#xff0c;相比原来的100%CO2成本会提高很多。 Ar的密度比CO2小&#xff0c;焊接的焊枪必须压的很低&#xff0c;如果焊接结构中有一些狭小区域&#xff0c;焊枪则无法到达。纯CO2气体保护焊&#xff0c;焊丝可伸出较长。 Ar属于惰性气体&#xff0c;焊接时…

Windows和Linux如何使用Java代码实现关闭进程

在用selenium做自动化测试时&#xff0c;由于各种不明原因&#xff0c;有时Chrome浏览器会出现假死的情况&#xff0c;也就是整个浏览器响应超时&#xff0c;本人脚本主要部署在Windows机器上&#xff0c;所以主要以Windows为主&#xff0c;浏览器为Chrome,即如下图所示 或者由…

CSS之A标签

a标签&#xff0c;超级链接 a是英语anchor锚的意思。 a标签常用的就是三个属性&#xff1a; 1 <a href"网址" title"悬停文本" target"_blank">超级链接文字</a> 页面内的锚点&#xff0c;用name属性或者id属性 1 …

【pyqt5学习】——下拉框comboBox

# 向下拉框中添加选型&#xff0c;具体为在下拉框第index1个选型设置为内容name self.comboBox.addItem(name,index1) # 将下拉框中所有的选项删除 self.comboBox.clear() # 根据索引获取当前的下拉框内容 index self.comboBox.currentIndex() text self.comboBox.itemText(i…

安装scapy遇到的问题

1. Mac平台 在mac上安装scapy可以说是困难重重&#xff0c;一来因为scapy实在有些小众和老旧&#xff0c;再加上安装说明文档都是python2.5 也没有详细说明一些安装问题。 折腾了大概三个小时之后终于解决了这个老大难。 注&#xff1a;我的环境为anaconda2.3 - python2.7.10 一…

DAY5-小别-2018-1-15

有两天没有写了&#xff0c;前天考完试出去浪了&#xff0c;惭愧自己没有学习&#xff1b;昨天&#xff0c;启程回家看完了循环内容的视频&#xff0c;晚上十点半火车到站&#xff0c;没抽出时间写了&#xff0c;还看了《黑客帝国》&#xff0c;有点小感触&#xff0c;人工智能…