跳到内容 跳到主导航 跳到页脚

多机协作与调度

多机协作

多机协作包含多机调度和多机避让功能,涉及到机器人多机协作的基础能力,此处主要涉及到的通信模块也属于机器人的多机协作基础能力部分,所属系统功能。

        机器人多机协作,不需要我们人为做任何操作,所有行为均是机器人系统调度。但前提是必须保证机器人在同一地图下工作,多个机器人在碰面之后,会调用我们的机器人通信,会给他们此时的工作优先级进行排序,从而来确定是避让还是继续工作,从而避免多个机器人在工作时相遇在同一地点,呆滞不动的情况。因此,只需保证机器人性能与硬件一切正常,多机协作能力即可正常工作。

多机协作信息

       在安装了ESP32多机通讯模块的机器人上,可使用以下方法获取多机信息,可用于制作多机调度系统。目前招财豹一定有ESP32多机通讯模块,其它机器人默认不包含这个模块。

RobotApi.getInstance().registerStatusListener(Definition.STATUS_MULTIPLE_ROBOT_WORKING, mStatusListener);
private StatusListener mStatusListener = new StatusListener() {
    @Override
    public void onStatusUpdate(String type, String data) {
        try {
            Type dataType = new TypeToken<List<MultiRobotStatus>>(){}.getType();
            List<MultiRobotStatus> curRobotStatus = mGson.fromJson(data, dataType);
        }catch(Exception ex){
        }
    }
}

其中MultiRobotStatus定义如下:

public class MultiRobotStatus {
    private BasePoseBean pose;
    private BasePoseBean goal;
    private int id;
    private int priority;
    private boolean mapMatch;
    private long time;
    private int status;
    private boolean curRobot = false;
    private int errorStatus = 0;
 }

这篇文章是否有帮助?

1