探索自動化移動家庭機器人的復雜性,重點關注設置的獨特挑戰(zhàn),克服約束以確保順暢的開箱體驗。
在我之前的文章中,我解釋了如何使用April Tag技術(shù)自動化E2E家庭機器人。在家庭機器人或任何機器人的自動化中存在一個巨大的挑戰(zhàn)。如何設置設備?在設備、手機和移動應用程序的世界中,設備通過USB連接到主機設備,設備將始終連接到電源。現(xiàn)在,測試機器人引入了一個獨特的挑戰(zhàn),即當機器人移動時如何進行測試。它無法物理有線連接到主機設備。我們?nèi)绾悟炞C開箱體驗?不用擔心,我將在本文中解釋這個問題。
復雜性和挑戰(zhàn)
正如我向你簡要介紹過機器人自動化測試中設置階段的各種挑戰(zhàn),讓我更深入地研究一下更多的挑戰(zhàn)。
機器人在移動,無法物理有線連接到主機設備。對于某些組件級別的測試可能是可能的,但對于E2E測試來說是不可能的。
開箱體驗是指設備未連接到wifi。當設備全新時,主機設備如何與設備交互?這是日常機器人測試中非常常見的情況。
在發(fā)生任何錯誤或異常時恢復機器人。自動化測試的主要目標是發(fā)現(xiàn)機器人的潛在軟件和硬件問題。如果出現(xiàn)問題,我們?nèi)绾螆蟾婧突謴驮O備?
機器人將耗盡電池,我們需要可靠的電源來為機器人的電池供電。
將相同的設置擴展到多個實驗室和家庭環(huán)境。這非常關鍵,因為我們不能僅在一個環(huán)境中簽署或測試機器人。
讓我們按照時間順序來解決這些問題。
使用樹莓派預設機器人
解決這個問題是最重要的??紤]一下機器人位于某個位置的測試自動化實驗室中。有一臺主機設備連接到公司內(nèi)部網(wǎng)絡,用于發(fā)送和接收命令、訪問各種源代碼、內(nèi)部工具和基礎設施。我們將連接一個樹莓派到設備上,并在樹莓派上運行一個REST服務,以與主機設備和設備進行通信。下面是一個圖示表示該設置。
使用樹莓派預設機器人
解決開箱體驗用例
現(xiàn)在我們看到如何借助樹莓派預先設置測試環(huán)境?,F(xiàn)在,讓我們看看如何解決設備未連接到wifi的開箱體驗問題。
這就是樹莓派上的RESTful服務的作用。RESTful服務應該包含以下某些端點:
刷寫設備
完成OOBE
設置wifi等
獲取DUT IP地址
現(xiàn)在,對于我們來說,通過無線連接到設備變得簡單,設備完全為我們的測試做好了準備。
在發(fā)生任何錯誤或異常時恢復機器人
這是一個非常常見的情況。不要被這類問題所壓倒或沮喪。這時候,我們必須使用設備的低級組件將設備驅(qū)動回到其原始位置。例如,正如我在之前的文章中提到的各種軟件堆棧,我們需要訪問平臺或移動性層來將機器人驅(qū)動回到其原始位置。這是最棘手和最具挑戰(zhàn)性的事情,因此使用其他技術(shù),如April Tag或其他外部系統(tǒng)來將設備驅(qū)動回來。這使我想到了下一個問題,即將設備放回充電座為下一次測試運行做準備。
擴展到多個測試環(huán)境
使用低級命令,將設備放回充電座更加可靠。使用頂層的移動或?qū)Ш矫钆c使用平臺或移動性層驅(qū)動相比,故障率更高而效率更低。
擴展設置到多個測試環(huán)境的提示:
保持設置簡單。不要過于復雜或過度工程化解決方案。
具有可部署的樹莓派映像,以便可以輕松加載任何新的樹莓派。
將測試代碼放在遠程存儲庫中。將它們移到本地無法擴展。
最后,機器人自動化不是簡單的事情,需要大量的設計工作,并且需要考慮市場上的其他選項。沒有一種解決方案適合所有情況。我建議在采用最終解決方案之前進行概念驗證。
備選方案
由于我們正試圖解決的問題的性質(zhì)和復雜性,容易想到的一個問題是,“是否有其他替代方案?”簡短的答案是肯定的。我們可以有效地使用模擬器/仿真器進行測試,以覆蓋我們所描述的大部分用例,但是真實設備測試是無法替代的。