调度内核运行原理
SimpleCore使用原则上静态的任务和路线进行机器人车队管理。静态指路线一旦下发一般不会改变,交管保证满足该路线一定能执行到位且不会发生死锁(即通过死锁预防算法),相对于“解死锁”方法,“死锁预防”方法可以满足在大量工业场景中的工艺需求,如过风淋门、叉车等不允许折返的场景。若有动态更改路线的需求,可以通过插件进行,主要原理为停止当前任务并下新任务(这个间隔可以足够短以至于实际上机器人是不停车切换路线的)。
交管计算原理
SimpleCore使用动态规划和搜索方法进行交管机选。首先使用动态规划计算双车间的通行矩阵,然后在实际车辆需要上锁时,通过进行剪枝的搜索算法进行多车死锁可能性检测并决策。
可编程的路径搜索算法
路径编译
任务逻辑

下发任务时,首先进行寻路,如通过FindRoute生成一个SegmentPlan,或者手动构造一个SegmentPlan。然后调用Compile方法得到CarProgram。Compile方法默认会做交管规划,若在参数中给了forecast:false,接下来可以Append多个SegmentPlan来继续延长路线并增加事件。
无论Append与否,由于CarProgram需要做交管规划,若参数中给了forecast:false,则需要调用Forecast。调用Forecast时可以给一个escape参数,为一个SegmentPlan,用来设定逃逸路线,该路线只参与交管规划而不执行(可参见交管规划原理)。最后需要调用Queue进行提交。
CarProgram一旦经过规划,必须提交,否则不允许后续生成针对该车的CarProgram。