INF 接口扩展
INF是全球领先的工业移动机器人集群控制系统,可以实现控制任意移动机器人协议的AGV,这意味着可以使用一套INF控制系统控制来自不同AGV制造商、AGV技术提供商的AGV产品。
迪沃泰克机器人
工业移动机器人集群控制系统全球领导者
WWW.AGVsTD.COM
本文将介绍在INF中添加搭载SEER(仙工智能)的SRC控制器-Robokit通讯协议的叉车AGV。
与在INF中添加其它接口协议规范的AGV相同(比如VDA5050世界标准AGV接口协议、中国标准AGV接口协议),要想INF与任何对象之间建立通讯实现数据传输,就必须先添加“通讯设置”。
第一步,在INF Stuido中添加与SRC - Robokit(SRC是控制器系列,Robokit是协议)的通讯设置。
在INF Studio-“配置”-“①通讯设置”-“②添加”-“③选择通讯协议类型为Tcp”-“④选择Robokit通讯配置数据项”
之后将进入Robokit 通信配置界面:
由于Robokit是多端口Tcp通讯协议,与INF标准或中国标准这种服务端-客户端之间有且仅有一个Socket的连接不同,需要在IP设置中指定所有需要用到的端口,“模拟器”中的端口通常也应该指定(除非不使用INF模拟系统),模拟器中的地址和端口组稍后用于INF系统与具有Robokit协议的模拟AGV(由INF.DT数字孪生支持的真实INF车载程序)通讯,这样我们就可以在办公室控制“物理AGV”进行系统调试。
按照刚才的步骤再建立(复制)一个稍后用于INF 模拟系统启动模拟AGV的通讯设置,并将“作为服务端”设置为True,这表示INF模拟系统启动的具有Robokit协议的AGV车载程序运行在Tcp服务端:
Q:为什么与一台AGV建立连接需要创建两个通讯设置?
A:不,与一台物理AGV通讯只需要一个通讯设置,另一个带有SIM结尾的是给INF模拟系统启动AGV程序用的。INF模拟系统基于全·真实接口模拟,与具有机械外壳的AGV车载系统相比,除了没有机械外壳之外其它几乎完全相同。这意味着,一方面AGVsTD在实现Robokit通讯协议时(其他协议也一样)不仅仅只实现INF控制系统一侧的接口功能,也会实现AGV车载系统一侧的接口功能(在INF.DT中);另一方面当启动INF(模拟)系统时,比如启动一个容纳150台叉车AGV的INF模拟系统时,也同样会启动150台AGV车载程序,只有这样INF才能保证在办公室控制的是“真实”的AGV“车载系统”,而这个车载系统就相当于真实的物理AGV,机械外壳完全可以使用INF.MeTA元宇宙数字化,这种开发理念是INF可以在办公室完成交付的前提之一,是数字孪生的基本概念,而不是像那些仿真软件进行“虚拟仿真”,虚拟仿真无法实现在办公室交付AGV项目,也无法加快项目交付速度,甚至在中大型AGV项目上无法提供具有说服力的参考数据,因为它们控制的不是真实的AGV程序。
(PS:文章中的物理AGV主要指:1.具有机械外壳的机械AGV;2.没有机械外壳但是运行着真实AGV程序的“AGV”。)
第二步,在添加了通讯设置之后,我们需要建立AGV车型(如果已经存在该车型配置则无需再创建),使用:“配置”-“①设备-类型”-“②创建”-“③选择SRC”-确定。
这将创建一个SRC基础类型的移动机器人类型(表示其搭载SRC控制器),填写AGV类型配置数据可以参考之前的文章(VDA5050,中国标准接口),这里不重复介绍,需要特殊指出的是“订阅诊断消息类型”
由于Robokit“主要”是基于请求-响应模式的,这意味着如果INF想要获取AGV的状态信息就必须发送一个请求到Robokit,这种模式其实是非常低效的尤其在那些具备高频变化的消息传输上,所以Robokit提供了一个基于订阅模式的主动(按照频率而非事件)的“消息推送API”,在INF中通过“报告端口”来实现自动接收来自AGV的信息而无需频繁发送请求电报。但是由于该推送API存在大量的信息类型,而频繁的推送可能将影响处理其它控制AGV的消息网络带宽或扩充占据本地日志容量等负面影响,所以Robokit也提供了一个“配置机器人推送消息”的电报,通过在INF的“设备-类型”的“订阅诊断消息类型”中勾选那些“感兴趣”的消息来进行过滤,由于不同的车型(叉式负载处理装置和辊筒处理装置)可能感兴趣的内容不同,所以INF在AGV车型中实现这个订阅功能。
第三步,将第一步的“通讯设置”和第二步的“车型配置”组合成一个AGV,这与之前的文章(VDA5050,中国标准接口)描述相同,不再重复介绍。
现在,基本的配置已经完成,但是,与将VDA5050和中国标准AGV接口的AGV接入INF存在一些不同之处,接入Robokit协议的AGV还需要更多工作,当然,这些工作在INF已经实现自动化,下面的介绍仅用于可能出现的Issue调查。
第四步,地图同步,Robokit与VDA5050和中国标准AGV接口规范的区别之一是Robokit对来自控制系统(无论是AGVsTD的INF还是SEER的RDS)的路由地图几乎是必须的(注意,不是扫描导航反射器或轮廓地图,而是路径规划的路由路线图,这在其RDS的功能介绍中存在描述)。
在不考虑复杂的固定路径执行py脚本的前提下,Robokit的导航API中不存在基于坐标到坐标的导航字段,而是通过站点名称到站点名称的导航指令进行调度,下面是一个最精简的固定导航API:
// 机器人从 LM1 -> LM2{ "move_task_list": [ { "id": "LM2", //目标点 "source_id": "LM1", "task_id": "12344321" } ]}
这意味着,如果不向AGV控制器传输路由地图,AGV将不知道具体站点的具体位置坐标,也不知道站点与站点之间的路由关系(在INF控制中AGV只需要按照指令行车即可,也不必关注路由关系);INF在控制其它协议的AGV时,比如INF、VDA5050、中国标准AGV接口协议时,都可以不传输路由地图到AGV,因为这些接口都允许指定坐标到坐标的调度指令。
Q:谁将负责路由地图传输或者说谁负责路由地图编辑?
A:当然是INF,当使用INF控制搭载Robokit 协议的SRC控制器的AGV时,SEER的RoboshopPro调度路由地图编辑职责将被转移到INF Studio,
这意味着,INF必须将INFStuido编辑的文件传输到SRC控制器中。
从INF Studio导出(另存为)Smap文件,以INF一个较为复杂的项目为例,该场景中包括超过4万对象(图元),点击“文件”-“另存为”:
在文件扩展名下拉框中选择SEER Map file(*.smap)然后输入文件名:
当然,INF Studio保存时也会自动保存一份用于SRC控制器的Smap文件,这将用于INF使用“上传地图到机器人API”全自动传输布局图到SRC控制器,值得注意的是,当布局图中的对象(在RoboshopPro表述为“图元”)数量超过10万时Smap文件大小可能超过100MB,如果AGV与INF之间的网络传输不流畅时可能会需要较长时间。
如果SRC接收由INF 导出的Smap文件时有任何Issue,则可以在RoboshopPro中展开终极调查。
使用SEER的RoboshopPro打开INF保存的smap文件:
下面是INF Stuido与RoboshopPro对可视化路由的一些对比参照,以帮助理解两个环境中的布局对象(对INF而言)/图元(对RoboshopPro而言):
局部 - INF Studio布局对象↓:
局部 - RoboshopPro 图元↓:
路径细节- INF Studio↓:
(带有AGV包络的线段,可视化描述了AGV在曲线上的驱动包围盒)
路径细节- RoboshopPro↓:
(不带有AGV包络显示)
站点细节-INF Studio↓:
站点细节-RoboshopPro:
(从INF Studio导出的LM、AP、PP、CP等站点)
Issue调查:
虽然INF Studio 内的 INF Analyser和INF系统的其他组件会不止一次的对INF系统运行所需的文件进行各种各样的验证检查工作,但暂时无法保证其导出的Smap对SRC控制器是100%有效的,因为SRC可能有独立的校验机制,所以如果出现任何问题都可以使用RoboshopPro的检查地图功能进行验证,“①启用编辑”-“②检查地图”:
注意,不要在RoboshopPro中移动任何图元,否则将导致与INF系统服务器上的地图不匹配。
注意,较大(图元数量较多)的布局图在检查时需要较长时间,可能是数分钟。
要彻底解决大地图传输延时和潜在的smap issue,最好的办法就是做到控制器不再依赖路由地图,这样做也会有更多好处,比如更加开放、融合的生态环境。
当然,INF导出的Smap通常不会有问题,因为从某种程度而言,SRC只需要关注其中的部分信息即可,因为在INF控制调度AGV时,大部分原来需要SRC负责的工作和全部SEER-RDS的工作都将转移到INF,INF传输路由地图到SRC的目的也很简单:让其知道每个站点的一些属性,比如当传输一个LM1->LM2的驱动/导航指令时SRC可以从Smap中获取站点的坐标、速度、是直线驱动还是圆弧等信息。
关于INF Studio与RoboshopPro的职责划分会在未来做详细专题介绍,粗糙的讲就是在INF Studio中进行路径规划和低代码等集群控制所需的配置,比如"advancedPointList"和"advancedCurveList"站点和曲线图元;在RoboshopPro中进行导航地图扫描等AGV单机所需的参数配置,比如带有"normalPosList"轮廓点云数据和反射器图元等,两类地图两者互不干涉,这也为后续从AGV控制器彻底排除路由地图做好准备。
下面列出了两者对路由地图对象的系统对象映射,理解这些将有助于区别在INF Studio和RoboshopPro之间的工作划分。
在INF Studio的Layout(路径规划布局图)和RoboshopPro的SMap(路径规划地图,排除扫描的导航地图)中各自存在一定的系统对象/图元概念,一些概念的意义可能不同,下面列出了两者之间的映射,当使用INF Studio导出SMap时将自动完成映射。
注意,SMap的导出是单向的,即只能从INF导出,暂时不支持从Smap导入INF系统配置。
为了更好地向通用标准靠拢,以描述图元和布局对象的具体意义,下表中特意引入了VDA5050中的概念映射作为辅助,留空的部分表示没有对应的概念或未实现或无需实现亦可完成目标功能。
红色底图的条目将在从INF Layout切换到SMap时可能会消失,INF不借助这些对象实现集群控制功能需求。
(建议在电脑端查看表格)
类别 |
SMap图元 |
INF 布局对象 |
VDA5050相关 |
描述 |
全局配置 |
右手坐标系 |
右手坐标系 |
右手坐标系 |
即逆时针旋转对象为正,顺时针旋转对象为负,将右手拇指朝向屏幕之外,弯曲四指的方向为正 |
除非另有规定,车辆参考点定义为车辆参考系中的(0,0) |
参考点根据AGV单机特性在Layout中配置,允许一台AGV存在多个参考点 |
除非另有规定,车辆参考点定义为车辆参考系中的(0,0,0) |
参考点是AGV上的具体哪个位置在执行来自INF的参考路径行车。比如在完全直线行驶过程中(车辆与线段路径的方向相同时),车体的参考点从路径的起点向路径终点移动 |
|
m(米)为单位 |
mm(毫米)为单位 |
m(米)为单位 |
表示坐标系中的刻度单位,在将INF布局中的坐标转化为其他两个坐标系内的坐标时将进行mm到m的转化 |
|
|
|
高级线:禁行线、特征线 |
|
|
INF中不存在相似功能的对象,INF通过“系统级避障”实现类似功能 |
Advanced Point(SMap中图元的节点) |
站点:站点-LM普通站点 |
Node(节点) |
node(节点) |
用于路径与路径之间的衔接点 |
站点:站点-PP停靠站点 |
站点Station |
|
INF将AGV发送到站点来实现车辆的停靠/待命/闲置 |
|
站点:站点-SW切换地图 |
|
|
INF中不存在切换地图的“位置点”,INF使用指令来触发AGV切换地图(其实是导航地图,比如反射器地图),当然,INF可以轻松使用无代码定义一个切换路径图的指令,并与VDA5050中描述的相同理念来切换路径图 |
|
站点:站点-HR区域站点 |
|
|
|
|
|
|
||||
站点:工作站-AP |
站点Station |
|
工作站/站点是用来执行AGV任务的“位置Position”,比如取货或放货(货叉激活)等 |
|
站点:特殊工作站(目前仅充电站) |
站点Station |
|
在INF中,所有用于执行任务(Task:pick、drop、charging、standby等)的站点都是相同的对象,不同的是INF在不同的站点上将会触发不同的任务指令(低代码) |
|
路径 |
路径:直线 |
路径:直线 |
|
一条连接两点的直线 |
路径:圆弧 |
路径:圆弧 |
|
圆上的任意部分,注意,INF始终可以保证线段与线段之间的平滑性,即上个线段的终点切线方向与下个线段的起点切线方向相同,在直线与圆弧线相接的位置亦是如此,不意味曲率连续。 在INF中二维码类KIVA AGV的直角拐弯是不适合(单舵轮)叉车AGV的,毕竟其不能“原地旋转” |
|
路径:贝塞尔 |
|
|
INF暂时不支持贝塞尔,INF仅使用最简单的路径描述(直线和圆弧)作为“参考线段”,从某种程度来讲,AGV无需严格保证其参考点在参考路径上,这在未来AGV车体的参考点与包络(包围盒)章节中详细描述 |
|
仓储 |
库位 |
工位Location |
|
虽然INF的Location对应SMap的工位,但是INF Layout在转化为SMap时并没有将其包括在转化内,因为,一方面其实工位已经是上层业务的对象了,与AGV单机没有太大关系,另一方面INF的工位Location与站点Staion之间的关系属于一一对应的,所以只要创建了一个站点,也就意味着这个站点是一个工位,甚至,在INF中,AGV本身也是一个“工位”,INF RTS WMS系统中还存在仓库等仓储概念,这都是与“物流业务”相关的信息,AGV单机无需关注。 |
|
|
|
|
|
|
|
|
|
|
|
|
现在,可以在INF RTS中控制AGV导航,在INF SCADA中开始调试,比如执行运输订单。
(迪沃泰克机器人全新系列产品-元宇宙展览系统即将上线)
插播一条广告
全球首个以移动机器人(AGV/AMR/Android/Robot)为主题的可交互式元宇宙展览系统即将上线www.agvstd.com,由迪沃泰克机器人INF系统提供核心交通管制驱动程序,中央区域为移动机器人展览区域,预计容纳高达上千台来自全球不同移动机器人制造商的工业移动机器人、具身智能机器人、复合机器人、非标重载AGV、特种无人驾驶车辆等,周边为机器人配件产品展览区域,来自世界各地的机器人及其供应链、元器件供应商产品将齐聚一堂。敬请期待!!!
机器人控制权抢占
Robokit API通过控制权抢占来实现移动机器人的控制权转移,INF仅控制那些没有被抢占控制权的AGV,一旦控制器被抢占INF将不再对其进行控制,直到抢占控制权的客户端释放控制权。在INF.DT (内含运行着Robokit AGV侧协议的AGV程序)中使用“模式”按钮来触发控制权抢占和释放。
以上便是使用AGVsTD(迪沃泰克机器人)的INF控制系统 控制 SEER(仙工智能)的SRC控制器(叉车版)Robokit API接口协议的AGV简单介绍,更多信息可能根据实际车型、项目存在差异,请以实际为准。
迪沃泰克机器人
www.agvstd.com
工业移动机器人(AGV/AMR)集群控制系统全球领导者
仙工智能
机器人控制器让造车没有门槛
Q:为什么需要使用INF系统控制搭载各种控制器的AGV?
A:AGVsTD(现在的迪沃泰克机器人)的INF是世界领先的工业移动机器人(AGV)集群控制系统,相比于欧洲主流的AGV控制系统效率高11.67%。其产品矩阵高效、有趣的部署方式让其轻松、快速交付中大型和超大型工业重载AGV项目。
AGVsTD的技术底蕴最早可追溯至1971年的瑞典,加之迪沃泰克机器人现代化的人工智能技术(机器学习、数字孪生、元宇宙、大数据、云计算等)打造的INF系统早已让欧洲AGV技术提供商望尘莫及、短时间内难以望其项背。
点击了解迪沃泰克机器人的其他技术、产品、应用场景信息:
机器人接口:
SRC-Robokit(本文章)
INF Standard(敬请期待)
更多机器人接口AGVsTD正在加速适配
技术:
产品:
应用场景:
类人形机器人控制(前往www.agvstd.com)
上海迪沃泰克机器人科技有限公司专注于极其复杂工业生产环境中的重载移动机器人(AGV/AMR)集群控制技术,在全球具有绝对的产品领先地位和技术护城河。更多技术和商业信息将在后续发布或前往www.agvstd.com,也可以发送邮件到marketing@agvstd.com获取较高的合作优先级。

