You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

在用户下发目标点到机器人地盘后,slamware首先会根据地图和目标点进行路径规划,规划好后底盘才会根据规划好的路径产生相应的运动,有的用户需要获得路径规划是否成功的状态,这里对进行介绍


测试代码:TestCode.java


在Android SDK中,与底盘运动相关的moveTo、moveBy、rotate、rotateTo、goHome、startSweep、sweepSpot、recoverLocalization等方法都会返回一个IMoveAction类(或其子类)的对象,该对象中记录了此次运动相关的信息,这里通过action.getRemainingPath().getPoints().isEmpty()判断剩下的路径中点目标点是否为空来间接判断路径规划是否成功。

参考代码
try {
    IMoveAction action;
    MoveOption moveOption = new MoveOption();
    
    moveOption.setPrecise(true);
    moveOption.setMilestone(true);
    
    Log.d(TAG, "==============================================");
    Log.d(TAG, "Move To");
    action = robotPlatform.moveTo(new Location(1, -3, 0), moveOption, 0);
    
    while(action.getRemainingPath().getPoints().isEmpty()) {
        Log.d(TAG, "remaining path is null");
        sleep(1);
    }
    
    Log.d(TAG, "create path successful ...");
    
    Vector<Location> vactor = action.getRemainingPath().getPoints();
    Log.d(TAG, "vactor.size()    = " + vactor.size());
    Log.d(TAG, "vactor.isEmpty() = " + vactor.isEmpty());
    Log.d(TAG, "==============================================");
    
    action.waitUntilDone();
    if (action.getStatus() == ActionStatus.ERROR) {
    Log.d(TAG, "Action Failed: " + action.getReason());
    }

} catch (ConnectionTimeOutException e) {
	/* Exception Handle code*/
	...
}




测试现象


在底盘周围放置障碍物,使其无法规划出一条能够到达目标点的路径,测试现象如下,



  1. 加载地图
    为了覆盖机器人里面当前的地图,我们需要进行以下操作。

    加载完毕后,机器人会重置到坐标轴原点,机器人的实际角度与地图坐标系一般都会有一定偏差,如下图所示。这也是为什么要进行重定位的原因。

  2. 重定位
    1.  自动重定位:在SLAM选项里面,“重定位”操作以后,机器人的坐标系将会匹配到地图坐标系。之后就可以在加载的地图上进行导航运动了。
    2. 手动重定位:自动重定位由于环境的限制,有一定概率匹配不成功,此时可以使用手动方式将雷达环境跟地图匹配,此操作在地图编辑器里面进行,将机器人拖拽到人工判断的位置上,并调整机器人位姿角度,之后再“上传到固件”即可将匹配好的地图同步到系统里面去。




使用接口加载地图

1.使用接口加载stcm/bmp格式地图的示例代码可以参考:KBSW180120 Win32-CompositeMap格式地图的读写


注意:loadfile()接口以及setcompositmap()接口之间需要一定时间间隔,否则系统可能会抛异常。


2.重定位可以参考:KBSW180130 Win32-重定位

。。。。。

  • No labels