查看“调度内核运行原理”的源代码
←
调度内核运行原理
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
管理员
您可以查看和复制此页面的源代码。
SimpleCore保证静态的任务和路线一定能够完成,从而简化了机器人车队调度的开发困难。静态指路线一旦下发一般不会改变,交管保证满足该路线一定能执行到位且不会发生死锁(即通过死锁预防算法),相对于“解死锁”方法,“死锁预防”方法可以满足在大量工业场景中的工艺需求,如过风淋门、叉车等不允许折返的场景。当然,SimpleCore也支持动态更改路线的需求。所有路线的增加和变更都会进行交通规划计算,保证场景的正常运行。SimpleCore也提供了多种方便路线设计和变更的机制。 === 交管计算原理 === SimpleCore使用动态规划和搜索方法(DPS算法)进行交管机选。首先使用动态规划计算双车间的通行矩阵,然后在实际车辆需要上锁时,通过进行剪枝的搜索算法进行多车死锁可能性检测并决策。详细的算法可以参考[[DPS调度算法详解]]。 === 可编程的路径搜索算法 === === 路径编译 === === 任务逻辑 === [[文件:Snipaste 2023-12-21 00-04-09.jpg|缩略图|下发任务流程图]] 下发任务时,首先进行寻路,如通过FindRoute生成一个SegmentPlan,或者手动构造一个SegmentPlan。然后调用Compile方法得到CarProgram。Compile方法默认会做交管规划,若在参数中给了forecast:false,接下来可以Append多个SegmentPlan来继续延长路线并增加事件。 无论Append与否,由于CarProgram需要做交管规划,若参数中给了forecast:false,则需要调用Forecast。调用Forecast时可以给一个escape参数,为一个SegmentPlan,用来设定逃逸路线,该路线只参与交管规划而不执行(可参见交管规划原理)。最后需要调用Queue进行提交。 CarProgram一旦经过规划,必须提交,否则不允许后续生成针对该车的CarProgram。
返回
调度内核运行原理
。
导航菜单
个人工具
中文(中国大陆)
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息