一种基于层级状态机的人机协作策略的实现方法与流程

文档序号:33790347发布日期:2023-04-19 08:33阅读:86来源:国知局
一种基于层级状态机的人机协作策略的实现方法与流程

本发明涉及工业机器人,特别涉及一种基于层级状态机的人机协作策略的实现方法。


背景技术:

1、近年来,机器人在各个领域的应用呈现出广度与深度都不断增大的趋势,广度表现在应用场景的不断扩展,深度表现在任务难度的不断加大。在有些场景下,人们希望机器人能够自主地执行预定的程序,如工业流水线,机器人在面对此类结构化场景下时,由于具有明确的执行方案,所以能够依靠自身高速高精度高可重复性的特点高效地完成任务,在执行工程中基本不需要人类的干预。但是另一些场景下,由于复杂且不断变化的现场环境,如灾难救援、航天器空间维修、深海探测等,使得机器人很少能够按照预先编写的程序顺利执行,这会导致机器人的鲁棒性特别低,微小的环境改变能够轻易地导致整个任务的中断与失败,这时必须依靠人类对突发事件的判断和决策能力,以实现任务完成度最大化的目标。但是如果设计成完全依赖操作人员一步一步地发送指令,不赋予机器人任何自主执行的能力,就会陷入另一个极端,机器人退化为遥控操作臂,不仅导致工作效率低下,而且容易因为通讯带宽限制、人为失误等多种因素造成任务失败。所以人机协作是解决非结构化场景下机器人任务执行问题最有潜力的方案之一。

2、但是人机协作中的“协作”到底表现在什么地方,如何定义协作,哪里需要协作,如何实现协作等等一系列问题目前都没有统一的答案,每个机器人厂商都有自己的理解,能否对这一系列问题进行合理定义,是人机协作是否能够真正发挥其优势的关键所在。目前,人机协作在实践中还主要存在三个问题,首先是操作人员的注意力分配问题,操作人员必须在同一个时刻将精力分给任务编程和状态监控,这往往会导致操作人员忽视一些关键事件,导致操作员发出的指令没能跟上实际的变化。其次是如何保证操作人员能够对任务进行灵活的控制,使其既可以保证修改任务程序不会影响机器人完成正在执行的正确动作,又可以随时暂停当前动作以免执行到还未被修改的关键点而引发错误。最后一点是使如何保证修改后的任务程序能够没有bug,因为在线修改的程序由于时间紧迫、现场复杂等原因往往更容易包含潜在错误,而且不可能在执行前进行完备的测试,所以如何保证这种错误概率较高的任务程序在任务现场能够尽可能低地出现bug是第三个关键问题。

3、目前,工业界还没有一套既允许操作人员和机器人进行灵活协,又能够较完善地解决上述三个关键问题的人机协作策略。


技术实现思路

1、本发明的目的旨在至少解决所述技术缺陷之一。

2、为此,本发明的目的在于提出一种基于层级状态机的人机协作策略的实现方法。

3、为了实现上述目的,本发明面的实施例提供一种基于层级状态机的人机协作策略的实现方法,包括如下步骤:

4、步骤s1,根据任务需求进行概念定义,构建层级状态机;

5、步骤s2,根据构建完成的层级状态机,由操作员与机器人协作,共同处理任务执行过程中的各种突发事件,包括:

6、步骤s21,任务执行过程中发生任务定义时未考虑到的突发事件;

7、步骤s22,判断所述突发事件是否超出机器人自治能力;如果是则执行步骤s23,否则执行步骤s24;

8、步骤s23,操作员干预行为变更,然后执行步骤s24;

9、步骤s24,行为变更;

10、步骤s25,机器人继续执行任务,返回步骤s21;

11、步骤s3,任务执行完成。

12、进一步,在所述步骤s1中,1)将机器人与环境的交互方式定义为“行为”b,每一个b与一个高层级的状态机bsm相关联,机器人在各个行为之间可以进行状态转移;

13、2)将机器人所执行的某种动作抽象为“状态”s,s∈s,s是描述机器人能够完成的所有动作的集合;状态s是行为b的子状态;每个状态s都定义了一组可能的“结果“soc,当机器人的某个状态s处于活跃状态的时候,持续监控当前机器人的性能,发布未知事件以及返回执行结果oc∈soc。

14、进一步,在所述步骤s1中,状态机sm=(ssm,tsm)包含一组状态的集合ssm和对应的转换函数tsm;s(i)∈ssm是状态s∈s的实例化;s是一个状态库,机器人所有的动作在s中都有相应的元素,由机器人的能力确定,ssm是s某个子集的实例化,由当前的场景及任务确定;转换函数tsm的定义为ssm×soc→ssm,确定接下来哪个s(i)为active状态。

15、 进一步,在所述步骤s1中,每一个状态机sm都定义了一个用户数据dsm,表现为一系列的“键kd,sm → 值vd,sm”的映射,状态s(i)定义了自己所需的输入键si和自己所能提供的输出键so;状态a和状态b之间的数据交换被定义为f (ki,sb) | ki,sb= ko,sa, ki,sb ∈ si是 s(b) 的一个输入键, ko,sa ∈ so 是 s(a) 的一个输出键。

16、进一步,在所述步骤s2中,在状态机中,状态的每个结果oc(i)∈soc(i)都确定了一个当前状态的自治保护值aoc(i),其作用是阻塞接下来的状态转移toc,i:= tsm(s(i),oc(i));

17、在执行期间,当且仅当aoc(i)<阈值asm时,允许执行状态转移toc,i,当a(i)oc>asm时,不允许自动触发toc,i,此时需要操作员执行明确的手动确认。

18、进一步,在所述步骤s2中,

19、操作员在一个状态s(i)的运行过程中手动选择某个结果oc(i),从而将下一步的状态转移确定出来,实现机器人的自治权完全可调的目的,既可选择通过操作员手动执行所有过渡,剥夺机器人全部自治权,也可将决策权完全交给机器人,实现全自治。

20、进一步,在所述步骤s2中,

21、当进行状态转换时,需要为状态机ssm添加新的状态且移除相对应的旧状态,即s’sm:=ssm(+)∪ ssm\ssm(−),与此同时,状态之间的连接关系也要发生改变,包括由转换函数表达的控制流与由用户数据键表达的数据流;为了保证运行时修改的安全,所有在修改时加入的键都加入到初始默认值库中,保证即使存在位于写入操作之前的读取操作,也会因为处于默认值状态而使得读取操作是安全的。

22、进一步,在所述步骤s2中,

23、从操作员开始进行由b到b’的程序修改,到系统开始执行由b到b’的行为变更,这段时间被定义为过渡时间;在过渡时间内,行为b会从当前活跃状态sa(i)进入到状态sa(i+1):=tsm(s(i),oc(i)),此时,已经修改好的目标行为b’就失去了有效性,只能通过根据过渡时间内发生的一系列变化而再次修正来重获有效性。

24、进一步,在所述步骤s2中,

25、当操作人员准备开始修改行为程序时,首先需要为当前活跃状态上锁,所以流程图中对是否允许变更最重要的判断就是检查当前活跃状态是否存在锁保护,如果存在则可以进行行为变更,如果没有锁保护则不允许进行行为变更。

26、进一步,在所述步骤s2中,预先将机器人的可用动作集合定义为s,具体行为修改采用代码自动生成的方式。

27、根据本发明实施例的基于层级状态机的人机协作策略的实现方法,在行为变更时使用的状态锁,并且通过预先定义状态集合来实现行为修改的自动代码生成。本发明能够有效地将机器人与人类操作员各自的优势结合在一起,最大化地完成任务;理论完备,通过状态锁的方式避免了由于过渡时间带来的一致性问题;通过转移阻塞机制能够将机器人的自治权灵活地控制在0到无穷大之间;通过代码自动生成减小了人为失误的可能性。

28、本发明采用层级状态机的方法实现人机协作,通过对状态机中各个状态间切换策略的设计,使得机器人既拥有一定的自主运行能力,又充分发挥了人对现场的把控决策能力。本发明的目的就是借助人类快速的反应与决策能力,帮助机器人不但能够尽可能多地保留自主执行的能力,又能够通过人类的协助,灵活地适应运行期间种种潜在障碍,最大化地完成任务。

29、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1