【HighChart教程】在機器人開發中使用資料視覺化
人們可能會認為,當構建機器人時,通常本身沒有任何螢幕,或者可能無法通過某種視覺顯示進行操作,資料視覺化不是硬體開發人員技術堆疊的自然或關鍵部分。恰恰相反。
資料視覺化是設計和分析過程的核心。這是我們如何解釋複雜系統的行為來了解他們的行為。在我們的案例中,一個好的圖表工具Highcharts,對於教我們學生的概念,如PID控制,電壓/電流關係,感測器除錯和其他控制理論主題至關重要。
那麼,我們是誰? 我們是來自美國中部伊利諾伊州地區的Robot Casserole機器人競賽團隊的一員。我們是一群約35名高中生和成人專業導師。13年多來,我們聯合起來與FIRST主辦的其他團隊對峙,FIRST是一個國際組織,經營一系列年度機器人挑戰。該FIRST機器人競賽(FRC)是最大的這些挑戰。每年,我們的團隊都會從頭開始構建一個機器人,以便在此過程中定製挑戰,學習專案規劃,設計和除錯技能。從機械製造到控制軟體,我們努力在每個季節生產高質量的創新產品。
一般來說,機器人重約140磅。比賽持續約兩分半鐘。在此期間,機器人在駕駛員操作和完全自主模式下競爭3v3,以獲得儘可能多的積分。在整個週末的比賽中,精度,耐用性和速度都是必不可少的!
過去幾年我們一直在使用Highcharts來視覺化我們的機器人生成的資料。我們使用一個名為“roboRIO”的自定義控制器。這是NI硬體的一部分,它提供了一個實時Linux核心,我們在其上執行我們的控制軟體。在執行時,我們的控制軟體將資料記錄到實際機器人上的.csv檔案中,並通過Web介面提供某些帶時間戳的資料樣本。
Highcharts以兩種主要方式使用。首先,在機器人的Web介面中,我們使用Highcharts提供機器人狀態的滾動實時檢視。
我們的網路介面允許我們選擇我們關心的資料流。然後,機器人實時響應所請求訊號的JSON資料。Highcharts提供了一種非常簡單的方式,以豐富的動畫格式顯示收到的JSON資料,該格式易於動態解釋和操作。我們主要在測試機器人上的軟體和調整控制引數時使用這種技術。這是一種精確調整機器人效能的高速方法。
此外,在比賽中,我們的車手在短暫的賽場上不太可能停下來並診斷問題。因此,我們將大量時間序列資料記錄到連線到嵌入式控制器的相當大的USB驅動器上的檔案中,並在匹配後提取日誌。我們有一個額外的Javascript應用程式,它使用Highcharts 離線檢視資料日誌。
我們經常使用它來分析在現場看到的奇怪行為,使我們能夠自信地找到問題的根本原因。 Highcharts對於教授學生的概念至關重要,如PID控制,電壓/電流關係,感測器除錯和其他控制理論主題。我們的大多數導師都有嵌入式軟體的背景,而不是網路開發。儘管如此,我們的學生和導師仍然能夠以最少的努力建立這些非常動態且使用者友好的資料檢視器,並且有更多時間花在教授核心技術概念上!
少數其他團隊一直在使用Highcharts產品來視覺化他們的資料,而不僅僅是來自機器人。地圖,直方圖和其他團隊偵察應用程式都是使用庫建立的。