踩坑rosbag --clock
生活随笔
收集整理的這篇文章主要介紹了
踩坑rosbag --clock
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
將rosbag的數據feed給lego-loam,輸出地圖。另外寫了一個濾波節點,訂閱地圖,進行濾波操作,再發布出來。
由于輸入給lego-loam的數據來自于rosbag,所以需要rosbag提供時間信息。
rosbag play --clock recorded1.bag由于rosbag的數據發布頻率比較快,導致了一個結果。rosbag播放完畢,時鐘停止,濾波節點中緩存了幾個數據還沒有處理完畢。失去了時鐘信息,濾波節點停止運行,但是沒有輸出報錯信息!!!
?
個人心得:濾波節點有兩個獨立的線程,一個是callback函數線程,一個是main函數線程,進而導致print出來的信息排布混亂。沒有花時間整理print出來的信息,也就沒能及時發現main函數線程因為缺失了時間信息而停止運行。因此,但凡遇到莫名其妙的bug,即使沒有報錯信息,首要任務是結合print出來的信息整理代碼的邏輯,快速縮小范圍再逐步排查原因。
?
解決方案:
1. 最佳
-k, --keep-alive
rosbag play -k --clock recorded1.bagbag文件中的數據播放完畢以后,繼續提供時間信息。
?
2. 次佳
-r?FACTOR,?--rate=FACTOR
rosbag play -r 0.1 --clock recorded1.bag將發布頻率降低為原來的10%,留給濾波節點足夠的時間進行處理。
?
轉載于:https://www.cnblogs.com/gdut-gordon/p/10643426.html
總結
以上是生活随笔為你收集整理的踩坑rosbag --clock的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件常用版本英文snapshot和ga
- 下一篇: 第十一节,利用yolov3训练自己的数据