自动驾驶云平台与大数据技术(一套基于Petri网络的分布式自动驾驶系统监控与调试工具)
自动驾驶云平台与大数据技术(一套基于Petri网络的分布式自动驾驶系统监控与调试工具)Petri网已被广泛用于建模、设计、执行和评估动态制造系统中的任务。作为一个简单的示例,图3显示了可用于“GET NEW BOX”任务的Petri网。即使图3中没有,也可以添加不同的Petri网机制(例如计时器)来处理一些常见问题。 Petri网络调试器。在执行任务时,可以使用此调试器监视相关Petri网的发展。 中央服务器上运行着三个模块: Petri网编辑器:该模块允许将任务定义为Petri网。这些任务包括可能由四个控制单元执行的命令。我们使用分层Petri网,其中Petri网中的命令可以是另一个命令的执行。事件可以由任何控制单元和任何其他任务(Petri网)产生。 最后,可以分析Petri网的安全性,有界性和活动性等属性。 Petri网调度器。任务由调度程序执行,该调度程序从XML定义文件加载Petri网络。然后根据当前标记解释执行命令的Petri网,并订阅可能演变加载的Petri网
López Joaquín Diego Pérez Alejandro Santana-Alonso and Enrique Paz. "A Suite of Petri net based Tools for Monitoring and Debugging Distributed Autonomous Systems."
一、摘要本文介绍了Petri网在一套工具中的应用,用以设计、分析、监控、记录和调试分布式控制系统的运行时协调。使用Petri网对分布式组件之间的交互进行建模。在运行应用程序之前,可以使用不同的Petri网分析工具对系统进行分析。在运行时,可以通过观察不同Petri网的演化过程,方便地监视分布式系统中不同组件之间的交互。除了监视之外,还可以检测系统以记录具有不同详细级别的状态更改。最后,图形化工具可用于逐步或以相同的运行速度可视化系统的演进。这些工具还允许转到特定的执行点并可视化全局系统的状态。
二、分布式控制系统在分布式控制系统中,控制器元素不在位置中央。相反,它们分布在整个系统中,每个组件子系统都由一个或多个控制单元控制。整个控制器系统通过网络连接,以进行通信和监视。
图2显示了本文介绍的分布式控制单元以及协调和调试系统。有四个不同的控制单元,可以自主控制系统的不同元素:机器人,建筑设备,用户界面和拾取单元(传送带和工业机器人)。中央服务器负责分布式控制单元的协调,以执行不同的任务。
中央服务器上运行着三个模块:
Petri网编辑器:该模块允许将任务定义为Petri网。这些任务包括可能由四个控制单元执行的命令。我们使用分层Petri网,其中Petri网中的命令可以是另一个命令的执行。事件可以由任何控制单元和任何其他任务(Petri网)产生。 最后,可以分析Petri网的安全性,有界性和活动性等属性。
Petri网调度器。任务由调度程序执行,该调度程序从XML定义文件加载Petri网络。然后根据当前标记解释执行命令的Petri网,并订阅可能演变加载的Petri网的事件。
Petri网络调试器。在执行任务时,可以使用此调试器监视相关Petri网的发展。
三、不同控制单元间的协调Petri网已被广泛用于建模、设计、执行和评估动态制造系统中的任务。作为一个简单的示例,图3显示了可用于“GET NEW BOX”任务的Petri网。即使图3中没有,也可以添加不同的Petri网机制(例如计时器)来处理一些常见问题。
在编辑器模式下,用户可以使用简单直观的Petri网图形编辑器创建新任务。 图3显示了编辑任务时的GUI。Petri网结构是通过选择并拖动不同的元素来创建的:位置,过渡,弧和标记。然后,必须定义动作(与位置和过渡相关)和条件(与过渡相关)。
动作可以是在图2的分布式控制体系结构中的任何控制单元中实现的命令。可以从GUI自动生成的菜单列表中选择这些命令。每个命令都是一条消息,用户必须定义命令参数,当在编辑器中选择该命令时,这些参数将自动出现在新的对话框窗口中。
条件可以是图2中任何模块产生的事件。这些事件也可以从GUI自动生成的菜单列表中选择。事件可以是消息的简单到达、可以是某个消息参数的条件、也可以是相同或不同消息上多个参数的任何逻辑表达式。
四、调试方法1、模型检查
分析petri网的能力通常被认为是最重要的活动。通过对petri网的分析,设计者可以深入了解建模系统的行为和特性。有两种主要类型的分析可以在petri网上执行。第一个涉及到可达树的创建,第二个涉及到矩阵方程。由于可达树方法能够有效地解决安全性和有界性问题,所以首先选择了可达树方法。
如果网中的所有库所均安全,则Petri网被宣布为安全。 如果对于所有可能的标记,该库所的令牌数量从未超过一个,则该位置被称为安全。如果对于所有可能的标记,网中任何单个位置的令牌数量均不超过k,则Petri网为k界。
关于控制系统的一个有趣特性是活性,它与完全没有死锁有关。活性表示针对所有可能的可达状态迁移的能力。这意味着,无论选择哪种触发顺序,Petri网都可确保无死锁操作。
我们对行为分析实施的分析模块包括:
•状态空间分析:通过构建所有可到达标记的树来分析Petri网。然后可以分析可达树以确定Petri网的属性,例如可达性、有界性、死锁和安全性。
•不变分析:分析Petri网以确定P不变和T不变向量。
2、在执行期间监视系统
即使程序基于无故障算法,其实现也可能包含由于编码错误而引起的错误。分布式系统协调中也会出现类似情况。这就是说,我们可能会使用安全且实时的Petri网,但仍需要调试工具。
调度程序调度不同的控制单元动作和执行动作(其他Petri网),以及与产生的事件的同步。通过发布和订阅消息来执行与体系结构中其他控制单元的交互。启动时,调度程序同意任务执行或取消请求。在接收时无法执行的执行请求根据其优先级存储在不同的队列中。
新任务的执行是开始从pnml文件中加载被解释的petri网。然后,调度程序订阅事件中引用的所有消息。最后,设置初始标记,并执行与标记位置相关的行为。Petri网只能随着消息的到达或计时器的结束而发展。
每当Petri网的状态(启动,停止,演进)或等待队列的状态(添加或删除新请求)发生变化时,都会发出一条新消息,报告已发出更改以进行监视(图2中的调试器模块)。并存储在日志文件中以进行离线调试。
监视程序模式下的调试器模块订阅不同的调度程序消息,这些消息显示不同的正在运行或正在等待的Petri网络的状态。每个正在运行的Petri网都显示在一个带有当前标记的不同选项卡中,如图4所示当调度程序演变一个Petri网标记时,将发出新消息,并且调试器将更新Monitor选项卡。带有排队任务(Petri网)和消息的信息窗口也可以显示在图4所示的左侧选项卡式窗格中。
3、离线调试
调试分布式系统的一般方法是在系统运行时创建日志,然后离线分析日志,以减少对执行的干扰。
当日志数据量很大时,调试将以脱机方式进行。对bug的搜索必须采用有效的策略来选择哪些是相关的,哪些不是。然后,系统管理员可以在播放记录器模式下运行调试器,打开日志文件并以与实际执行相同的速度播放它。正在运行的Petri网的不同选项卡将显示为监视模式。用户还可以逐步监视日志文件。最后,用户可以看到有关IPC(进程间通信)消息的不同详细信息,包括消息字段中包含的信息。
图4显示了重播已记录的执行时的主要调试器。图4左侧的面板包括几个选项卡:一个选项卡中的Petri网信息,而另一个选项卡中的消息信息。右侧的面板显示了两个选项卡,它们对应于图中所示执行点处处于活动状态的两个Petri网。
直接从日志数据调试系统可能相当困难。然而,使用petri网调试器是一种很容易找到执行点的方法,在执行点上,系统的演化与它的设计不一致。此外,大量的bug最终会导致petri网被固定的标记所卡住。找到这一点并从中调试应用程序是很容易的。
五、总结和结论本文的主要贡献是展示在分布式系统协调的设计和实现中使用Petri网的调试优势。
首先,它们可用于模型检查,以深入了解建模系统的行为和属性。其次,使用Petri网监视系统非常有帮助,我们可以在快照中观察系统状态。第三,分析执行期间记录的数据,用可视化界面描述petri网的演化过程,还可以跳到执行过程中的特定点并查看每条消息的数据。第四种是使用日志重播协调系统,同时调试其中一个单元,而不需要运行所有其他单元,只有当控制单元之间交换的所有消息都通过协调单元时,才能执行此操作。
在此分布式应用程序中,使用了三种不同类型的控制单元:
1、移动机器人控制单元管理移动机器人导航和监视自主任务。它通过Wi-Fi连接到Intranet。
2、建筑物控制单元管理建筑物设备,包括安全传感器和警报。
3、用户界面管理与用户的交互,从而允许他们监视移动机器人的活动并命令新的监视任务。
致谢本文由浙江理工大学宁一璇翻译转述。
感谢国家自然科学基金项目(重点项目)智能软件系统的数据驱动测试方法与技术(61932012)资助