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

基于工具和用户相互作用力对协作机器人控制参数的自动选择的制作方法

2023-03-08 05:30:08 来源:中国专利 TAG:


1.本发明涉及机器人,并且特别涉及可以在例如外科手术室中使用的协作机器人以及操作这样的协作机器人的方法。


背景技术:

2.协作机器人是与人类在同一空间工作的机器人,它们常常(例如通过力控制)与人类直接互动。这样的协作机器人的示例是这样一种机器人:它包括末端执行器,当人类操纵工具来完成任务时,末端执行器用于保持该工具或者对工具进行工具引导。协作机器人通常被认为是安全的并且不需要专门的安全屏障。随着越来越多的人接受这样的协作机器人,人类期待这些协作机器人有更多的智能和自动化行为。
3.协作机器人应当具有先进的感知能力,以便在协议繁重的工作流程中(例如在外科手术室中的那些工作流程中)提供直观的辅助。然而,与人类相比,由于有限的感测模态、质量和带宽反馈,机器人的背景感知非常差。为了使这些机器人能够真正协作,它们需要某种基于环境状态、手头任务和/或用户意图来自主改变其行为的能力。
4.因此,期望提供协作机器人和操作协作机器人的方法。特别地,期望提供这样的协作机器人和操作协作机器人的方法,这种协作机器人可以提供基于环境状态、手头任务和/或用户意图来对一个或多个机器人控制参数的自动选择。


技术实现要素:

5.在本发明的一个方面,一种系统包括:机器人臂,其具有一个或多个控制自由度,其中,所述机器人臂包括器械接口;至少一个力/扭矩传感器,其被配置为感测在所述器械接口处的力;机器人控制器,其被配置为控制所述机器人臂以将所述器械接口移动到确定的位置并控制至少一个机器人控制参数;以及系统控制器。所述系统控制器被配置为:接收时间力/扭矩数据,其中,所述时间力/扭矩数据表示在与用户的协作流程期间由所述至少一个力/扭矩传感器感测的随时间的在所述器械接口处的所述力;分析所述时间力/扭矩数据以确定所述用户的当前意图和所述协作流程的状态中的至少一项;并且使所述机器人控制器以控制模式控制所述机器人臂,所述控制模式是针对所确定的所述用户的当前意图或所述协作流程的状态而预定义的,其中,所述控制模式确定至少一个机器人控制参数。
6.在一些实施例中,所述器械接口包括工具引导件,所述工具引导件被配置为与能够由所述用户在所述协作流程期间操纵的工具接口连接,并且由所述用户施加到所述器械接口的所述力包括以下各项中的至少一项:(1)在用户操纵所述工具期间间接施加到所述工具引导件的力;(2)由所述用户直接施加到所述工具引导件的力;(3)来自所述机器人的环境的力;以及(4)由所述工具产生的力。
7.在一些实施例中,所述系统控制器被配置为将所述时间力/扭矩数据应用于神经网络以确定所述用户的所述当前意图或所述协作流程的所述状态。
8.在一些实施例中,所述神经网络被配置为根据所述时间力/扭矩数据来确定所述用户何时用所述工具钻孔,并且还被配置为根据所述时间力/扭矩数据来确定所述用户何时用所述工具锤击。
9.在一些实施例中,所述至少一个机器人控制参数控制所述工具引导件抵抗在至少一个方向上施加的所述力所呈现的刚度。
10.在一些实施例中,当所述神经网络根据所述时间力/扭矩数据来确定所述用户正在用所述工具锤击时,所述神经网络进一步确定所述工具是正在锤穿骨骼还是正在锤穿组织,其中,当所述工具被确定为正在锤穿组织时,所述控制模式是第一刚度模式,其中,所述机器人控制器控制所述工具引导件以具有第一刚度,并且其中,当所述工具被确定为正在锤穿骨骼时,所述控制模式是第二刚度模式,其中,所述机器人控制器控制所述工具引导件以具有第二刚度,其中,所述第二刚度小于所述第一刚度。
11.在一些实施例中,当所述系统改变所述控制模式时,所述系统向所述用户提供警报。
12.在一些实施例中,所述系统控制器还被配置为接收辅助数据,所述辅助数据包括以下各项中的至少一项:视频数据、图像数据、音频数据、外科手术计划数据、诊断计划数据,以及机器人振动数据,并且所述系统控制器还被配置为基于所述时间力/扭矩数据和所述辅助数据来确定所述用户的所述当前意图或所述协作流程的所述状态。
13.在本发明的另一方面,提供了一种用于操作机器人臂的方法,所述机器人臂具有一个或多个控制自由度,其中,所述机器人臂包括器械接口。所述方法包括:接收时间力/扭矩数据,其中,所述时间力/扭矩数据表示在与用户的协作流程期间由力/扭矩传感器感测的随时间的在所述器械接口处的力;分析所述时间力/扭矩数据以确定所述用户的当前意图和所述协作流程的状态中的至少一项;并且以控制模式控制所述机器人臂,所述控制模式是针对所确定的所述用户的当前意图或所述协作流程的状态而预定义的,其中,所述控制模式确定至少一个机器人控制参数。
14.在一些实施例中,所述器械接口包括工具引导件,所述工具引导件被配置为与能够由所述用户在所述协作流程期间操纵的工具接口连接,并且其中,所述力/扭矩传感器测量以下各项中的至少一项:(1)在用户操纵所述工具期间由所述用户间接施加在所述工具引导件上的力;(2)由所述用户直接施加到所述工具引导件的力;(3)来自所述机器人的环境的力;以及(4)由所述工具产生的力。
15.在一些实施例中,分析所述时间力/扭矩数据以确定所述用户的所述当前意图和所述协作流程的所述状态中的至少一项包括将所述时间力/扭矩数据应用于神经网络以确定所述用户的所述当前意图或所述协作流程的所述状态。
16.在一些实施例中,所述神经网络根据所述时间力/扭矩数据来确定所述用户何时用所述工具钻孔,并且还根据所述时间力/扭矩数据来确定所述用户何时用所述工具锤击。
17.在一些实施例中,所述至少一个机器人控制参数控制所述工具引导件抵抗在至少一个方向上施加的所述力所呈现的刚度。
18.在一些实施例中,当所述神经网络根据所述时间力/扭矩数据来确定所述用户正在用所述工具锤击时,所述神经网络进一步确定所述工具是正在锤穿骨骼还是正在锤穿组织,其中,当所述工具被确定为正在锤穿组织时,所述控制模式是第一刚度模式,其中,所述
工具引导件具有第一刚度,并且其中,当所述工具被确定为正在锤穿骨骼时,所述控制模式是第二刚度模式,其中,所述工具引导件具有第二刚度,其中,所述第二刚度小于所述第一刚度。
19.在一些实施例中,所述方法还包括:当所述控制模式改变时,向所述用户提供警报。
20.在一些实施例中,所述方法还包括:接收辅助数据,所述辅助数据包括以下各项中的至少一项:视频数据、图像数据、音频数据、外科手术计划数据、诊断计划数据,以及机器人振动数据;并且基于所述时间力/扭矩数据和所述辅助数据来确定所述用户的所述当前意图或所述协作流程的所述状态。
21.在本发明的又一方面,提供了一种用于控制机器人臂的处理系统,所述机器人臂具有一个或多个控制自由度,其中,所述机器人臂包括器械接口。所述处理系统包括:处理器;以及存储器,其中存储有指令。所述指令在由所述处理器运行时使所述处理器:接收时间力/扭矩数据,其中,所述时间力/扭矩数据表示在与用户的协作流程期间的随时间的在所述器械接口处的力;分析所述时间力/扭矩数据以确定所述用户的当前意图和所述协作流程的状态中的至少一项;并且使得以控制模式控制所述机器人臂,所述控制模式是针对所确定的所述用户的当前意图或所述协作流程的状态而预定义的,其中,所述控制模式设定至少一个机器人控制参数。
22.在一些实施例中,所述器械接口包括工具引导件,所述工具引导件被配置为与能够由所述用户在所述协作流程期间操纵的工具接口连接,并且所述力包括以下各项中的至少一项:(1)在用户操纵所述工具期间由所述用户间接施加在所述工具引导件上的力;(2)由所述用户直接施加到所述工具引导件的力;(3)来自所述机器人的环境的力;以及(4)由所述工具产生的力。
23.在一些实施例中,所述指令还使所述处理器分析所述时间力/扭矩数据,以识别由所述用户提供给所述系统的命令,从而以指令指示所述系统将所述控制模式切换到预定义的模式。
24.在一些实施例中,所述至少一个机器人控制参数控制所述工具引导件抵抗在至少一个方向上施加的所述力所呈现的刚度。
附图说明
25.图1图示了外科手术室的示例,其中,外科医生在模拟脊柱融合流程中与协作机器人一起操作。
26.图2图示了具有力感测的协作机器人工具引导件的一个示例实施例。
27.图3图示了协作机器人的示例实施例。
28.图4图示了图示根据本公开内容的实施例的处理器和相关联的存储器的示例实施例的框图。
29.图5图示了针对在协同外科手术介入的不同阶段进行锤击和钻孔的力/扭矩曲线。
30.图6图示了用于基于力/扭矩数据和映射检测到的机器人状态的机器人数据对在协作流程期间的事件进行分类的布置的示例。
31.图7图示了用于基于由协作机器人进行的力/扭矩状态检测来自动切换协作机器
人的控制模式的控制流程的第一示例实施例。
32.图8图示了用于基于由协作机器人进行的力/扭矩状态检测来自动切换协作机器人的控制模式的控制流程的第二示例实施例。
33.图9图示了基于由协作机器人进行的力/扭矩状态检测来控制协作机器人的方法的示例实施例的流程图。
具体实施方式
34.下面将参考附图来更全面地描述本发明,在附图中示出了本发明的优选实施例。然而,本发明可以以不同的形式来体现,并且不应被解释为局限于本文阐述的实施例。而是,提供这些实施例作为本发明的教学示例。
35.特别地,为了说明本发明的原理,在机器人引导的外科手术(例如,脊柱融合外科手术)的背景下描述了各种系统。然而,应当理解,这是为了说明协作机器人和操作协作机器人的方法的具体示例。更广泛地,如本文所公开的协作机器人和操作协作机器人的方法的各个方面可以应用于各种其他背景和设置中。因此,本发明将被理解为由权利要求来定义,而不受本文描述的具体实施例的细节的限制,除非在权利要求本身中记载了这些细节。
36.在本文中,当某个事物被称为“近似”或“大约”某个值时,它意味着在该值的10%以内。
37.图1图示了外科手术室100的示例,其中,外科医生10在模拟机器人引导的脊柱融合外科手术流程中与协作机器人110一起操作。图1所示的是机器人控制器120、外科手术导航显示器130、相机140和锥束计算机断层摄影(cbct)装置,它们辅助外科医生10执行机器人引导的脊柱融合外科手术流程。这里,机器人110用于辅助外科医生10沿着规划的轨迹在椎弓根(椎骨的节段)内部精确地创建孔。在使用针或钻头在多个椎弓根中创建了孔之后,外科医生10将螺钉放置在这些导航孔内部并用杆固定相邻的螺钉以将多个椎骨融合在期望的配置中。
38.当前,机器人的行为或模式由机器人用户或另一人类助手手动改变,这在总时间和延迟方面效率低下并且扰乱了工作流程。在一些情况下,人类操作者可能甚至都不知道机器人模式应当及时改变才会有用。这样的改变可以包括:例如,基于正在执行的任务的类型(例如,钻孔与锤击)来改变机器人顺应性,或者基于器械所经过的组织类型来改变安全区(工具角度/位置)。
39.当前管理这种情况的方法包括基于阈值的事件/状态检测,但是这些方法没有足够的鲁棒性和特异性而无法辨别与流程的特定事件或状态相关的信号的复杂性和真实性。傅里叶空间分析技术也是如此。此外,模式改变必须是直观且透明的,因此需要传达所选择的行为类型。
40.为了解决这些需求中的一些或全部需求,本发明人设想到协作机器人和用于协作机器人的控制方法,它利用对工具相互作用力的力感测来基于机器人的状态和在工具接口处感测到的相关动态力信息来自动更改机器人行为。
41.图2图示了协作机器人110和具有力感测的相关联的工具引导件30的一个示例实施例。如图2所示,协作机器人110包括机器人臂111,机器人臂111具有包括工具引导件30的器械接口,工具引导件30被设置在机器人臂111的末端执行器113处。这里,工具引导件30可
以具有圆柱形形状,并且具有手柄22的工具或器械20(例如,钻头、针等)穿过工具引导件30中的开口,以供外科医生在外科手术流程(例如,脊柱融合外科手术流程)期间使用。
42.协作机器人110还包括力/扭矩传感器112,力/扭矩传感器112感测由用户在操作期间施加在工具引导件30处或施加到工具引导件30的力,例如,在图1所示的脊柱融合外科手术流程期间外科医生10在工具引导件30中操纵工具20的同时间接施加的力,和/或可能由用户或外科医生10作为命令形式直接施加到工具引导件30的力,如下面更详细地讨论的那样。在一些情况下,力/扭矩传感器也可以感测来自机器人的环境的力和/或由工具或器械20产生的力。合适的力/扭矩传感器112的示例是nano25力/扭矩传感器——来自ati工业自动化公司的六轴换能器。
43.有益的是,可以由用户(例如,外科医生10)推动工具引导件30来直接控制协作机器人110。外科医生10可以使用交接控制(也被称为“力控制”或“导纳控制”)来调整协作机器人110的位置。协作机器人110还可以用作智能工具引导件,从而将圆柱形工具引导件40精确地移动到针对规划的轨迹的规划的位置和姿势或姿态,并且在外科医生10通过锤击或钻孔将工具引导件30内部的器械或工具20(例如,针)与椎弓根接合时保持该位置。
44.如下文更详细地描述的,导纳控制方法(使用来自力/扭矩传感器112的信号)还允许在每个自由度(dof)上独立地调整协作机器人110的顺应性(更具体地说是末端执行器113和工具引导件30的顺应性),例如,在笛卡尔旋转中非常坚硬,但在笛卡尔平移中非常柔顺。
45.图3图示了协作机器人110的更一般的示例实施例。
46.协作机器人110包括机器人主体114和从机器人主体114延伸的机器人臂111,机器人臂111具有器械接口,该器械接口包括工具引导件30,工具引导件30由被设置在机器人臂111的端部处的末端执行器113保持。末端执行器113可以包括用于抓取和保持工具引导件30的抓取机构。图3示出了穿过圆柱形工具引导件30中的开口的工具20,并且工具20具有手柄22,用户(例如,外科医生)可以操纵手柄22来执行期望的协作流程。
47.协作机器人110还包括机器人控制器120和系统控制器300。机器人控制器120可以包括一个或多个处理器、存储器、致动器、电动机等,以用于实现协作机器人110的移动,特别是包括工具引导件30的器械接口的移动和定向。如图3所示,系统控制器300可以包括一个或多个处理器310和(一个或多个)相关联的存储器320。
48.在一些实施例中,机器人控制器120可以与机器人主体140集成在一起。在其他实施例中,机器人控制器120的一些或所有部件可以与机器人主体140分开提供,例如被提供为膝上型计算机或可以包括显示器和图形用户接口的其他设备。在一些实施例中,系统控制器300可以与机器人主体140集成在一起。在其他实施例中,系统控制器300的一些或全部部件可以与机器人主体140分开提供。在一些实施例中,系统控制器300的一个或多个处理器或存储器可以与机器人控制器120共享。可以设想到机器人主体140、机器人控制器120和系统控制器300的许多不同的分区和配置。
49.下面更详细地描述了机器人控制器120和系统控制器300。
50.机器人臂111可以具有一个或多个关节,其中的每个关节都可以具有多达六个自由度——例如,沿着相互正交的x轴、y轴和z轴的任意组合平移以及围绕x轴、y轴、z轴的旋转(也被称为偏航、俯仰和翻滚)。另一方面,机器人臂111的一些或所有关节可以具有小于
六个的自由度。关节在任意自由度或所有自由度上的移动可以响应于由机器人控制器120提供的控制信号来执行。在一些实施例中,用于控制机器人臂111的一个或多个关节的电动机、致动器和/或其他机构可以被包括在机器人控制器120中。
51.协作机器人110还包括力/扭矩传感器112,力/扭矩传感器112感测施加到器械接口或施加在器械接口处的力,例如,当外科医生10在脊柱融合外科手术流程期间正在操纵工具20时由被设置在工具引导件30内的工具20施加到工具引导件30的力,如图1所示。在一些实施例中,协作机器人可以包括多个力/扭矩传感器112。
52.机器人控制器120可以部分地响应于从系统控制器300接收的一个或多个控制信号而控制机器人110,如下面更详细地描述的那样。反过来,系统控制器300可以响应于从力/扭矩传感器112接收的一个或多个信号而向机器人控制器120输出一个或多个控制信号。特别地,系统控制器300接收时间力/扭矩数据,其中,时间力/扭矩数据表示随时间的施加到包括工具引导件30的器械接口或施加在该器械接口处的力,并且在由用户进行的协作流程期间由力/扭矩传感器112来感测。如下所述,系统300可以被配置为:解读来自力/扭矩传感器112的(一个或多个)信号以弄清协作机器人110的用户的意图和/或命令,并且控制协作机器人110根据(如由力/扭矩感测器112感测的力/扭矩所表示的)用户的意图或命令来产生动作。
53.图4图示了根据本公开内容的实施例的处理器400和相关联的存储器450的示例实施例的框图。
54.处理器400可以用于实施本文描述的一个或多个处理器,例如,图3所示的处理器310。处理器400可以是任何合适的处理器类型,包括但不限于微处理器、微控制器、数字信号处理器(dsp)、现场可编程阵列(fpga)(其中,fpga已被编程以形成处理器)、图形处理单元(gpu)、专用集成电路(asic)(其中,asic已被设计成形成处理器)或其组合。
55.处理器400可以包括一个或多个核402。核402可以包括一个或多个算术逻辑单元(alu)404。在一些实施例中,除了alu 404以外或者代替alu 404,核402可以包括浮点逻辑单元(fplu)406和/或数字信号处理单元(dspu)408。
56.处理器400可以包括被通信性耦合到核402的一个或多个寄存器412。可以使用专用逻辑门电路(例如,触发器(flip-flop))和/或任何存储器技术来实施寄存器412。在一些实施例中,寄存器412可以使用静态存储器来实施。寄存器412可以向核402提供数据、指令和地址。
57.在一些实施例中,处理器400可以包括被通信性耦合到核402的一个或多个级别的高速缓冲存储器410。高速缓冲存储器410可以向核402提供计算机可读指令以供运行。高速缓冲存储器410可以提供数据以供核402来处理。在一些实施例中,计算机可读指令可以由本地存储器(例如,附接到外部总线416的本地存储器)提供给高速缓冲存储器410。高速缓冲存储器410可以利用任何合适的高速缓冲存储器类型来实施,例如,金属氧化物半导体(mos)存储器,例如,静态随机存取存储器(sram)、动态随机存取存储器和/或任何其他合适的存储器技术。
58.处理器400可以包括控制器414,控制器414可以控制来自系统中包括的其他处理器和/或部件(例如,图3中的力/扭矩传感器112)对处理器400的输入和/或从处理器400到系统中包括的其他处理器和/或部件(例如,图3中的机器人控制器120)的输出。控制器414
可以控制alu 404、fplu406和/或dspu 408中的数据路径。控制器414可以被实施为一个或多个状态机、数据路径和/或专用控制逻辑单元。控制器414的门可以被实施为独立的门、fpga、asic或任何其他合适的技术。
59.寄存器412和高速缓冲存储器410可以经由内部连接420a、420b、420c和420d与控制器414和核402通信。内部连接可以被实施为总线、多路复用器、交叉开关和/或任何其他合适的连接技术。
60.针对处理器400的输入和输出可以经由总线416来提供,总线416可以包括一条或多条导线。总线416可以被通信性耦合到处理器400的一个或多个部件,例如,控制器414、高速缓冲存储器410和/或寄存器412。总线416可以被耦合到系统的一个或多个部件,例如,先前提到的机器人控制器120。
61.总线416可以被耦合到一个或多个外部存储器。外部存储器可以包括只读存储器(rom)432。rom 432可以是掩模rom、电子可编程只读存储器(eprom)或任何其他合适的技术。(一个或多个)外部存储器可以包括随机存取存储器(ram)433。ram 433可以是静态ram、电池备份的静态ram、动态ram(dram)或任何其他合适的技术。(一个或多个)外部存储器可以包括电可擦除可编程只读存储器(eeprom)435。(一个或多个)外部存储器可以包括闪速存储器434。(一个或多个)外部存储器可以包括磁性存储设备,例如,磁盘436。在一些实施例中,外部存储器可以被包括在诸如机器人110之类的系统中。
62.包括力/扭矩传感器112的协作机器人110用于在对椎弓根进行钻孔和锤击期间以静态工具引导件保持模式测量力/扭矩(ft),这是脊柱融合中常见但极其困难的任务。
63.图5图示了用于在协作外科手术介入的不同阶段针对锤击和钻孔的力/扭矩分布500。
64.图5示出了第一力/扭矩迹线510,该第一力/扭矩迹线510表示当外科医生正在用被设置在工具引导件20内的工具20执行锤击操作时作为时间的函数的施加到包括工具引导件30的器械接口或施加在该器械接口处的力。第一扭矩迹线510包括两幅完全不同且可识别的时间力/扭矩图案,包括与在锤穿软组织的操作或过程期间施加到包括工具引导件30的器械接口的力/扭矩相对应的第一时间图案512,以及与在锤入骨骼的操作或过程期间施加到包括工具引导件30的器械接口的力/扭矩相对应的第二时间图案514。第二扭矩迹线520示出了与在钻透骨骼的操作或过程期间施加到包括工具引导件30的器械接口的力/扭矩相对应的时间图案。
65.图5的力/扭矩迹线描绘了感测或测量的在锤击与钻孔之间(甚至在与器械或工具相互作用的组织类型之间)施加到包括工具引导件30的器械接口的力/扭矩的时间图案的明显差异。
66.如下面更详细地讨论的,可以配置系统控制器300以识别这些不同的时间力/扭矩数据的图案,从而弄清用户(例如,外科医生10)正在执行什么操作。时间力/扭矩数据可以通过预期要在特定外科手术流程期间执行的有序操作(例如,预期外科医生在机器人引导的脊柱融合外科手术流程期间应当执行的有序操作)的知识来补充。例如,可以预期在锤穿组织的操作之后是锤入骨骼的操作,然后钻入骨骼等。这样的知识可以被存储在与系统控制器300相关联的存储器中,并且在系统控制器300在协作外科手术流程期间控制协作机器人110的操作时,系统控制器的处理器可以访问这样的知识。
67.一种用于在协作流程期间检测介入状态(或用户意图)的系统和方法采用递归神经网络来考虑力/扭矩测量数据的时间系列以及协作机器人110的当前状态(例如,在与(例如在工具引导件30处解析的)力/扭矩测量数据相同的位置处解析的协作机器人110的速度)。这种类型的网络可以用从多次试验中收集的数据来训练以提高其性能。
68.图6图示了用于基于力/扭矩数据和映射检测到的机器人状态的机器人数据对在协作流程期间的事件进行分类的布置的示例。
69.图6示出了神经网络600,神经网络600接收协作机器人110的机器人状态序列602和时间力/扭矩数据604作为输入,时间力/扭矩数据604表示在协作流程期间随时间的施加到包括工具引导件30的器械接口的力,例如,当工具20被用户(例如,外科医生10)操纵时由被设置在工具引导件30内的工具20施加到工具引导件30的力。机器人状态序列602是例如在协作流程期间的机器人状态的时间序列,在该时间序列中,协作机器人110从先前操作一直到现在。响应于时间力/扭矩数据604和机器人状态序列602,神经网络600从协作机器人110的可能的机器人状态610的集合中输出协作机器人110的当前机器人状态。
70.每个可能的机器人状态610反过来对应于协作机器人110的一个或多个控制模式。例如,如图6所示,当神经网络600弄清协作机器人110的当前机器人状态是“锤击软组织”状态时,则它使协作机器人110以“启用高刚度控制模式”620a操作。相反,当神经网络600弄清协作机器人110的当前机器人状态是“锤击内部骨骼”状态时,则它使协作机器人110以“启用低刚度控制模式”620b操作。在一些情况下,可以颠倒相对刚度以保持规划的轨迹,而不管解剖结构的几何形状。
71.在一些实施例中,通过处理器310运行由存储在存储器320中的指令所定义的计算机程序,可以将神经网络600实施在系统控制器300中。利用硬件和/或固件和/或软件的各种组合实现的其他实施例也是可能的。
72.在图6的示例中,在任何给定时间,协作机器人110可以在六种定义的机器人状态(包括锤击软组织、锤击内部骨骼、钻孔皮质、钻孔松质、未知,以及无活动)中的任一种状态下操作。其他机器人状态610也是可能的,例如,移动状态、检测到刮削的状态、缩回状态、工具引导状态中的插入器械、检测到姿势的状态(指示期望特定的用户控制)等,具体取决于协作机器人110参与的协作流程。
73.有益的是,每个机器人状态610可以被定义为在包括工具引导件30的器械接口处(在末端执行器113的端部处)解析的笛卡尔速度。可以根据协作机器人110的关节编码器值和正向运动学模型以及机器人的雅可比矩阵来计算速度,雅可比矩阵将关节速率与末端执行器113的线速度和角速度进行相关。
74.机器人状态610还可以包括例如:来自外部跟踪系统(光学跟踪器、电磁跟踪器)的速度;机器人臂111的电动机上的扭矩;使用的工具20的类型;工具的状态(开钻或关钻、位置跟踪等);来自工具20或协作机器人110上的加速度计的数据等。
75.力/扭矩数据可以表示一个或多个自由度上的力/扭矩。一般来说,可以在几个不同的方便位置中的一个位置处解析力/扭矩。有益的是,可以在末端执行器113的端部处的工具引导件30处解析力/扭矩。一般来说,除了基本的降噪和处理以解析特定位置处(例如,在末端执行器113的端部处的工具引导件30处)的力/扭矩以外,不需要预处理时间力/扭矩数据604。
76.有益的是,机器人状态检测的方法可以(例如经由神经网络600)使用数据驱动的模型来基于从力/扭矩传感器112输出的短时段数据(即,时间力/扭矩数据604)和机器人状态610连续地对流程或介入的机器人状态(也称为类型)进行分类。有许多潜在的模型架构可以用于对具有多个输入的时间系列数据进行分类。一个有益的模型是长短期记忆(lstm)网络,因为它比典型的递归神经网络(rnn)更稳定。其他可能的网络的示例包括回声状态网络、卷积神经网络(cnn)、卷积lstm以及使用多层感知器、决策树、逻辑回归等手工制作的网络。
77.有益的是,对输入到神经网络600的数据流(其可以包括力/扭矩数据(604)、机器人状态(602)、当前控制模式(参见下图7)等)进行预处理(内插、下采样、上采样等)以使每个数据点具有相同的时段(通常是最高频率数据流(其通常是来自力/扭矩传感器112的时间数据)的时段(例如,1khz或1ms时段)。在一些实施例中,可以将神经网络600的时间滑动窗口设定为大约三(3)秒长,以捕获典型事件(例如,钻、铰、推、拉、拧和锤(例如,锤击具有大约一(1)秒的典型间隔))并同时足够短以响应给定任务。每个窗口移位(前进)都是要分类的新样本,并且在训练阶段,它有一个相关联的机器人状态标签。较小尺寸的窗口可能会被丢弃。
78.在一些实施例中,单个输入样本可以包含n个时间步长中的每个时间步长的12个特征(例如,在1khz采样下在3秒内的36k个个体特征),在每项中由:3个特征针对力,3个特征针对扭矩,3个特征针对xyz机器人线速度,3个特征针对机器人角速度。在一些实施例中,lstm的输出是针对给定输入窗口样本的每个机器人状态的概率。在一些实施例中,模型具有两个lstm隐藏层,随后是丢弃层(dropout layer)(以减少过度拟合),随后是具有常见的修正线性单元(“relu”)激活函数的密集全连接层以及具有归一化的指数函数(“softmax”)激活的输出层。lstm和relu是本领域普通技术人员可以理解的常见的深度学习模型的构建块。损失函数是类别交叉熵,并且可以使用自适应学习速率优化算法(adam)优化器来优化模型。adam优化器是针对深度学习模型的广泛使用的优化器,如在例如diederik p.kingma等人的“adam:a method for stochastic optimization”(第三届国际学习表征会议,圣地亚哥,2015年)中所描述的那样。
79.有益的是,在训练中,采用护理来平衡预期的所有不同机器人状态的示例,尤其是与最常见的(一种或多种)机器人状态(例如,无活动)相比,很少经历的机器人状态(例如,钻孔)。这减少了朝向常见的机器人状态的偏置。这些技术可以包括在训练序列中对最常见的机器人状态进行欠采样和/或对罕见的机器人状态过采样。另外,使用基于代价的分类器来惩罚对感兴趣的机器人状态的错误分类,同时降低对(一种或多种)常见的机器人状态的正确分类的代价。这在时间窗口内发生罕见事件的情况下尤其有用(例如,无活动的三次锤击vs持续三秒的钻孔)。
80.图7和图8图示了用于诸如协作机器人110之类的协作机器人的控制模式切换算法的两个不同示例。
81.图7图示了用于基于由协作机器人110进行的力/扭矩状态检测来自动切换协作机器人110控制模式的控制流程700的第一示例实施例。控制流程700可以由系统控制器300来实施,更具体地由系统控制器100的处理器310来实施。控制流程700采用具有当前模式输入606的单个模型(以及对应的单个神经网络600)以在当前控制模式620期间检测机器人状态
610。神经网络600隐含地考虑了在机器人状态检测中的当前控制模式背景。
82.最初,在操作702中,系统控制器300选择开始控制模式,例如要么响应于来自用户(例如,外科医生10)的直接输入,要么作为针对协作机器人110的预编程的初始控制模式(其可以针对特定的协作流程来确定)。
83.在操作704中,系统控制器300针对协作机器人110设定当前控制模式706,最初为开始控制模式。系统控制器300可以向机器人控制器120提供一个或多个信号,以指示当前控制模式706和/或使机器人控制器120根据当前控制模式706来控制协作机器人110(特别是机器人臂111)。通过设定当前模式(上面已经描述了其示例),系统控制器300可以控制一个或多个机器人控制参数,包括例如控制工具引导件30抵抗在多达六个自由度中的一个或多个自由度(例如在至少一个方向)上施加到工具引导件30的力所呈现的刚度的量。
84.在一些实施例中,除了在工具引导件30处所呈现的刚度以外,系统控制器300还可以控制其他机器人控制参数,例如,位置限制(轨迹约束)、(在特定位置的)停留时间、机器人臂111的加速度、振动、工具20的钻孔速度(开/关)、最大速度和最小速度等。
85.控制流程700采用机器人状态检测网络750来弄清或检测协作机器人110的机器人状态610。如上所述,状态检测网络750包括神经网络600,神经网络600接收协作机器人110的机器人状态序列602、时间力/扭矩数据604和当前控制模式606作为其输入,并且响应于此而从协作机器人110的多种可能的机器人状态中选择机器人状态610。
86.操作712将由机器人状态检测网络750检测到的机器人状态610映射到协作机器人110的映射控制模式620。
87.操作714确定映射控制模式620是否与协作机器人110的当前控制模式706相同。如果是,则当前控制模式706保持不变。如果不是,则当前控制模式706应当被改变或切换到映射控制模式620。
88.在一些实施例中,在操作716中,系统控制器300可以警告用户系统控制器300具有未决的控制模式切换请求这一事实。系统控制器300可以请求用户(例如,外科医生10)确认或批准控制模式切换请求。在一些实施例中,可以仅针对一些特定流程运行操作716,而针对其他流程跳过操作716。
89.在一些实施例中,可以经由与系统控制器300相关联的用户接口向用户呈现操作716的控制模式切换请求,例如经由显示设备(例如,显示设备130)视觉地呈现请求,或者经由扬声器听觉地(例如,口头地)呈现请求等。
90.在运行操作716的控制模式切换请求的那些实施例或流程中,然后在操作718中,系统控制器确定用户(例如,外科医生10)是否确认或批准控制模式切换请求。用户或外科医生可以以多种方式中的任一种方式来确认或批准(或者相反地,拒绝或不批准)控制模式切换请求。示例包括:
91.·
用户或外科医生可以通过点击用户接口的踏板或按钮以确认控制模式的改变来做出响应。
92.·
可以使用语音识别来确认用户批准或接受控制模式的改变。
93.·
用户可以经由手势/身体姿势来批准或接受控制模式的改变,这可以使用视觉或深度跟踪相机来检测,并且作为补充或辅助数据输入被提供给系统控制器300。
94.在一些情况下,无需确认的控制模式切换可以是可接受的,并且这些情况可能与
一些需要用户输入的情况相混合。因此,操作716和718可以是任选的。在这些情况下,向用户或外科医生指示已经进入了哪种模式的简单听觉效果就足够了。如果这不是所期望的模式,则用户或外科医生可以取消或停止机器人运动。有益的是,可以使用视听手段(例如,数字显示器、机器人上的led灯、描述系统正在感测和改变的语音反馈等)将当前检测到的机器人状态和控制模式清楚地传达给用户或外科医生。
95.如果未批准控制模式切换请求,则保持当前控制模式706。
96.另一方面,批准了控制模式切换请求,或者如果省去了操作716和718,则重复操作704以将映射模式620设定为协作机器人110的新的当前控制模式706。将新的当前控制模式706提供给神经网络600的输入606并将其作为一个或多个输出信号而提供给机器人控制器120。
97.图8图示了用于基于由协作机器人进行的力/扭矩状态检测来自动切换协作机器人的控制模式的控制流程800的第二示例实施例。控制流程800可以由系统控制器300来实施,更具体地由系统控制器300的处理器310来实施。
98.为了简洁起见,将不再重复对在控制模式800中的与控制模式700中的情况相同的操作和流程路径的描述。
99.与控制流程700形成对比,控制流程800采用了多个机器人状态检测网络850a、850b、850c等以用于检测机器人状态,一个机器人状态检测网络针对在控制模式切换事件时选择的每个控制模式。机器人状态检测网络850a、850b、850c等中的每个机器人状态检测网络实施用于机器人状态检测的对应模型并输出对应的检测到的机器人状态。在控制流程800中,在操作855中,针对每个控制模式明确选择从多个模型之一(及其对应的神经网络600)输出的检测到的机器人状态。
100.在一些实施例中,可以添加手工制作的状态机层以防止假阳性和假阴性,添加时间过滤器,并且考虑流程计划或更长期的状态转变。例如,在椎弓根钻孔的情况下,在执行了钻孔之后,医生不太可能锤击钻头,并且可以在控制流程中包括更高级别的状态机来检测这种不一致情况。可以传达关于没有正确使用协作机器人110或者没有遵循流程的错误。
101.图9图示了方法900的示例性实施例的流程图,方法900基于由协作机器人110在流程或介入期间进行的力/扭矩状态检测来控制协作机器人(例如,协作机器人110)。
102.在操作910中,用户(例如,外科医生10)操纵器械或工具(例如,工具20),该器械或工具在协作流程(例如,脊柱融合外科手术流程)中将力施加到器械接口(例如,工具引导件30)或机器人臂111的其他部分。
103.在操作920中,(一个或多个)力/扭矩传感器112感测施加到器械接口或机器人臂111的其他部分的力(例如,在工具引导件30处的力)。
104.在操作930中,系统控制器300的处理器310接收从(一个或多个)力/扭矩传感器112生成的时间力/扭矩数据604。
105.在操作940中,处理器310分析时间力/扭矩数据604以确定用户的当前意图和/或在协作流程期间的一个或多个机器人状态。
106.在操作950中,系统控制器400根据用户的当前意图和/或在协作流程期间的当前机器人状态和/或(一个或多个)过去机器人状态来确定协作机器人110的控制模式。
107.在操作960中,系统控制器300向用户通知所确定的应当将协作机器人设定到的控
制模式,并在将当前控制模式设定或改变到所确定的控制模式之前等待用户确认。
108.在操作970中,系统控制器300设定协作机器人110的控制模式。
109.在操作980中,系统控制器300基于当前控制模式来设定一个或多个机器人控制参数。这一个或多个机器人控制参数可以控制工具引导件30例如在多达六个自由度中的一个或多个自由度上所呈现的刚度的量。在一些实施例中,除了在工具引导件30处呈现的刚度以外,系统控制器300还可以控制其他操作参数,例如,位置限制(轨迹约束)、(在特定位置的)停留时间等。
110.可以设想到上述实施例的许多变型。
111.例如,在上述基本情况下,力/扭矩传感器112位于主机器人主体114与工具引导件30之间。然而,在一些实施例中,力/扭矩传感器112可以位于工具引导件30附近或者被集成到机器人主体114中。有益的是,可以采用六自由度力/扭矩感测技术。机器人臂111的关节上的扭矩测量结果还可以提供关于在工具引导件30处解析的力/扭矩的基本信息。可以在工具引导件30处解析力,也可以在工具20的顶端的所估计或测量的位置处解析力。
112.在一些机器人/传感器配置中,系统控制器300可以根据由环境施加在器械(例如,集成在器械顶端上的力传感器/扭矩传感器以及工具引导件上的另一力/扭矩传感器)上的力/扭矩来辨别用户施加的输入力/扭矩。例如,环境力(例如,工具上的组织推动)可以是数据模型为了弄清工具是穿过软组织还是穿过骨骼的反馈信息的主要来源。也就是说,环境力包括解剖结构响应于用户和机器人通过工具提供的刺激而产生的结果。
113.在一些实施例中,系统控制器300可以考虑用于在协作流程或介入期间检测机器人状态的不同输入。这样的输入的示例可以包括:
114.·
力/扭矩数据的频域
115.·
速度/加速度数据的频域
116.·
当前机器人状态
117.·
针对目标的估计位置
118.·
流程的类型
119.·
估计的骨骼类型
120.·
在(来自导航的)器械顶端处的估计的组织类型
121.·
机器人刚度
122.·
机器人控制模式
123.·
计算机断层摄影数据
124.·
磁共振成像数据
125.这些数据输入中的每个数据输入都具有不同的行为,并且可以根据协作机器人110的期望关注内容来考虑这些数据输入。
126.在一些实施例中,系统控制器300可以接收补充或辅助数据输入,以帮助辨别背景(搜索空间)以改进机器人状态检测。这样的数据可以包括以下各项中的一项或多项:视频数据、诊断数据、图像数据、音频数据、外科手术计划数据、时间数据、机器人振动数据等。系统控制器300可以被配置为基于时间力/扭矩数据和辅助数据来确定用户(外科医生)的当前意图或协作流程的状态。
127.在一些实施例中,用户(例如,外科医生10)也可以以非常特殊的方式向协作机器
人110施加力/扭矩以从事特殊的控制模式。例如,协作机器人110的系统控制器300可以被配置为识别用户何时(经由工具引导件20中的器械或工具209或者通过直接向工具引导件30施加力)在工具引导件30上施加圆周力,并且作为响应,系统控制器300可以将协作机器人110置于典范的力控制模式(例如,导纳控制器,其允许操作者通过在期望的方向上向机器人施加力来移动机器人)。换句话说,系统控制器300的处理器可以被配置为分析时间力/扭矩数据604,以识别由用户提供给系统控制器300的命令,从而以指令指示系统控制器300将协作机器人110的控制模式切换到预定义的控制模式。可以被解读为控制模式命令的用户的特定压力动作的一些其他示例可以包括:
128.·
用户或外科医生上下按压3次——仅平移模式。
129.·
用户向上按压两次做圆周运动——仅插入模式。
130.·
用户按特定顺序施加压力(例如,左、右、上、下)——选择下一规划轨迹。
131.可以采用用于对应控制模式的特定命令的许多其他示例。
132.在一些实施例中,也可以用机器人本身的振动感测(例如经由加速度计)来补充或替代如上所述的力/扭矩感测。像锤击和钻孔这样的事件在机器人结构中引起振动,这种振动可以在远离机器人工具执行器的地方被检测到,并且以与上述方式相同的方式被使用。
133.各种实施例可以组合上述变型。
134.虽然在本文中详细公开了优选实施例,但是在本发明的构思和范围内的许多其他变型仍是可能的。在检查了本文中的说明书、附图和权利要求之后,这样的变型对于本领域普通技术人员来说将变得清楚。因此,除了在权利要求的范围内以外,本发明不受限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献