能否在runtime使用material handling library动态创建conveyor网络?
解答
完全可以使用官方物料搬运库(Material Handling Library)在运行时根据数据库映射参数生成输送机网络,无需自行开发自定义Agent实现。
具体实现逻辑如下:
- 先在仿真启动阶段读取数据库内的所有输送机参数,包括尺寸、坐标、连接关系、运行速度、决策变量参数等,统一存储到自定义的集合对象中便于批量调用
- 遍历参数集合,按需实例化对应输送机类:直段输送机使用
Conveyor类,弯道使用CurvedConveyor类,分流/合流节点使用DiverterConveyor/MergeConveyor类,通过类的内置方法直接赋值所有参数,比如setLength()设置长度、setPosition(x,y,z)设置空间位置、setSpeed()设置运行速度等 - 所有输送机实例创建完成后,按照预设的连接关系调用
connectToConveyor()方法完成上下游输送机的拼接,需要接驳货架、分拣台、AGV接驳点等其他物料搬运元件时,调用对应connectTo()类方法即可建立连接 - 全网络配置完成后调用输送机网络的
initialize()方法完成运行时注册,注册完成后原生库的所有功能(货物流转、堵塞检测、任务调度等)都可以正常使用,和手动搭建的输送机网络没有差异
注:如果你的场景里存在特殊结构的定制化输送机,也可以在原生输送机类的基础上做扩展,不需要从零开发全量功能。
内容的提问来源于stack exchange,提问作者Shingston
相关产品推荐
相关产品推荐

