ROS學習篇(七)rostopic訊息記錄、回放、轉.txt
一、通過bag檔案記錄話題訊息
當釋出話題的節點執行後,可以通過rostopic list
列出當前執行的話題,然後記錄:
mkdir bagfile
cd bagfile
rosbag record -a #記錄所有的話題
當訊息記錄完成後,結束ctrl+c終止record的命令列,在新建的bagfile檔案中會生成年-月-日-時-分-秒.bag
檔案。
二、資料重現
我們使用rosbag命令將資料記錄在bag檔案之後,還可以利用裡面的資料重現我們節點的執行狀態。
cd bagfile
rosbag info <file_name>
會顯示此bag檔案的一些詳細資訊(如下圖):
回放
cd bagfile
rosbag play <bagfile_name>
預設情況下,rosbag play命令會等待0.2秒之後才開始釋出資訊,這是為了在釋出資訊之前通知所有訂閱資訊的節點,以使它們能夠及時地接收到rosbag play釋出的資訊。這個等待時間可以用-d選項指定。
因為rosbag record記錄資料是有延遲的,所以在執行rosbag play
最初的一小段時間裡訊息不會發布,使用-s
選項後跟秒數可以跳過bag檔案記錄的前幾秒。
-r
,它可以改變資訊釋出的速度:
rosbag play -r 2 <bagfile_name> #以兩倍的速度釋出記錄的訊息
三、選定話題記錄
在一個包含數百個話題的大型系統中,經常會發布諸如影象等的大量的資訊,把它們都記錄到一個檔案裡是不現實的,好在rosbag record
命令提供了僅記錄部分話題的能力。
rosbag record -O subset /turtle1/cmd_vel /turtle1/pose
-O
選項指定了我們要儲存的bag檔案的名字(subset.bag),後面的/turtle1/cmd_vel
和 /turtle1/pose
則指定了我們要記錄資訊的話題。
注:rosbag record/play
無法完美重現系統的狀態。
四、.bag檔案轉.txt
將file_name.bag
檔案中topic_name
Txt_name.txt
檔案中:
rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt
五、.bag檔案生成失敗,只出現.bag.active檔案
根據目前的經驗,出現這情況是因為電腦在記錄訊息時卡掉了,沒有完成最終的錄製。可以轉換成.bag檔案,但是訊息有丟失(電腦卡掉後的話題內容)
恢復:
- ①切換到”xxx.bag.active”檔案所在的目錄下;
- ②命令列輸入“rosbag reindex xxx.bag.active”;
- ③輸入”rosbag fix xxx.bag.active outfile_name.abg”;
注:
在第二步結束後,除了原來的以.bag.active為字尾的檔案之外,還會生成一個以.bag.org.active為字尾的檔案,注意該檔案只是中間檔案,第三部輸入的時候不要對該檔案進行修復。
在第三步結束之後,會生成正常的.bag檔案
六、使用rxplot畫時間趨勢曲線
在ROS系統中,標量資料可以根據訊息中提供的時間戳作為時間序列繪製圖形。
執行可以釋出話題的節點後,可以通過rostopic list
檢視當前的釋出的話題,現在,我們不再去使用rostopic echo <topic>
,而是通過rxplot
命令就能夠看到隨時間變化的值的曲線。
rqt_plot /topic/data //單個話題,單個數據
rqt_plot /topic/x:y:z //單個話題,向量資料
rqt_plot /topic/x /topic/y /topic/z
或是先開啟GUI介面:
rosrun rqt_plot rqt_plot
然後再topic中輸入想要觀測的話題就可以了。
但是當某個話題資料較多時,需要plot單個數據才會有曲線,或是根本不行。待進一步研究…
相關推薦
ROS學習篇(七)rostopic訊息記錄、回放、轉.txt
一、通過bag檔案記錄話題訊息 當釋出話題的節點執行後,可以通過rostopic list 列出當前執行的話題,然後記錄: mkdir bagfile cd bagfile rosbag record -a #記錄所有的話題 當訊息記錄完成後,結束c
【ROS學習】(七)ROS引數服務(1)
在任何機器人系統中,引數傳遞都是一個十分重要的功能,不論是感測器的設定,還是控制引數的調整,都需要留出方便的引數除錯介面,有的引數只在啟動程式啟動時更改,有的引數卻希望在執行時能夠被動態修改,在ROS中,可以通過引數服務來實現上面的想法。 首先熟悉一下rosp
ROS學習篇(二)編寫簡單的Service和Client (Python)
一、寫一個伺服器(service)節點 首先我們得確保運行了之前的教程中的creating the AddTwoInts.srv教程。 進去工作空間中 roscd beginner_tutorials 在py指令碼資料夾scripts中新建add_t
C Primer Plus學習筆記(七)- C 控制語句:分支和跳轉
prim class wid int 但是 count 跳轉 ++ idt if 語句: if 語句被稱為分支語句(branching statement)或選擇語句(selection statement) if 語句的通用形式: if (expression)
WPF and Silverlight 學習筆記(七):WPF佈局管理之StackPanel、WrapPanel、DockPanel
一、StackPanel StackPanel是以堆疊的方式顯示其中的控制元件 1、可以使用Orientation屬性更改堆疊的順序 Orientation="Vertical" 預設,由上到下顯示各控制元件。控制元件在未定義的前提下,寬度為StackPa
【筆記篇】最良心的計算幾何學習筆記(七)
不一定 source spa hub 掃描 markdown 如何 urn 神奇 動態凸包 本文的github傳送門在這裏~ ====================================================================== 不會凸
Node學習入門篇(七):Connect自帶的中介軟體
本章內容 解析cookie、請求主體和查詢字串的中介軟體 實現Web程式核心功能的中介軟體 處理Web程式安全的中介軟體 提供靜態檔案服務的中介軟體 解析cookie、請求主體和查詢字串的中介軟體 常用
SODBASE CEP學習進階篇(七)續:SODBASE CEP與Spark streaming整合-低延遲規則管理 與分散式快取整合
在實際大資料工作中,常常有實時監測資料庫變化或實時同步資料到大資料儲存,解決大資料實時分析的需求。同時,增量同步資料庫資料相比全量查詢也減少了網路頻寬消耗。本文以Mysql的bin-log到Kafka為例,使用Canal Server,通過SODBASE引擎不用寫程式就可以設定資料同步規則。
uC/OS 的訊息佇列——uC/OS學習筆記(七)
1.訊息佇列的介紹 使用訊息佇列可在任務之間傳遞多條訊息。訊息佇列相當於訊息郵箱集合,一個郵箱只能在任務間傳遞一條訊息,而訊息佇列則可以傳遞多條訊息。訊息佇列由三部分組成:事件控制塊、訊息佇列和訊息。 2.訊息佇列的操作 a)建立訊息佇列:QSQCreate
WCF學習心得------(七)訊息協定
第七章 訊息協定 7.1 訊息協定概述 通常情況下,在定義訊息的架構時只使用資料協定就足夠,但是有時需要精確控制如何將型別對映到通過網路傳輸的SOAP訊息。對於這種情況,通常解決方案是插入自定義的SOAP標頭。 此外還可以定義訊息頭和正文的安全屬性,通過確定是否對這些元素進
ROS學習筆記(2):在ROS中使用OpenCV進行簡單的影象處理---程式碼實現篇
再上一篇blog中,筆者總結了ROS系統中使用OpenCV庫的進行簡單影象處理的原理、系統相關的設定和程式包的下載。在這篇部落格中,筆者將從程式碼層面介紹如何實現在ROS系統中讀取圖片,並使用OpenCV進行影象處理,在返回結果。 例項:從ROS中讀取圖象,轉換後將彩色圖象
SODBASE CEP學習進階篇(七)續:SODBASE CEP與Spark streaming整合-低延遲規則管理
許多大資料平臺專案採用流式計算來處理實時資料,會涉及到一個環節:處理規則管理。因為使用者經常有自己配置資料處理規則或策略的需求。同時,維護人員來也有也有將規則提取出來的需求,方便變更和維護的需求。我們知道Spark streaming作為資料歸檔備份時吞吐量高,與Hadoo
設計模式學習總結(七)適配器模式(Adapter)
實現接口 國外 手機 額外 sed ges program ebe 通過 適配器模式主要是通過適配器來實現接口的統一,如要實現國內手機在國外充電,則需要在不同的國家采用不同的適配器來進行兼容! 一、示例展示: 以下例子主要通過給筆記本電腦添加類似手機打電話和發短
linux操作系統基礎篇(七)
多個 success centos mountd rpcbind ces 說明 目錄 發送 NFS服務(基於CentOS 7.0) NFS(Network File System),網絡文件系統,是linux與linux之間進行文件共享的服務,在NFS應用,本地NFS的客戶
mysql學習筆記(七)—— MySQL內連接和外連接
聚集函數 信息 _id left tro 做了 學習 作用 group MySQL內連接(inner join on) MySQL的內連接使用inner join on,它的效果跟使用where是一樣的,如果聯結的是兩個表,那麽需要左右的條件或者說字段是
Spring 學習筆記(七)—— 切入點表達式
service string 出現 targe || 參數 public 例如 語法 為了能夠靈活定義切入點位置,Spring AOP提供了多種切入點指示符。 execution———用來匹配執行方法的連接點
EF學習筆記(七):讀取關聯數據
取數據 microsoft image zha 手動 模型 取數 foreach ret 總目錄:ASP.NET MVC5 及 EF6 學習筆記 - (目錄整理) 本篇參考原文鏈接:Reading Related Data 本章主要講述加載顯示關聯數據; 數據加載分為以下三
JavaScript學習日誌(七):表單腳本
prev 調用 don 表單 rip 如果 html image 集合 一,基礎知識 1,取得<form>元素引用的方式,常用的是通過id,其次可以通過document.forms可以取得頁面中所有的表單,在這個集合中,可以通過數值索引或name值來取得特定的表
Java語言基礎學習筆記(七)
day tez lec mdk abd err .com mar mdm 烈7A茨諳9m繁5暗MChttp://www.zcool.com.cn/collection/ZMTg3NzE1Njg=.html 3馗iC蓖17握WM啦http://www.zcool.com.cn
python學習筆記(七)函數
限制 指向 什麽 問題 www. img 值傳遞 在線的 comment 原鏈接:http://www.cnblogs.com/vamei/archive/2012/06/01/2529500.html#!comments 函數學習遇到了問題 1 #!/usr/bin/