當我們在下發(fā)運動指令至機器人底盤時,slamware首先會根據(jù)地圖和目標點的情況進行路徑規(guī)劃,規(guī)劃好后底盤才會根據(jù)規(guī)劃出的路徑產(chǎn)生相應的運動,有的用戶需要獲得路徑規(guī)劃是否成功的狀態(tài),這里對獲取方式進行介紹。
測試代碼:TestCode.java
在Android SDK中,與底盤運動相關的moveTo、moveBy、rotate、rotateTo、goHome、startSweep、sweepSpot、recoverLocalization等方法都會返回一個IMoveAction類(或其子類)的對象,該對象中記錄了此次運動相關的信息,
這里通過action.getRemainingPath().getPoints().isEmpty()判斷剩下的路徑中路徑點是否為空來間接判斷路徑規(guī)劃是否成功。
測試現(xiàn)象
在機器人底盤周圍放置障礙物,使其無法規(guī)劃出一條能夠到達目標點的路徑,地圖、障礙物、目標點的情況見下圖:
運行程序Logcat輸出如下,底盤無法規(guī)劃出路徑,也不會運動
撤除底盤旁邊的障礙物,再次運行測試程序,底盤在間隔一段時間后規(guī)劃出路徑,并沿著路徑中的7個點逐點導航到目標點。
Logcat輸出如下,可以看到slamware在幾毫秒后規(guī)劃出路徑,路徑中共有7個點
關鍵字:机器人底盘