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