首页 / 专利库 / 传感器与探测器 / 传感器 / 用于产生反作用力以实现虚拟边界的机器人系统和方法

用于产生反作用以实现虚拟边界的机器人系统和方法

阅读:181发布:2022-03-05

专利汇可以提供用于产生反作用以实现虚拟边界的机器人系统和方法专利检索,专利查询,专利分析的服务。并且提供了 机器人 系统和方法。机器人系统包括工具和具有用于移动工具的 连杆 的操纵器。 控制器 实现虚拟模拟,其中工具被表示为与由多边形元素的网格定义的虚拟边界交互的虚拟体积。控制器响应于虚拟体积穿透多边形元素而计算反作用 力 。反作用力是基于穿透因子计算的,该穿透因子是相对于多边形元素的几何形状界定的虚拟体积的几何形状的函数。控制器将反作用力施加到虚拟体积,以减少虚拟体积对多边形元素的穿透。控制器命令操纵器根据反作用力对虚拟体积的施加来移动工具,以约束工具相对于虚拟边界的移动。,下面是用于产生反作用以实现虚拟边界的机器人系统和方法专利的具体信息内容。

1.一种机器人系统,包括:
工具;
操纵器,包括多个连杆并且被配置为移动工具;以及
控制器,耦接到操纵器并被配置为实现虚拟模拟,其中工具被表示为虚拟体积,该虚拟体积适于相对于由多边形元素的网格定义的虚拟边界进行交互,并且其中控制器被配置为:
在虚拟模拟中响应于虚拟体积对多边形元素之一的穿透而计算反作用,其中反作用力是基于穿透因子计算的,该穿透因子是相对于多边形元素的几何形状界定的虚拟体积的几何形状的函数;
在虚拟模拟中向虚拟体积施加反作用力,以减少虚拟体积对多边形元素的穿透;以及在虚拟模拟中命令操纵器根据对虚拟体积施加反作用力来移动工具,以约束工具相对于虚拟边界的移动。
2.如权利要求1所述的机器人系统,其中穿透因子在功能上独立于虚拟体积对多边形元素的穿透的线性深度。
3.如前述权利要求中任一项所述的机器人系统,还包括导航系统,该导航系统被配置为跟踪工具的状态并且被耦接到控制器,并且其中基于工具的跟踪状态来定位虚拟体积。
4.如权利要求3所述的机器人系统,其中工具被配置为与目标部位交互,并且其中导航系统被配置为跟踪目标部位的状态,并且其中虚拟边界与目标部位相关联。
5.如权利要求3和4中任一项所述的机器人系统,其中导航系统被配置为跟踪工具要避开的对象的状态,并且其中虚拟边界与要避开的对象相关联。
6.如权利要求3-5中任一项所述的机器人系统,其中,对于工具的状态的后续改变,控制器还被配置为在虚拟模拟中迭代地计算反作用力、迭代地施加反作用力,并且迭代地命令操纵器根据对虚拟体积施加的反作用力来移动工具。
7.如前述权利要求中任一项所述的机器人系统,其中多边形元素是三形。
8.如前述权利要求中任一项所述的机器人系统,其中虚拟体积包括单面、零个顶点和零条边。
9.如前述权利要求中任一项所述的机器人系统,其中虚拟体积是球体的。
10.如前述权利要求中任一项所述的机器人系统,其中反作用力还被定义为脉冲力。
11.如前述权利要求中任一项所述的机器人系统,其中控制器还被配置为在虚拟模拟中响应于虚拟体积对多个多边形元素的同时穿透而计算多个反作用力,其中每个反作用力基于穿透因子来计算,该穿透因子是相对于每个多边形元素的几何形状界定的虚拟体积的几何形状的函数。
12.如权利要求11所述的机器人系统,其中控制器还被配置为:
在虚拟模拟中同时将所述多个反作用力施加到虚拟体积;以及
在虚拟模拟中根据向虚拟体积施加所述多个反作用力来命令操纵器的定位。
13.如权利要求11所述的机器人系统,其中控制器还被配置为:
组合所述多个反作用力以生成组合的反作用力;
在虚拟模拟中将组合的反作用力施加到虚拟体积;以及
在虚拟模拟中根据向虚拟体积施加组合的反作用力来命令操纵器的定位。
14.如权利要求13所述的机器人系统,其中控制器还被配置为向所述反作用力中的每一个施加加权因子,使得对于虚拟体积对多个多边形元素的任何给定的同时穿透,组合的反作用力是恒定的。
15.如前述权利要求中任一项所述的机器人系统,还包括力-扭矩传感器,该力-扭矩传感器被配置为感测施加到工具的输入力,并且其中输入力在虚拟模拟中被施加到虚拟体积以引起虚拟体积对所述多边形元素之一的穿透。
16.如前述权利要求中任一项所述的机器人系统,其中穿透因子是由虚拟体积与多边形元素的相交定义的投影区域,并且其中投影区域由多边形元素的几何形状界定。
17.如前述权利要求中任一项所述的机器人系统,其中穿透因子是由在虚拟体积与多边形元素相交期间由多边形元素的几何形状界定的虚拟体积的横截面区域的任何弧的组合定义的投影弧。
18.如前述权利要求中任一项所述的机器人系统,其中穿透因子是由虚拟体积的穿透多边形元素的体积定义的位移体积,并且其中该体积由多边形元素的几何形状界定。
19.一种控制机器人系统的方法,机器人系统包括工具、包括多个连杆并被配置为移动工具的操纵器以及耦接到操纵器并被配置为实现虚拟模拟的控制器,其中工具表示为被配置为相对于虚拟边界进行交互的虚拟体积,虚拟边界由多边形元素的网格定义,该方法包括控制器:
在虚拟模拟中响应于虚拟体积对多边形元素之一的穿透而计算反作用力,其中反作用力是基于穿透因子计算的,该穿透因子是相对于多边形元素的几何形状界定的虚拟体积的几何形状的函数;
在虚拟模拟中向虚拟体积施加反作用力,以减少多边形元素被虚拟体积的穿透;以及在虚拟模拟中命令操纵器根据对虚拟体积施加反作用力来移动工具,以约束工具相对于虚拟边界的移动。
20.如权利要求19所述的方法,其中穿透因子在功能上独立于虚拟体积对多边形元素的穿透的线性深度。
21.如权利要求20和21中任一项所述的方法,还包括:
从导航系统接收工具的被跟踪的状态;以及
基于工具的被跟踪的状态来定位虚拟体积。
22.如权利要求21所述的方法,还包括:
命令操纵器与目标部位相关地移动工具;
从导航系统接收目标部位的被跟踪的状态;以及
将虚拟边界与目标部位相关联。
23.如权利要求21和22中任一项所述的方法,还包括:
从导航系统接收工具要避开的对象的被跟踪的状态;以及
将虚拟边界与要避开的对象相关联。
24.如权利要求21至23中任一项所述的方法,还包括在虚拟模拟中迭代地计算反作用力、迭代地施加反作用力,并且迭代地命令操纵器根据对虚拟体积施加的反作用力来移动工具,用于工具状态的后续改变。
25.如权利要求19-24中任一项所述的方法,还包括在虚拟模拟中响应于虚拟体积对多个多边形元素的同时穿透而计算多个反作用力,其中每个反作用力基于穿透因子来计算,该穿透因子是相对于每个多边形元素的几何形状界定的虚拟体积的几何形状的函数。
26.如权利要求25所述的方法,还包括:
在虚拟模拟中同时将所述多个反作用力施加到虚拟体积;以及
在虚拟模拟中根据向虚拟体积施加所述多个反作用力来命令操纵器的定位。
27.如权利要求25所述的方法,还包括:
组合所述多个反作用力以生成组合的反作用力;
在虚拟模拟中将组合的反作用力施加到虚拟体积;以及
在虚拟模拟中根据向虚拟体积施加组合的反作用力来命令操纵器的定位。
28.如权利要求27所述的方法,还包括向所述反作用力中的每一个施加加权因子,使得对于虚拟体积对多个多边形元素的任何给定的同时穿透,组合的反作用力是恒定的。
29.如权利要求19-28中任一项所述的方法,还包括:
基于来自力-扭矩传感器的测量来确定施加到工具的输入力;
在虚拟模拟中将输入力施加到虚拟体积,以引起虚拟体积对所述多边形元素之一的穿透。
30.如权利要求19-29中任一项所述的方法,其中计算反作用力是基于穿透因子,该穿透因子是由虚拟体积与多边形元素的相交定义的投影区域,并且其中投影区域由多边形元素的几何形状界定。
31.如权利要求19-30中任一项所述的方法,其中计算反作用力是基于穿透因子,该穿透因子是由在虚拟体积与多边形元素相交期间由多边形元素的几何形状界定的虚拟体积的横截面区域的任何弧的组合定义的投影弧。
32.如权利要求19-31中任一项所述的方法,其中计算反作用力是基于穿透因子,该穿透因子是由虚拟体积的穿透多边形元素的体积定义的位移体积,并且其中该体积由多边形元素的几何形状界定。
33.一种模拟机器人系统工具的动力学的控制器实现的方法,该方法包括:
将工具模拟为虚拟体积;
模拟包括多边形元素网格的虚拟边界;
模拟虚拟体积同时穿透多个多边形元素的移动;
响应于所述多个多边形元素的同时穿透而计算多个反作用力,其中基于穿透因子来计算每个反作用力,该穿透因子是相对于每个多边形元素的几何形状界定的虚拟体积的几何形状的函数;
组合所述多个反作用力以生成组合的反作用力;
向反作用力中的每一个应用加权因子,使得对于由虚拟体积对多个多边形元素的任何给定的同时穿透,组合的反作用力是恒定的;以及
模拟组合的反作用力对虚拟体积的施加。

说明书全文

用于产生反作用以实现虚拟边界的机器人系统和方法

[0001] 相关申请的交叉引用
[0002] 本主题申请要求于2017年6月9日提交的美国临时专利申请序列No.62/517,453的权益,其公开内容通过引用整体并入本文。

技术领域

[0003] 本公开涉及用于产生反作用力以实现机器人系统的虚拟边界的技术。

背景技术

[0004] 机器人系统通常用于执行外科手术规程并且包括机器人,该机器人包括机器人臂和耦接到机器人臂的端部以接合手术部位的工具。
[0005] 为了防止工具到达不期望的区域,常常实现虚拟表面以约束工具的移动。例如,虚拟表面可以被配准到手术部位,以勾勒出工具应当和不应当操纵解剖结构的区域。
[0006] 虚拟表面常常被定义为多边形元素(诸如三形)的网格。如果将力施加到工具上试图穿透虚拟表面,那么为遇到这种尝试穿透的网格的每个三角形计算反力。换句话说,当工具推动虚拟表面时,虚拟表面由于虚拟表面或工具的压缩而向后推。按照惯例,这种反力被建模为弹簧,并且这种反力的量值与三角形的穿透的线性深度(即,工具伸入虚拟表面的距离)成比例。进而,机械臂根据计算出的反力来移动工具,以相对于虚拟表面约束工具。
[0007] 对这些反力进行建模和计算并非易事。虚拟表面的形状常常是复杂的并定义几何特征,对于这些几何特征,难以通过工具进行表面交互的建模。由于工具的建模的形状和/或工具在穿透期间的姿势,使问题更加严重。
[0008] 进而,当工具试图穿透虚拟表面时,特别是当工具同时穿透多个三角形时,已经观察到机械臂可以响应于计算出的反力而提供工具的不一致或非预期移动。例如,随着工具围绕平坦的虚拟表面移动,当同时接合多于一个三角形时,按照惯例工具经历反冲,这被解释为两个反力。虚拟表面越平坦,反冲将越差。当工具接合多个三角形之间共享的顶点时将更加糟糕。例如,如果顶点在五个三角形之间共享,那么顶点处反力的瞬时增加将是一个三角形的反力的五倍。
[0009] 此外,当工具在由虚拟表面定义的外角上滚动时,沿着外角边缘的网格的许多三角形同时经历了尝试的穿透。这些三角形的反力在组合时提供累积的力尖峰,从而在滚动到外角时造成工具非预期的反冲。
[0010] 在常规机器人系统中,简单地基于穿透的线性深度,基于对表面交互进行建模,而不管穿透了一个还是多个三角形,产生进一步的复杂性。例如,可以存在穿透的线性深度相同但虚拟表面的横截面积或位移量不同的情况(例如,基于工具的建模分形状或工具在穿透期间的姿势等)。在这种情况下,常规表面建模仅基于穿透的线性深度即可施加相同的反力,而无需考虑虚拟表面的横截面积或位移体积。
[0011] 在仅工具的一部分穿透虚拟表面(诸如在虚拟表面的外边缘处)的情况下出现类似情况。例如,假设工具的建模的形状和姿势在穿透期间相同,那么在一种情况下,整个工具可以位于虚拟表面上方,而在另一种情况下,工具可以悬在虚拟表面的外边缘上。在此类情况下,常规表面建模再次简单地基于穿透的线性深度来施加相同的反力,而不考虑工具与虚拟表面的接合量。
[0012] 照此,在本领域中需要用于解决至少上面提到的问题的系统和方法。发明内容
[0013] 提供了机器人系统的一个示例。该机器人系统包括工具和操纵器,该操纵器包括多个连杆并且被配置为移动工具。控制器耦接到操纵器并被配置为实现虚拟模拟,其中工具被表示为虚拟体积。虚拟体积被配置为相对于由多边形元素的网格定义的虚拟边界交互。控制器被配置为响应于虚拟模拟中的虚拟体积对多边形元素之一的穿透而计算反作用力。反作用力是基于穿透因子计算的,该穿透因子是相对于多边形元素的几何形状界定的虚拟体积的几何形状的函数。控制器被配置为在虚拟模拟中向虚拟体积施加反作用力,以减少虚拟体积对多边形元素的穿透。控制器命令操纵器根据在虚拟模拟中对虚拟体积施加反作用力来移动工具,以约束工具相对于虚拟边界的移动。
[0014] 提供了一种控制机器人系统的方法的示例。机器人系统包括工具、包括多个连杆并被配置为移动工具的操纵器以及耦接到操纵器并被配置为实现虚拟模拟的控制器。该工具表示为被配置为相对于虚拟边界进行交互的虚拟体积。虚拟边界由多边形元素的网格定义。该方法包括控制器在虚拟模拟中响应于虚拟体积对多边形元素之一的穿透而计算反作用力。反作用力是基于穿透因子计算的,该穿透因子是相对于多边形元素的几何形状界定的虚拟体积的几何形状的函数。该方法包括控制器在虚拟模拟中向虚拟体积施加反作用力,以减少多边形元素被虚拟体积的穿透。控制器在虚拟模拟中命令操纵器根据对虚拟体积施加反作用力来移动工具,以约束工具相对于虚拟边界的移动。
[0015] 提供了模拟机器人系统的工具的动力学的控制器实现的方法的一个示例。该方法包括将工具模拟为虚拟体积,并模拟包括多边形元素网格的虚拟边界。模拟虚拟体积同时穿透多个多边形元素的移动。该方法包括响应于多个多边形元素的同时穿透而计算多个反作用力。基于穿透因子来计算每个反作用力,该穿透因子是相对于多边形元素的几何形状界定的虚拟体积的几何形状的函数。该方法包括组合多个反作用力以生成组合的反作用力。加权因子被应用于每个反作用力,使得对于由虚拟体积对多个多边形元素的任何给定的同时穿透,组合的反作用力是恒定的。模拟组合的反作用力对虚拟体积的施加。
[0016] 机器人系统和方法有利地基于相对于多边形元素的几何形状界定的虚拟体积的几何形状的函数来计算相关的反作用力。这样,对于任何给定情况,反作用力都会为工具的移动提供自然反作用力,考虑到虚拟边界的复杂性、所穿透的多边形元素的数量、作为虚拟体积的工具的建模的形状和/或穿透期间工具的姿势。
[0017] 进而,当工具试图穿透虚拟边界时,并且特别是当工具同时穿透多个多边形元素时,操纵器以响应于反作用力而提供工具的一致且预期移动的方式来移动工具。
[0018] 本文所述的技术进一步考虑了穿透的线性深度(即,虚拟体积伸入多边形元素和/或虚拟边界所经过的距离)相同但虚拟体积的横截面区域或位移体积和/或虚拟边界不同的情况。当根据虚拟体积的几何形状进行计算时,反作用力是不同的,因为反作用力更准确地考虑了虚拟体积的几何形状的穿透程度。穿透因子相对于穿透的线性深度不会线性改变,因为穿透体是体积的,并且不会对多边形元素和/或虚拟边界施加线性冲击力。代替地,穿透体施加冲击力,为与虚拟体积的体积形状相关的高阶函数。因而,根据这个高阶体积函数,穿透因子相对于穿透的线性深度而改变。换句话说,穿透因子考虑了虚拟边界或虚拟体积的位移体积或穿透体积。
[0019] 而且,例如,在虚拟边界的外边缘处,其中,在一种情况下,整个工具可以在虚拟边界上方,而在另一种情况下,工具的一部分悬于虚拟边界的外边缘上(假设相同的虚拟体积和虚拟体积在穿透期间的相同姿势),本文描述的技术可能生成不同的反作用力,因为穿透因子更准确地考虑了多少虚拟体积正在与虚拟边界接合。
[0020] 这些技术进一步提供了对虚拟边界的非平面多边形元素(诸如角、峰、谷等)相对虚拟边界的更加平滑的响应。例如,这些技术提供了逐渐增加的反作用力以避免在遇到这种非平面多边形元素时反作用力中离散的跳跃,这种跳跃会突然或不自然地移动工具。例如,当工具在由虚拟边界定义的外角上滚动时,穿透因子更可能偏移,从而提供基本一致的组合的反作用力。这可以消除在此类角落上滚动时施加到工具上的任何力尖峰。即使对于多于一个的多边形元素,甚至在相同的线性深度下,尽管会发生虚拟体积的穿透,但反应性响应仍然是平滑的。进而,缓解了在非平面多边形元素上方滚动时工具的非预期回弹。因此,本文描述的技术解决了与非平面多边形元素相关的表面建模问题。
[0021] 当然,取决于所经历的各种配置和情况,机器人系统和方法可以表现出优势并提供除本文所述之外的技术解决方案。附图说明
[0022] 当结合附图考虑以下详细描述时,将容易认识到本发明的优点,因为通过以下详细描述,本发明的优点将得到更好的理解,其中:
[0023] 图1是根据一个示例的机器人系统的透视图。
[0024] 图2是机器人系统的控制器的一个示例的框图
[0025] 图3是由机器人系统的控制器和操纵器实现的控制回路的框图。
[0026] 图4是代表操纵器的工具的模拟虚拟体积的示例,并且其中虚拟体积被配置为相对于与解剖结构相关联并且包括多边形元素的网格的虚拟边界交互。
[0027] 图5图示了使用基于投影区域的穿透因子来生成响应于虚拟体积与虚拟边界的一个多边形元素的交互的反作用力的一个示例。
[0028] 图6图示了使用基于投影区域的穿透因子来生成响应于虚拟体积与虚拟边界的一个多边形元素的交互的反作用力的另一个示例。
[0029] 图7图示了使用基于投影区域的穿透因子来生成响应于虚拟体积与虚拟边界的一个多边形元素的交互的反作用力的另一个示例。
[0030] 图8图示了计算相对于虚拟边界的一个多边形元素的投影区域的一个示例。
[0031] 图9图示了计算相对于虚拟边界的一个多边形元素的投影区域的另一个示例。
[0032] 图10图示了使用投影区域来响应于虚拟体积与虚拟边界的多个多边形元素的交互而生成多个反作用力的一个示例。
[0033] 图11图示了使用投影区域来响应于虚拟体积与虚拟边界的多个多边形元素的交互而生成多个反作用力的一个示例。
[0034] 图12图示了使用投影区域来响应于虚拟体积与虚拟边界的多个多边形元素的交互而生成多个反作用力的另一个示例。
[0035] 图13图示了使用投影区域来响应于虚拟体积与形成虚拟边界的外角的多边形元素的交互而生成反作用力的一个示例。
[0036] 图14图示了使用投影区域来响应于虚拟体积与形成虚拟边界的外角的多边形元素的交互而生成反作用力的另一个示例。
[0037] 图15图示了使用投影区域来响应于虚拟体积与形成虚拟边界的外角的多边形元素的交互而生成反作用力的又一个示例。
[0038] 图16图示了基于相对于虚拟边界的一个多边形元素的投影弧来计算穿透因子的一个示例。
[0039] 图17图示了基于相对于虚拟边界的一个多边形元素的投影弧来计算穿透因子的另一个示例。
[0040] 图18图示了基于相对于虚拟边界的一个多边形元素的位移体积来计算穿透因子的一个示例。

具体实施方式

[0041] I.机器人系统的概述
[0042] 参考附图,其中贯穿若干视图,类似的附图标记指示类似或对应的部分,贯穿全文示出了机器人系统10(以下称为“系统”)和用于操作系统10的方法。
[0043] 如图1中所示,系统10是机器人外科手术系统,用于治疗患者12的解剖结构,诸如骨骼或软组织。在图1中,患者12正在接受外科手术规程。图1中的解剖结构包括患者12的股骨(F)和胫骨(T)。外科手术规程可以涉及组织去除或治疗。治疗可以包括切割、凝结、损伤组织、代替组织的治疗等。在一些示例中,外科手术规程包括部分或全部膝盖或髋关节置换外科手术。在一个示例中,系统10被设计为切掉将由外科植入物代替的材料,诸如髋部和膝部植入物,包括单室、双室、多室、全膝部植入物或脊柱相关的应用。这些类型的植入物中的一些在标题为“Prosthetic Implant and Method of Implantation”的美国专利申请公开No.2012/0030429中示出,其公开内容通过引用并入本文。本领域技术人员将认识到的是,本文公开的系统10和方法可以用于执行外科手术或非外科手术的其它规程,或者可以用于工业应用或利用机器人系统的其它应用。
[0044] 系统10包括操纵器14。在一个示例中,操纵器14具有基座16和多个连杆18。操纵器推车17支撑操纵器14,使得操纵器14固定到操纵器推车17。连杆18共同形成操纵器14的一个或多个臂。操纵器14可以具有串联臂构造(如图1所示)或平行臂构造。在其它示例中,可以在多臂配置中利用多于一个操纵器14。
[0045] 操纵器14包括多个关节(J)。每对相邻的连杆18通过关节(J)之一连接。根据一个示例的操纵器14具有六个关节(J1-J6),其实现了操纵器14的至少六个自由度(DOF)。但是,操纵器14可以具有任意数量的自由度,并且可以具有任意合适数量的关节(J)和冗余关节(J)。
[0046] 多个位置传感器19位于关节(J)处,以确定关节(J)的位置数据。为了简单起见,在图1中仅图示了一个位置传感器19,但是应当认识到的是,对于其它关节(J),可以类似地图示其它位置传感器19。位置传感器19的一个示例是编码器,其测量相应关节(J)的关节角度
[0047] 在每个关节(J)处,存在致动器,诸如部署在相邻连杆18之间的关节达21。为了简单起见,在图1中仅示出了一个关节马达21,但是应当认识到的是,可以类似地图示其它关节马达21。每个关节(J)由关节马达21之一主动驱动。关节马达21被配置为使连杆18旋转。照此,连杆18的位置由关节马达21设置。
[0048] 每个关节马达21可以附接到操纵器14内部的结构框架。在一个示例中,关节马达21是伺服马达,诸如永磁无刷马达。但是,关节马达21可以具有其它构造,诸如同步马达、电刷型DC马达、步进马达、感应马达等。
[0049] 关节马达21可定位在多个角度位置之一处,下文中称为关节角度。关节角度是相邻连杆18之间的关节(J)的角度。在一个示例中,每个关节马达21可以配备有位置传感器19之一。可替代地,由那个特定的关节马达21驱动的每个连杆18可以配备有位置传感器19。在一些示例中,两个位置传感器19,一个用于关节马达21的位置传感器和一个用于移动的连杆18的位置传感器,可以用于确定关节角度(诸如通过将关节角度求平均)以及通过顺应性传动确定马达21和关节(J)之间的位移。
[0050] 每个关节(J)被构造为承受关节扭矩。关节扭矩是关节(J)的转动或扭转“力”,并且是距关节(J)的枢轴点一定距离处施加的力的函数。扭矩传感器27(图3)可以连接到一个或多个关节马达21,用于测量关节(J)的关节扭矩。可替代地,可以通过控制器来分析表示施加到关节马达21的电流信号,以测量关节扭矩。
[0051] 操纵器14的基座16一般是操纵器14的在使用期间是固定的一部分,从而为操纵器14或总体上系统10的其它部件提供固定的参考坐标系(即,虚拟零姿势)。一般而言,操纵器坐标系MNPL的原点在基座16的固定参考处定义。可以相对于操纵器14的任何合适部分(诸如连杆18中的一个或多个)来定义基座16。可替代地或附加地,基座16可以相对于操纵器推车17来定义,诸如操纵器14物理地附接到推车17。在一个示例中,基座16被定义在关节J1和J2的轴线的相交处。因此,虽然关节J1和J2实际上是移动的部件,但关节J1和J2的轴线的相交仍然是虚拟的固定参考点,它在操纵器坐标系MNPL中不移动。
[0052] 工具20耦接到操纵器14并且可通过操纵器14移动。具体而言,操纵器14使连杆18的关节J1-J6中的一个或多个移动,以使工具20相对于基座16移动。工具20是末端执行器22或形成末端执行器22的一部分。工具20以某些模式与解剖结构交互并且可以由操作者以某些模式来抓握。操纵器14和工具20的一种示例性布置在标题为“Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes”的美国专利No.9,119,655中进行了描述,该专利的公开内容通过引用并入本文。工具20可以类似于于2014年3月15日提交的标题为“End Effector of a Surgical Robotic Manipulator”的美国专利申请公开No.2014/0276949中所示的工具,该专利申请通过引用并入本文。工具20可以是被配置为操纵患者的解剖结构的工具,或者可以是由操纵器14使用的任何其它类型的工具(外科手术的或非外科手术的)。操纵器14和工具20可以以不同于本文具体描述的构造来布置。
[0053] 在一示例中,工具20包括能量施加器24,该能量施加器24被设计为在手术部位处接触患者12的组织。能量施加器24可以是钻头锯片、车针、超声振动尖端等。工具20可以包括工具中心点(TCP),在一个示例中,该工具中心点是在能量施加器24处定义的预定参考点。TCP在其自己的坐标系中具有已知的位置。在一个示例中,假设TCP位于工具20的球形特征的中心,使得仅一个点被跟踪。TCP可以涉及具有指定直径的车针。在其它示例中,工具20可以是探针、切割引导件、导管或用于相对于解剖结构引导手持式工具的其它类型的引导构件。
[0054] 参考图2,系统10包括耦接到操纵器14的控制器30。控制器30包括用于控制操纵器14以移动工具20的软件和/或硬件。控制器30指引操纵器14的移动并且相对于坐标系控制工具20的状态(位置和/或朝向)。在一个示例中,坐标系是操纵器坐标系MNPL,如图1中所示。操纵器坐标系MNPL具有相对于操纵器14位于任何合适姿势的原点。操纵器坐标系MNPL的轴也可以任意选择。一般而言,操纵器坐标系MNPL的原点定义在基座16的固定参考点处。
在标题为“Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes”的美国专利No.9,119,655中描述了操纵器坐标系MNPL的一个示例,该专利的公开内容通过引用并入本文。
[0055] 如图1中所示,系统10还可以包括导航系统32。导航系统32被配置为跟踪各种对象的移动。此类对象包括例如工具20和解剖结构(例如,股骨F和胫骨T)。导航系统32跟踪这些对象以相对于(导航)定位器坐标系LCLZ搜集每个物体的状态信息。定位器坐标系LCLZ中的坐标可以使用本文描述的变换技术变换为操纵器坐标系MNPL,和/或反之亦然。导航系统32的一个示例在2013年9月24日提交的标题为“Navigation System Including Optical and Non-Optical Sensors”的美国专利No.9,008,757中进行了描述,该专利通过引用并入本文。
[0056] 导航系统32包括容纳导航计算机36和/或其它类型的控制单元的推车组件34。导航接口与导航计算机36可操作地通信。导航接口包括一个或多个显示器38。导航系统32能够使用一个或多个显示器38向操作者显示被跟踪对象的相对状态的图形表示。输入设备40可以用于将信息输入到导航计算机36中,或者用于选择/控制导航计算机36的某些方面。如图1中所示,输入设备40包括交互式触摸屏显示器。但是,输入设备40可以包括键盘鼠标、麦克(语音激活)、手势控制设备等中的任何一个或多个。操纵器14和/或操纵器推车17容纳操纵器计算机26,或者其它类型的控制单元。控制器30可以在系统10中的任何合适的一个或多个设备上实现,包括但不限于操纵器计算机26、导航计算机36及其任意组合。
[0057] 导航系统32还可以包括与导航计算机36通信的导航定位器44(以下称为“定位器”)。在一个示例中,定位器44是光学定位器并且包括相机单元46。相机单元46具有容纳一个或多个光学传感器50的外壳48。
[0058] 在图1所示的示例中,导航系统32包括一个或多个跟踪器。在一个示例中,跟踪器包括指针跟踪器PT、工具跟踪器52、第一患者跟踪器54和第二患者跟踪器56。在图1中,工具跟踪器52被牢固地附接到工具20,第一患者跟踪器54被牢固地固定到患者12的股骨F,并且第二患者跟踪器56被牢固地固定到患者12的胫骨T。在这个示例中,患者跟踪器54、56附接到骨头的部分。指针跟踪器PT附接到用于将解剖结构配准到定位器坐标系LCLZ的指针P。本领域技术人员将认识到的是,跟踪器52、54、56、PT可以以任何合适的方式固定到它们相应的部件。此外,导航系统32可以包括用于系统的其它部件的跟踪器,包括但不限于基座16(跟踪器52B)、推车17以及操纵器14的任何一个或多个连杆18。
[0059] 跟踪器中的任何一个或多个可以包括主动标记58。主动标记58可以包括发光二极管(LED)。可替代地,跟踪器52、54、56可以具有被动标记,诸如反射器,其反射从相机单元46发射的光。可以利用本文未具体描述的其它合适的标记。
[0060] 定位器44跟踪跟踪器52、54、56以确定每个跟踪器52、54、56的状态,其分别与工具20、股骨(F)和胫骨(T)的状态对应。定位器44将跟踪器52、54、56的状态提供给导航计算机
36。在一个示例中,导航计算机36确定跟踪器52、54、56的状态并将其传达给操纵器计算机
26。如本文所使用的,对象的状态包括但不限于定义被跟踪对象的位置和/或朝向的数据或该位置和/或朝向的等效物/衍生物。例如,状态可以是对象的姿势,并且可以包括线性数据和/或角速度数据等。
[0061] 虽然在附图中示出了导航系统32的一个示例,但是导航系统32可以具有用于跟踪工具20和患者12的任何其它合适的配置。在一个示例中,导航系统32和/或定位器44是基于超声的。例如,导航系统32可以包括耦接到导航计算机36的超声成像设备。超声成像设备对任何前面提到的对象(例如,工具20和患者12)进行成像,并基于超声图像向控制器30生成状态信号。超声图像可以是2-D、3-D或两者的组合。导航计算机36可以近实时地处理图像以确定对象的状态。超声成像设备可以具有任何合适的配置,并且可以不同于如图1所示的相机单元46。
[0062] 在另一个示例中,导航系统32和/或定位器44是基于射频(RF)的。例如,导航系统32可以包括与导航计算机36通信的RF收发器。工具20和患者12中的任何一个可以包括附接到其上的RF发射器或应答器。RF发射器或应答器可以是被动或主动的。RF收发器传输RF跟踪信号,并基于从RF发射器接收的RF信号向控制器30生成状态信号。导航计算机36和/或控制器30可以分析接收到的RF信号以将相对状态与其相关联。RF信号可以具有任何合适的频率。RF收发器可以定位在任何合适的位置以高效地使用RF信号来跟踪对象。此外,RF发射器或应答器可以具有可以与图1所示的跟踪器52、54、56有很大不同的任何合适的结构配置。
[0063] 在又一个示例中,导航系统32和/或定位器44是基于电磁的。例如,导航系统32可以包括耦接到导航计算机36的EM收发器。工具20和患者12可以包括附接到其上的EM部件,诸如任何合适的磁跟踪器、电磁跟踪器、感应跟踪器等。跟踪器可以是被动的或者主动通电的。EM收发器生成EM场,并基于从跟踪器接收的EM信号生成到控制器30的状态信号。导航计算机36和/或控制器30可以分析接收到的EM信号以将相对状态与其相关联。再次,这种导航系统32示例可以具有与整个附图中所示的导航系统32配置不同的结构配置。
[0064] 本领域技术人员将认识到的是,导航系统32和/或定位器44可以具有本文未具体叙述的任何其它合适的部件或结构。此外,对于本文描述的导航系统32的任何其它示例,可以实现或提供以上关于在整个附图中示出的基于相机的导航系统32描述的任何技术、方法和/或部件。例如,导航系统32可以仅利用惯性跟踪或跟踪技术的任何组合。
[0065] 控制器30的软件模的示例在图2中示出。软件模块可以是在操纵器计算机26、导航计算机36或其组合上操作以处理数据的一个或多个计算机程序的一部分,以辅助系统10的控制。软件模块包括存储在操纵器计算机26、导航计算机36或其组合上的存储器中的指令,这些指令将由计算机26、36的一个或多个处理器执行。此外,用于提示操作者和/或与操作者通信的软件模块可以形成一个或多个程序的一部分,并且可以包括存储在操纵器计算机26、导航计算机36或其组合上的存储器中的指令。操作者与第一和第二输入设备40、42以及一个或多个显示器38交互以与软件模块通信。用户接口软件可以在与操纵器计算机26和导航计算机36分离的设备上运行。
[0066] 如图1和2中所示,控制器30包括操纵器控制器60,该操纵器控制器60被配置为处理数据以指引操纵器14的移动。在一个示例中,如图1中所示,操纵器控制器60在操纵器计算机26上被实现。操纵器控制器60可以从单个源或多个源接收并处理数据。控制器30还可以包括导航控制器62,该导航控制器62用于将与股骨F、胫骨T和/或工具20相关的状态数据传达给操纵器控制器60。操纵器控制器60接收并处理由导航控制器62提供的状态数据,以指引操纵器14的移动。在一个示例中,如图1中所示,导航控制器62在导航计算机36上被实现。操纵器控制器60和/或导航控制器62还可以通过在一个或多个显示器38上显示股骨F和/或胫骨T和工具20的图像来将患者12和/或工具20的状态传达给操作者。操纵器计算机26或导航计算机36还可以使用显示器38命令显示指令或请求信息,以与操作者进行交互并用于指引操纵器14。
[0067] 如图2中所示,控制器30包括边界生成器66。边界生成器66是可以在操纵器控制器60上实现的软件模块。可替代地,边界生成器66可以在其它部件(诸如导航控制器62)上实现。
[0068] 边界生成器66生成一个或多个虚拟边界55以约束工具20,如图4中所示。在工具20与解剖结构的目标部位交互的情况下,虚拟边界55可以与目标部位相关联,如图4中所示。可以关于配准到实际解剖结构的3D骨骼模型来定义虚拟边界55,使得虚拟边界55相对于骨骼模型是固定的。在这种情况下,虚拟边界55从不应当去除的组织中勾勒出应当去除的组织。在一些情况下,可以使用导航系统32相对于虚拟边界55来跟踪工具20的状态,该导航系统32跟踪工具20的状态(例如,使用工具跟踪器52)和解剖结构的状态(例如,使用患者跟踪器54、56)。在一个示例中,相对于虚拟边界55测量工具20的TCP的状态,以便确定何时以及在何处应当将反作用力施加到操纵器14,或更具体而言,工具20。关于虚拟边界55和这种反作用力的附加细节在下面描述。在2016年12月16日提交的标题为“Techniques for Modifying Tool Operation in a Surgical Robotic System Based on Comparing Actual and Commanded states of the Tool Relative to a Surgical Site”的美国临时专利申请No.62/435,254中解释了一种用于生成相对于解剖结构的虚拟边界55并相对于这种虚拟边界55控制操纵器14的示例性系统和方法,该专利申请的公开内容通过引用并入本文。
[0069] 在另一个示例中,导航系统32被配置为跟踪工具20要避开的对象的状态,并且虚拟边界55与要避开的对象相关联。要避开的对象可以是工具20可能在无意中与之交互的无菌领域中的任何对象。此类对象包括但不限于患者的除手术部位之外的部分、外科手术人员、腿支架、抽吸/冲洗工具、患者跟踪器54、56、牵开器、其它操纵器14、照明设备等。在2014年3月12日提交的标题为“Systems and Methods for Establishing Virtual Constraint Boundaries”的美国专利申请No.2014/0276943中解释了一种用于相对于要避开的对象生成虚拟边界55并相对于此类虚拟边界55控制操纵器14的示例性系统和方法,该专利申请的公开内容通过引用并入本文。
[0070] 控制器30,更具体而言,操纵器控制器60,可以执行提供工具路径生成器68的另一个软件模块,如图2中所示。工具路径生成器68生成用于工具20穿行的路径,诸如用于去除解剖结构的部分以接纳植入物。在标题为“Surgical  Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes”的美国专利No.9,119,655中解释了一种用于生成工具路径的示例性系统和方法,该专利的公开内容通过引用并入本文。
[0071] 在一些示例中,虚拟边界55和/或工具路径可以离线生成,而不是在操纵器计算机26或导航计算机36上生成。之后,操纵器控制器60可以在运行时利用虚拟边界55和/或工具路径。
[0072] 如图1中所示,传感器70(诸如力-扭矩传感器)可以耦接到操纵器14。具体而言,力-扭矩传感器70可以安装在远侧连杆18与工具20之间。力-扭矩传感器70被配置为根据操作者抓握工具20时工具20暴露于的力和/或扭矩来输出可变信号。通过这样做,力-扭矩传感器70允许感测施加到工具20的输入力和/或扭矩。如以下将描述的,输入力和/或扭矩被用于控制操纵器14的移动。在一个示例中,力-扭矩传感器70是6DOF传感器,使得力-扭矩传感器70被配置为输出代表施加到工具20的三个相互正交的力和绕正交力的轴的三个扭矩的信号。附加地或可替代地,施加到工具20的输入力和/或扭矩可以使用关节扭矩来确定,如下面详细描述的。
[0073] 如图3所示,控制器30与关节马达21通信,以命令连杆18的移动和位置。控制器30还耦接到位置传感器(例如,编码器)19并且被配置为使用从位置传感器19接收的信号来测量每个相应关节(J)的实际关节角度。控制器30诸如通过关节马达子控制器来命令关节马达21移动到所命令的关节角度。控制器30可以从关节马达21处的(一个或多个)扭矩传感器28接收指示关节(J)的测得的关节扭矩的信号。控制器30还耦接到力-扭矩传感器70,以接收指示施加到工具20的输入力和/或扭矩的信号。
[0074] II.导纳控制和虚拟模拟
[0075] 在一个示例中,控制器30是导纳型控制器。换句话说,控制器30确定控制力和/或扭矩并且命令操纵器14的位置。控制力和/或扭矩的示例在下面描述。在一个示例中,控制器30仅包括单个导纳控制器,使得控制力和/或扭矩仅由单个控制器30确定和分析以确定力。换句话说,在这个示例中,未利用用于不同控制力和/或扭矩的分离的导纳控制器。在其它示例中,可以使用附加的控制器。
[0076] 使用导纳控制,本文描述的技术有时会给人以其中一些关节(J)被动的印象,这意味着关节(J)在用户施加的力的作用下直接移动(类似于关节)。但是,在所描述的示例中,关节(J)被主动驱动。系统10和方法通过主动地驱动关节(J)并由此响应于确定的控制力和/或扭矩来命令对操纵器14进行控制来模仿被动行为。
[0077] 为了用导纳控制来执行力确定,控制器30被配置为实现虚拟模拟72,如图3中所表示的。控制器30在虚拟模拟72中模拟工具20的动力学。在一个示例中,使用物理引擎来实现虚拟模拟72,该物理引擎是存储在前面提到的计算机26、36中的任何一个的非暂态存储器中并且由控制器30实现的可执行软件。
[0078] 对于虚拟模拟,控制器30将工具20建模为虚拟刚体(例如,如图4中所示)。虚拟刚体是用于虚拟模拟72的工具的动态对象和刚体表示。虚拟刚体根据虚拟模拟72在笛卡尔任务空间中根据6DOF自由移动。虚拟刚体的具体示例在后续部分中描述。
[0079] 虚拟模拟72和虚拟刚体可以被模拟并且以其它方式在没有视觉或图形表示的情况下进行计算处理。因此,不要求虚拟模拟72虚拟地显示虚拟刚体的动力学。换句话说,虚拟刚体不需要在处理单元上执行的图形应用内建模。虚拟刚体仅对于虚拟模拟72存在。
[0080] 在一些情况下,跟踪到实际工具20的虚拟工具的模拟移动可以显示在手术部位处,以在规程的操作期间提供视觉帮助。但是,在此类情况下,所显示的工具并非直接是虚拟模拟72的结果。
[0081] 可以根据各种方法将工具20建模为虚拟刚体。例如,虚拟刚体可以与可以在工具20上或之内的特征对应。附加地或可替代地,虚拟刚体可以被配置为部分地延伸超出工具
20。虚拟刚体可以整体上考虑末端执行器22(包括工具20和能量施加器32),或者可以考虑没有能量施加器32的工具20。此外,虚拟刚体可以基于TCP。在又一个示例中,虚拟刚体基于工具20的运动范围,而不是基于工具20的静态位置。例如,工具20可以包括被配置为在两个端点之间振荡的矢状锯。可以将虚拟刚体静态地定义为包括两个端点以及在这两个端点之间的任何适当空间,以考虑工具20相对于虚拟边界55的整个运动范围。除了上面针对矢状锯所描述的那些技术之外,还可以利用用于实现运动范围的工具20的类似建模技术。
[0082] 在一个示例中,虚拟刚体围绕工具20的质心生成。在这里,“质心”被理解为如果向工具20的另一个点施加力工具20将围绕其旋转并且在其它情况下工具20不受约束(即,不受操纵器14约束)的点。虚拟刚体的质心可以接近但不必与工具20的实际质心相同。可以根据经验确定虚拟刚体的质心。一旦工具20被附接到操纵器14,质心的位置就可以被重置以适应个体执业医生的偏好。在其它示例中,虚拟刚体可以与工具20的其它特征(诸如重心等)对应。
[0083] 控制器30通过虚拟地向虚拟刚体施加控制力和/或扭矩来有效地模拟工具20的刚体动力学。如图3中所示,施加到虚拟刚体的控制力和/或扭矩可以由用户施加(如从力/扭矩传感器70检测到的)和/或基于其它行为和运动控制力和/或扭矩。这些控制力和/或扭矩部分地被施加以控制关节(J)的位置,并且可以从各种来源导出。控制力和/或扭矩之一可以是响应于工具20与边界生成器68产生的虚拟边界的交互的反作用力(Fr)。用于生成这些反作用力(Fr)的技术是后续部分的主要主题,下面将对其进行详细描述。
[0084] 此外,可以施加控制力和/或扭矩以约束工具20沿着从路径生成器68提供的工具路径的移动。这些控制力和/或扭矩可以被施加以进一步在沿着工具路径的朝向的可接受范围内约束工具20的朝向。指示沿着工具路径的干扰的反向驱动控制力(例如,基于施加到操纵器14的外力)也可以施加到虚拟刚体。可以将控制力和/或扭矩施加到虚拟刚体以克服重力。可以施加到虚拟刚体的其它控制力包括但不限于避免关节极限的力、避免操纵器14的连杆18之间的奇异性的力、将工具20保持在操纵器14的工作空间边界内的力等。
[0085] 施加到虚拟刚体的这些各种控制力和/或扭矩由控制器30检测和/或确定,并输入到控制器30求解的方程组中,以便提供满足方程组的运动学解(即,满足各种控制力和/或扭矩以及任何适用的约束)。控制器60可以配置有任何合适的算法指令(例如,诸如迭代约束求解器)以执行这种计算。在虚拟模拟72中执行这个操作以便确定操纵器14的下一个命令位置。虚拟模拟器72在操纵器14的定位期间物理地执行工具20的这种动力学之前模拟工具20的刚体动力学。
[0086] 不同地理解,虚拟刚体在虚拟模拟72的每次迭代开始时处于第一姿势。控制器30将控制力和/或扭矩输入到虚拟模拟器72中,并且当虚拟刚体处于第一姿势时,这些控制力和/或扭矩被施加到虚拟模拟器72中的虚拟刚体。响应于控制器30满足输入的控制力和/或扭矩,将虚拟刚体移动到在笛卡尔空间内具有不同状态(即,位置和/或朝向)的后续姿势。
[0087] 在一个示例中,虚拟刚体在模拟期间实际上并未移动。换句话说,将控制力和/或扭矩输入到方程组中并进行计算求解。每个求解的方程式可以根据方程的(一个或多个)相应控制力来指示虚拟刚体的理论移动。换句话说,考虑虚拟刚体根据每个施加的控制力和/或扭矩的预期移动。
[0088] 附加地或可替代地,在求解方程组期间,虚拟刚体在虚拟模拟72中移动。换句话说,在求解方程组的过程中,虚拟刚体根据施加的控制力和/或扭矩移动。在求解方程组之后,虚拟刚体可以移动到虚拟模拟72中的后续姿势。但是,即使这种后续姿势也可以严格地在计算意义上表示,使得虚拟刚体从第一姿势到第二姿势的移动不会发生。
[0089] 基于虚拟模拟72知道虚拟刚体的后续姿势后,控制器30被配置为根据虚拟模拟72命令关节(J)的动作。即,控制器30转换笛卡尔空间中虚拟刚体的动力学以指引操纵器14的运动并控制关节空间中工具20的状态。例如,将导致后续姿势的力施加到Jacobian计算器,该计算器计算将笛卡尔空间内的运动与关节空间内的运动相关联的Jacobian矩阵。
[0090] 在一个示例中,控制器30被配置为基于虚拟模拟72的输出来确定适当的关节角度以命令关节(J)。即,控制器30计算每个关节(J)的命令的关节角度。从此处开始,控制器30调节每个关节(J)的关节角度,并连续不断地调整每个关节马达21输出的扭矩,以尽可能接近地确保关节马达21将相关联的关节(J)驱动到命令的关节角度。控制器30被配置为向每个关节马达21施加信号,使得每个关节马达21将相关联的关节(J)驱动到命令的关节角度。控制器30可以使用任何合适的位置控制算法来基于命令的关节角度来控制关节(J)的定位。控制器30可以仅基于虚拟模拟72的输出为主动的(即,预期移动的)那些关节(J)生成命令的关节角度。
[0091] 在一些示例中,如图3中所表示的,控制器30针对每个关节(J)分开且单独地(例如,按照每个主动的关节)生成命令的关节角度。例如,可以依次考虑关节(J),使得首先生成用于J1的命令的关节角度,并且最后生成用于J6的命令的关节角度,反之亦然。
[0092] III.基于穿透因子来计算反作用力以实现虚拟边界的技术。
[0093] 现在参考图4-18,本文描述了用于生成反作用力(Fr)的技术,该技术响应于工具20与虚拟边界55(例如,在操纵器坐标系MNPL中)的交互而在虚拟模拟72中施加到虚拟刚体。根据在虚拟模拟72中向虚拟体积74施加反作用力(Fr),控制器30命令操纵器14移动工具20以约束工具20相对于虚拟边界55的移动。下面还提供关于虚拟刚体和虚拟边界55的构造和功能的细节,以及用于计算反作用力(Fr)的技术。通过本文描述的元件的任何功能描述,可以完全理解用于实现这些技术的方法。
[0094] 为了实现本文描述的用于计算反作用力(Fr)的技术,虚拟刚体被定义为虚拟体积74,如图4中所示。因此,虚拟刚体是三维建模的对象,而不是单点或2D平面元素。上一节中描述的虚拟刚体的特征、功能和构造应当被理解为适用于本节中描述的虚拟体积74。基于以下描述的技术将清晰的是,与二维或一维刚体相比,提供虚拟刚体作为虚拟体积74使得虚拟体积74与虚拟边界55之间能够进行更精确的动态交互。
[0095] 虚拟体积74可以具有各种构造。在一个示例中,虚拟体积74包括单面、零条边和零个顶点。例如,如图4-18中所示,虚拟体积74是球体。虚拟体积74可以是具有单面、零边缘和零顶点的其它形状,诸如椭球形(长圆形或扁圆形)、椭圆形、环形(例如甜甜圈形状)或其任意组合。通过具有单面、零边缘和零顶点,整个虚拟体积74被提供有光滑的表面。如基于以下描述的技术将清晰的,与通过具有更多面的体积响应于虚拟边界55的交互作用而计算出的反作用力(Fr)相比,响应于单面虚拟体积74与虚拟边界55的交互而计算出的反作用力(Fr)可能提供更准确地反映交互的响应。
[0096] 有可能用具有多于一个面的虚拟体积74来实现本文描述的技术。例如,虚拟体积74可以是圆锥体、半球形或任何上面提到的体积(即,球体、椭球、椭球体、超环面),其中虚拟体积74具有高分辨率的面,从而模仿相应体积的单面和平滑版本。鉴于本文提供的技术的教导,虚拟体积74的其它示例是预期的。
[0097] 虚拟边界55的一个示例在图4中示出。当然,可以利用任何数量的虚拟边界55。虚拟边界55可以彼此间隔开并且彼此分离,或者可以一体地彼此连接。虚拟边界55可以是平面的,或者可以由更复杂的形状(诸如多面体等)定义。
[0098] 如图4中所示,虚拟边界55由多边形元素80的网格定义。网格由多个多边形元素80形成,这多个多边形元素80彼此相邻布置并且具有彼此对准的相邻顶点和边缘。
[0099] 每个多边形元素80可以由具有平面图形的任何多边形形成,该平面图形具有至少三个直的侧面和角度。理想地,多边形侧面使得能够形成网格,而在相邻的多边形元素80之间没有任何间隙。在一个示例中,如图4中所示,多边形元素80是三角形。三角形可以是任何类型,诸如等边、不等边、等腰、钝角、斜角和/或直角。在其它示例中,多边形元素80可以是四边形(矩形、正方形)、五边形、六边形等。
[0100] 每个虚拟边界55可以包括由相同类型的多边形元素80形成的网格。例如,在图4中,所示的所有多边形元素80都是三角形。在其它示例中,一个虚拟边界55可以包括由一种类型的多边形元素80形成的网格,而另一个虚拟边界55可以包括由另一种类型的多边形元素80形成的网格。在又一个示例中,一个虚拟边界55可以包括由多于一种类型的多边形元素80形成的相同网格。例如,可以为同一网格的不同部分提供每种类型的多边形元素50的组。应该认识到的是,虚拟边界55、网格和多边形元素80可以包括不同于本文描述和附图所示的配置。
[0101] 如所描述的,虚拟体积74可以根据在虚拟模拟72中施加到虚拟体积74的控制力和/或扭矩来与虚拟边界55交互、试图穿透或以其它方式穿透(过冲)虚拟边界55。当虚拟体积74推动虚拟边界55时,由于虚拟体积74和/或虚拟边界55的施加的压缩冲击,虚拟边界55向后推动。为简单起见,在图中将虚拟体积74施加在虚拟边界55上的冲击力(反之亦然)示为(Fa)。为了抵消这个冲击力(Fa),控制器30生成反作用力(Fr)以施加到虚拟体积74,以对抗压缩。因此,反作用力(Fr)是控制器30试图在虚拟模拟72中满足的方程组的分量。因此,应当理解的是,虚拟体积74在虚拟模拟72期间可以承受除反作用力(Fr)之外的多个其它控制力和/或扭矩。如所描述的,通过在方程组中提供这种交互的参数和变量以求解,虚拟体积74和虚拟边界55之间的交互可以仅在计算意义上而不是在图形意义上存在。
[0102] 控制器30被配置为具体地响应于虚拟模拟72中的虚拟体积74穿透一个或多个多边形元素80而计算反作用力(Fr)。反作用力(Fr)是基于穿透因子计算的,穿透因子是相对于多边形元素80的几何形状界定的虚拟体积74的几何形状的函数。如从下面的示例将清晰的,虚拟体积74的几何形状可以是二维的或三维的。虚拟体积74的几何形状由多边形元素80界定。例如,虚拟体积74的几何形状由多边形元素80的周边界定。换句话说,考虑到单个多边形元素80的虚拟体积74的几何形状与虚拟体积74的几何形状存在于多边形元素80的周边内一样多。下面将详细描述计算穿透因子的各种示例。这些示例可以单独或组合使用。
[0103] A.投影区域
[0104] 根据一个示例,如图5-15中所示,控制器30被配置为基于与由虚拟体积74与多边形元素80的交互所定义的投影区域90相关的穿透因子来计算反作用力(Fr)。
[0105] 在这个示例中,术语“投影”是一种数学表达,其表示相对于多边形元素80的平面映射由虚拟体积74与多边形元素80的交互定义的区域90。投影区域90在图中也标记为Aproj。此外,在所有附图中,投影区域90由阴影区域示出。
[0106] 投影区域90由多边形元素80界定。具体而言,投影区域90由多边形元素80的周边界定。换句话说,考虑到单个多边形元素80的投影区域90与多边形元素80的周边内存在的投影区域90一样多。下面描述虚拟体积74穿透多个多边形元素80的示例。
[0107] 从说明书和附图中将清晰的是,虚拟体积74被定义为使得投影区域90相对于穿透的线性深度(即,虚拟体积74突出到多边形元素80和/或虚拟边界55中的距离)非线性地改变。虽然反作用力(Fr)可以随着穿透的线性深度的改变而改变,但是反作用力(Fr)是基于投影区域90来计算的,而没有在计算上考虑穿透的线性深度。
[0108] 如上所述,反作用力(Fr)与投影区域90相关。在一个示例中,反作用力(Fr)与投影区域90直接相关。附加地或可替代地,反作用力(Fr)与投影区域90成比例。在一个示例中,反作用力(Fr)被建模为具有常数k的弹簧。弹簧常数k乘以Aproj,使得FR=kAproj。弹簧常数k可以具有任何合适的值,这取决于反映工具20对虚拟边界55的穿透的对抗程度的设计构造。
[0109] 在一个示例中,反作用力(Fr)被施加为垂直于多边形元素80的平面的向量。该向量相对于多边形元素80的平面的位置可以取决于映射到多边形元素80上的投影区域90的位置而变化。反作用力(Fr)的量值可以取决于投影区域90的尺寸而变化。反作用力(Fr)向量可以相对于多边形元素80的平面成不垂直的角度,这取决于穿透期间的投影区域90和/或虚拟体积74的姿势。下面描述用于计算来自投影区域90的反作用力(Fr)的技术。
[0110] 控制器30被配置为在虚拟模拟72中向虚拟体积74施加反作用力(Fr)以减小虚拟体积74对多边形元素80的穿透。因此,反作用力(Fr)被配置为部分或完全抵消冲击力(Fa)。应当认识到的是,反作用力(Fr)可以直接施加到虚拟体积74和/或可以施加到虚拟边界55本身。在任一种情况下,只要虚拟体积74作用在虚拟边界55上,反作用力(Fr)对虚拟体积74的施加就会导致虚拟体积74的加速度和速度(以及因此姿势)的改变。因为虚拟体积74和虚拟边界55之间的冲击的量值可能随时间变化地发生,因此控制器30可以被配置为生成用于最小化冲击力(Fa)的脉冲。可以迭代地生成脉冲以计算施加到虚拟体积74的反作用力(Fr)。脉冲是反作用力(Fr)随时间的积分。脉冲可以被感知为反作用力(Fr)瞬时增加的影响。
[0111] 现在参考图5-7,示出了图示在虚拟体积74(例如,球体)根据冲击力(Fa)穿透一个多边形元素80(例如,三角形)的情况下的投影区域90的示例。为了简化说明,在附图中使用约定,其中力箭头的长度代表力的量值。因此,越大的力用越长的箭头表示,越小的力用越短的箭头表示。应当认识到的是,箭头的长度是说明性的并且不旨在表示投影区域90和对应反作用力(Fr)之间的直接数学相关性。
[0112] 应当理解的是,为简单起见,附图图示了三个分开的示例,并且不表示虚拟体积74随时间逐渐穿透虚拟边界55。主要地,对于每个示例,示出了相应的反作用力(Fr)以完全抵消相应的冲击力(Fa),从而消除了虚拟边界55的穿透。
[0113] 当然,虚拟体积74的逐渐穿透可能发生,并且本领域技术人员应当认识到的是,对于冲击力(Fa)的各种迭代,这些技术完全能够将反作用力(Fr)迭代地施加到虚拟体积74。对于工具20相对于虚拟边界55的状态的后续改变,控制器30被配置为迭代地计算反作用力(Fr)、迭代地施加反作用力(Fr),并且根据在虚拟模拟72中反作用力(Fr)对虚拟体积74的施加迭代地命令操纵器14移动工具20。例如,反作用力(Fr)可以仅相对于虚拟边界55部分地移动虚拟体积74,使得虚拟体积74继续与虚拟边界55相交。在此类情况下,在虚拟模拟72中跟踪工具20在这种局部位移之后的后续状态并更新虚拟体积74的姿势。虚拟体积74的更新姿势可以造成与虚拟边界55的不同(例如,更小)相交,因此,投影区域50更小,并且最终,后续反作用力(Fr)的量值更小。进而,工具20可以部分地从虚拟边界55进一步移位。可以迭代地重复这个过程,直到完全消除了虚拟边界55的穿透或直到达到阈值为止。
[0114] 对于具体的示例,多边形元素80被示为在虚拟体积74的下方,因此朝向的术语(诸如上方或下方)可以用于描述这种朝向。相对于主题示例描述这样的朝向术语,并且不旨在限制主题的范围。应当认识到的是,其它朝向是可能的,诸如虚拟体积74从下方或从侧面接近多边形元素80。
[0115] 此外,图5-7中的投影区域90基于圆,因为在这些示例中,虚拟体积74是球体。当然,取决于虚拟体积74的构造、形状和/或姿势,相交以及因此投影区域90可以是除了图中所示之外的尺寸或形状。此外,为简单起见,并基于虚拟体积74已穿透多边形元素80区域的几何中心的假设,图5-7中的投影区域90在多边形元素80的中心示出。但是,取决于虚拟体积74的构造、形状和/或姿势,投影区域90可以偏离多边形元素80的中心。
[0116] 现在参考图5,最左边的图示示出了虚拟体积74和多边形元素80的侧视图。根据冲击力(Fa),虚拟体积74的最下端略微穿透多边形元素80。投影区域90(在图5的中间图中示出)表示虚拟体积74和多边形元素80的相交,并且是圆形。在这个示例中,虚拟体积74在相交平面处的横截面100与投影区域90重合。图5中的投影区域90相对于多边形元素80的区域较小,因为仅虚拟体积74的最下端正在穿透。在图5的最右边的图示中,示出了基于投影区域90计算出的反作用力(Fr)。用在垂直于多边形元素80的平面且与冲击力(Fa)相反的方向上施加到虚拟体积74的箭头示出了反作用力(Fr)。在图5中,确定反作用力(Fr)箭头的尺寸以反映相对投影区域90。
[0117] 在图6中,虚拟体积74更深地穿透多边形元素80,因此,在虚拟体积74与多边形元素80之间存在更大的相交。因此,图6(中间图示)中的投影区域90大于图5中的投影区域90。图6中的投影区域90基于圆(即,从球体的相交处),但不是圆形的。代替地,投影区域90由多边形元素80的周边界定,因此,被认为与投影区域90被界定在多边形元素80的周边内一样多。在相交平面处虚拟体积74的横截面区域100超出了多边形元素80的边界,照此,未界定的区域存在于图6中的92处。在计算受影响的多边形元素80的反作用力(Fr)时,未考虑这些未界定的区域92。在图6最右侧的图示中,示出了计算出的反作用力(Fr),其箭头尺寸大于图5中的反作用力(Fr)的箭头,因为图6中的投影区域90大于投影区域图5中的区域90。
[0118] 在图7中,示出了虚拟体积74对多边形元素80的更大穿透。具体而言,球体虚拟体积74的一半穿透多边形元素80。如预期的那样,图7(中间图示)中的投影区域90大于图6中的投影区域90。再次存在未界定的区域92,并且在反作用力(Fr)的计算中将其忽略。如预期的那样,随着更深的穿透,未界定的区域92的面积也大于图6中未界定的区域92的面积。在图7的最右侧图示中,示出了计算出的反作用力(Fr),其箭头尺寸大于图6中反作用力(Fr)的箭头。本领域技术人员认识到,可以采取措施来说明如下情况:由于虚拟体积74的形状,穿透深度如此之深以至于投影区域90实际上减小。例如,当多于一半的球体虚拟体积74穿透多边形元素80时,这会在图7中发生。此类措施可以包括针对任何单个多边形元素80的任何给定穿透计算和组合不止一个投影区域90和/或考虑虚拟边界55的位移体积。
[0119] 如从图5-7应当清晰的,投影区域90关于穿透的线性深度而变化。但是,投影区域90不关于穿透的线性深度而线性改变,因为穿透体是体积的,并且不向多边形元素80和/或虚拟边界55施加线性冲击力(Fa)。代替地,穿透体根据虚拟体积74的体积形状施加更高阶的冲击力(Fa)。因而,根据这种高阶体积函数,投影区域90关于穿透的线性深度而改变。换句话说,投影区域90说明了虚拟体积74的位移体积或穿透体积。
[0120] 这种可变响应部分地发生,因为在所示示例中的虚拟体积74仅具有一个面(例如,是球体的)并且不具有彼此相邻的完全相同的横截面区域。例如,如果虚拟体积74是具有下表面穿透多边形元素80的立方体(平坦侧重合),那么投影区域90对于图5-7将是完全相同的。因此,虽然根据本文描述的技术,穿透的线性深度的相对差异保证了不同的反作用力(Fr),但是每个示例的反作用力(Fr)将是相同的。
[0121] 因此,响应于虚拟体积74的穿透而计算的反作用力(Fr)可变地响应于穿透的线性深度。但是,即使反作用力(Fr)可以随着穿透的线性深度的改变而改变,反作用力(Fr)也的确是基于投影区域90计算的。反作用力(Fr)不是简单地基于虚拟体积74突出到多边形元素80和/或虚拟边界55中的线性深度来计算的。
[0122] 在图8和9中示出了用于计算投影区域90的技术的示例。如所描述的,给定多边形元素80的投影区域90由多边形元素80内的阴影区域示出,并且排除了延伸超过多边形元素80的任何未界定区域92。在图8中,示出了具体针对三角形多边形元素80的投影区域90的计算。
[0123] 在图8中,投影区域90是从与球形虚拟体积74的相交导出的,因此是基于圆形的。在图8中示出了圆并且表示在与三角形多边形元素80相交的平面处的虚拟体积74的横截面区域100。该圆偏离三角形多边形元素80的几何中心,并且在相交94和96处与多边形元素80的下边缘相交。进而,横截面区域100被下边缘切除,从而产生未界定区域92,如图所示。中心点(c)是虚拟体积74的横截面区域100的中心并且半径(r)是横截面区域100的半径。
[0124] 在这个示例中,通过确定圆与多边形元素80之间的重叠来计算投影区域90。具体而言,在这种情况下,其中仅关于三角形多边形元素80的一条边(并且没有顶点)发生圆的相交,通过将重叠分解成三角形区域Atri和圆形扇形区域Asector来计算投影区域90。三角形区域Atri定义在三个点(即,中心点(c)和相交94、96)内。在相相交94、96之间定义三角形区域Atri的底部(b),并且在中心点(c)与底部(b)之间定义三角形区域Atri的高度(h)。使用公式Atri=1/2bh计算三角形面积Atri。圆形扇形区域Asector基于扇形角(θ),扇形角(θ)围绕中心点(c)定义并且分别在中心点(c)和每个相交92、94之间定义的三角形区域Atri的两条腿之间。使用公式Asector=πr2*θ/360(度)计算圆形扇形面积Asector。值得注意的是,在这个示例中,圆的中心点(c)位于多边形元素80内。因此,圆形扇形区域Asector也位于多边形元素80内。如图8中所示,在三角形区域Atri和圆形扇区区域Asector占据整个阴影区域的情况下,通过将Atri和Asector相加来计算投影区域Aproj。
[0125] 图9是图示基于三角形多边形元素80和虚拟体积74的圆形横截面100的投影区域Aproj的计算的又一个示例。在这种情况下,仅关于三角形多边形元素80的一条边(没有顶点)再次发生圆形横截面100的相交。但是,在这个示例中,圆形横截面100的中心点(c)位于多边形元素80的外部。因此,整个三角形区域Atri和圆形扇形区域Asector的一部分也位于多边形元素80的外部。因此,与通过将三角形区域Atri和圆形扇区区域Asector加在一起来计算的图8的投影区域90不同,通过从圆形扇形区域Asector中减去三角形区域Atri来计算图9的投影区域90。图9的投影区域90小于图8的投影区域90。
[0126] 应当重申的是,关于图8和9的计算不仅特定于三角形多边形元素80和虚拟体积74的圆形横截面100,而且还特定于圆关于三角形多边形元素80的仅一条边并且不关于三角形多边形元素80的顶点的相交。当然,取决于多边形元素80的几何形状、虚拟体积74的几何形状以及这些几何形状彼此的相对位置,投影区域90以及因此用于计算投影区域90的计算可以是不同的。此外,对于所示的示例,投影区域90的计算将取决于三角形多边形元素80的多少条边(从0到3)和顶点(从0到3)被虚拟体积74的圆形横截面100相交而不同。除了本文描述的那些几何构造和情况之外,投影区域90的几何计算是预期的。
[0127] 参考图10-12,示出了其中响应于虚拟模拟72中虚拟体积74同时穿透多个多边形元素(例如,80A-80F)而生成多个反作用力(例如,FrA–FrF)的示例。为简单起见,图10-12中的示例继续参考虚拟多边形74的三角形多边形元素80和圆形横截面100。
[0128] 在图10中,球体虚拟体积74穿透由多边形元素80A-80F组成的虚拟边界55,在这个示例中,多边形80A-80F被假设在同一个平面上。当然,虚拟边界55的网格可以包括除多边形元素80A-80F之外的更多多边形元素,并且各种多边形元素80可以以一定角度彼此挨着相邻部署,使得它们是非平面的。与其中仅示出和描述与一个多边形元素80的相交的图5-9不同,在图10中,虚拟体积74的圆形横截面100在多边形元素80A-80F之间共享的中心顶点处与每个多边形元素80A-80F相交。因此,映射到每个相应的多边形元素80A-80F上的投影区域90A-90F是完全相同的。为了简单起见,在这个示例中描述了完全相同的投影区域90A-90F,并且应当理解的是,对于每个多边形元素80A-80F,投影区域90的不同形状(或不存在)是可能的。为相应的多边形元素80A-80F计算反作用力(FrA–FrF)。每个反作用力(FrA–FrF)与由虚拟空间74与每个多边形元素80A-80F的相交定义的相应投影区域90A-90F相关。同样,每个投影区域90A-90F由每个多边形元素80A-80F界定。因此,在这个示例中,反作用力(FrA–FrF)也完全相同。
[0129] 在图10中,控制器30被配置为将多个反作用力(FrA–FrF)同时施加到虚拟体积74,以抵消虚拟体积74对虚拟边界55的穿透。在图10的具体示例中,多个反作用力(FrA–FrF)中的每一个都分别施加到虚拟体积74。例如,每个多边形元素80可以单独地对虚拟体积74的穿透做出反应。反作用力(FrA–FrF)是根据与相应多边形元素80A-80F的位置施加的,因此可以与图10中所示的位置略有不同,后者受到侧视图的限制。
[0130] 除了控制器30组合多个反作用力(FrA–FrF)以生成组合的反作用力(FrTotal)之外,图11中的情况与图10中的情况相似。控制器30被配置为一次向虚拟体积74施加单个组合的反作用力(FrTotal),以抵消虚拟体积74对虚拟边界55的穿透。组合的反作用力(FrTotal)的量值可以通过将多个反作用力的相应量值(FrA–FrF)相加来计算。在这种情况下,组合的反作用力(FrTotal)的量值是任何一个反作用力(FrA–FrF)的相应量值的六倍。可以通过求平均或找到多个反作用力(FrA–FrF)的相应位置的中心来计算组合的反作用力的位置(FrTotal)。在这种情况下,组合的反作用力(FrTotal)的位置位于多边形元素80A-80F之间共享的中心顶点。由于这个示例中的假设是多边形元素80A-80F位于同一平面中,因此组合的反作用力(FrTotal)的方向垂直于该平面并与冲击力(Fa)相反。组合的反作用力(FrTotal)的量值、位置和方向可以根据除本文描述之外的方法来计算。
[0131] 在一些示例中,控制器30可以向每个反作用力(Fr)施加加权因子,使得对于虚拟体积74对多个多边形元素80的任何给定的同时穿透,组合的反作用力是恒定的。换句话说,控制器30可以利用仿射组合算法来操纵加权因子,使得这些加权因子之和是恒定的。例如,当虚拟边界55是平面表面时,可以将加权因子定义为和为一。当两个虚拟边界55接近垂直或垂直时,可以将加权因子定义为和大于一的数。在虚拟边界的边缘处,可以将加权因子定义为和小于一的数。对于这些给定的场景,这种技术有助于提供对虚拟体积55的穿透的可预测且平滑的反应性响应,使得为用户提供自然的反应性响应。换句话说,用户不会感到力的非预期增大或减小。
[0132] 在图12中,球形虚拟体积74穿透由多边形元素80A-80D组成的虚拟边界55。与图10和11不同,图12中虚拟体积74的圆形横截面100并不平等地与多边形元素80A-80D中的每一个相交。代替地,映射到多边形元素80A上的投影区域90A大于映射到多边形元素80B-80D上的投影区域90B-90D。投影区域90B-90D是完全相同的。为每个多边形元素80A-80F计算反作用力(FrA–FrF)。与投影区域90A相关的反作用力(FrA)大于与投影区域90B-90D相关的每个反作用力(FrB–FrD),因为投影区域90A大于投影区域90B-90D。同样,反作用力(FrA–FrD)是根据与相应的多边形元素80A-80D对应的位置施加的,因此可以与图12中所示的位置略有不同,后者受到侧视图的限制。
[0133] 图12进一步例示了本文描述的投影区域技术的动态响应,因为对于多个多边形元素80A-80D中的每一个,穿透的线性深度是相同的。但是,由于用于多边形元素80A的投影区域90A大于用于多边形元素80B-80D的相应投影区域90B-90D,因此与投影区域90A相关的反作用力(FrA)大于每个其它反作用力(FrB–FrD),并准确考虑由这个具体虚拟体积74提供的穿透影响。因此,这个示例重申了投影区域90,因此,反作用力(Fr)相对于穿透的线性深度没有线性变化。
[0134] 前面的示例描述了多边形元素80位于同一平面中的情况。本文描述的技术同等地适用于多边形元素80位于不同平面中的情况。这种情况的一个示例是虚拟体积74遇到由多边形元素80定义的角。例如,图13-15图示了在虚拟体积74(例如,球体)根据冲击力(Fa)穿透两个多边形元素80A、80B(例如,正方形)的情况下的投影区域90的使用。具体而言,两个多边形元素80A、80B形成虚拟边界55的外角。
[0135] 应当理解的是,为简化起见,如图所示,图13-15图示了三个分开的示例并且不表示虚拟体积74随时间逐渐穿透虚拟边界55。主要地,对于每个示例,示出了相应的反作用力(Fr)以完全抵消相应的冲击力(Fa),从而消除被虚拟边界55的穿透。当然,虚拟体积74可能会逐渐穿透,并且本领域技术人员应当认识到的是,对于冲击力(Fa)的各种迭代,该技术完全能够将反作用力(Fr)迭代地施加到虚拟体积74。
[0136] 现在参考图13,示出了虚拟体积74和多边形元素80A、80B的侧视图。图13中进一步示出了多边形元素80A的相应俯视图和多边形元素80B的相应正视图。虚拟体积74穿透多边形元素80A,但不穿透多边形元素80B。投影区域90A是圆形并且表示虚拟体积74和多边形元素80A的相交。反作用力(FrA)是基于投影区域90A计算的并且在与冲击力(Fa)相反的方向上被施加到虚拟体积74。在这个示例中,由于虚拟体积74的穿透位置,投影区域90A被映射到多边形元素80A的正方形中心。因此,反作用力(FrA)被施加到在多边形元素80A中心的位置,并且因此在穿透的虚拟体积74的中心。此外,投影区域90A是虚拟体积74的整个横截面区域100。因而,反作用力(FrA)以相对大的量值被施加。
[0137] 在图14的示例中,虚拟体积74被示为在外角处穿透两个多边形元素80A、80B。由于穿透的位置,映射到多边形元素80A、80B的相应投影区域90A、90B每个仅是虚拟体积74的横截面区域100的一部分。基于投影区域90A计算出的反作用力(FrA)在与对多边形元素80A的冲击相反的方向上被施加到虚拟体积74。基于投影区域90B计算出的反作用力(FrB)以不同的方向(即,与对多边形元素80B的冲击相反的方向)被施加到虚拟体积74。基于冲击的位置,将投影区域90A映射到多边形元素80A的右边缘,并将投影区域90B映射到多边形元素80B的上边缘。因此,反作用力(FrA)被施加到多边形元素80A的右边缘附近的位置,并且反作用力(FrB)被施加到多边形元素80B的上边缘附近的位置。此外,由于投影区域90A、90B每个仅是虚拟体积74的横截面区域100的一部分,因此反作用力(FrA)、(FrB)以对应的量值施加,每个的量值都小于图13中施加的反作用力(FrA)的量值。虽然事实是图13和14之间穿透的线性深度相同,但就是如此。
[0138] 在图15中,与图14相比,虚拟体积74的甚至更少的部分在外角处穿透两个多边形元素80A、80B。穿透的线性深度也小于图13和14的线性深。与图14相比,图15中的投影区域90A、90B较小并且反作用力(FrA)施加在多边形元素80A的右边缘附近并且反作用力(FrB)施加在多边形元素80B的上边缘附近。此外,反作用力(FrA)、(FrB)的施加量值小于图14中施加的反作用力(FrA)、(FrB)的量值。
[0139] 如从这些示例应当清晰的,用于使用投影区域90计算外角处的反作用力(FrA)、(FrB)的技术提供了自然的响应,以对抗虚拟边界55。例如,即使在图13中穿透了一个多边形元素80A,并且在图14中的外角处穿透了两个多边形元素80A、80B,但是这些技术也提供了反作用力(Fr)的逐渐增加。换句话说,增加投影区域90转化为增加反作用力(Fr),而减小投影区域90转化为减小反作用力(Fr)。这样,这些技术避免了在遇到虚拟边界55时突然或不自然地移动工具20的反作用力(Fr)的离散跳跃。图13中的投影区域90A与图14中的投影区域90A、90B的组合的面积大致相同,从而即使虚拟体积74的穿透在给定的线性深度处有效地加倍,也提供平滑的反应响应。换句话说,通过使用投影区域90A、90分别计算反作用力(FrA)、(FrB),减轻了工具20在外角上滚动时的非预期反冲。因此,本文描述的技术解决了与角相关的表面建模问题。该技术完全适用于其中虚拟体积74同时穿透多个非平面多边形元素80的任何其它示例。示例包括但不限于内角、峰、谷等。
[0140] B.投影弧
[0141] 根据另一个示例,如图16和17中所示,控制器30被配置为基于与投影弧200相关的穿透因子来计算反作用力(Fr)。通过在虚拟体积74与多边形元素80相交期间由多边形元素80的几何形状界定的虚拟体积74的横截面100的任何弧202的组合来定义投影弧200。
[0142] 在此,术语“投影”是一种数学表达,其表示相对于多边形元素80的平面映射由虚拟体积74与多边形元素80的相交定义的弧202。
[0143] 投影弧200由多边形元素80界定。具体而言,投影弧200由多边形元素80的周边界定。换句话说,考虑的单个多边形元素80的投影弧200与多边形元素80的周边内存在的投影弧200一样多。
[0144] 虚拟体积74被定义为使得投影弧200相对于被虚拟体积74穿透的线性深度(即,虚拟体积74突出到多边形元素80和/或虚拟边界55中的距离)非线性地改变。虽然反作用力(Fr)可以随着穿透的线性深度的改变而改变,但是反作用力(Fr)是基于投影弧200计算的,而没有在计算上说明穿透的线性深度。
[0145] 在这个示例中,反作用力(Fr)与投影弧200相关。在一个示例中,反作用力(Fr)与投影弧200直接相关。附加地或可替代地,反作用力(Fr)与投影弧200成比例。
[0146] 反作用力(Fr)可以作为垂直于多边形元素80的平面的向量施加。该向量相对于多边形元素80的平面的位置可以取决于映射到多边形元素80上的投影弧200的位置而变化。反作用力(Fr)的量值可以取决于投射弧200的尺寸而变化。反作用力(Fr)向量可以关于多边形元素80的平面成不垂直的角度,这取决于穿透期间投影弧200和/或虚拟体积74的姿势。下面描述用于计算来自投射弧200的反作用力(Fr)的技术。
[0147] 为了进行比较,在图16和17中使用上面用来描述投影区域90的计算的与图8和9相同的几何示例来描述对投影弧200的计算。
[0148] 在图16中,示出了在与三角形多边形元素80相交的平面处的虚拟体积74的横截面区域100。该圆偏离三角形多边形元素80的几何中心,并且在相交94和96处与多边形元素80的下边缘相交。进而,横截面区域100被下边缘切除。中心点(c)是虚拟体积74的横截面区域100的中心并且半径(r)是横截面区域100的半径。
[0149] 在这个示例中,在虚拟体积74与多边形元素80相交期间,由虚拟体积74的横截面面积100的任何弧202的组合定义投影弧200,其中弧202由多边形元素80的几何形状界定。换句话说,通过确定位于多边形元素80的区域内的横截面区域100的周边的任何弧202来计算投影弧200。具体而言,在这种情况下,其中仅相关于三角形多边形元素80的一条边(并且没有顶点)发生圆的相交,通过将横截面区域100分解成分别由扇形角θ1和θ2定义的弧段
202a、202b来计算投影弧200。值得注意的是,在这个示例中,横截面区域100的中心点(c)位于多边形元素80内。当被组合时,扇形角θ1和θ2各自围绕相交94、96之间的中心点(c)定义并且等于360度。如图所示,基于扇形角θ1的弧段202a完全位于多边形元素80内并由多边形元素80约束,而基于扇形角θ2的弧段202b完全位于多边形元素80之外并不受多边形元素80约束。可以使用以下等式Arcproj=θn/360计算投影弧,其中角度θn是扇形角,从而创建由多边形元素80界定的弧段202。在图16的示例中,Arcproj=θ1/360,因为θ1创建了由多边形元素80界定的弧段202a。这个方程的分子中可以存在多个扇形角,即,Arcproj=(θn+θm+...)/360,并且可以将这些扇形角相加以建立投影弧200。这个方程的结果值可以被相乘、缩放或以其它方式修改,以标准化投影电弧200效果。例如,投影弧200可以可替代地基于弧段202的长度而不是其相应扇形角的角度。
[0150] 图17是图示基于三角形多边形元素80和虚拟体积74的圆形横截面100的投影弧200的计算的又一个示例。在这种情况下,仅相对于三角形多边形元素80的一条边(没有顶点)再次发生圆形横截面100的相交。但是,在这个示例中,圆形横截面100的中心点(c)位于多边形元素80的外部。投影弧200以类似的方式计算。但是,扇形角θ1与图16相比减小,扇形角θ2与图16相比增加。由扇形角θ1创建的弧段202a的长度与图16相比减小,由扇形角θ2创建的弧段202b的长度与图16相比增加。投影弧200基于弧段202a,弧段202a被界定在多边形元素80内。因此,比较图16与17,这个示例说明了虚拟体积74的较小穿透冲击如何导致较小的投影弧200以及一般而言较小的反作用力(Fr)。
[0151] 应当重申的是,关于图16和17的计算不仅特定于三角形多边形元素80和虚拟体积74的圆形横截面100,而且还特定于圆关于三角形多边形元素80的一条边并且不关于三角形多边形元素80的顶点的相交。当然,取决于多边形元素80的几何形状、虚拟体积74的几何形状以及这些几何形状彼此的相对位置,投影弧200以及因此用于计算投影弧200的计算可以是不同的。此外,对于所示的示例,投影弧200的计算将取决于三角形多边形元素80的多少条边(从0到3)和顶点(从0到3)被虚拟体积74的圆形横截面100相交而不同。在虚拟体积
74的横截面区域100不是圆形而是椭圆形等的情况下,可以计算出更复杂的弧段202。除了本文描述的那些几何构造和情况之外,投影弧200的几何计算是预期的。
[0152] 如基于图16和17应当清晰的,投影弧200关于穿透的线性深度而变化。但是,因为穿透体是体积的并且不向多边形元素80和/或虚拟边界55施加线性冲击力(Fa),所以投射弧200不关于穿透的线性深度而线性改变。代替地,穿透体根据虚拟体积74的体积形状施加更高阶的冲击力(Fa)。因而,根据这个高阶体积函数,投射弧200关于穿透的线性深度而改变。换句话说,投影弧200通过捕获在多边形元素202的平面内的弧段202来说明虚拟体积74的位移体积或穿透体积。再一次,因为图16和17中所示的示例中的虚拟体积74仅具有一个面(例如,是球体)并且不具有彼此相邻的完全相同的横截面区域,所以部分地发生投影弧200的可变性质。
[0153] 因此,响应于虚拟体积74的穿透而计算的反作用力(Fr)可变地响应于穿透的线性深度。但是,即使反作用力(Fr)可以随穿透的线性深度的改变而改变,在这些示例中,反作用力(Fr)也的确是基于投影弧200计算的。反作用力(Fr)不是简单地使用线性深度来计算的,虚拟体积74突出多边形元素80和/或虚拟边界55中该线性深度。
[0154] 关于投影弧200可以完全理解针对投影区域90示出的关于图5-7描述的示例和不同可能性,因此,为简单起见不再重复。当然,本领域的技术人员将认识到的是,与基于投影区域90计算的所示反作用力(Fr)相比,基于投影弧200计算的反作用力(Fr)可能不同。此外,完全预期基于投影弧200的重新计算而计算的反作用力(Fr)的迭代应用。
[0155] 此外,示出使用投影区域90计算并响应于多个多边形元素(例如80A-80F)同时被虚拟体积74穿透而生成的多个反作用力(例如,FrA–FrF)的图10-12的示例可以关于本文使用投影弧200描述的技术完全理解。主要地,每个反作用力(FrA–FrF)将与由每个多边形元素80A-80F界定的相应投影弧200相关。对于投影弧200,反作用力(Fr)可以单独地施加给每个多边形元素80,或者组合起来作为组合的反作用力(FrTotal)。
[0156] 对于其中多边形元素80位于不同平面中的投影区域90,与图13-15中描述的技术的相似性也完全适用于投影弧200方法。例如,使用投影弧200来计算外角处的反作用力(FrA)、(FrB)将类似地提供自然响应以对抗虚拟边界55。投射弧200的增加转化为反作用力(Fr)的增加,而投射弧200的减小转化为反作用力(Fr)的减小。通过这样做,投影弧200技术避免了在遇到虚拟边界55期间反作用力(Fr)的离散跳跃,该反作用力使工具20突然或不自然地移动。减轻了在工具20在外角上方滚动时非预期的反冲。因此,本文描述的投影弧200技术解决了与角相关的表面建模问题。投影弧200技术完全适用于其中虚拟体积74同时穿透多个非平面多边形元素80的任何其它示例。示例包括但不限于内角、峰、谷等。
[0157] C.位移体积
[0158] 根据又一个示例,如图18中所示,控制器30被配置为基于与由虚拟体积74的穿透多边形元素80的体积的一部分定义的位移体积300相关的穿透因子来计算反作用力(Fr),并且其中位移体积300由多边形元素的几何形状界定。通过在虚拟体积74与多边形元素80的相交期间由多边形元素80的几何形状界定的虚拟体积74的任何体积部分的组合来定义位移体积300。
[0159] 位移体积300由多边形元素80定义。具体而言,位移体积300由多边形元素80的周边界定。换句话说,考虑单个多边形元素80的位移容积300与多边形元素80的周边内存在的位移容积300一样多。即使在笛卡尔空间中位移量300存在于多边形元素80的平面的上方或下方,情况也是如此。
[0160] 定义虚拟体积74,使得位移体积300相对于由虚拟体积74穿透的线性深度(即,虚拟体积74突出到多边形元素80和/或虚拟边界55的距离)非线性改变。虽然反作用力(Fr)可以随着穿透的线性深度的改变而改变,但是反作用力(Fr)是基于位移体积300进行计算的,而无需在计算上说明穿透的线性深度。
[0161] 在这个示例中,反作用力(Fr)与位移体积300相关。在一个示例中,反作用力(Fr)与位移体积300直接相关。附加地或可替代地,反作用力(Fr)与位移体积300成比例。
[0162] 反作用力(Fr)可以作为垂直于多边形元素80的平面的向量施加。该向量关于多边形元素80的平面的位置可以取决于位移体积300关于多边形元素80的位置而变化。反作用力(Fr)的量值可以取决于位移体积300的体积尺寸而变化。反作用力(Fr)向量可以关于多边形元素80的平面成不垂直的角度,这取决于穿透期间的穿透体积300和/或虚拟体积74的姿势。下面描述用于从位移体积300计算反作用力(Fr)的技术。
[0163] 为了比较目的,示出了球体虚拟体积74和三角形多边形元素80,用于计算位移体积300。当然,其它示例是可能的。在图18中,虚拟体积74穿透多边形元素80的平面,并在该平面下方创建位移体积300。在此,移位体积300呈被多边形元素80的平面切去的球形帽或圆顶的形状。在这个示例中,c是球心,h是位移体积300的高度,并且r是球体的半径。在此,多边形元素80的平面通过缺少球心c的部分。如果穿透到达球心c,那么位移体积300的高度h等于球体的半径r,并且位移体积300将是半球。
[0164] 在这个示例中为了计算位移体积300,利用虚拟体积74和位移体积300的参数。此类参数包括虚拟体积74的半径r、位移体积300的高度h以及位移体积300的底部302的半径α(在相交平面处)。例如,可以使用方程Vdisplaced=(πh2/3)(3r-h)来计算球体的位移体积300。可替代地,可以使用微积分技术,诸如使用位移体积300的旋转表面下的积分等来计算位移体积300,等等。当然,除了球形以外,给定的形状对位移体积300的计算将是不同的。
[0165] 同样,由于位移体积300被多边形元素80界定,因此在为附近的具体多边形元素80生成反作用力(Fr)时,将不考虑虚拟体积74延伸超出多边形元素80的那些部分。为了将位移体积300绑定到多边形元素80,在一个示例中,可以将相邻的多边形元素80建模为三维元素,诸如与每个多边形元素80的周边对应的相邻三棱柱(用于三角形)。因此,如果穿透的虚拟体积74跨过三棱柱壁延伸,那么仅考虑虚拟体积74在三棱柱内的部分用于对应的多边形元素80,以便为那个具体的多边形元素生成反作用力(Fr)80。考虑到虚拟体积74的延伸跨过三棱柱壁的部分,以便为相邻多边形元素80生成反作用力(Fr)。
[0166] 应当重申的是,关于图18的计算特定于球体虚拟体积74,并且还特定于完全在三角形多边形元素80的边缘内位移并且不与三角形多边形元素80的顶点相交的位移体积300。当然,取决于多边形元素80的几何形状、虚拟体积74的几何形状以及这些几何形状彼此的相对位置,位移体积300以及因此用于计算位移体积300的计算可以是不同的。此外,对于所示的示例,取决于位移体积300牵涉到三角形多边形元素80的多少条边(从0到3)和顶点(从0到3),位移体积300的计算将不同。在虚拟体积74不是球体而是椭球体、椭圆形、环形等的情况下,可以计算更复杂的位移体积300。除了本文描述的那些几何构型和情况之外,位移体积300的几何计算是预期的。
[0167] 如基于图18应当清晰的,位移体积300还关于穿透的线性深度而变化,在图18的示例中,穿透的线性深度是位移体积300的高度h。但是,位移体积300不关于穿透的线性深度线性改变,因为穿透体是体积的,并且不向多边形元素80和/或虚拟边界55施加线性冲击力(Fa)。代替地,穿透体根据虚拟体积74的体积形状施加更高阶的冲击力(Fa)。因而,位移体积300根据这个高阶体积函数关于穿透的线性深度而改变。再一次,位移体积300的可变性质部分地因为在图18中所示的示例中的虚拟体积74仅具有一个面(例如,是球体的)并且不具有彼此相邻的完全相同的横截面区域而发生。
[0168] 因此,响应于虚拟体积74的穿透而计算的反作用力(Fr)可变地响应于穿透的线性深度。但是,即使反作用力(Fr)可以随穿透的线性深度的改变而改变,在这个示例中,反作用力(Fr)也的确是基于位移体积300计算的。不仅仅基于线性深度h来计算反作用力(Fr),虚拟体积74突出到多边形元素80和/或虚拟边界55中该线性深度h。
[0169] 关于位移区域300可以完全理解针对投影区域90示出的关于图5-7描述的示例和不同可能性,因此为了简单起见不再重复。当然,本领域技术人员将认识到的是,与示出的基于投影区域90计算出的反作用力(Fr)相比,基于位移体积300计算出的反作用力(Fr)可能不同。此外,完全预期基于位移体积300的重新计算而计算出的反作用力(Fr)的迭代应用。
[0170] 此外,示出使用投影区域90计算并响应于多个多边形元素(例如,80A-80F)同时被虚拟体积74穿透而生成的多个反作用力(例如FrA–FrF)的图10-12的示例可以关于本文使用位移体积300描述的技术完全理解。主要地,每个反作用力(FrA–FrF)将与由每个多边形元素80A-80F界定的相应位移体积300相关。对于位移体积300,反作用力(Fr)可以对于每个多边形元素80单独地施加,或者组合起来作为组合的反作用力(FrTotal)。
[0171] 对于其中多边形元素80位于不同平面中的投影区域90,与图13-15中描述的技术的相似性也完全适用于位移体积300方法。例如,使用位移体积300计算外角处的反作用力(FrA)、(FrB)将类似地提供对相对的虚拟边界55的自然响应。位移体积300的增加转化为反作用力(Fr)增加,而位移体积300的减小转化为反作用力(Fr)的减小。在这样做时,位移体积300技术避免了在与虚拟边界55相遇期间突然或不自然地移动工具20的反作用力(Fr)的离散跳跃。减轻了在工具20在外角上方滚动时非预期的反冲。因此,本文描述的位移体积300技术解决了与角相关的表面建模问题。位移体积300技术完全适用于虚拟体积74同时穿透多个非平面多边形元素80的任何其它示例。示例包括但不限于内角、峰、谷等。
[0172] D.其它应用
[0173] 本领域技术人员将认识到的是,投影区域、投影弧和位移体积的上述示例各自基于穿透因子计算反作用力(Fr),该穿透因子是相对于多边形元素80的几何形状(2D或3D)界定的虚拟体积74的几何形状的函数。但是,完全预期的是,除了本文针对基于穿透因子计算反作用力(Fr)所描述的技术以外,还有其它技术,其中穿透因子是相对于多边形元素80的几何形状界定的虚拟体积74的几何形状的函数。例如,如果横截面区域100不具有弧段202等,那么可以利用投影周边代替投影弧。
[0174] 控制器30可以选择性地关闭和打开本文描述的任何不同的表面建模技术。例如,可以保留投影区域90技术以用于遍历外角,同时可以保留投影弧200技术以用于遍历平坦表面等。这些表面建模技术的这种选择可以基于例如用户输入。用户可以在显示器38或用户输入设备40上选择表面建模模式。在另一个示例中,控制器30自动识别在虚拟体积74和虚拟边界55之间发生的事情,并且基于存储在存储器中的预定设置来选择表面建模模式。例如,控制器30可以基于虚拟体积74已经穿透了多少个多边形元素80、在什么地方穿透以及穿透了什么多边形元素80来自动确定情况。
[0175] 此外,预期将本文描述的任何不同的表面建模技术混合。这是可能的,因为这些技术全都利用了穿透因子,该穿透因子是相对于多边形元素80的几何形状界定的虚拟体积74的几何形状的函数。因此,可以同时利用投影区域90、投影弧200和/或位移体积300模式的任意组合来为任何给定多边形元素80导出反作用力(Fr)。
[0176] 本文描述的技术可以用于机器人外科手术系统10的若干实际应用或情况。例如,可以在手动操作模式下利用机器人手术系统10。在手动模式期间,操作者手动指引工具20的移动,并且操纵器14控制工具20的移动。操作者物理地接触工具20以引起工具20的移动。控制器30使用力-扭矩传感器70来监视施加在工具20上的力和/或扭矩。虚拟边界55可以从应当避开的区域中勾划出待治疗的解剖结构的区域。可替代地或附加地,虚拟边界55可以被提供为用于指引操作者手动地将工具20朝着目标部位移动的引导。在又一个示例中,相对于要避开的对象(例如,装备)定义了虚拟边界55。在任何这些情况下,如果响应于由力-扭矩传感器70检测到的力和/或扭矩的手动操作导致虚拟边界55的穿透,那么控制器30可以控制操纵器14将工具20移离虚拟边界55。进而,这为操作者提供了对虚拟边界55的位置的触觉感测,从而在手动模式下避开虚拟边界55的位置。
[0177] 在另一个应用中,控制器30可以命令操纵器14以自主操作模式指引工具20的自主移动。在此,操纵器14能够在没有操作者辅助的情况下移动工具20。没有操作者的辅助可以意味着操作者不物理接触工具20以施加力来移动工具20。代替地,操作者可以使用某种形式的控制来管理移动的开始和停止。例如,操作者可以按住遥控器的按钮以开始工具20的移动,并释放按钮以停止工具20的移动。在一种情况下,在自主模式期间将工具20的定位维持在工具路径上,但是操作者可能期望重新定向工具20。在维持位置的同时,工具20的重新定向可以暗示一个或多个虚拟边界55。通过考虑虚拟模拟72中工具20和虚拟边界55的更新后的朝向,系统10和方法可以例如对重新定向的工具20与附近的对象和/或干扰重新定向的工具20的移动路径的对象之间的不期望碰撞做出反应。在另一个示例中,在自主移动可能被无意中更改的情况下,虚拟边界55以自主模式提供作为附加的预防措施。本领域技术人员将认识到的是,各种其它应用或情况可以利用本文描述的投影区域技术。
[0178] 根据详细的说明书,本发明的许多特征和优点是清晰的,因此,所附权利要求书旨在覆盖落入本发明的真实精神和范围内的本发明的所有这些特征和优点。另外,由于本领域技术人员将容易想到许多修改和变化,因此不期望将本发明限制到图示和描述的确切构造和操作,因而,可以采用落在本发明的范围内的所有合适的修改和等同形式。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈