手术机器人及其控制方法、控制系统与流程

文档序号:32652010发布日期:2022-12-23 18:10阅读:182来源:国知局
手术机器人及其控制方法、控制系统与流程

1.本技术涉及医疗器械领域,特别是涉及一种手术机器人及其控制方法、控制系统。


背景技术:

2.微创手术是指利用腹腔镜、胸腔镜等现代医疗器械及相关设备在人体腔体内部施行手术的一种手术方式。相比传统手术方式,微创手术具有创伤小、疼痛轻、恢复快等优势。
3.随着科技的进步,微创手术系统技术逐渐成熟,并被广泛应用。微创手术系统通常包括主操作台及从操作设备,主操作台用于根据医生的操作向从操作设备发送控制命令,以控制从操作设备,从操作设备用于响应主操作台发送的控制命令,并进行相应的手术操作。其中,主操作台包括操作部,医生通过操作操作部从而操纵从操作设备运动以执行手术操作。
4.一些构成中,操作部包括臂,臂包括关节组件和驱动关节组件运动的驱动机构,驱动机构和关节组件之间通过丝结构连接,进而利用该丝结构进行传动,该丝结构例如包括钢丝。医生在无需操作该操作部时,操作部中关节组件制动使得操作部处于刚性状态,进而使得操作部的末端保持当前位置和取向。然而,如果操作部受到外力,在外力的作用下,强行改变操作部的刚性状态,容易导致丝结构被拉断,影响医生后续对操作部的使用。


技术实现要素:

5.基于此,有必要提供一种能够保护操作部中丝结构的手术机器人及其控制方法、控制系统。
6.本技术提供一种手术机器人,包括:操作部,用于操纵从操作设备运动,所述操作部具备关节组件和驱动机构,所述关节组件与驱动机构之间通过丝结构传动;以及至少一个处理器,所述处理器与所述驱动机构电连接,所述处理器被配置成:在医生处于未就绪的状态时,响应于所述操作部受到外力,调节所述关节组件中第一关节组件对应的所述驱动机构的输出力矩以平衡所述第一关节组件远端的负载的重力矩,并恢复所述第一关节组件的关节位置或制动所述第一关节组件。
7.其中,所述输出力矩包括输出合力矩,所述输出合力矩包括用于平衡所述第一关节组件远端的负载的重力矩的第一力矩、及用于恢复所述第一关节组件的关节位置或制动所述第一关节组件的第二力矩,所述输出合力矩包括所述第一力矩和所述第二力矩之和。
8.其中,所述操作部还包括用于检测所述关节组件的关节位置的传感器,所述处理器与所述传感器电连接,所述处理器被配置成:获取所述传感器检测的至少所述第一关节组件及所述第一关节组件远端的所述关节组件的关节位置,结合所述关节位置及关联于所述第一关节组件的动力学模型确定对应于所述第一关节组件的所述驱动机构期望输出的所述第一力矩。
9.其中,所述操作部还包括用于检测所述关节组件的关节位置的传感器,所述处理器与所述传感器电连接,所述第二力矩包括用于恢复所述第一关节组件的关节位置的力矩
时,所述处理器被配置成:获取所述传感器检测的所述第一关节组件的初始关节位置和当前关节位置;根据所述初始关节位置和所述当前关节位置计算所述第一关节组件的关节位置变量;基于所述关节位置变量确定对应于所述第一关节组件的所述驱动机构输出的所述第二力矩。
10.其中,所述第二力矩随着所述关节位置变量的增大而增大。
11.其中,所述第二力矩与所述关节位置变量之间的关系表达为公式:τ=k*δx,其中,τ为所述第二力矩,k为刚度系数,δx为所述关节位置变量。
12.其中,所述处理器还用于:在所述操作部受到外力的持续期间,记录所述第一关节组件在所述当前关节位置的保持时间,在所述保持时间达到设定时间阈值时,更新所述当前关节位置成所述初始关节位置;及/或在所述操作部受到外力的持续期间,获取所述第一关节组件的当前关节位置,在所述当前关节位置的变化量低于位置变化阈值时,记录所述当前关节位置的变化量低于位置变化阈值的第一持续时间,并在所述第一持续时间达到第一时间阈值时,更新所述当前关节位置成所述初始关节位置;及/或在所述操作部受到外力的持续期间,获取所述第一关节组件的关节速度,在所述关节速度低于速度阈值时,记录所述关节速度低于所述速度阈值的第二持续时间,并在所述第二持续时间达到第二设定时间阈值时,更新所述当前关节位置成所述初始关节位置。
13.其中,所述操作部还包括检测所述驱动机构的电流信号的传感器,所述处理器与所述传感器电连接,所述处理器还被配置成:接收所述传感器检测的所述驱动机构的电流信号;根据所述电流信号的变化情况确定所述操作部是否受到外力、及/或确定所述操作部中受到外力的关节组件;基于所述受到外力的关节组件确定所述第一关节组件。
14.其中,所述传感器被配置成每隔第一周期检测所述电流信号,所述根据所述电流信号的变化情况确定所述操作部是否受到外力、及/或确定所述操作部中受到外力的关节组件,包括:计算检测出的相邻所述电流信号的变化率;在所述变化率超过所述第一阈值,确定所述操作部受到外力,及/或根据所述变化率超过所述第一阈值的所述电流信号确定所述受到外力的关节组件。
15.其中,所述传感器被配置成每隔第二周期检测所述电流信号,所述第二周期大于所述第一周期,所述根据所述电流信号的变化情况确定所述操作部是否受到外力、及/或确定所述操作部中受到外力的关节组件,包括:计算检测出的相邻所述电流信号的变化率;在所述变化率超过所述第二阈值时,确定所述操作部受到外力,及/或根据所述变化率超过所述第二阈值的所述电流信号确定所述受到外力的关节组件,所述第二阈值小于所述第一阈值。
16.其中,所述根据所述电流信号的变化情况确定所述操作部是否受到外力、及/或确定所述操作部中受到外力的关节组件,包括:计算所述操作部受到外力之前和所述操作部受到外力之后的所述电流信号之间的电流差值;判断所述电流差值是否超过第三阈值,如果所述电流差值超过所述第三阈值,确定所述操作部受到外力,及/或根据所述电流差值超过所述第三阈值的所述电流信号确定所述受到外力的关节组件。
17.其中,所述基于所述受到外力的关节组件确定所述第一关节组件,包括:确定所述第一关节组件包括所述操作部中具有所述受到外力的关节组件、和靠近所述受到外力的关节组件近端的关节组件中的至少一种;或者,确定所述第一关节组件包括所述操作部中具
有所述受到外力的关节组件、和靠近所述受到外力的关节组件近端的关节组件中,和靠近所述受到外力的关节组件远端的关节组件中的至少一种。
18.本技术还提供一种手术机器人的控制方法,所述手术机器人包括操作部,用于操纵从操作设备,所述操作部具备关节组件和驱动机构,所述关节组件与驱动机构之间通过丝结构传动,所述控制方法包括:在医生处于未就绪的状态时,响应于所述操作部受到外力,调节所述关节组件中第一关节组件对应的所述驱动机构的输出力矩以平衡所述第一关节组件远端的负载的重力矩,并恢复所述第一关节组件的关节位置或制动所述第一关节组件。
19.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被配置为由处理器加载并执行实现如上述任一项实施例所述的方法的步骤。
20.本技术还提供一种手术机器人的控制系统,包括:存储器,用于存储计算机程序;及处理器,用于加载并执行所述计算机程序;其中,所述计算机程序被配置为由所述处理器加载并执行实现如上述任一项实施例所述的方法的步骤。
21.本技术的手术机器人及其控制方法、控制系统,具有如下有益效果:
22.操作部在受到外力时,通过调节第一关节组件对应的驱动机构的输出力矩以平衡第一关节组件远端的负载的重力矩,并恢复第一关节组件的关节位置或制动第一关节组件,一方面能够解除操作部的刚性状态而变得柔软进而保护丝结构不被拉断;另一方面能够对该外力进行缓冲,且在相应第一关节组件受力运动后,能够复位或制动。
附图说明
23.图1为本技术手术机器人中从操作设备一实施例的结构示意图;
24.图2为本技术手术机器人中主操作台一实施例的结构示意图;
25.图3为本技术手术机器人中主操作台另一实施例的结构示意图;
26.图4为图3所示主操作台中操作部的主手手腕的结构示意图;
27.图5为本技术手术机器人中第一臂的有效空间的示意图;
28.图6~图20分别为本技术手术机器人中臂的放碰撞方法一实施例的流程图;
29.图21为本技术一实施例的手术机器人的控制装置的结构示意图。
具体实施方式
30.为了便于理解本技术,下面将参照相关附图对本技术进行更全面的描述。附图中给出了本技术的较佳实施方式。但是,本技术可以以许多不同的形式来实现,并不限于本技术所描述的实施方式。相反地,提供这些实施方式的目的是使对本技术的公开内容理解的更加透彻全面。
31.需要说明的是,当元件被称为“设置于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。当一个元件被认为是“耦接”另一个元件,它可以是直接耦接到另一个元件或者可能同时存在居中元件。本技术所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的,并不表示是唯一的实施方式。
本技术所使用的术语“远端”、“近端”作为方位词,该方位词为介入医疗器械领域惯用术语,其中“远端”表示手术过程中靠近患者的一端,“近端”表示手术过程中远离患者的一端。本技术所使用的术语“第一/第二”等表示一个部件以及一类具有共同特性的两个以上的部件。
32.除非另有定义,本技术所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本技术中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本技术。本技术所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。本技术中所使用的术语“各”包括一个或两个以上。本技术所使用的术语“多个”指两个及以上。
33.如图1和图2所示,其分别为本技术手术机器人一实施例中从操作设备和主操作台的结构示意图。
34.手术机器人包括从操作设备100及控制从操作设备100的主操作台200。主操作台200具有操作部210及显示部220,医生通过操作操作部210向从操作设备100发送控制命令,以令从操作设备100根据医生操作操作部210的控制命令执行相应操作,并通过显示部220观察手术区域。操作部210通常可以是运动输入设备,例如连杆式机械手柄、磁导航手柄、手势识别设备(如索尼的soft kinetic)中的一种或多种。
35.图3还示意了手术机器人另一实施例中主操作台的结构图。该主操作台200’包括操作部210’和显示器(图未示),医生边查看显示器显示的操作图像,边操作该操作部210’进而操纵(也即控制)从操作设备100运动。操作部210’包括臂,臂包括关节组件和驱动关节组件运动的驱动组件,驱动机构与关节组件之间通过丝结构传动。其中,丝结构包括丝状结构或带状结构。示例性的,丝结构包括钢丝或钢带。其中,驱动机构例如包括电机。
36.该手术机器人还包括至少一个处理器,处理器与主操作台200和/或主操作台200’电连接,处理器还与从操作设备100电连接。例如,处理器与操作部210、显示部220及从操作设备100电连接;又例如,处理器与操作部210’及从操作设备100电连接,其中,处理器与操作部210’中的驱动机构电连接。这些处理器可以集中设置于主操作台200,也可以集中设置于从操作设备100,也可以分布于主操作台200和从操作设备100,也可以部署于云端。主操作台200(200’)和从操作设备100可以部署在相同的房间或者不同的房间。
37.操作部200’具有至少一个臂。从操作设备100具有至少一个臂,为便于描述,可以根据用途及/或根据模块化的划分方式将该臂划分成不同部分以分别命名,每个部分可以令它为一个子臂,每个子臂都具有至少一个包括杆和关节的关节组件,这些关节组件可以是平移关节组件及/或转动关节组件,通过对这些关节组件的调节可以实现对相应子臂远端的位置及/或姿态的调节。根据需求,这些子臂可以被配置成独立可调,也可以被配置成联动可调。
38.继续参阅图3,操作部200’中的臂例如可以被划分成两个部分,例如可以令每个部分对应为一种子臂。例如,操作部200’中两种子臂包括主手手臂230’及与主手手臂230’连接的主手手腕240’,主手手臂230’及主手手腕240均包括关节组件和驱动关节组件运动的驱动机构,关节组件和驱动组件之间通过丝结构传动。一些实施例中,主手手臂230’中关节组件的运动主要影响主手手腕240’的远端的位置,主手手腕240’中关节组件的运动主要影响主手手腕240’的远端的取向(即姿态)。
39.主操作台200’中,还可以包括多种类型的传感器,这些传感器均与处理器相耦接。在这些传感器中,具有用于检测(即感应)操作部210’中关节组件的关节位置的传感器,该用途的传感器例如可以是检测操作部210’中关节组件的关节位置的位置传感器,也可以是检测驱动操作部210’中关节组件运动的驱动机构的位置的编码器和位置传感器中的一种以上;及/或,具有用于检测驱动操作部210’中关节组件运动的驱动机构的电流信号的传感器,该用途的传感器例如可以是电流传感器和电压传感器中的一种以上;及/或,具有用于检测操作部210’中关节组件的受力信号的传感器,该用途的传感器例如可以是三维力传感器、六维力传感器及多个一维力传感器的组合中的一种以上;及/或,具有用于检测医生是否接近主操作台200’的接近传感器201’,该接近传感器201’示例性的可以采用红外传感器,该接近传感器201’可以设置在主操作台200’的观察窗口202’的附近,当医生头部靠近观察窗口202’时,会被接近传感器201’感测到。
40.图4为图3所示操作部中主手手腕的示意图,示出了主手手腕240’具有多个自由度,一般至少包括三个自由度。主手手腕240’包括第一杆231、第二杆232、第三杆233、夹具234、第一转动关节235、第二转动关节236、第三转动关节237及第四转动关节238。夹具234通过第一转动关节235安装到第一杆231的一端,第一杆231的另一端通过第二转动关节236安装到第二杆232的一端;第二杆232的另一端通过第三转动关节237安装到第三杆233的一端;第三杆233的另一端通过第四转动关节238安装到主手手臂230’上。
41.夹具234通过第一转动关节235与第一杆231旋转连接,从而夹具234可围绕第一转动关节235的第一旋转轴线j1旋转。第一杆231通过第二转动关节236与第二杆232旋转连接,从而第一杆231能围绕第二转动关节236的第二旋转轴线j2旋转,第二杆232通过第三转动关节237与第三杆233旋转连接,从而第二杆232能围绕第三转动关节237的第三旋转轴线j3旋转,第三杆233通过第四转动关节238与主手手臂230’旋转连接,从而第三杆233能围绕第四转动关节238的旋转轴线旋转。
42.第一转动关节235、第二转动关节236、第三转动关节237的旋转轴线分别对应于第一旋转轴线j1、第二旋转轴线j2、第三旋转轴线j3交于一点。主手手腕240’采用多轴交于一点的设计,整个操作部200’(即主手)的姿态和位置相对解耦,方便运动学解算。示例性的,可以令滚动(自转)关节组件包括第一转动关节235、且令俯仰关节组件包括第二转动关节236、并令偏航关节组件包括第三转动关节237。
43.示例性的,第一杆231、第二杆232、第三杆233可以为l形杆件,每一杆具有相互垂直连接的两端,每一杆的两末端与转动关节连接。
44.夹具234通过多个杆(第一杆231、第二杆232、第三杆233)及多个旋转关节(第一转动关节235、第二转动关节236、第三转动关节237、第四转动关节238)能执行多个自由度的运动;在其它实施例中,可以根据夹具234所实际需要的运动自由度来设置杆和转动关节的数量。
45.继续参阅图3,主手手臂230’具有安装端和连接端,安装端能够与主操作台100的支撑基体进行固定连接,主手手臂230’具有至少一个活动自由度。主手手腕240’通过第四转动关节238活动设置于主手手臂230’的连接端,主手手腕240’允许用户执行对应的操作,比如转动或者夹持等。夹具234具有开合自由度,夹具234的开合自由度运动映射至器械后,可以控制末端器械的开合动作(如夹持或剪切等),夹具234围绕第一转动关节235的第一旋
转轴线j1的旋转自由度运动映射至手术器械后,可以控制手术器械的末端器械的滚转运动。
46.一些实施例中,处理器被配置成:
47.在医生处于未就绪的状态时,响应于操作部受到的外力,调节操作部的关节组件中第一关节组件对应的驱动机构的输出力矩以平衡第一关节组件远端的负载的重力矩,并恢复第一关节组件的关节位置或制动第一关节组件。
48.其中,处理器实时判断医生是否处于未就绪的状态,医生处于未就绪的状态表明操作部处于空闲状态,也即表明医生没有真实意图需要操作该操作部。示例性的,医生处于未就绪的状态包括以下多种情况中的至少一种。
49.(1)医生未关注显示器的显示;
50.医生通过操作部操纵从操作设备,通常需要观看显示器的显示,进而可将医生未关注显示器的显示作为医生未就绪的情况之一。
51.医生是否关注显示器的显示可以通过多种方式确定,示例性的,包括医生头部是否靠近显示器,和/或,医生眼睛是否注视显示器。
52.例如,可以在主操作台200’的用于观察显示器的显示面的观察窗口202’的周边区域(包括观察窗口202’本身)配置与处理器电连接的传感器201’以检测医生头部是否靠近观察窗口202’,该传感器201’包括接近传感器,例如红外传感器,如果医生头部未靠近观察窗口202’,传感器201’感测到的将是第一信号,而如果医生头部靠近观察窗口202’,传感器201’感测到的将是第二信号,进而,可以根据传感器201’感测到的信号来确定医生头部是否靠近观察窗口202’,即当传感器201’感测到第一信号时,确定医生头部未靠近观察窗口202’;当传感器201’感测到第二信号时,确定医生头部靠近观察窗口202’。
53.又例如,可以在显示器中显示面的周边区域(包括显示面本身)配置与处理器电连接的眼球追踪仪以检测医生眼睛是否观看显示器。在眼球追踪仪追踪到眼球时,确定医生注视显示器,在眼球追踪仪未追踪到眼球时,确定医生未注视显示器。眼球追踪仪工作原理示例性的包括:眼球追踪仪发送红外光,并捕获眼球对红外光的反射,在眼球追踪仪捕获到反射的红外光时,确定医生注视显示器,而在眼球追踪仪未捕获到反射的红外光时,确定医生未注视显示器。
54.(2)医生未激活操作部;
55.医生通过操作部操纵从操作设备时,通常需要先激活操作部,进而可将医生未激活操作部作为医生未就绪的情况之一。
56.医生是否激活操作部可以通过多种方式确定,示例性的,包括医生是否捏合操作部的夹具,和/或,医生是否旋转操作部的夹具。
57.例如,在操作部210’中夹具234的开合角度达到第一阈值和/或开合次数达到第二阈值时,确定医生捏合了操作部的夹具,而在夹具234的开合角度未达到第一阈值和/或开合次数未达到第二阈值时,确定医生未捏合操作部的夹具。在医生捏合了操作部的夹具时,确定医生激活了操作部;而在医生未捏合操作部的夹具时,确定医生未激活操作部。
58.又例如,在操作部210’中第一转动关节235的旋转角度达到第一阈值时,确定医生旋转了操作部的夹具,而在操作部210’中第一转动关节235的旋转角度未达到第三阈值时,确定医生未旋转操作部的夹具。在医生旋转了操作部的夹具时,确定医生激活了操作部;而
在医生未旋转操作部的夹具时,确定医生未激活操作部。
59.(3)医生未就座;
60.医生通过操作部操纵从操作设备时,通常需要医生就座,和/或,医生相对于操作部和/或显示器而言就座在合理范围内,进而可以将医生是否就座作为医生未就绪的情况之一。
61.手术机器人包括供医生坐下的座椅。
62.例如,座椅设置有与处理器电连接并用于检测医生是否就坐的传感器。示例性的,该传感器包括压力传感器。在传感器感应到的压力值达到第一阈值时,确定医生就座;而在传感器感应到的压力值未达到第一阈值时,确定医生未就座。
63.又例如,手术机器人包括与处理器电连接的测距装置,该测距装置用于检测座椅和/或医生相对于操作部和/或显示器的距离,该测距装置示例性的包括激光雷达、红外测距传感器。当该测距装置感应到座椅和/或医生相对于操作部和/或显示器之间的距离达到第一阈值时,确定医生未就座在合理范围内;而当该测距装置感应到座椅和/或医生相对于操作部和/或显示器之间的距离未达到第一阈值时,确定医生就座在合理范围内。
64.(4)医生未通过用户认证系统认证;
65.医生通过操作部操纵从操作设备时,通常需要医生先通过手术机器人的用户认证系统的认证,进而可以将医生未通过认证系统认证作为医生未就绪的情况之一。
66.例如,医生未通过用户认证系统认证包括用户认证系统未获取到医生的登录信息(包括账号和密码),和/或,获取到医生的登录信息、且登录信息与对应于该医生的预录信息不匹配。
67.上述(1)~(4)项记载的情况可以被配置成单独作为医生未就绪的状态使用,也可以被配置成任意多个相互组合作为医生未就绪的状态使用。
68.其中,在第一转动关节235的关节位置的变化达到第一启动阈值时,可以确定医生激活了主手手腕240’;其中,操作部受到的外力包括人对操作部施加的外力,和/或,物对操作部施加的外力(例如物体之间碰撞导致的外力)。
69.本技术所描述的“平衡”通常意味着一种相对平衡的关系,其允许力矩偏差的存在,对于同一个第一关节组件,满足以下公式即可认为达到平衡:x=|f
1-f2|≤δx
70.x为力矩偏差,f1为驱动机构的输出力矩,f2为相应第一关节组件远端负载的重力矩,δx为力矩偏差阈值。例如,δx的取值范围例如可以是[0,10]n/m。
[0071]
其中,只要x≤δx,就可以视该驱动机构的输出力矩平衡相应关节组件远端的负载的重力矩。
[0072]
进而,在操作部被碰撞时,操作部中被调节的关节组件即第一关节组件可以较为容易的在外力的作用下发生偏转及/或移动,以通过位置及/或姿态的变化对外力起到有效的缓冲。尤其是,通过调节第一关节组件对应的驱动机构的输出力矩以平衡第一关节组件远端的负载的重力矩,并恢复第一关节组件的关节位置或制动第一关节组件,一方面能够解除操作部的刚性状态而变得柔软进而保护丝结构不被拉断;另一方面能够在相应第一关节组件受力运动后,能够被复位或被制动。
[0073]
一些实施例中,该操作部中的第一关节组件可以由系统或用户指定的关节组件构
成。在该实施例中,第一关节组件具体包括操作部中的哪些关节组件是在受到外力之前事先就确定(即配置)好的。例如,可以从系统文件中获取操作部中的第一关节组件,也可以通过用户配置界面设定操作部中的第一关节组件。其中,第一关节组件通常指的是一种类型的关节组件,其数量包括至少一个。例如,第一关节组件包括至少两个关节组件时,处理器经配置需要分别调节每个第一个关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩。
[0074]
示例性的,可以将主手手臂230’和主手手腕240’中的关节组件均配置成第一关节组件。第一关节组件包括对应于俯仰自由度的俯仰关节组件和对应于偏航自由度的偏航关节组件时,假设操作部受到的外力在俯仰自由度和关节自由度上具有分力,通过调节该俯仰关节组件的驱动机构的输出力矩为平衡该俯仰关节组件远端的负载的重力矩的同时,调节该偏航关节组件的驱动机构的输出力矩为平衡该偏航关节组件远端的负载的重力矩,就可以对该外力起到较为有效的缓冲作用。
[0075]
一些实施例中,操作部中的第一关节组件也可以不由系统或用户指定,而是处理器基于受到外力的关节组件来进行确定的。也即,受力点的变化将影响处理器对第一关节组件的选取。对外力具有缓冲作用的关节组件通常是受力点所在关节组件及/或靠近受力点所在关节组件近端的关节组件。其中,受力点所在关节组件可以称之为受到外力的关节组件。
[0076]
示例性的,第一关节组件可以包括下述部件中的至少一个:受力点所在的关节组件、及靠近受力点所在的关节组件近端的关节组件。例如,可以根据预先设置的策略配置将受力点所在的关节组件、及靠近受力点所在的关节组件近端的关节组件全部配置为第一关节组件。又例如,可以根据预先设置的策略配置将受力点所在的关节组件配置为第一关节组件。又例如,可以根据预先设置的策略配置将靠近受力点所在的关节组件近端的关节组件全部配置为第一关节组件。
[0077]
示例性的,第一关节组件可以包括下述部件中的至少一个:受力点所在的关节组件、及靠近受力点所在的关节组件近端的关节组件;同时,第一关节组件还可以包括靠近受力点所在的关节组件远端的关节组件。其中,由于靠近受力点所在关节组件远端的关节组件在受到外力时不会对外力起到有效的缓冲作用,进而可以根据实际的需要确定是否将靠近受力点所在关节组件远端的关节组件配置为第一关节组件。
[0078]
其中,受力点所在的关节组件、靠近受力点所在的关节组件近端的关节组件、以及靠近受力点所在的关节组件远端的关节组件均可能包括不止一个关节组件。
[0079]
一些实施例中,无论根据哪种方式来确定第一关节组件,都可以将操作部中尽可能多的自由度所对应的关节组件配置成第一关节组件。其中,在第一关节组件包括多个关节组件且不存在冗余自由度时,可以缓冲来自多个方向的受到的外力。其中,在第一关节组件包括多个关节组件且存在冗余自由度时,可以利用冗余自由度对应的关节组件对来自相应于该冗余自由度方向的受到的外力实现多级缓冲。
[0080]
一些实施例中,第一关节组件对应的驱动机构所输出的输出力矩包括输出合力矩。该输出合力矩包括第一力矩和第二力矩,示例性的,输出力矩包括第一力矩和第二力矩之和。一实施例中,第一力矩用于平衡第一关节组件远端的负载的重力矩。第二力矩用于恢复第一关节组件的关节位置,或,第二力矩用于制动第一关节组件。
[0081]
一些实施例中,处理器还被配置成:判断操作部是否受到外力。
[0082]
本技术可以通过单独或结合使用多种方式来判断操作部是否受到外力。
[0083]
一实施例中,处理器被配置成用于:接收传感器检测的驱动机构的电流信号,根据电流信号的变化情况确定操作部是否受到外力、及/或确定操作部受到外力时受力点所在的关节组件(即确定操作部中受到外力的关节组件)。
[0084]
在该实施例中,传感器具体用于每隔第一周期检测电流信号,该处理器具体用于:计算检测出的相邻电流信号的变化率,并判断变化率是否超过第一阈值,如果变化率超过第一阈值,确定操作部受到外力,及/或根据变化率超过第一阈值的电流信号所对应的关节组件确定受到外力的关节组件。当然,如果变化率没有超过第一阈值,则暂不能确定操作部受到外力,也就暂不能根据变化率超过第一阈值的电流信号所对应的关节组件确定受到外力的关节组件。
[0085]
在该实施例中,传感器具体用于每隔第二周期检测电流信号,第二周期大于第一周期,该处理器具体用于:计算检测出的相邻电流信号的变化率,并判断变化率是否超过第二阈值,该第二阈值小于第一阈值,如果变化率超过第二阈值,确定操作部受到外力,及/或根据变化率超过第二阈值的电流信号所对应的关节组件确定受到外力的关节组件。当然,如果变化率没有超过第二阈值,则暂不能确定操作部受到外力,也就暂不能根据变化率超过第一阈值的电流信号所对应的关节组件确定受到外力的关节组件。
[0086]
示例性的,假设第一周期为1ms,如果对应于第一周期的变化率超过了第一阈值,则可以确定操作部受到外力,并据此可以确定受到外力的关节组件。
[0087]
如果电流信号的变化率较小,但是随着时间的累积使得最终电流信号的变化量较大时,实际上也应当认为操作部受到外力。那么这种情况下,例如对应于第一周期的变化率未超过阈值而直接得出确定操作部没有受到外力,则可能出现错误的判断结果,导致不能对外力进行缓冲。
[0088]
进而,传感器也可以同时每隔第二周期检测一次电流信号,该第二周期例如为100ms,如果对应于第二周期的变化率超过了第二阈值,该第二阈值小于第一阈值,则可以确定操作部受到外力,并据此可以确定受到外力的关节组件。
[0089]
与该原理相类似的,传感器也可以同时每隔第三周期甚至更多个周期检测一次电流信号,且不同周期对应的变化率的阈值不同,周期越长所对应的阈值可以设定为越小。当对应于任一周期的变化率超过了其相应的阈值时,可以确定操作部受到外力,并据此可以确定受到外力的关节组件。
[0090]
在该实施例中,该处理器具体用于:计算电流信号与碰撞前检测到的电流信号之间的电流差值,并判断电流差值是否超过第三阈值,如果电流差值超过第三阈值,确定操作部受到外力,及/或根据电流差值超过第三阈值的电流信号所对应的关节组件确定受到外力的关节组件。当然,如果电流差值没有超过第三阈值,则暂不能确定操作部受到外力,也就暂不能根据电流差值超过第三阈值的电流信号所对应的关节组件确定受到外力的关节组件。
[0091]
可以将根据电流差值是否超过对应的阈值来以此确定操作部是否受到外力,及/或确定受到外力的关节组件的方式,与检测电流信号在对应周期的变化率是否超过对应的阈值来以此确定操作部是否受到外力,及/或确定受到外力的关节组件的方式进行结合使
用,以更准确地确定操作部是否受到外力,及/或确定受到外力的关节组件。其中,这些判断中任一个超过其对应的阈值时,均可以确定操作部受到外力,并据此可以确定受到外力的关节组件;而如果这些判断中全部均未超过其对应的阈值时,则暂不能确定操作部是否受到外力,也就暂不能据此确定受到外力的关节组件。
[0092]
事实上,操作部上的受力点可能不止一个,即使受力点有两个以上,根据上述实施例也能够准确地确定出受力点所在的关节组件,即使受力点存在多个,根据本技术的上述实施例也可以对这样的外力具有良好的缓冲作用。
[0093]
一实施例中,处理器具体用于:接收传感器检测的关节组件的受力信号,根据受力信号的变化情况确定操作部是否受到外力、及/或确定受到外力的关节组件。
[0094]
在该实施例中,处理器具体用于:检测受力信号是否大于设定的阈值,如果检测到受力信号大于该阈值,则确定操作部是否受到外力,否则,确定操作部未受到外力,并且,可确定受到外力的关节组件,其中,受到外力的关节组件是受力信号大于该阈值的传感器所对应的关节组件。
[0095]
上述实施例中,对于第一关节组件是指定的关节组件的情况下,通常并不需要确定受力点所在的关节组件,只需要确定操作部是否受到外力即可。而对于第一关节组件的确定与受力点所在位置相关联的情况下,既需要确定操作部是否受到外力,又需要确定受到外力的关节组件是哪一个或哪几个。
[0096]
上述实施例中,对于第一关节组件是指定的关节组件的情况下,被处理的电流信号至少应当包括第一关节组件对应的驱动机构的电流信号,例如,仅包括第一关节组件对应的驱动机构的电流信号;及/或,被处理的受力信号至少应当包括第一关节组件的受力信号,例如,仅包括第一关节组件的受力信号。
[0097]
一些实施例中,处理器还被配置成用于:获取传感器检测的操作部中至少第一关节组件及第一关节组件远端的关节组件的关节位置,结合关节位置及关联于该第一关节组件的动力学模型确定对应于第一关节组件的驱动机构期望输出的第一力矩。
[0098]
本技术所需要使用到的动力学模型通常是针对第一关节组件而构建的,例如,针对不同第一关节组件,所构建的动力学模型是不同。通常,第一关节组件所关联的动力学模型与操作部中该第一关节组件及其远端的关节组件有关。例如,若指定了操作部200’中俯仰关节组件和偏航关节组件均作为第一关节组件,那么俯仰关节组件所对应的是一个动力学模型,而偏航关节组件所对应的是另一个动力学模型。假设偏航关节组件位于俯仰关节组件的近端,那么俯仰关节组件的动力学模型仅跟俯仰关节组件及其远端的关节组件有关,而偏航关节组件的动力学模型包括偏航关节组件及与俯仰关节组件的动力学模型有关的全部关节组件。
[0099]
一实施例中,操作部中第一关节组件关联的动力学模型可以这样构建:
[0100]
获取第一关节组件及其远端的关节组件的连杆参数,根据这些连杆参数建立连杆坐标系。其中,关节组件包括关节和与关节连接的连杆,连杆参数(即dh参数)包括关节角及/或关节位移、连杆长度等参数。
[0101]
根据该连杆坐标系构建关联于第一关节组件的第一动力学模型。其中,该第一动力学模型通常以符号形式(即具有未知参数的公式)表示,第一动力学模型是模糊的(即动力学参数暂不确定的)动力学模型。例如,该第一动力学模型表达为如下公式:
[0102]
其中,τ是关节组件的实际力矩,θ是关节组件的关节位置,是关节组件的速度(是θ的一次导),是关节组件的速度(是θ的二次导),m(θ)是惯性矩阵,包含科式力和离心力,g(θ)是关节组件的重力矩。
[0103]
确定该第一动力学模型中未知的动力学参数。其中,第一动力学模型通常包括至少一个未知的动力学参数,通常,可以对公式(1)所涉及的未知的动力学参数均进行确定,以得到准确的第二动力学模型。一实施例中,也可以根据实际情况忽略部分未知的动力学参数对关节力矩的贡献,例如,可以主要关注关节组件的质量、质心及摩擦力矩这几个较关键的动力学参数,一些实施例中,关节组件的质量、质心及摩擦力矩可能受到驱动该关节组件的驱动机构及/或将驱动机构和关节组件进行连接以实现传动的传动机构的影响。示例性的,在操作部的结构较为规整时,关节组件的质量、质心及摩擦力矩等动力学参数中至少部分可以直接获得而无需辨识。当然,关节组件的质量、质心及摩擦力矩等动力学参数中至少部分也可以通过采用辨识的方法获得。例如,关节组件的质量可以通过称重获得,关节组件的质心及摩擦力矩可以通过采用辨识的方法获得。例如,认为忽略m(θ)及对关节力矩的贡献在本技术的一个示例中是可以接受的,因而,公式(1)可以简写为如下:τ=g(θ)
ꢀꢀꢀ
公式(2)
[0104]
将确定的动力学参数代入第一动力学模型中得到第二动力学模型。其中,该第二动力学模型是清晰的(即动力学参数已确定的)动力学模型。进而,在结合这些关节位置及关联于第一关节组件的动力学模型确定对应于第一关节组件的驱动机构期望输出的第一力矩时,所使用的动力学模型指的是该第二动力学模型。
[0105]
一实施例中,考虑到摩擦力矩所带来的不良影响,可以从关节组件的实际力矩中排除摩擦力矩,具体而言:
[0106]
可以基于动态平衡原理,构建关节组件的力矩平衡模型,该力矩平衡模型可表达为如下公式:
[0107]
其中,τ是关节组件的实际力矩,θ是关节组件的关节位置,是关节组件的速度,k1、k2为重力矩参数,f为关节组件的摩擦力矩,表示速度的方向。
[0108]
进而,可以通过辨识的方法确定关节组件的摩擦力矩,例如可以控制单个关节组件以低速进行匀速运动,遍历整个运动范围,采集关节组件的实际力矩和对应的关节位置,该单个关节组件指的是第一关节组件对应的关节组件。其中,在匀速运动过程中,摩擦力矩近似不变而通常被认为是定值,因此,根据采集的关节组件的实际力矩和对应的关节位置,并利用如最小二乘法可以辨识出该关节组件的摩擦力矩。可理解的,关节组件的实际力矩是由驱动该关节组件运动的驱动机构输出的。
[0109]
进而,在通过辨识的方法确定该第一动力学模型中未知的动力学参数(例如公式(2)中的重力矩g(θ))时,可以控制各个关节组件以低速进行匀速运动,遍历整个运动范围,采集第一关节组件的实际力矩、以及第一关节组件及其远端的关节组件对应的关节位置,
结合第一关节组件的实际力矩、第一关节组件的摩擦力矩以及第一关节组件及其远端的关节组件对应的关节位置,并利用如最小二乘法可以辨识出该关节组件辨识出未知的动力学参数(例如公式(2)中的重力矩g(θ))。例如,在公式(2)中,辨识出的未知的动力学参数主要即重力矩参数(包括质量和质心等),因而,可以有效的构建关联有第一关节组件及其远端的关节组件的关节位置与第一关节组件的第一力矩之间的关系的第二动力学模型。
[0110]
一些实施例中,输出力矩中的第二力矩用于恢复操作部中第一关节组件的关节位置,进而起到类似于复位弹簧的作用,有利于该第一关节组件在受到的外力的作用下运动后进行复位,不但可有效避免相应丝结构不被拉断,从最终效果考虑,可以保持操作部的位置和/或取向。示例性的,在操作部受到包括改变操作部的取向的外力时,通过输出这样的第二力矩,操作部可以恢复受到外力之前的取向,对于手术机器人某些阶段的操作而言,极为有利。示例性的,假设医生处于未就绪的状态包括医生未关注显示器的显示,例如医生头部未靠近观察窗口:
[0111]
医生处于就绪的状态时,医生可以通过操作该操作部操纵从操作设备的手术器械。为实现医生的直觉控制,在医生操作该操作部以操纵手术器械之前,通常需要先调节操作部的取向与手术器械的末端器械的取向保持一致。在医生正常操作该操作部以操纵手术器械的过程中,如果医生的就绪状态改变,例如医生头部从靠近观察窗口到远离观察窗口,在医生的就绪状态改变瞬间,操作部的取向与末端器械的取向实际仍保持一致,令医生的就绪状态改变瞬间,操作部的取向为第一取向。在医生处于未就绪的状态时,如果操作部受到包括改变操作部的取向的外力,操作部中相应关节组件将发生运动使得操作部的取向为第二取向导致不能与末端器械的取向保持一致,在该外力消失后,操作部中相应关节组件将在第二力矩的作用下从第二取向恢复成第一取向进而与末端器械的取向重新保持一致。当医生的就绪状态再次发生改变,即从医生处于未就绪的状态切换成医生处于就绪的状态时,由于操作部的取向已经重新与末端器械的取向保持一致,无需处理器自动或医生手动调节操作部的取向与手术器械的末端器械的取向保持一致,医生可以直接操作该操作部以继续操纵手术器械,能够为手术的进行节约时间。
[0112]
一些实施例中,处理器被配置成:
[0113]
获取传感器检测的第一关节组件的初始关节位置和当前关节位置;根据初始关节位置和当前关节位置计算第一关节组件的关节位置变量;基于关节位置变量确定对应于第一关节组件的驱动机构输出的第二力矩。其中,该初始关节位置包括受到外力之前的关节位置。
[0114]
较佳的,第二力矩随着关节位置变量的增大而增大,也即,关节位置变量越大,恢复力越大;关节位置变量越小,恢复力越小。更佳的,第二力矩随着关节位置变量的增大而线性增大。
[0115]
示例性的,第二力矩与关节位置变量之间的关系可以表达为:τ=k*δx
ꢀꢀꢀ
公式(4)
[0116]
其中,τ为第二力矩,k为刚度系数,δx为关节位置变量。
[0117]
一些实施例中,该第二力矩还可以用于制动操作部中第一关节组件在外力作用下的运动,起到类似于刹车的效果,以利于碰撞下第一关节组件的制动。处理器可以被配置成:
[0118]
获取传感器检测的第一关节组件的当前关节位置;检测当前关节位置是否达到第一关节组件的第一限位关节位置,第一限位关节位置在第一关节组件的物理限位关节位置范围以内;在当前关节位置达到第一限位关节位置时,计算当前关节位置与第一限位关节位置之间的关节位置变量;基于关节位置变量确定对应于第一关节组件的驱动机构输出的第二力矩。
[0119]
较佳的,第二力矩随着关节位置变量的增大而增大。更佳的,第二力矩随着关节位置变量的增大而线性增大。示例性的,同样可以利用上述公式(4)来实现制动,此处不再重复赘述。其中,第一关节组件在未达到第一关节位置时,可以在外力作用下自由运动,而在达到第一关节位置时,第一关节位置开始产生抵抗第一关节组件向物理限位位置运动的恢复力进而实现制动,在非制动阶段,第一关节组件能够在外力作用下快速避让开,并在制动阶段,利用弹簧原理能够逐步制动而避免急速制动可能造成的不期望的问题。
[0120]
一实施例中,在第二力矩是制动的力矩时,处理器还可以被配置成:
[0121]
获取传感器检测的第一关节组件的初始关节位置和当前关节位置;根据初始关节位置、当前关节位置及从初始关节位置变化到当前关节位置所经历的时间计算第一关节组件的关节速度;基于关节速度确定对应于第一关节组件的驱动机构输出的第二力矩。
[0122]
较佳的,第二力矩随着关节速度的增大而增大,也即,速度越大,制动力越大;速度越小,制动力越小。示例性的,第二力矩与关节速度之间的关系可以表达为:τ=k*vnꢀꢀꢀ
公式(5)
[0123]
其中,τ为所述第二力矩,k为阻尼系数,v为所述关节速度,n为大于等于1的整数,例如,n=1或n=2或n=3。其中,n=1时,制动效果较为线性,而n=2或n=3时,相较于n=1的情况,制动更为快速敏捷。
[0124]
上述实施例中,处理器可根据确定的第一力矩和确定的第二力矩之和的输出合力矩调节第一关节组件的输出力矩,并取得与第二力矩的获取方式相关联的良好效果。
[0125]
一实施例中,例如,在第二力矩是采用了弹簧模型的原理,即利用了上述公式(4)实现了复位第一关节组件的关节位置或制动第一关节组件的运动的情况下,处理器还可以被配置成:在操作部受到外力的持续期间,记录第一关节组件在当前关节位置的保持时间,并在保持时间达到设定时间阈值时,更新当前关节位置成初始关节位置。其中,在该实施例中,具体可从确定操作部受到外力开始记录第一关节组件在当前关节位置的保持时间。及/或,处理器还可以被配置成:在操作部受到外力的持续期间,获取第一关节组件的当前关节位置,在当前关节位置的变化量低于位置变化阈值时,记录当前关节位置的变化量低于位置变化阈值的第一持续时间,并在第一持续时间达到第一时间阈值时,更新当前关节位置成初始关节位置,对于第一关节组件中的转动关节组件,位置变化阈值的范围可以包括0~0.1
°
,例如位置变化阈值可以设定为0.01
°
;对于第一关节组件中的移动关节组件,位置变化阈值的范围可以包括0~0.1mm,例如位置变化阈值可以设定为0.01mm。及/或,处理器还可以被配置成:在操作部受到外力的持续期间,获取第一关节组件的关节速度,在关节速度低于速度阈值时,记录关节速度低于速度阈值的第二持续时间,并在第二持续时间达到第二设定时间阈值时,更新当前关节位置成初始关节位置,对于第一关节组件中的转动关节组件,该速度阈值的范围可以包括0~0.01
°
/s,例如速度阈值可以设定为0.0001
°
/s;对于第一关节组件中的移动关节组件,该速度阈值的范围可以包括0~0.01mm/s,例如速度阈值
可以设定为0.0001mm/s。其中,设定时间阈值、第一设定时间阈值及第二设定时间阈值可以完全相同、部分相同或者完全不同,例如可以均设置为4~8秒,更例如均设置为6秒。其中,该第一关节组件示例性的可以包括所有或部分被配置成第一关节组件的关节组件,例如,在第一关节组件中所有关节组件满足上述任意一个条件时,更新当前关节位置成初始关节位置。其中,在该实施例中,初始关节位置被更新了而不再是操作部受到外力之前的关节位置了。此时,实现阻抗模式的退出,只有在确定操作部再次受到外力时,才重新进入该阻抗模式。阻抗模式包括:在确定操作部受到外力时,响应于操作部受到外力,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。此外,操作部受到外力的持续期间包括检测到操作部受到外力到退出阻抗模式的整个期间。在操作部受到外力的持续期间,第一关节组件所对应的驱动机构的输出力矩需要平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。
[0126]
在该实施例中,第一关节组件的关节位置变量可以基于更新的初始关节位置和当前位置重新计算,使得第一力矩可周期性变化,进而操作部可以表现为阶段性运动的状态。
[0127]
本技术还提供一种手术机器人的控制方法,该控制方法可包括如上述任一项由处理器执行并实现的步骤,此处不再重复赘述。
[0128]
继续参阅图2,从操作设备100中的臂例如可以被划分成三个部分,例如可以令每个部分对应为一种子臂。该三种子臂包括依次连接的主臂110、调整臂120及操纵器130。在图1的示例中,主臂110为一个,调整臂120数量为两个以上,例如,如图1所示的四个,操纵器130的数量与调整臂120的数量一致,其中,主臂110近端设置于可移动的基座300上,主臂110远端设置有定向平台,每个调整臂120近端均转动连接于定向平台,每个调整臂120远端均转动连接一个操纵器130。主臂110主要用于对所有操纵器130进行初级位置规划,它具有整体性、范围相对较大、精度相对较低的特点。调整臂120用于对其连接的操纵器130进行次级位置规划,它具有独立性、范围相对较小、精度相对较高的特点。操纵器130可拆卸地附接用于实施手术的装置即手术器械150,手术器械150包括图像器械和操作器械。由于手术器械150也具有至少一个可影响其远端的末端器械的位置及/或姿态的关节组件,因而也可以将手术器械150视为一种子臂。结合图1参阅,在从操作设备100中,沿着基座向手术器械的方向,“远端”指手术器械150这一端,“近端”指基座300这一端,手术器械150相对靠近患者,基座300相对远离患者。继续参阅图1,操纵器130远端具有持械臂135,持械臂135用于可拆卸地装设手术器械150,该持械臂135限定了该操纵器130的远程运动中心(remote center,rc),操纵器130利用了平行四边形原理,使得该操纵器130经配置可以绕着该远程运动中心运动。手术器械150可以跟随操纵器130绕着该远程运动中心运动,且手术器械150可以相对于持械臂135做进深(即进给)运动。如图1所示,该操纵器130还包括俯仰关节组件131和偏航关节组件132,驱动对应于俯仰关节组件131的驱动机构工作时,可以使操纵器130绕着远程运动中心做俯仰运动,而驱动对应于偏航关节组件132的驱动机构工作时,可以使操纵器130绕着远程运动中心做偏航运动。
[0129]
在各个子臂中,还包括与各个子臂中相应的关节组件耦接以驱动该关节组件运动的驱动机构,每个关节组件通常由一个驱动机构驱动。在这些子臂中,驱动机构可以被配置
为紧邻由该驱动机构驱动的关节组件设置;及/或,驱动机构可以被配置为远离由该驱动机构驱动的关节组件设置。例如,在主臂110、调整臂120及操纵器130中,由于它们具有足够的空间,通常可以将驱动机构和关节组件紧邻设置;而在手术器械150中,由于需要结构小巧,驱动机构和关节组件通常远离设置并通过驱动丝传动,例如,驱动该手术器械150中关节组件运动的驱动机构通常设置在操纵器130远端,具体如在持械臂135上,为了实现远程设置的驱动机构(即驱动机构独立于手术器械150)和手术器械150中关节组件的耦接,手术器械150具有与关节组件耦接的驱动盒,可以通过一个与远程设置的驱动机构及驱动盒均可分离地连接的联接器将手术器械150附接于持械臂135并实现该远程设置的驱动机构与手术器械150中关节组件之间的连接。
[0130]
在该手术机器人中,具体的,在该从操作设备100中,还可以包括多种类型的传感器,这些传感器均与处理器相耦接。在这些传感器中,具有用于检测(即感应)从操作设备100的臂中关节组件的关节位置的传感器,该用途的传感器例如可以是检测从操作设备100的臂中关节组件的关节位置的位置传感器,也可以是检测驱动从操作设备100的臂中关节组件运动的驱动机构的位置的编码器和位置传感器中的一种以上;及/或,具有用于检测驱动从操作设备100的臂中关节组件运动的驱动机构的电流信号的传感器,该用途的传感器例如可以是电流传感器和电压传感器中的一种以上;及/或,具有用于检测从操作设备100的臂中关节组件的受力信号的传感器,该用途的传感器例如可以是三维力传感器、六维力传感器及多个一维力传感器的组合中的一种以上。
[0131]
上述实施例中,例如,操作部210’和从操作设备100的驱动机构包括马达,即通常可以通过控制马达工作来驱动相应的关节组件运动。
[0132]
从一个方面来讲,本技术所要描述的第一臂可以由一个或多个子臂的至少部分关节组件构成。该第一臂不但适用于具备关节组件和驱动机构的从操作设备,也适用于具备关节组件和驱动机构的操作部。
[0133]
一些实施例中,以操作部200’为例说明如下:
[0134]
示例性的,可以配置这些子臂中的任意一个构成为第一臂,该第一臂具备该子臂的全部关节组件。例如,可以配置主手手臂230’为第一臂,可以配置主手手腕240’为第一臂。
[0135]
示例性的,也可以配置这些子臂中的至少两个的组合构成为第一臂,构成该第一臂的至少两个子臂可以是紧邻的子臂,该第一臂具备该多个子臂的全部关节组件。例如,可以配置主手手臂230’和主手手腕240’为第一臂。
[0136]
示例性的,还可以配置这些子臂中任意一个子臂的至少部分关节组件与另一任意一个子臂的至少部分关节组件构成为第一臂。例如,可以配置其中一个子臂的全部或部分关节组件与另一子臂的部分/或全部关节组件构成为第一臂。例如,可以配置主手手臂230’中的全部关节组件和主手手腕240’的部分关节组件为第一臂。
[0137]
示例性的,还可以配置任意一个子臂的部分关节组件构成为第一臂。例如,在如图3所示的操作部中,可以配置主手手腕240’的部分关节组件构成为第一臂。其中,主手手腕240’包括用于操纵从操作设备中手术器械150的末端器械的偏航自由度、俯仰自由度及自转自由度中的至少一个关节组件。
[0138]
一实施例中,第一臂采用哪种构成可以是系统配置的,也可以是用户灵活配置的。
[0139]
一些实施例中,以从操作设备100为例说明如下:
[0140]
示例性的,可以配置这些子臂中的任意一个构成为第一臂,该第一臂具备该子臂的全部关节组件。例如,在如图1所示的手术机器人中,可以配置主臂110为第一臂,可以配置调整臂120为第一臂,可以配置操纵器130为第一臂,也可以配置手术器械150为第一臂。
[0141]
示例性的,也可以配置这些子臂中的至少两个的组合构成为第一臂,构成该第一臂的至少两个子臂可以是紧邻的子臂,也可以是间隔的子臂,该第一臂具备该多个子臂的全部关节组件。例如,在如图1所示的手术机器人中,可以配置主臂110和任意一个调整臂120为第一臂,可以配置任意一个调整臂120及与其连接的操纵器130为第一臂,可以配置操纵器130及与其连接的手术器械150为第一臂,可以配置调整臂120、与该调整臂120连接的操纵器130及与该操纵器130连接的手术器械150为第一臂,也可以配置调整臂120及与其对应的手术器械150为第一臂,此处不做一一列举。
[0142]
示例性的,还可以配置这些子臂中任意一个子臂的至少部分关节组件与另一任意一个子臂的至少部分关节组件构成为第一臂。例如,可以配置其中一个子臂的全部或部分关节组件与另一子臂的部分/或全部关节组件构成为第一臂。例如,可以配置调整臂120中远端的一个关节组件121如旋风关节组件和操纵器130的全部关节组件构成为第一臂,该旋风关节组件21的旋转轴线与远程运动中心相交,使得旋风关节组件121转动时,操纵器130仍然可以围绕远程运动中心转动。
[0143]
示例性的,还可以配置任意一个子臂的部分关节组件构成为第一臂。例如,可以配置操纵器130中的俯仰关节组件131和偏航关节组件132构成为第一臂。
[0144]
一实施例中,第一臂采用哪种构成可以是系统配置的,也可以是用户灵活配置的。例如,该手术机器人具有与处理器电连接的显示装置和输入装置。如何配置第一臂可以通过处理器生成在显示装置显示的用户配置界面进而通过输入装置来进行选择。该显示装置和输入装置例如可以是触摸屏,当然也可以是独立的两个部件。在该用户配置界面上可以生成有关联于各子臂的选项。在该用户配置界面上可以生成有关联于各子臂的关节组件的选项。其中,关联于这些子臂及/或这些子臂的关节组件可以是图形化的选项,也可以是字符化(如文字化、数字化)的选项。通过对这些选项进行选择进而可以配置第一臂的构成。
[0145]
从另一个方面来讲,该第一臂包括在碰撞时未被操作的臂。例如,至少在碰撞时,某臂及/或附接于该臂远端的装置未处于跟随状态的情况下,该臂为未被操作的臂,可以作为第一臂。例如,至少在碰撞时,某臂及/或附接于该臂远端的装置处于离合状态下,即位于运动输入设备210断开通信的情况下,该臂为未被操作的臂,可以作为第一臂。其中,该臂是某子臂时,附接于该臂远端的装置可以包括其它子臂及/或手术器械150。
[0146]
一些实施例中,处理器被配置成用于:确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,在确定第一臂及/或附接于第一臂远端的装置发生碰撞时,响应于第一臂及/或附接于第一臂远端的装置的碰撞,调节第一臂的关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。
[0147]
本技术所描述的“平衡”通常意味着一种相对平衡的关系,其允许力矩偏差的存在,对于同一个第一关节组件,满足以下公式即可认为达到平衡:x=|f
1-f2|≤δx
[0148]
x为力矩偏差,f1为驱动机构的输出力矩,f2为相应第一关节组件远端负载的重力矩,δx为力矩偏差阈值。例如,δx的取值范围例如可以是[0,10]n/m。
[0149]
其中,只要x≤δx,就可以视该驱动机构的输出力矩平衡相应关节组件远端的负载的重力矩。
[0150]
进而,在第一臂被碰撞时,第一臂中被调节的关节组件即第一关节组件可以较为容易的在碰撞导致的力的作用下发生偏转及/或移动,以通过位置及/或姿态的变化对碰撞起到有效的缓冲。
[0151]
一些实施例中,该第一臂中的第一关节组件可以由系统或用户指定的关节组件构成。在该实施例中,第一关节组件具体包括第一臂中的哪些关节组件是在发生碰撞之前事先就确定(即配置)好的。例如,可以从系统文件中获取第一臂中的第一关节组件,也可以通过用户配置界面设定第一臂中的第一关节组件。其中,第一关节组件通常指的是一种类型的关节组件,其数量包括至少一个。例如,第一关节组件包括至少两个关节组件时,处理器经配置需要分别调节每个第一个关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩。
[0152]
示例性的,在如图1所示的从操作设备中,可以配置操纵器130作为上述的第一臂。可选地,例如可以将该操纵器130中的俯仰关节组件131和偏航关节组件132均配置成该第一臂中的第一关节组件。在该示例中,只要碰撞导致的力在俯仰关节组件131对应的俯仰自由度及/或偏航关节组件132对应的偏航自由度上具有分力,通过调节该俯仰关节组件131的驱动机构的输出力矩为平衡该俯仰关节组件131远端的负载的重力矩的同时,调节该偏航关节组件132的驱动机构的输出力矩为平衡该偏航关节组件132远端的负载的重力矩,就可以对碰撞起到较为有效的缓冲作用。
[0153]
一些实施例中,第一臂中的第一关节组件并不是完全由系统或用户指定的,而是根据碰撞点在第一臂及/或附接于第一臂远端的装置中的位置而相对更加灵活的确定的,也即碰撞点位置的变化在某些程度上可以影响第一关节组件的确定。其中,对碰撞具有缓冲作用的关节组件通常是碰撞点所在关节组件及/或靠近碰撞点所在关节组件近端的关节组件。
[0154]
示例性的,第一关节组件可以包括下述部件中的至少一个:碰撞点所在的关节组件、及靠近碰撞点所在的关节组件近端的关节组件。例如,可以根据预先设置的策略配置将碰撞点所在的关节组件、及靠近碰撞点所在的关节组件近端的关节组件全部配置为第一关节组件。又例如,可以根据预先设置的策略配置将碰撞点所在的关节组件配置为第一关节组件。又例如,可以根据预先设置的策略配置将靠近碰撞点所在的关节组件近端的关节组件全部配置为第一关节组件。
[0155]
示例性的,第一关节组件可以包括下述部件中的至少一个:碰撞点所在的关节组件、及靠近碰撞点所在的关节组件近端的关节组件;同时,第一关节组件还可以包括靠近碰撞点所在的关节组件远端的关节组件。其中,由于靠近碰撞点所在关节组件远端的关节组件在碰撞时不会对碰撞起到有效的缓冲作用,进而可以根据实际的需要确定是否将靠近碰撞点所在关节组件远端的关节组件配置为第一关节组件。
[0156]
其中,碰撞点所在的关节组件、靠近碰撞点所在的关节组件近端的关节组件、以及靠近碰撞点所在的关节组件远端的关节组件均可能包括不止一个关节组件。
[0157]
其中,碰撞点所在的关节组件包括两种情况,第一种情况是碰撞点真实的在第一臂中某一关节组件上;第二种情况是碰撞点实际上不在第一臂中某一关节组件、而是在附接于第一臂远端组件的装置上,此时,可以将第一臂中靠近该装置的关节组件作为碰撞点所在的关节组件。
[0158]
一些实施例中,无论根据哪种方式来确定第一关节组件,都可以将第一臂中尽可能多的自由度所对应的关节组件配置成第一关节组件。其中,在第一关节组件包括多个关节组件且不存在冗余自由度时,可以缓冲来自多个方向的碰撞。其中,在第一关节组件包括多个关节组件且存在冗余自由度时,可以利用冗余自由度对应的关节组件对来自相应于该冗余自由度方向的碰撞实现多级缓冲。
[0159]
一些实施例中,第一臂至少包括主动关节组件,主动关节组件指由驱动机构驱动的关节组件。第一关节组件通常指主动关节组件。
[0160]
一些实施例中,第一关节组件对应的驱动机构所输出的输出力矩包括输出合力矩。该输出合力矩包括第一力矩和第二力矩,示例性的,输出力矩包括第一力矩和第二力矩之和。一实施例中,第一力矩用于平衡第一关节组件远端的负载的重力矩。第二力矩用于恢复第一关节组件的关节位置,或,第二力矩用于制动第一关节组件。
[0161]
一些实施例中,本技术所述的“碰撞”包括物与物、及人与物之间的碰撞,广义上讲,“碰撞”还包括物受到外力。其中,“物”主要指本技术所述的臂,例如臂中的第一臂。
[0162]
本技术可以通过单独或结合使用多种方式来判断第一臂是否发生碰撞。
[0163]
一些实施例中,处理器还被配置成用于:接收传感器检测的驱动机构的电流信号,根据电流信号的变化情况确定第一臂及/或附接于第一臂远端的装置是否发生碰撞、及/或确定碰撞时碰撞点所在的关节组件。
[0164]
在该实施例中,传感器具体用于每隔第一周期检测电流信号,该处理器具体用于:计算检测出的相邻电流信号的变化率,并判断变化率是否超过第一阈值,如果变化率超过第一阈值,确定第一臂及/或附接于第一臂远端的装置发生碰撞,及/或根据变化率超过第一阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。当然,如果变化率没有超过第一阈值,则暂不能确定第一臂及/或附接于第一臂远端的装置发生碰撞,也就暂不能根据变化率超过第一阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。
[0165]
在该实施例中,传感器具体用于每隔第二周期检测电流信号,第二周期大于第一周期,该处理器具体用于:计算检测出的相邻电流信号的变化率,并判断变化率是否超过第二阈值,该第二阈值小于第一阈值,如果变化率超过第二阈值,确定第一臂及/或附接于第一臂远端的装置发生碰撞,及/或根据变化率超过第二阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。当然,如果变化率没有超过第二阈值,则暂不能确定第一臂及/或附接于第一臂远端的装置发生碰撞,也就暂不能根据变化率超过第一阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。
[0166]
示例性的,假设第一周期为1ms,如果对应于第一周期的变化率超过了第一阈值,则可以确定第一臂及/或附接于第一臂远端的装置发生碰撞,并据此可以确定碰撞时碰撞点所在的关节组件。
[0167]
如果电流信号的变化率较小,但是随着时间的累积使得最终电流信号的变化量较
大时,实际上也应当认为发生了碰撞。那么这种情况下,例如对应于第一周期的变化率未超过阈值而直接得出确定第一臂及/或附接于第一臂远端的装置没有发生碰撞,则可能出现错误的结果,导致不能对碰撞进行缓冲。
[0168]
进而,传感器也可以同时每隔第二周期检测一次电流信号,该第二周期例如为100ms,如果对应于第二周期的变化率超过了第二阈值,该第二阈值小于第一阈值,则可以确定第一臂及/或附接于第一臂远端的装置发生碰撞,并据此可以确定碰撞时碰撞点所在的关节组件。
[0169]
与该原理相类似的,传感器也可以同时每隔第三周期甚至更多个周期检测一次电流信号,且不同周期对应的变化率的阈值不同,周期越长所对应的阈值可以设定为越小。当对应于任一周期的变化率超过了其相应的阈值时,可以确定第一臂及/或附接于第一臂远端的装置发生碰撞,并据此可以确定碰撞时碰撞点所在的关节组件。
[0170]
在该实施例中,该处理器具体用于:计算电流信号与碰撞前检测到的电流信号之间的电流差值,并判断电流差值是否超过第三阈值,如果电流差值超过第三阈值,确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,及/或根据电流差值超过第三阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。当然,如果电流差值没有超过第三阈值,则暂不能确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,也就暂不能根据电流差值超过第三阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。
[0171]
可以将根据电流差值是否超过对应的阈值来以此确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,及/或确定碰撞时碰撞点所在的关节组件的方式,与检测电流信号在对应周期的变化率是否超过对应的阈值来以此确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,及/或确定碰撞时碰撞点所在的关节组件的方式进行结合使用,以更准确地确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,及/或确定碰撞时碰撞点所在的关节组件。其中,这些判断中任一个超过其对应的阈值时,均可以确定第一臂及/或附接于第一臂远端的装置发生碰撞,并据此可以确定碰撞时碰撞点所在的关节组件;而如果这些判断中全部均未超过其对应的阈值时,则暂不能确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,也就暂不能据此确定碰撞时碰撞点所在的关节组件。
[0172]
事实上,第一臂上的碰撞点可能不止一个,即使碰撞点有两个以上,根据上述实施例也能够准确地确定出碰撞点所在的关节组件,即使碰撞点存在多个,根据本技术的上述实施例也可以对这样的碰撞具有良好的缓冲作用。
[0173]
一实施例中,处理器具体用于:接收传感器检测的关节组件的受力信号,根据受力信号的变化情况确定第一臂及/或附接于第一臂远端的装置是否发生碰撞、及/或确定碰撞时碰撞点所在的关节组件。
[0174]
在该实施例中,处理器具体用于:检测受力信号是否大于设定的阈值,如果检测到受力信号大于该阈值,则确定第一臂及/或附接于第一臂远端的装置发生碰撞,否则,确定第一臂及/或附接于第一臂远端的装置未发生碰撞,并且,可确定碰撞时碰撞点所在的关节组件,其中,碰撞点所在的关节组件是受力信号大于该阈值的传感器所对应的关节组件。
[0175]
上述实施例中,对于第一关节组件是指定的关节组件的情况下,通常并不需要确定碰撞时碰撞点所在的关节组件,只需要确定第一臂及/或附接于第一臂远端的装置是否
发生碰撞即可。而对于第一关节组件的确定与碰撞点所在位置相关联的情况下,既需要确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,又需要确定碰撞时碰撞点所在的关节组件。
[0176]
上述实施例中,对于第一关节组件是指定的关节组件的情况下,被处理的电流信号至少应当包括第一关节组件对应的驱动机构的电流信号,例如,仅包括第一关节组件对应的驱动机构的电流信号;及/或,被处理的受力信号至少应当包括第一关节组件的受力信号,例如,仅包括第一关节组件的受力信号。
[0177]
另一实施例中,手术机器人通常还可以包括第二臂,第二臂与第一臂通常为不同的臂,它们分别是并联的臂中的至少一部分。处理器被配置成用于:判断第一臂及/或附接于第一臂远端的装置的运动学模型的位置参数与第二臂及/或附接于第一臂远端的装置的运动学模型的位置参数是否具有相同,根据位置参数是否具有相同的情况确定第一臂及/或附接于第一臂远端的装置是否发生碰撞、及/或确定碰撞时碰撞点所在的关节组件。其中,这里的“相同”包括相同和大致相同。
[0178]
具体而言,第一臂及/或附接于第一臂远端的装置的运动学模型的位置参数与第二臂及/或附接于第一臂远端的装置的运动学模型的位置参数具有相同(即重复)时,确定第一臂及/或附接于第一臂远端的装置发生碰撞,及/或根据相同的位置参数所在的关节组件确定碰撞时碰撞点所在的关节组件。第一臂及/或附接于第一臂远端的装置的运动学模型的位置参数与第二臂及/或附接于第一臂远端的装置的运动学模型的位置参数不具有相同时,确定第一臂及/或附接于第一臂远端的装置暂未发生碰撞。
[0179]
一实施例中,处理器还被配置成用于:获取传感器检测的至少第一关节组件及第一关节组件远端的关节组件的关节位置,结合关节位置及关联于第一关节组件的动力学模型确定对应于第一关节组件的驱动机构期望输出的第一力矩。
[0180]
本技术所需要使用到的动力学模型通常是针对第一关节组件而构建的,例如,针对不同第一关节组件,所构建的动力学模型是不同。通常,第一关节组件所关联的动力学模型与第一臂中该第一关节组件及其远端的关节组件有关。例如,对于第一臂为操纵器130而言,若指定了操纵器130中俯仰关节组件131和偏航关节组件132均作为第一关节组件,那么俯仰关节组件131所对应的是一个动力学模型,而偏航关节组件132所对应的是另一个动力学模型。假设偏航关节组件132位于俯仰关节组件131的近端,那么俯仰关节组件131的动力学模型仅跟俯仰关节组件131及其远端的关节组件有关,而偏航关节组件132的动力学模型包括偏航关节组件132及与俯仰关节组件131的动力学模型有关的全部关节组件。可以理解的,对于第一臂是由两个以上的子臂所构成的情况,仍然是针对第一关节组件而构建与其对应的动力学模型,此处不再重复赘述。
[0181]
一实施例中,第一关节组件关联的动力学模型可以这样构建:
[0182]
获取第一关节组件及其远端的关节组件的连杆参数,根据这些连杆参数建立连杆坐标系。其中,关节组件包括关节和与关节连接的连杆,连杆参数(即dh参数)包括关节角及/或关节位移、连杆长度等参数。
[0183]
根据该连杆坐标系构建关联于第一关节组件的第一动力学模型。其中,该第一动力学模型通常以符号形式(即具有未知参数的公式)表示,第一动力学模型是模糊的(即动力学参数暂不确定的)动力学模型。例如,该第一动力学模型表达为如下公式:
[0184]
其中,τ是关节组件的实际力矩,θ是关节组件的关节位置,是关节组件的速度(是θ的一次导),是关节组件的速度(是θ的二次导),m(θ)是惯性矩阵,包含科式力和离心力,g(θ)是关节组件的重力矩。
[0185]
确定该第一动力学模型中未知的动力学参数。其中,第一动力学模型通常包括至少一个未知的动力学参数,通常,可以对公式(1)所涉及的未知的动力学参数均进行确定,以得到准确的第二动力学模型。一实施例中,也可以根据实际情况忽略部分未知的动力学参数对关节力矩的贡献,例如,可以主要关注关节组件的质量、质心及摩擦力矩这几个较关键的动力学参数,一些实施例中,关节组件的质量、质心及摩擦力矩可能受到驱动该关节组件的驱动机构及/或将驱动机构和关节组件进行连接以实现传动的传动机构的影响。示例性的,在第一臂的结构较为规整时,关节组件的质量、质心及摩擦力矩等动力学参数中至少部分可以直接获得而无需辨识。当然,关节组件的质量、质心及摩擦力矩等动力学参数中至少部分也可以通过采用辨识的方法获得。例如,关节组件的质量可以通过称重获得,关节组件的质心及摩擦力矩可以通过采用辨识的方法获得。例如,认为忽略m(θ)及对关节力矩的贡献在本技术的一个示例中是可以接受的,因而,公式(1)可以简写为如下:τ=g(θ)
ꢀꢀꢀ
公式(2)
[0186]
将确定的动力学参数代入第一动力学模型中得到第二动力学模型。其中,该第二动力学模型是清晰的(即动力学参数已确定的)动力学模型。进而,在结合这些关节位置及关联于第一关节组件的动力学模型确定对应于第一关节组件的驱动机构期望输出的第一力矩时,所使用的动力学模型指的是该第二动力学模型。
[0187]
一实施例中,考虑到摩擦力矩所带来的不良影响,可以从关节组件的实际力矩中排除摩擦力矩,具体而言:
[0188]
可以基于动态平衡原理,构建关节组件的力矩平衡模型,该力矩平衡模型可表达为如下公式:
[0189]
其中,τ是关节组件的实际力矩,θ是关节组件的关节位置,是关节组件的速度,k1、k2为重力矩参数,f为关节组件的摩擦力矩,表示速度的方向。
[0190]
进而,可以通过辨识的方法确定关节组件的摩擦力矩,例如可以控制单个关节组件以低速进行匀速运动,遍历整个运动范围,采集关节组件的实际力矩和对应的关节位置,该单个关节组件指的是第一关节组件对应的关节组件。其中,在匀速运动过程中,摩擦力矩近似不变而通常被认为是定值,因此,根据采集的关节组件的实际力矩和对应的关节位置,并利用如最小二乘法可以辨识出该关节组件的摩擦力矩。可理解的,关节组件的实际力矩是由驱动该关节组件运动的驱动机构输出的。
[0191]
进而,在通过辨识的方法确定该第一动力学模型中未知的动力学参数(例如公式(2)中的重力矩g(θ))时,可以控制各个关节组件以低速进行匀速运动,遍历整个运动范围,采集第一关节组件的实际力矩、以及第一关节组件及其远端的关节组件对应的关节位置,
结合第一关节组件的实际力矩、第一关节组件的摩擦力矩以及第一关节组件及其远端的关节组件对应的关节位置,并利用如最小二乘法可以辨识出该关节组件辨识出未知的动力学参数(例如公式(2)中的重力矩g(θ))。例如,在公式(2)中,辨识出的未知的动力学参数主要即重力矩参数(包括质量和质心等),因而,可以有效的构建关联有第一关节组件及其远端的关节组件的关节位置与第一关节组件的第一力矩之间的关系的第二动力学模型。
[0192]
一实施例中,该第二力矩可以用于恢复第一关节组件的关节位置,起到类似于复位弹簧的效果,以利于碰撞后第一关节组件的复位。处理器被配置成用于:
[0193]
获取传感器检测的第一关节组件的初始关节位置和当前关节位置;根据初始关节位置和当前关节位置计算第一关节组件的关节位置变量;基于关节位置变量确定对应于第一关节组件的驱动机构输出的第二力矩。其中,该初始关节位置包括碰撞前的关节位置。
[0194]
较佳的,第二力矩随着关节位置变量的增大而增大,也即,关节位置变量越大,制动力越大;关节位置变量越小,制动力越小。更佳的,第二力矩随着关节位置变量的增大而线性增大。
[0195]
示例性的,第二力矩与关节位置变量之间的关系可以表达为:τ=k*δx
ꢀꢀꢀ
公式(4)
[0196]
其中,τ为第二力矩,k为刚度系数,δx为关节位置变量。
[0197]
一些实施例中,该第二力矩还可以用于制动第一关节组件在碰撞下的运动,起到类似于刹车的效果,以利于碰撞下第一关节组件的制动。处理器可以被配置成用于:
[0198]
获取传感器检测的第一关节组件的当前关节位置;检测当前关节位置是否达到第一关节组件的第一限位关节位置,第一限位关节位置在第一关节组件的物理限位关节位置范围以内;在当前关节位置达到第一限位关节位置时,计算当前关节位置与第一限位关节位置之间的关节位置变量;基于关节位置变量确定对应于第一关节组件的驱动机构输出的第二力矩。
[0199]
较佳的,第二力矩随着关节位置变量的增大而增大。更佳的,第二力矩随着关节位置变量的增大而线性增大。示例性的,同样可以利用上述公式(4)来实现制动,此处不再重复赘述。其中,第一关节组件在未达到第一关节位置时,可以在碰撞下自由运动,而在达到第一关节位置时,第一关节位置开始产生抵抗第一关节组件向物理限位位置运动的恢复力进而实现制动,在非制动阶段,第一关节组件能够在碰撞导致的作用力下快速避让开碰撞位置,并在制动阶段,利用弹簧原理能够逐步制动而避免急速制动可能造成的不期望的问题。
[0200]
一实施例中,在第二力矩是制动的力矩时,处理器还可以被配置成用于:
[0201]
获取传感器检测的第一关节组件的初始关节位置和当前关节位置;根据初始关节位置、当前关节位置及从初始关节位置变化到当前关节位置所经历的时间计算第一关节组件的关节速度;基于关节速度确定对应于第一关节组件的驱动机构输出的第二力矩。
[0202]
较佳的,第二力矩随着关节速度的增大而增大,也即,速度越大,制动力越大;速度越小,制动力越小。示例性的,第二力矩与关节速度之间的关系可以表达为:τ=k*vnꢀꢀꢀ
公式(5)
[0203]
其中,τ为所述第二力矩,k为阻尼系数,v为所述关节速度,n为大于等于1的整数,例如,n=1或n=2或n=3。其中,n=1时,制动效果较为线性,而n=2或n=3时,相较于n=1
的情况,制动更为快速敏捷。
[0204]
上述实施例中,处理器可根据确定的第一力矩和确定的第二力矩之和的输出合力矩调节第一关节组件的输出力矩,并取得与第二力矩的获取方式相关联的良好效果。
[0205]
一实施例中,例如,在第二力矩是采用了弹簧模型的原理,即利用了上述公式(4)实现了复位第一关节组件的关节位置或制动第一关节组件的运动的情况下,处理器还可以被配置成用于:在碰撞持续期间,记录第一关节组件在当前关节位置的保持时间,并在保持时间达到设定时间阈值时,更新当前关节位置成初始关节位置。其中,在该实施例中,具体可从确定发生碰撞开始记录第一关节组件在当前关节位置的保持时间。及/或,处理器还可以被配置成用于:在碰撞持续期间,获取第一关节组件的当前关节位置,在当前关节位置的变化量低于位置变化阈值时,记录当前关节位置的变化量低于位置变化阈值的第一持续时间,并在第一持续时间达到第一时间阈值时,更新当前关节位置成初始关节位置,对于第一关节组件中的转动关节组件,位置变化阈值的范围可以包括0~0.1
°
,例如位置变化阈值可以设定为0.01
°
;对于第一关节组件中的移动关节组件,位置变化阈值的范围可以包括0~0.1mm,例如位置变化阈值可以设定为0.01mm。及/或,处理器还可以被配置成用于:在碰撞持续期间,获取第一关节组件的关节速度,在关节速度低于速度阈值时,记录关节速度低于速度阈值的第二持续时间,并在第二持续时间达到第二设定时间阈值时,更新当前关节位置成初始关节位置,对于第一关节组件中的转动关节组件,该速度阈值的范围可以包括0~0.01
°
/s,例如速度阈值可以设定为0.0001
°
/s;对于第一关节组件中的移动关节组件,该速度阈值的范围可以包括0~0.01mm/s,例如速度阈值可以设定为0.0001mm/s。其中,设定时间阈值、第一设定时间阈值及第二设定时间阈值可以完全相同、部分相同或者完全不同,例如可以均设置为4~8秒,更例如均设置为6秒。其中,该第一关节组件示例性的可以包括所有或部分被配置成第一关节组件的关节组件,例如,在第一关节组件中所有关节组件满足上述任意一个条件时,更新当前关节位置成初始关节位置。其中,在该实施例中,初始关节位置被更新了而不再是碰撞前的关节位置了。此时,实现阻抗模式(也称碰撞模式)的退出,只有在确定第一臂及/或附接于第一臂远端的装置再次发生碰撞时,才重新进入阻抗模式。阻抗模式包括:在确定发生碰撞时,响应于碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。此外,碰撞持续期间包括检测到第一臂及/或附接于第一臂远端的装置发生碰撞到退出阻抗模式的整个期间。在碰撞持续期间,第一关节组件所对应的驱动机构的输出力矩需要平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。
[0206]
在该实施例中,第一关节组件的关节位置变量可以基于更新的初始关节位置和当前位置重新计算,使得第一力矩可周期性变化,进而第一臂可以表现为阶段性运动的状态,能够一定程度减小第一臂对碰撞的阻碍,尤其是在正在被操作的第二臂碰撞到第一臂时,由于第一臂可以在碰撞期间的保持时间达到设定时间阈值时继续运动如在碰撞下偏移/或转动,因而能够减小甚至避免由于第一臂对第二臂的阻碍造成第二臂运动范围减小的问题。
[0207]
一实施例中,处理器还可以被配置成用于:
[0208]
获取传感器检测的第一臂中关节组件的关节位置;根据关节位置及正运动学计算
第一臂的运动学模型的位置参数;判断运动学模型的位置参数是否达到第一臂的有效空间的边界参数,有效空间是第一臂的笛卡尔空间中的至少部分空间;在运动学模型的位置参数达到有效空间的边界参数时,至少制动第二关节组件。
[0209]
其中,第二关节组件包括第一关节组件中达到有效空间的边界参数的关节组件。当然,在运动学模型的位置参数达到有效空间的边界参数时,也可以制动全部第一关节组件。适用于不同目的,可以对该有效空间进一步进行限制或限缩。例如第一臂远端装设有手术器械150时,可以通过对第一臂的有效空间进行限制或限制以防止插入人体的手术器械150在碰撞下跟随第一臂偏移幅度较大而损伤人体器官或组织,示例性的,可以将由第一臂的笛卡尔空间得到的初始的有效空间按照一定比例(小于1)进行限缩得到符合需求的新的有效空间。
[0210]
在该实施例中,例如仅制动第二关节组件时,除第二关节组件以外的第一关节组件在碰撞下还可以继续运动,以更好地对碰撞实现缓冲,尤其是当正在被操作的第二臂碰撞到第一臂时,能够减轻由于第一臂对第二臂的阻碍造成第二臂运动范围减小的问题。另外,可以结合上述实施例中在碰撞中或者在碰撞后通过第一关节组件的驱动机构输出用于恢复第一关节组件的关节位置或者用于制动第一关节组件运动的第二力矩的实施方式使用,以确保第一臂使用的可靠性和安全性。
[0211]
在该实施例中,如图5所示,未被操作的第一臂的笛卡尔空间410和第二臂的笛卡尔空间420具有重叠部分430的情况下,这里的第二臂指当前未与第一臂发生碰撞的臂(包括子臂),该第二臂可以是未被操作的臂,也可以是被操作的臂。该第一臂的有效空间可以基于第二臂的运动学模型的位置参数是否位于该重叠部分430而确定。例如,当第二臂的运动学模型的位置参数含于重叠部分430时,该第一臂的有效空间是第一臂的笛卡尔空间不含重叠部分的部分;及/或,当第二臂的运动学模型的位置参数不含于该重叠部分430时,该第一臂的有效空间是第一臂的完整的笛卡尔空间410。这样的设计可以尽量增大第一臂在碰撞下的运动范围;而且,这样的设计可以避免碰撞从第一臂传递到第二臂,尤其是该第二臂是正在被操作的臂时,通过避免碰撞的传递,能够确保该第二臂能够在无干扰下顺利实施手术操作。
[0212]
一些实施例中,处理器还用于:在碰撞之前,确定是否满足条件,在确定满足条件时,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩。进而,在确定第一臂及/或附接于第一臂远端的装置发生碰撞时,响应于第一臂及/或附接于第一臂远端的装置的碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。通过该实施例,可以在尚未发生碰撞前,就使得第一臂能够做好迎接碰撞的准备,例如,这对于即使导致碰撞的力较小、甚至不会被系统判定为发生了碰撞的情况也可以起到某些缓冲作用。
[0213]
在该实施例中,上述的确定满足条件包括获取到触发信号。
[0214]
示例性的,手术机器人还包括与处理器电连接的另一输入装置,该另一输入装置包括但不限于按钮、开关、触摸屏、语音识别装置、指纹识别装置、面部识别装置等中的一种或多种,该触发信号由用户操作该另一输入装置输出。
[0215]
示例性的,手术机器人还包括与处理器电连接以用于检测第一臂远端是否附接有
装置的传感器,该触发信号由传感器检测到第一臂远端未附接装置而自动产生,例如,该装置包括连接于第一臂远端的穿刺器和手术器械150等中的一种或多种。
[0216]
一些实施例中,手术机器人还包括与处理器电连接以用于检测第一臂远端是否附接有装置的传感器,处理器具体用于:
[0217]
在获取到第一臂远端附接有装置时,响应于第一臂及/或附接于第一臂远端的装置的碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。在该实施例中,例如在如图1所示的从操作设备中,若某臂(包括子臂)远端未附接装置,表明该臂为闲置臂,通常在手术时将它放置于非手术区域以远离其它正在被操作的臂,因而通常不会被操作的臂所碰撞。进而,被碰撞的某臂通常是放置于手术区域的臂,而放置于手术区域的臂通常应当装配了上述的装置。所以,该实施例允许在获取到第一臂远端附接有装置时,再进行上述的响应于第一臂及/或附接于第一臂远端的装置的碰撞的过程。
[0218]
一些实施例中,手术机器人还包括与处理器电连接以用于检测手术器械150的类型信息的传感器、及与处理器电连接以用于驱动手术器械150远端的末端器械工作的驱动机构,处理器具体用于:
[0219]
在判断得到手术器械150的类型信息及/或末端器械的状态信息符合安全条件时,响应于第一臂及/或附接于第一臂远端的装置的碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。
[0220]
在该实施例中,例如,手术器械150是内窥镜时,即可认为其符合安全条件。又例如,手术器械150是电钩时,如果电钩为通电状态,即可认为其符合安全条件;而如果电钩为非断电状态,即可认为其不符合安全条件。又例如,手术器械150是剪刀时,如果剪刀为闭合状态,即可认为其符合安全条件;而如果剪刀为张开状态,即可认为其不符合安全条件。此处不做一一列举。这样能够在保证手术实施可靠性和安全性的基础上,对碰撞进行缓冲。
[0221]
一实施例中,如图1所示,当第一臂仅包括操纵器130的情况下,或者,当第一臂仅包括调整臂120的旋风关节组件和操纵器130的情况下,即使第一臂远端装设了上述的装置,进而即使第一臂及/或附接于第一臂远端的装置受到碰撞时,该第一臂中的任意一个第一关节组件转动时,操纵器130只会绕着远程运动中心运动,因而对体内器官、组织的潜在伤害风险相对较小。
[0222]
一些实施例中,上述第二臂是正在被操作的臂时,示例性的,在如图1所示的从操作设备中,第二臂包括操纵器和手术器械,运动输入设备操作第二臂中的操纵器和手术器械联动以实施手术。一些实施例中,手术机器人在包括正在被操作的第二臂时,处理器还可以被配置成用于:在第二臂的传感器检测到第二臂的驱动机构的电流信号达到设定电流阈值时,记录电流信号达到设定电流阈值的持续时间;然后,判断持续时间是否达到时间阈值;在持续时间达到时间阈值时,向第二臂的驱动机构发送指令以控制第二臂的驱动机构停止运动,进而使得由相应驱动机构驱动的关节组件停止运动。其中,造成第二臂中驱动机构电流达到设定阈值的原因可能是因为碰撞造成,当然也可以是其它,通过该实施例,可以对第二臂实现过流保护。
[0223]
其中,第二臂中任一驱动机构的电流信号达到设定电流阈值、且持续时间达到时
间阈值时,均需要发送指令控制第二臂中的至少一个驱动机构停止运动,例如,可以发送指令控制第二臂中的全部驱动机构停止运动。
[0224]
控制第二臂中的至少一个驱动机构停止运动的指令包括指令位置及/或指令速度。示例性的,以该指令为指令速度为例,可以用如下公式来获得指令速度:v=v
1-δv
ꢀꢀꢀ
公式(6)
[0225]
其中,v表示指令速度,v1表示当前关节速度,δv为关节速度变化量。其中,关节组件的关节速度由该关节组件对应的驱动机构的速度决定。
[0226]
可以在指定周期内将相应关节组件的关节速度(对应即驱动机构的速度)从当前关节速度v1降低至0。例如,可以采用梯形速度规划来实现停止运动进而确定δv。一种更简单的示例中,假设某一关节组件的当前关节速度为10mm/s,需要在10个周期内将其从10mm/s降低至0,例如,可以令δv为固定值1mm/s,可以每个周期发送一次指令速度以使当前关节速度在该周期内降低1mm/s,示例性的,第一个周期的指令速度为9mm/s,第二个周期的指令速度为8mm/s,依次类推,直到降低为0。当然,δv也可以是变化值,例如也可以通过轨迹规划(包括速度规划)来确定每个周期需要的δv进而确定指令速度,此处不再一一列举。
[0227]
本技术还提供一种手术机器人中臂的防碰撞方法。如图6所示,一些实施例中,该方法包括:
[0228]
步骤s1,确定第一臂及/或附接于第一臂远端的装置是否发生碰撞。
[0229]
其中,在步骤s1中,在确定第一臂及/或附接于第一臂远端的装置发生碰撞时,进入步骤s2。
[0230]
步骤s2,响应于第一臂及/或附接于第一臂远端的装置的碰撞,调节第一臂的关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。
[0231]
其中,步骤s2中所描述的“平衡”通常意味着一种相对平衡的关系,其允许力矩偏差的存在,对于同一个第一关节组件,满足以下公式即可:x=|f
1-f2|≤δx
[0232]
x为力矩偏差,f1为驱动机构的输出力矩,f2为相应第一关节组件远端负载的重力矩,δx为力矩偏差阈值。例如,δx的取值范围例如可以是[0,10]n/m。
[0233]
其中,只要x≤δx,就可以视该驱动机构的输出力矩平衡相应关节组件远端的负载的重力矩。
[0234]
进而,在第一臂被碰撞时,第一臂中被调节的关节组件即第一关节组件可以较为容易的在碰撞导致的力的作用下发生偏转及/或移动,以通过位置及/或姿态的变化对碰撞起到有效的缓冲。
[0235]
一些实施例中,该第一臂中的第一关节组件可以由系统或用户指定的关节组件构成。在该实施例中,第一关节组件具体包括第一臂中的哪些关节组件是在发生碰撞之前事先就确定(即配置)好的。例如,可以从系统文件中获取第一臂中的第一关节组件,也可以通过用户配置界面设定第一臂中的第一关节组件。其中,第一关节组件通常指的是一种类型的关节组件,其数量包括至少一个。例如,第一关节组件包括至少两个关节组件时,处理器经配置需要分别调节每个第一个关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩。
[0236]
示例性的,在如图1所示的从操作设备中,可以配置操纵器作为上述的第一臂。可选地,例如可以将该操纵器中的俯仰关节组件和偏航关节组件均配置成该第一臂中的第一关节组件。在该示例中,只要碰撞导致的力在俯仰关节组件对应的俯仰自由度及/或偏航关节组件对应的偏航自由度上具有分力,通过调节该俯仰关节组件的驱动机构的输出力矩为平衡该俯仰关节组件远端的负载的重力矩的同时,调节该偏航关节组件的驱动机构的输出力矩为平衡该偏航关节组件远端的负载的重力矩,就可以对碰撞起到较为有效的缓冲作用。
[0237]
一些实施例中,第一臂中的第一关节组件并不是完全由系统或用户指定的,而是根据碰撞点在第一臂及/或附接于第一臂远端的装置中的位置而相对更加灵活的确定的,也即碰撞点位置的变化在某些程度上可以影响第一关节组件的确定。其中,对碰撞具有缓冲作用的关节组件通常是碰撞点所在关节组件及/或靠近碰撞点所在关节组件近端的关节组件。
[0238]
示例性的,第一关节组件可以包括下述部件中的至少一个:碰撞点所在的关节组件、及靠近碰撞点所在的关节组件近端的关节组件。例如,可以根据预先设置的策略配置将碰撞点所在的关节组件、及靠近碰撞点所在的关节组件近端的关节组件全部配置为第一关节组件。又例如,可以根据预先设置的策略配置将碰撞点所在的关节组件配置为第一关节组件。又例如,可以根据预先设置的策略配置将靠近碰撞点所在的关节组件近端的关节组件全部配置为第一关节组件。
[0239]
示例性的,第一关节组件可以包括下述部件中的至少一个:碰撞点所在的关节组件、及靠近碰撞点所在的关节组件近端的关节组件;同时,第一关节组件还可以包括靠近碰撞点所在的关节组件远端的关节组件。其中,由于靠近碰撞点所在关节组件远端的关节组件在碰撞时不会对碰撞起到有效的缓冲作用,进而可以根据实际的需要确定是否将靠近碰撞点所在关节组件远端的关节组件配置为第一关节组件。
[0240]
其中,碰撞点所在的关节组件、靠近碰撞点所在的关节组件近端的关节组件、以及靠近碰撞点所在的关节组件远端的关节组件均可能包括不止一个关节组件。
[0241]
其中,碰撞点所在的关节组件包括两种情况,第一种情况是碰撞点真实的在第一臂中某一关节组件上;第二种情况是碰撞点实际上不在第一臂中某一关节组件、而是在附接于第一臂远端组件的装置上,此时,可以将第一臂中靠近该装置的关节组件作为碰撞点所在的关节组件。
[0242]
一些实施例中,无论根据哪种方式来确定第一关节组件,都可以将第一臂中尽可能多的自由度所对应的关节组件配置成第一关节组件。其中,在第一关节组件包括多个关节组件且不存在冗余自由度时,可以缓冲来自多个方向的碰撞。其中,在第一关节组件包括多个关节组件且存在冗余自由度时,可以利用冗余自由度对应的关节组件对来自相应于该冗余自由度方向的碰撞实现多级缓冲。
[0243]
一些实施例中,第一臂至少包括主动关节组件,主动关节组件指由驱动机构驱动的关节组件。第一关节组件通常指主动关节组件。
[0244]
一些实施例中,第一关节组件对应的驱动机构所输出的输出力矩包括输出合力矩。该输出合力矩包括第一力矩和第二力矩,示例性的,输出力矩包括第一力矩和第二力矩之和。一实施例中,第一力矩用于平衡第一关节组件远端的负载的重力矩。第二力矩用于恢
复第一关节组件的关节位置,或,第二力矩用于制动第一关节组件。
[0245]
一些实施例中,本技术所述的“碰撞”包括物与物、及人与物之间的碰撞。其中,“物”主要指本技术所述的第一臂。
[0246]
本技术可以通过单独或结合使用多种方式来判断第一臂是否发生碰撞。
[0247]
一些实施例中,如图7所示,上述步骤s1,即确定第一臂及/或附接于第一臂远端的装置是否发生碰撞可以包括:
[0248]
步骤s101,接收传感器检测的驱动机构的电流信号。
[0249]
步骤s102,根据电流信号的变化情况确定第一臂及/或附接于第一臂远端的装置是否发生碰撞、及/或确定碰撞时碰撞点所在的关节组件。
[0250]
在该实施例中,传感器具体用于每隔第一周期检测电流信号,如图8所示,上述步骤s102可以包括:
[0251]
步骤s1021,计算检测出的相邻电流信号的变化率。
[0252]
步骤s1022,判断变化率是否超过第一阈值。
[0253]
其中,在步骤s1022中,如果变化率超过第一阈值,进入步骤s1023。
[0254]
步骤s1023,确定第一臂及/或附接于第一臂远端的装置发生碰撞,及/或根据变化率超过第一阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。
[0255]
当然,如果变化率没有超过第一阈值,则暂不能确定第一臂及/或附接于第一臂远端的装置发生碰撞,也就暂不能根据变化率超过第一阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。
[0256]
在该实施例中,传感器具体用于每隔第二周期检测电流信号,第二周期大于第一周期,如图9所示,上述步骤s102还可以包括:
[0257]
步骤s1021’,计算检测出的相邻所述电流信号的变化率。
[0258]
步骤s1022’,判断所述变化率是否超过第二阈值。
[0259]
其中,该第二阈值小于第一阈值。在步骤s1022’中,如果所述变化率超过所述第二阈值,进入步骤s1023’。
[0260]
步骤s1023’,确定所述第一臂及/或附接于所述第一臂远端的所述装置发生碰撞,及/或根据所述变化率超过所述第二阈值的所述电流信号所对应的所述关节组件确定碰撞时碰撞点所在的所述关节组件。
[0261]
当然,如果变化率没有超过第二阈值,则暂不能确定第一臂及/或附接于第一臂远端的装置发生碰撞,也就暂不能根据变化率超过第一阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。
[0262]
示例性的,假设第一周期为1ms,如果对应于第一周期的变化率超过了第一阈值,则可以确定第一臂及/或附接于第一臂远端的装置发生碰撞,并据此可以确定碰撞时碰撞点所在的关节组件。
[0263]
如果电流信号的变化率较小,但是随着时间的累积使得最终电流信号的变化量较大时,实际上也应当认为发生了碰撞。那么这种情况下,例如对应于第一周期的变化率未超过阈值而直接得出确定第一臂及/或附接于第一臂远端的装置没有发生碰撞则可能出现错误的结果,导致不能对碰撞进行缓冲。
[0264]
进而,传感器也可以同时每隔第二周期检测一次电流信号,该第二周期例如为
100ms,如果对应于第二周期的变化率超过了第二阈值,该第二阈值小于第一阈值,则可以确定第一臂及/或附接于第一臂远端的装置发生碰撞,并据此可以确定碰撞时碰撞点所在的关节组件。
[0265]
与该原理相类似的,传感器也可以同时每隔第三周期甚至更多个周期检测一次电流信号,且不同周期对应的变化率的阈值不同,周期越长所对应的阈值可以设定为越小。当对应于任一周期的变化率超过了其相应的阈值时,可以确定第一臂及/或附接于第一臂远端的装置发生碰撞,并据此可以确定碰撞时碰撞点所在的关节组件。
[0266]
在该实施例中,如图10所示,上述步骤s102还可以包括:
[0267]
步骤s1021”,计算电流信号与碰撞前检测到的电流信号之间的电流差值。
[0268]
步骤s1022”,判断电流差值是否超过第三阈值。
[0269]
其中,步骤s1022”,如果电流差值超过第三阈值,进入步骤s1023”。
[0270]
步骤s1023”,确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,及/或根据电流差值超过第三阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。
[0271]
当然,如果电流差值没有超过第三阈值,则暂不能确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,也就暂不能根据电流差值超过第三阈值的电流信号所对应的关节组件确定碰撞时碰撞点所在的关节组件。
[0272]
在该实施例中,可以将根据电流差值是否超过对应的阈值来以此确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,及/或确定碰撞时碰撞点所在的关节组件的方式,与检测电流信号在对应周期的变化率是否超过对应的阈值来以此确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,及/或确定碰撞时碰撞点所在的关节组件的方式进行结合使用,以更准确地确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,及/或确定碰撞时碰撞点所在的关节组件。其中,这些判断中任一个超过其对应的阈值时,均可以确定第一臂及/或附接于第一臂远端的装置发生碰撞,并据此可以确定碰撞时碰撞点所在的关节组件;而如果这些判断中全部均未超过其对应的阈值时,则暂不能确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,也就暂不能据此确定碰撞时碰撞点所在的关节组件。
[0273]
事实上,第一臂上的碰撞点可能不止一个,即使碰撞点有两个以上,根据上述实施例也能够准确地确定出碰撞点所在的关节组件,即使碰撞点存在多个,根据本技术的上述实施例也可以对这样的碰撞具有良好的缓冲作用。
[0274]
一实施例中,如图11所示,上述步骤s1,即确定第一臂及/或附接于第一臂远端的装置是否发生碰撞还可以包括:
[0275]
步骤s111,接收传感器检测的关节组件的受力信号。
[0276]
步骤s112,根据受力信号的变化情况确定第一臂及/或附接于第一臂远端的装置是否发生碰撞、及/或确定碰撞时碰撞点所在的关节组件。
[0277]
在该实施例中,处理器具体用于:检测受力信号是否大于设定的阈值,如果检测到受力信号大于该阈值,则确定第一臂及/或附接于第一臂远端的装置发生碰撞,否则,确定第一臂及/或附接于第一臂远端的装置未发生碰撞,并且,可确定碰撞时碰撞点所在的关节组件,其中,碰撞点所在的关节组件是受力信号大于该阈值的传感器所对应的关节组件。
[0278]
上述实施例中,对于第一关节组件是指定的关节组件的情况下,通常并不需要确定碰撞时碰撞点所在的关节组件,只需要确定第一臂及/或附接于第一臂远端的装置是否发生碰撞即可。而对于第一关节组件的确定与碰撞点所在位置相关联的情况下,既需要确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,又需要确定碰撞时碰撞点所在的关节组件。
[0279]
上述实施例中,对于第一关节组件是指定的关节组件的情况下,被处理的电流信号至少应当包括第一关节组件对应的驱动机构的电流信号,例如,仅包括第一关节组件对应的驱动机构的电流信号;及/或,被处理的受力信号至少应当包括第一关节组件的受力信号,例如,仅包括第一关节组件的受力信号。
[0280]
另一实施例中,手术机器人通常还可以包括第二臂,如图12所示,上述步骤s1,即确定第一臂及/或附接于第一臂远端的装置是否发生碰撞还可以包括:
[0281]
步骤s121,判断第一臂及/或附接于第一臂远端的装置的运动学模型的位置参数与第二臂及/或附接于第一臂远端的装置的运动学模型的位置参数是否具有相同。
[0282]
步骤s122,根据位置参数是否具有相同的情况确定第一臂及/或附接于第一臂远端的装置是否发生碰撞、及/或确定碰撞时碰撞点所在的关节组件。
[0283]
其中,步骤s122中所描述的“相同”包括相同和大致相同。
[0284]
具体而言,第一臂及/或附接于第一臂远端的装置的运动学模型的位置参数与第二臂及/或附接于第一臂远端的装置的运动学模型的位置参数具有相同(即重复)时,确定第一臂及/或附接于第一臂远端的装置发生碰撞,及/或根据相同的位置参数所在的关节组件确定碰撞时碰撞点所在的关节组件。第一臂及/或附接于第一臂远端的装置的运动学模型的位置参数与第二臂及/或附接于第一臂远端的装置的运动学模型的位置参数不具有相同时,确定第一臂及/或附接于第一臂远端的装置暂未发生碰撞。
[0285]
一实施例中,如图13所示,具体在上述步骤s2,即调节第一臂的关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件之前,该方法还包括:
[0286]
步骤s201,获取传感器检测的至少第一关节组件及第一关节组件远端的关节组件的关节位置。
[0287]
步骤s202,结合关节位置及关联于第一关节组件的动力学模型确定对应于第一关节组件的驱动机构期望输出的第一力矩。
[0288]
其中,在步骤s202中所需要使用到的动力学模型通常是针对第一关节组件而构建的,例如,针对不同第一关节组件,所构建的动力学模型是不同。通常,第一关节组件所关联的动力学模型与第一臂中该第一关节组件及其远端的关节组件有关。例如,对于第一臂为操纵器而言,若指定了操纵器中俯仰关节组件和偏航关节组件均作为第一关节组件,那么俯仰关节组件所对应的是一个动力学模型,而偏航关节组件所对应的是另一个动力学模型。假设偏航关节组件位于俯仰关节组件的近端,那么俯仰关节组件的动力学模型仅跟俯仰关节组件及其远端的关节组件有关,而偏航关节组件的动力学模型包括偏航关节组件及与俯仰关节组件的动力学模型有关的全部关节组件。可以理解的,对于第一臂是由两个以上的子臂所构成的情况,仍然是针对第一关节组件而构建与其对应的动力学模型,此处不再重复赘述。
[0289]
一实施例中,如图14所示,在上述步骤s202之前,第一关节组件关联的动力学模型可以这样构建,该方法包括:
[0290]
步骤s2021,获取第一关节组件及其远端的关节组件的连杆参数,根据这些连杆参数建立连杆坐标系。
[0291]
其中,关节组件包括关节和与关节连接的连杆,连杆参数(即dh参数)包括关节角及/或关节位移、连杆长度等参数。
[0292]
步骤s2022,根据该连杆坐标系构建关联于第一关节组件的第一动力学模型。
[0293]
其中,该第一动力学模型通常以符号形式(即具有未知参数的公式)表示,第一动力学模型是模糊的(即动力学参数暂不确定的)动力学模型。例如,该第一动力学模型表达为如下公式:
[0294]
其中,τ是关节组件的实际力矩,θ是关节组件的关节位置,是关节组件的速度(是θ的一次导),是关节组件的速度(是θ的二次导),m(θ)是惯性矩阵,包含科式力和离心力,g(θ)是关节组件的重力矩。
[0295]
步骤s2023,确定该第一动力学模型中未知的动力学参数。
[0296]
其中,第一动力学模型通常包括至少一个未知的动力学参数,通常,可以对公式(1)所涉及的未知的动力学参数均进行确定,以得到准确的第二动力学模型。一实施例中,也可以根据实际情况忽略部分未知的动力学参数对关节力矩的贡献,例如,可以主要关注关节组件的质量、质心及摩擦力矩这几个较关键的动力学参数,一些实施例中,关节组件的质量、质心及摩擦力矩可能受到驱动该关节组件的驱动机构及/或将驱动机构和关节组件进行连接以实现传动的传动机构的影响。示例性的,在第一臂的结构较为规整时,关节组件的质量、质心及摩擦力矩等动力学参数中至少部分可以直接获得而无需辨识。当然,关节组件的质量、质心及摩擦力矩等动力学参数中至少部分也可以通过采用辨识的方法获得。例如,关节组件的质量可以通过称重获得,关节组件的质心及摩擦力矩可以通过采用辨识的方法获得。例如,认为忽略m(θ)及对关节力矩的贡献在本技术的一个示例中是可以接受的,因而,公式(1)可以简写为如下:τ=g(θ)
ꢀꢀꢀ
公式(2)
[0297]
步骤s2024,将确定的动力学参数代入第一动力学模型中得到第二动力学模型。
[0298]
其中,该第二动力学模型是清晰的(即动力学参数已确定的)动力学模型。进而,在结合这些关节位置及关联于第一关节组件的动力学模型确定对应于第一关节组件的驱动机构期望输出的第一力矩时,所使用的动力学模型指的是该第二动力学模型。
[0299]
一实施例中,考虑到摩擦力矩所带来的不良影响,可以从关节组件的实际力矩中排除摩擦力矩,具体而言:
[0300]
可以基于动态平衡原理,构建关节组件的力矩平衡模型,该力矩平衡模型可表达为如下公式:
[0301]
其中,τ是关节组件的实际力矩,θ是关节组件的关节位置,是关节组件的速度,
k1、k2为重力矩参数,f为关节组件的摩擦力矩,表示速度的方向。
[0302]
进而,可以通过辨识的方法确定关节组件的摩擦力矩,例如可以控制单个关节组件以低速进行匀速运动,遍历整个运动范围,采集关节组件的实际力矩和对应的关节位置,该单个关节组件指的是第一关节组件对应的关节组件。其中,在匀速运动过程中,摩擦力矩近似不变而通常被认为是定值,因此,根据采集的关节组件的实际力矩和对应的关节位置,并利用如最小二乘法可以辨识出该关节组件的摩擦力矩。可理解的,关节组件的实际力矩是由驱动该关节组件运动的驱动机构输出的。
[0303]
进而,在通过辨识的方法确定该第一动力学模型中未知的动力学参数(例如公式(2)中的重力矩g(θ))时,可以控制各个关节组件以低速进行匀速运动,遍历整个运动范围,采集第一关节组件的实际力矩、以及第一关节组件及其远端的关节组件对应的关节位置,结合第一关节组件的实际力矩、第一关节组件的摩擦力矩以及第一关节组件及其远端的关节组件对应的关节位置,并利用如最小二乘法可以辨识出该关节组件辨识出未知的动力学参数(例如公式(2)中的重力矩g(θ))。例如,在公式(2)中,辨识出的未知的动力学参数主要即重力矩参数(包括质量和质心等),因而,可以有效的构建关联有第一关节组件及其远端的关节组件的关节位置与第一关节组件的第一力矩之间的关系的第二动力学模型。
[0304]
一实施例中,该第二力矩可以用于恢复第一关节组件的关节位置,起到类似于复位弹簧的效果,以利于碰撞后第一关节组件的复位。如图15所示,具体在上述步骤s2,即调节第一臂的关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件之前,该方法还包括:
[0305]
步骤s211,获取传感器检测的第一关节组件的初始关节位置和当前关节位置。
[0306]
其中,该初始关节位置包括碰撞前的关节位置。
[0307]
步骤s212,根据初始关节位置和当前关节位置计算第一关节组件的关节位置变量。
[0308]
步骤s213,基于关节位置变量确定对应于第一关节组件的驱动机构输出的第二力矩。
[0309]
较佳的,第二力矩随着关节位置变量的增大而增大,也即,关节位置变量越大,制动力越大;关节位置变量越小,制动力越小。
[0310]
更佳的,第二力矩随着关节位置变量的增大而线性增大。
[0311]
示例性的,第二力矩与关节位置变量之间的关系可以表达为:τ=k*δx公式(4)
[0312]
其中,τ为第二力矩,k为刚度系数,δx为关节位置变量。
[0313]
一些实施例中,该第二力矩还可以用于制动第一关节组件在碰撞下的运动,起到类似于刹车的效果,以利于碰撞下第一关节组件的制动。如图16所示,具体在上述步骤s2,即调节第一臂的关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件之前,该方法还包括:
[0314]
步骤s221,获取传感器检测的第一关节组件的当前关节位置。
[0315]
步骤s222,检测当前关节位置是否达到第一关节组件的第一限位关节位置。
[0316]
其中,第一限位关节位置在第一关节组件的物理限位关节位置范围以内。在步骤s222中,在当前关节位置达到第一限位关节位置时,进入步骤s223。
[0317]
步骤s223,计算当前关节位置与第一限位关节位置之间的关节位置变量。
[0318]
步骤s224,基于关节位置变量确定对应于第一关节组件的驱动机构输出的第二力矩。
[0319]
较佳的,第二力矩随着关节位置变量的增大而增大。
[0320]
更佳的,第二力矩随着关节位置变量的增大而线性增大。示例性的,同样可以利用上述公式(4)来实现制动,此处不再重复赘述。其中,第一关节组件在未达到第一关节位置时,可以在碰撞下自由运动,而在达到第一关节位置时,第一关节位置开始产生抵抗第一关节组件向物理限位位置运动的恢复力进而实现制动,在非制动阶段,第一关节组件能够在碰撞导致的作用力下快速避让开碰撞位置,并在制动阶段,利用弹簧原理能够逐步制动而避免急速制动可能造成的不期望的问题。
[0321]
一实施例中,在第二力矩是制动的力矩时,如图17所示,具体在上述步骤s2,即调节第一臂的关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件之前,该方法还包括:
[0322]
步骤s231,获取传感器检测的第一关节组件的初始关节位置和当前关节位置。
[0323]
步骤s232,根据初始关节位置、当前关节位置及从初始关节位置变化到当前关节位置所经历的时间计算第一关节组件的关节速度。
[0324]
步骤s233,基于关节速度确定对应于第一关节组件的驱动机构输出的第二力矩。
[0325]
较佳的,第二力矩随着关节速度的增大而增大,也即,速度越大,制动力越大;速度越小,制动力越小。
[0326]
示例性的,第二力矩与关节速度之间的关系可以表达为:τ=k*vnꢀꢀꢀ
公式(5)
[0327]
其中,τ为所述第二力矩,k为阻尼系数,v为所述关节速度,n为大于等于1的整数,例如,n=1或n=2或n=3。其中,n=1时,制动效果较为线性,而n=2或n=3时,相较于n=1的情况,制动更为快速敏捷。
[0328]
上述实施例中,处理器可根据确定的第一力矩和确定的第二力矩之和的输出合力矩调节第一关节组件的输出力矩,并取得与第二力矩的获取方式相关联的良好效果。
[0329]
一实施例中,例如,在第二力矩是采用了弹簧模型的原理,即利用了上述公式(4)实现了复位第一关节组件的关节位置或制动第一关节组件的运动的情况下,如图18所示,该方法还可以包括:
[0330]
步骤s31,在碰撞持续期间,记录第一关节组件在当前关节位置的保持时间。
[0331]
其中,在步骤s31中,具体可从确定发生碰撞开始记录第一关节组件在当前关节位置的保持时间。
[0332]
步骤s32,检测保持时间是否达到设定的时间阈值。
[0333]
其中,在该步骤s32中,在保持时间达到设定时间阈值时,进入步骤s33。
[0334]
步骤s33,更新当前关节位置成初始关节位置。
[0335]
其中,在该步骤s33中,初始关节位置被更新了,不再是碰撞前的关节位置了。一实
施例中,可以结合或者替换上述步骤s31~s33地,在碰撞持续期间,获取第一关节组件的当前关节位置,在当前关节位置的变化量低于位置变化阈值时,记录当前关节位置的变化量低于位置变化阈值的第一持续时间,并在第一持续时间达到第一时间阈值时,更新当前关节位置成初始关节位置,对于第一关节组件中的转动关节组件,位置变化阈值的范围可以包括0~0.1
°
,例如位置变化阈值可以设定为0.01
°
;对于第一关节组件中的移动关节组件,位置变化阈值的范围可以包括0~0.1mm,例如位置变化阈值可以设定为0.01mm。一实施例中,可以结合或者替换上述步骤s31~s33地,在碰撞持续期间,获取第一关节组件的关节速度,在关节速度低于速度阈值时,记录关节速度低于速度阈值的第二持续时间,并在第二持续时间达到第二设定时间阈值时,更新当前关节位置成初始关节位置,对于第一关节组件中的转动关节组件,该速度阈值的范围可以包括0~0.01
°
/s,例如速度阈值可以设定为0.0001
°
/s;对于第一关节组件中的移动关节组件,该速度阈值的范围可以包括0~0.01mm/s,例如速度阈值可以设定为0.0001mm/s。其中,设定时间阈值、第一设定时间阈值及第二设定时间阈值可以完全相同、部分相同或者完全不同,例如可以均设置为4~8秒,更例如均设置为6秒。其中,该第一关节组件示例性的可以包括所有或部分被配置成第一关节组件的关节组件,例如,在第一关节组件中所有关节组件满足上述任意一个条件时,更新当前关节位置成初始关节位置。此时,实现阻抗模式的退出,只有在确定第一臂及/或附接于第一臂远端的装置再次发生碰撞时,才重新进入阻抗模式。阻抗模式包括:在确定发生碰撞时,响应于碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。此外,碰撞持续期间包括检测到第一臂及/或附接于第一臂远端的装置发生碰撞到退出阻抗模式的整个期间。在碰撞持续期间,第一关节组件所对应的驱动机构的输出力矩需要平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。
[0336]
在该实施例中,第一关节组件的关节位置变量可以基于更新的初始关节位置和当前位置重新计算,使得第一力矩可周期性变化,进而第一臂可以表现为阶段性运动的状态,能够一定程度减小第一臂对碰撞的阻碍,尤其是在正在被操作的第二臂碰撞到第一臂时,由于第一臂可以在碰撞期间的保持时间达到设定时间阈值时继续运动如在碰撞下偏移/或转动,因而能够减小甚至避免由于第一臂对第二臂的阻碍造成第二臂运动范围减小的问题。
[0337]
一实施例中,如图19所示,该方法还可以包括:
[0338]
步骤s41,获取传感器检测的第一臂中关节组件的关节位置。
[0339]
步骤s42,根据关节位置及正运动学计算第一臂的运动学模型的位置参数。
[0340]
步骤s43,判断运动学模型的位置参数是否达到第一臂的有效空间的边界参数。
[0341]
其中,有效空间是第一臂的笛卡尔空间中的至少部分空间。在该步骤s43中,在运动学模型的位置参数达到有效空间的边界参数时,进入步骤s44。
[0342]
步骤s44,至少制动第二关节组件。
[0343]
其中,第二关节组件包括第一关节组件中达到有效空间的边界参数的关节组件。当然,在运动学模型的位置参数达到有效空间的边界参数时,也可以制动全部第一关节组件。适用于不同目的,可以对该有效空间进一步进行限制或限缩。例如第一臂远端装设有手术器械时,可以通过对第一臂的有效空间进行限制或限制以防止插入人体的手术器械在碰
撞下跟随第一臂偏移幅度较大而损伤人体器官或组织,示例性的,可以将由第一臂的笛卡尔空间得到的初始的有效空间按照一定比例(小于1)进行限缩得到符合需求的新的有效空间。
[0344]
在该实施例中,例如仅制动第二关节组件时,除第二关节组件以外的第一关节组件在碰撞下还可以继续运动,以更好地对碰撞实现缓冲,尤其是当正在被操作的第二臂碰撞到第一臂时,能够减轻由于第一臂对第二臂的阻碍造成第二臂运动范围减小的问题。另外,可以结合上述实施例中在碰撞中或者在碰撞后通过第一关节组件的驱动机构输出用于恢复第一关节组件的关节位置或者用于制动第一关节组件运动的第二力矩的实施方式使用,以确保第一臂使用的可靠性和安全性。
[0345]
在该实施例中,如图5所示,未被操作的第一臂的笛卡尔空间410和第二臂的笛卡尔空间420具有重叠部分430的情况下,这里的第二臂指当前未与第一臂发生碰撞的臂(包括子臂),该第二臂可以是未被操作的臂,也可以是被操作的臂。该第一臂的有效空间可以基于第二臂的运动学模型的位置参数是否位于该重叠部分430而确定。例如,当第二臂的运动学模型的位置参数含于重叠部分430时,该第一臂的有效空间是第一臂的笛卡尔空间不含重叠部分的部分;及/或,当第二臂的运动学模型的位置参数不含于该重叠部分430时,该第一臂的有效空间是第一臂的完整的笛卡尔空间410。这样的设计可以尽量增大第一臂在碰撞下的运动范围;而且,这样的设计可以避免碰撞从第一臂传递到第二臂,尤其是该第二臂是正在被操作的臂时,通过避免碰撞的传递,能够确保该第二臂能够在无干扰下顺利实施手术操作。
[0346]
一些实施例中,如图20所示,该方法还可以包括:
[0347]
步骤s10,确定是否满足条件。
[0348]
其中,该步骤s10可以在上述步骤s2之前进行,具体即在调节第一臂的关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件之前进行。也即,该步骤s10可以在碰撞之前进行。
[0349]
其中,在该步骤s10中,在确定满足条件时,进入步骤s11。
[0350]
步骤s11,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩。
[0351]
进而,在确定第一臂及/或附接于第一臂远端的装置发生碰撞时,响应于第一臂及/或附接于第一臂远端的装置的碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。通过该实施例,可以在尚未发生碰撞前,就使得第一臂能够做好迎接碰撞的准备,例如,这对于即使导致碰撞的力较小、甚至不会被系统判定为发生了碰撞的情况也可以起到某些缓冲作用。
[0352]
在该实施例中,上述的确定满足条件包括获取到触发信号。
[0353]
示例性的,手术机器人还包括与处理器电连接的另一输入装置,该另一输入装置包括但不限于按钮、开关、触摸屏、语音识别装置、指纹识别装置、面部识别装置等中的一种或多种,该触发信号由用户操作该另一输入装置输出。
[0354]
示例性的,手术机器人还包括与处理器电连接以用于检测第一臂远端是否附接有
装置的传感器,该触发信号由传感器检测到第一臂远端未附接装置而自动产生,例如,该装置包括连接于第一臂远端的穿刺器和手术器械等中的一种或多种。
[0355]
一些实施例中,手术机器人还包括与处理器电连接以用于检测第一臂远端是否附接有装置的传感器,处理器具体用于:
[0356]
在获取到第一臂远端附接有装置时,响应于第一臂及/或附接于第一臂远端的装置的碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。在该实施例中,例如在如图1所示的从操作设备中,若某臂(或某子臂)远端未附接装置,表明该臂(包括子臂)为闲置臂,通常在手术时将它放置于非手术区域以远离其它正在被操作的臂,因而通常不会被操作的臂所碰撞。进而,被碰撞的某臂通常是放置于手术区域的臂,而放置于手术区域的臂通常应当装配了上述的装置。所以,该实施例允许在获取到第一臂远端附接有装置时,再进行上述的响应于第一臂及/或附接于第一臂远端的装置的碰撞的过程。
[0357]
一些实施例中,手术机器人还包括与处理器电连接以用于检测手术器械的类型信息的传感器、及与处理器电连接以用于驱动手术器械远端的末端器械工作的驱动机构,处理器具体用于:
[0358]
在判断得到手术器械的类型信息及/或末端器械的状态信息符合安全条件时,响应于第一臂及/或附接于第一臂远端的装置的碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。
[0359]
在该实施例中,例如,手术器械是内窥镜时,即可认为其符合安全条件。又例如,手术器械是电钩时,如果电钩为通电状态,即可认为其符合安全条件;而如果电钩为非断电状态,即可认为其不符合安全条件。又例如,手术器械是剪刀时,如果剪刀为闭合状态,即可认为其符合安全条件;而如果剪刀为张开状态,即可认为其不符合安全条件。此处不做一一列举。这样能够在保证手术实施可靠性和安全性的基础上,对碰撞进行缓冲。
[0360]
一实施例中,如图1所示,当第一臂仅包括操纵器的情况下,或者,当第一臂仅包括调整臂的旋风关节组件和操纵器的情况下,即使第一臂远端装设了上述的装置,进而即使第一臂及/或附接于第一臂远端的装置受到碰撞时,该第一臂中的任意一个第一关节组件转动时,操纵器只会绕着远程运动中心运动,因而对体内器官、组织的潜在伤害风险相对较小。
[0361]
一些实施例中,上述第二臂是正在被操作的臂时,示例性的,在如图1所示的从操作设备中,第二臂包括操纵器和手术器械,运动输入设备操作第二臂中的操纵器和手术器械联动以实施手术。一些实施例中,手术机器人在包括正在被操作的第二臂时,处理器还可以被配置成用于:在第二臂的传感器检测到第二臂的驱动机构的电流信号达到设定电流阈值时,记录电流信号达到设定电流阈值的持续时间;然后,判断持续时间是否达到时间阈值;在持续时间达到时间阈值时,向第二臂的驱动机构发送指令以控制第二臂的驱动机构停止运动,进而使得由相应驱动机构驱动的关节组件停止运动。其中,造成第二臂中驱动机构电流达到设定阈值的原因可能是因为碰撞造成,当然也可以是其它,通过该实施例,可以对第二臂实现过流保护。
[0362]
其中,第二臂中任一驱动机构的电流信号达到设定电流阈值、且持续时间达到时间阈值时,均需要发送指令控制第二臂中的至少一个驱动机构停止运动,例如,可以发送指令控制第二臂中的全部驱动机构停止运动。
[0363]
控制第二臂中的至少一个驱动机构停止运动的指令包括指令位置及/或指令速度。示例性的,以该指令为指令速度为例,可以用如下公式来获得指令速度:v=v
1-δv
ꢀꢀꢀ
公式(6)
[0364]
其中,v表示指令速度,v1表示当前关节速度,δv为关节速度变化量。其中,关节组件的关节速度由该关节组件对应的驱动机构的速度决定。
[0365]
可以在指定周期内将相应关节组件的关节速度(对应即驱动机构的速度)从当前关节速度v1降低至0。例如,可以采用梯形速度规划来实现停止运动进而确定δv。一种更简单的示例中,假设某一关节组件的当前关节速度为10mm/s,需要在10个周期内将其从10mm/s降低至0,例如,可以令δv为固定值1mm/s,可以每个周期发送一次指令速度以使当前关节速度在该周期内降低1mm/s,示例性的,第一个周期的指令速度为9mm/s,第二个周期的指令速度为8mm/s,依次类推,直到降低为0。当然,δv也可以是变化值,例如也可以通过轨迹规划(包括速度规划)来确定每个周期需要的δv进而确定指令速度,此处不再一一列举。
[0366]
本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被配置为由处理器加载并执行实现:
[0367]
在医生处于未就绪的状态时,响应于操作部受到的外力,调节操作部的关节组件中第一关节组件对应的驱动机构的输出力矩以平衡第一关节组件远端的负载的重力矩,并恢复第一关节组件的关节位置或制动第一关节组件;和/或,
[0368]
确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,在确定发生碰撞时,响应于碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。
[0369]
本技术还提供一种手术机器人的系统。如图21所示,该系统可以包括:处理器(processor)501、通信接口(communications interface)502、存储器(memory)503、以及通信总线504。
[0370]
处理器501、通信接口502、以及存储器503通过通信总线504完成相互间的通信。
[0371]
通信接口502,用于与其它设备比如各类传感器或旋转电机或电磁阀或其它客户端或服务器等的网元通信。
[0372]
处理器501,用于执行程序505,具体可以执行上述方法实施例中的相关步骤。
[0373]
具体地,程序505可以包括程序代码,该程序代码包括计算机操作指令。
[0374]
处理器505可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路,或者是图形处理器gpu(graphics processing unit)。控制装置包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu,或者,一个或多个gpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个gpu。
[0375]
存储器503,用于存放程序505。存储器503可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0376]
程序505具体可以用于使得处理器501执行以下操作:
[0377]
在医生处于未就绪的状态时,响应于操作部受到的外力,调节操作部的关节组件中第一关节组件对应的驱动机构的输出力矩以平衡第一关节组件远端的负载的重力矩,并恢复第一关节组件的关节位置或制动第一关节组件;和/或,
[0378]
确定第一臂及/或附接于第一臂远端的装置是否发生碰撞,在确定发生碰撞时,响应于碰撞,调节关节组件中第一关节组件所对应的驱动机构的输出力矩以平衡相应第一关节组件远端的负载的重力矩,且恢复第一关节组件的关节位置或制动第一关节组件。
[0379]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0380]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1