一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于Datalog规则的自适应无人小车仿真方法与流程

2021-11-22 13:50:00 来源:中国专利 TAG:

基于datalog规则的自适应无人小车仿真方法
技术领域
1.本发明属于无人系统仿真领域,特别涉及一种无人小车仿真方法。


背景技术:

2.在无人系统研究领域,系统的自适应能力受到广泛的关注。自适应能力,最早在“开放世界”概念中被提出,它要求在工作环境不断变化的情况下,软件能够适应变化并动态调整,具有自组织的能力。与“开放世界”概念相对的则是传统软件开发的“封闭世界”,即系统和环境是一成不变的,系统的逻辑和环境信息都是先验的。这种传统的软件开发方式在无人小车的运行逻辑中已经不再适用,因为无人小车所在的环境必然是不断变化的,如果使用传统的软件开发方式,则每次应对环境变化,都要对系统代码重复修改并重新进行部署,这种更新方式效率极为低下。因此,对于自适应无人小车的仿真系统开发,需要采用具有动态特性的开发方式。
3.自适应无人小车的仿真系统,往往包含场景、对象和任务三个模块:环境模块对系统所处的上下文环境进行建模,动态模拟周围的环境变化,相当于整个系统的输入部分,无人小车感知环境变化的相关参数,从而做出自身的自适应调整;对象模块,主要包含具体的无人小车模型,是整个自适应无人小车系统的核心,无人小车根据其采取的相关运行算法和任务指定的运行逻辑进行自适应的移动;任务模块是无人小车运行的目标,也是自适应能力的关键环节,任务作为连接场景和无人小车的中间环节,帮助无人小车感知环境的变化,并据此触发无人小车后续的相关行为动作,告知无人小车做出自适应的调整,进而完成到达指定目标点的任务。
4.对于自适应的无人系统,近年来很多文献提出了相关的系统开发方法,针对自适应逻辑部分主要是采用一个特定的编程语言进行开发,来保证设计、开发和验证系统时更加高效,同时使得系统具有更加清晰的层次结构,更好体现自适应的模式。由于自适应的无人系统包含场景、对象、任务三大模块,同时具有“条件

推理

动作”的执行模式,与逻辑语言的演绎推理较为相似。当编程语言本身不具有演绎推理能力时,运行逻辑中往往会包含大量的条件判断及动作触发的语句,导致系统代码的冗杂繁琐,执行效率低下。


技术实现要素:

5.为了解决上述背景技术提到的技术问题,本发明提出了基于datalog规则的自适应无人小车仿真方法,在保证无人小车自适应能力的同时避免了代码重复修改和重部署的问题。
6.为了实现上述技术目的,本发明的技术方案为:
7.基于datalog规则的自适应无人小车仿真方法,包括如下步骤:
8.(1)建立动态变化的自适应无人小车仿真场景,采用数字矩阵和datalog规则改进运行场景,实现场景的动态更新;
9.(2)根据无人小车的状态以及环境参数的变化,构建运行逻辑的状态转化图,并使
用datalog规则对运行逻辑中的条件语句进行等价翻译,对状态转化过程进行推理,实现自适应无人小车的运行逻辑。
10.进一步地,在步骤(1)中,建立动态变化的自适应无人小车仿真场景的方法如下:
11.在仿真场景中对运行场景内的各元素进行分类建模,包括无人小车、不同路况的路面和障碍物;对于无人小车,使用坐标点表示其位置,同时设置一个方向参数表示其运行方向,路面的基本信息使用矩阵块对象进行表示,矩阵块对象中包含的路况信息属性用于表示不同类型的路况,从而建立以矩阵块为核心的仿真场景。
12.进一步地,在步骤(1)中,采用数字矩阵和datalog规则改进常规场景,实现场景动态更新的方法如下:
13.对于代表不同路况的矩阵块对象,使用typecode属性表示当前矩阵块对象的路况信息编码,每一个编码唯一代表了一种特定的路面,在程序中使用该编码代替矩阵块对象,使用独立于程序外的矩阵文件对矩阵场景进行描述,文件首行给出场景横向与纵向的矩阵块个数,用于表示场景大小,从而将整个场景由若干复杂的矩阵块对象替换成一个数字矩阵;在解析矩阵时,使用datalog规则,每一个路况信息编码typecode都对应一条规则进行解析,规则置于统一的规则文件中,规则形式的解码公式如下:
14.surface(code,acce,slow,speed):

typecode(code),acce=a,slow=s,speed=sp其中,每一个路况信息编码code在匹配后都对应唯一的路况信息surface,acce、slow、speed分别表示路面的加速值、减速值和建议速度值,a、s、sp为对应的取值;
15.解码过程为,在运行过程中,根据当前无人小车所处位置信息,读取当前位置的路况信息编码以及加减速和速度信息,以谓词的形式传递到规则系统中,根据给定的datalog规则推导出路况信息的谓词surface,并将结果返回给程序继续执行,实现对编码的解码。
16.进一步地,在步骤(2)中,根据无人小车的状态以及环境参数的变化,构建运行逻辑的状态转化图的方法如下:
17.在给定场景中,确定无人小车的状态集合,状态间相互转化的条件为环境参数的变化,状态转化图中设置一个起点,对应无人小车初始化的状态,终点的集合有若干个,包含到达指定任务点的状态以及因障碍物停止的状态。
18.进一步地,在步骤(2)中,使用datalog规则对运行逻辑进行等价翻译,对状态转化过程进行推理,实现自适应无人小车的运行逻辑的方法如下:
19.将无人小车在运行过程中的状态转化过程类比为“条件

推理

动作”的触发方式,采用datalog规则对条件语句进行等价翻译,等价翻译包括以下形式:
20.(a)对于并列的if条件:
[0021][0022]
(b)对于嵌套的if条件:
[0023][0024]
(c)对于else后引出的if条件:
[0025][0026]
(d)对于if条件中的“或”关系:
[0027][0028]
其中,c1、c2表示条件,act1、act2表示执行操作,“!”表示非运算,“|”表示或运算。
[0029]
采用上述技术方案带来的有益效果:
[0030]
1、本发明基于数字矩阵和datalog规则进行场景的设计,在场景扩充及更新过程中,不再需要修改逻辑代码,仅通过修改场景对应的数字矩阵文件即可实现,减少了系统代码量、降低了程序的耦合性,场景更新的方式更加简单直观。
[0031]
2、本发明使用datalog规则代替传统的if

else条件语句,对状态转换过程的条件判断进行等价翻译,能够完整的表达条件逻辑,同时将自适应无人小车的运行逻辑从系统代码中抽取出来,减少了系统代码的复杂程度,只需要修改规则文件而无需修改系统代码便可以实现运行逻辑的更新,解决了场景更换以及运行逻辑修改带来的代码重写和重部署问题。
附图说明
[0032]
图1是本发明的场景建模示意图;
[0033]
图2是本发明的基于数字矩阵的场景示意图;
[0034]
图3是本发明的无人小车运行逻辑状态转化图。
具体实施方式
[0035]
以下将结合附图,对本发明的技术方案进行详细说明。
[0036]
本发明设计了一种基于datalog规则的自适应无人小车仿真方法,具体内容如下:
[0037]
1、基于datalog规则建立动态变化的仿真场景
[0038]
s1.1:在仿真场景中对常见运行常见内的诸多元素进行分类建模,主要包含无人小车、不同路况的路面、障碍物等。
[0039]
步骤s1.1的具体方法:
[0040]
首先建立数据结构,将场景中的基础元素抽取出来。如图1所示,采用坐标点coor类建立场景中的位置信息,因为场景是二维的,所以坐标点也是二维的,用x、y表示。场景由矩形对象spaceobject类组成,每一块矩形对象需要一个坐标点来确定其位置,使用width和length表示对应的长和宽,另外,矩形对象还包含了路况信息surface类,包括路面的加速值acce、减速值slow以及建议速度值speed等信息。无人小车robot则使用坐标点表示其位置,用一个取值为[0

360]的double型数值表示其方向。通过坐标、矩形块以及路况信息三个主要类构成无人小车的仿真场景。
[0041]
s1.2:使用datalog规则实现数字矩阵场景的动态更新。
[0042]
步骤s1.2的具体方法:
[0043]
如图2所示,对于一个给定的运行场景,其中包含不同路况的矩阵对象,使用typecode属性表示当前矩阵对象的路况信息编码,每一个编码唯一代表了特定的路面,则可以使用不同的编码,如1、2、3代替不同的矩阵对象。同时,在矩阵文件的首行给出场景横向与纵向的矩阵元素个数表示场景大小,从而将整个场景由多个复杂的矩阵对象替换成一个数字矩阵。对于场景的分析,由原来对每个矩阵对象的处理转化为对数字矩形编码的解析,可以使用datalog规则统一进行,每一个编码都对应一条规则,规则置于相应的规则文件中,规则形式的解码公式如下:
[0044]
surface(code,acce,slow,speed):

typecode(code),acce=a,slow=s,speed=sp其中,每一个路况信息编码code在匹配后都对应唯一的路况信息surface,acce、slow、speed分别表示路面的加速值、减速值和建议速度值,等号及括号中为变量值。解码过程为:在运行过程中,规则模块根据当前无人小车所处位置信息,读取当前位置的路况信息编码以及加减速和速度信息,以谓词的形式传递到规则系统中,根据给定的datalog规则推导出路况信息的谓词surface,并将结果返回给程序继续执行,实现对编码的解码。
[0045]
2.基于datalog规则实现自适应无人小车的运行逻辑
[0046]
s2.1:根据无人小车及环境参数构建运行逻辑的状态转化图,在给定场景中,确定无人小车的状态集合,状态间相互转化的条件为环境参数的变化,状态转化图中设置一个起点,对应无人小车初始化的状态,终点的集合有若干个,包含到达指定任务点的状态以及因障碍停止的状态等。在无人小车建模时,设置了其感应周围环境参数的double型参数,用于获取无人小车前、左、右位置的可行距离,分别用f、l、r表示。根据场景大小设置一个最小运行距离d,表示无人小车单步最小步长,当可行距离小于d时,则说明不可行。此外,考虑无人小车最简单的运行状态,主要包括:自由探索e、前方障碍物oa、向左通行tl、向右通行tr以及后退tb等。从而建立简单的运行逻辑状态转化图,如图3所示,其中箭头上表示状态间转化的条件,如dest表示无人小车到达任务点,在无人小车向左通行tl后,其状态为!dest,表示未到达任务点,则继续进行自由探索e的步骤,使用条件语句可表示为if(state='tl'and!dest)act(e)。
[0047]
s2.2:使用datalog规则代替条件语句对状态转化过程进行推理,实现自适应无人小车的运行逻辑。
[0048]
详细描述步骤s2.2的具体方法:
[0049]
将无人小车在运行过程中的状态转化过程类比为“条件

推理

动作”的触发方式,
采用datalog规则对条件语句进行等价翻译,主要包括以下形式:
[0050]
(1)对于并列的if条件,每个if语句对应一条datalog规则:
[0051][0052]
(2)对于嵌套的if条件,其完整的判断逻辑包含从首个if起的所有条件:
[0053][0054]
(3)对于else后引出的if条件,其完整的判断逻辑包含首个if条件的否定,使用datalog规则中的否定谓词进行翻译:
[0055][0056]
(4)对于if条件中的“或”关系,由于datalog规则体中的条件都是“与”的关系,故需要当做多条并列的if语句一样处理,每个“或”条件对应一条规则:
[0057][0058]
对步骤s2.1中所构造的无人小车状态转化过程,使用datalog规则对其中的条件判断语句进行等价翻译,并从系统代码中抽取出来,构成无人小车运行逻辑的完备规则集,更加简单高效的实现自适应无人小车的运行逻辑。
[0059]
实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献