查看“AGV任务运行逻辑”的源代码
←
AGV任务运行逻辑
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
管理员
您可以查看和复制此页面的源代码。
=== 概括 === Medulla为硬件控制平台程序,用于交互硬件各项信息并抽象为“上下位信号”。Clumsy为车载程序,由用户通过插件定义车辆的能力集并实现。一般实现的功能诸如行走、取放货等,也可以定义其它复杂的功能,如自动识别托盘并取放货等。这些能力集由Clumsy统一通过“脚本”提供。Simple为调度程序,在派发AGV任务时,根据路径信息,编译得到AGV的运行脚本,并通过Clumsy的接口下发脚本。 可以理解为调度程序一次性计算好AGV当前任务的运行路线、以及在各个位置需要做什么事情;并将一切规划好后,将全部信息告诉车载。 ==== 交管原理 ==== Clumsy在执行的脚本时,会涉及和调度的同步工作,也即“交通管理”。该同步使用TryLock和Leave实现。一般需要同步的时机为点位的占用,如用户插件一般会提供Go方法,调用此方法会让AGV走到指定位置:实现Go函数时,首先调用TryLock方法询问Simple(调度)是否允许走到目标点位,直到Simple允许;随后小车前进到目标点位,然后调用Leave方法解锁起始点位。 === 第三方调度适配交管原理: === 第三方调度进行交管时,只需要实现TryLock和Leave接口。具体实现方法如下: ==== TryLock: ==== * 可使用WebAPI开放/trylock路径: ** Clumsy使用Post方法提交一个json:{"carid"://小车的ID,"siteid"://欲获取的点位ID} ** 如果允许,返回一个json:{"success":true} ** 如果不允许,返回:{"success":false} ** 如果出现了内部错误等要,可返回:{"error"://错误信息}。如果返回错误,则也会让Clumsy的脚本抛出错误并终止执行。 * 或可在Clumsy插件中赋值SimpleAGVInterface.lockActions的函数委托。 ==== Leave: ==== * 可使用WebAPI开放/leave路径: ** Clumsy使用Get方法提交数据。参数为carid和siteid。分别为小车的ID和欲解锁的点位。 ** 如果允许,返回一个json:{"success":true} ** 如果不允许,返回:{"success":false} ** 如果出现了内部错误等要,可返回:{"error"://错误信息}。如果返回错误,则也会让Clumsy的脚本抛出错误并终止执行。 * 或可在Clumsy插件中赋值SimpleAGVInterface.leaveActions的函数委托。
返回
AGV任务运行逻辑
。
导航菜单
个人工具
中文(中国大陆)
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息