簡單消息協議

??????????? 簡單消息協議:定義了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.pswp.cn/news/255715.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255715.shtml
英文地址,請注明出處:http://en.pswp.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;人工智能…