当我们在下发运动指令至机器人底盘时,slamware首先会根据地图和目标点的情况进行路径规划,规划好后底盘才会根据规划出的路径产生相应的运动,有的用户需要获得路径规划是否成功的状态,这里对获取方式进行介绍。

      测试代码:TestCode.java

      在Android SDK中,与底盘运动相关的moveTo、moveBy、rotate、rotateTo、goHome、startSweep、sweepSpot、recoverLocalization等方法都会返回一个IMoveAction类(或其子类)的对象,该对象中记录了此次运动相关的信息,

      这里通过action.getRemainingPath().getPoints().isEmpty()判断剩下的路径中路径点是否为空来间接判断路径规划是否成功。

如何判断机器人底盘路径规划是否成功

      测试现象

      在机器人底盘周围放置障碍物,使其无法规划出一条能够到达目标点的路径,地图、障碍物、目标点的情况见下图:

 在底盘周围放置障碍物,使其无法规划出一条能够到达目标点的路径,地图、障碍物、目标点的情况见图

      运行程序Logcat输出如下,底盘无法规划出路径,也不会运动

 运行程序Logcat输出如下,机器人底盘无法规划出路径,也不会运动

      撤除底盘旁边的障碍物,再次运行测试程序,底盘在间隔一段时间后规划出路径,并沿着路径中的7个点逐点导航到目标点。

      Logcat输出如下,可以看到slamware在几毫秒后规划出路径,路径中共有7个点

 Logcat输出如下,可以看到slamware在几毫秒后规划出路径,路径中共有7个点

 

 

 

 

转载于:https://my.oschina.net/u/4042231/blog/3002107

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐