多机协作与调度
多机协作
多机协作包含多机调度和多机避让功能,涉及到机器人多机协作的基础能力,此处主要涉及到的通信模块也属于机器人的多机协作基础能力部分,所属系统功能。
机器人多机协作,不需要我们人为做任何操作,所有行为均是机器人系统调度。但前提是必须保证机器人在同一地图下工作,多个机器人在碰面之后,会调用我们的机器人通信,会给他们此时的工作优先级进行排序,从而来确定是避让还是继续工作,从而避免多个机器人在工作时相遇在同一地点,呆滞不动的情况。因此,只需保证机器人性能与硬件一切正常,多机协作能力即可正常工作。
多机协作信息
在安装了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; }