用于与机器人臂的节点往来通信同步和异步信息的机器人手术系统和方法与流程

文档序号:21087712发布日期:2020-06-12 17:00阅读:171来源:国知局
用于与机器人臂的节点往来通信同步和异步信息的机器人手术系统和方法与流程



背景技术:

机器人手术系统允许医疗保健从业者在执行各种诊断和/或治疗处理的同时实现更高的准确性、自动化和/或更低侵入性的方法。这样的技术广泛地适用于从眼科和麻醉学到骨科和介入放射学的各种医学专业。一些机器人手术系统结合了先进的机器人和可视化技术以执行微创手术,从而可减少疤痕并缩短恢复时间。微创手术的一个示例是腹腔镜手术,其通常涉及在患者(例如腹部)中创建多个小切口,并将一个或多个工具以及至少一个摄像头穿过该切口进入患者。然后,使用引入的工具,借助摄像头提供的可视化辅助,进行手术处理。所引入的仪器中的至少一个可以附接到由用户(例如外科医生)遥控操作的一个或多个机器人臂。

附图说明

图1是实施例的机器人手术系统的手术室布置的图示。

图2是实施例的机器人臂的图示。

图3是实施例的机器人手术系统的通信网络的图示。

图4和5是实施例的多节点消息的图示。

图6a、6b和6c是实施例的即时节点消息交换的图示。

图7是实施例的通信协议的图示。

图8是实施例的在机器人手术系统中如何传递同步信息和异步信息的图示。

图9是示出传递到实施例的机器人手术系统的网络上的节点和从其传递的框图。

图10是实施例的机器人手术系统的通信网络的图示。

图11是实施例的机器人手术系统的网络部件的发送器的图示。

图12是实施例的机器人手术系统的网络部件的接收器的图示。

图13是任何实施例的不可逆均衡节点可断开环形布线拓扑的图。

具体实施方式

简介

以下实施例描述了具有用于在控制器和一个或多个机器人臂的节点之间传递信息的环形网络的机器人手术系统。描述了一种通信协议,通过该通信协议可以将同步和异步信息传递到机器人臂的节点或从其传递。还公开了可以与网络一起使用的物理层的多个方面。在转向实施例之前,以下各部分提供了机器人手术系统和机器人臂的示例。

机器人手术系统的示例

现在参考附图,图1是示出了根据本发明技术的方面的具有手术机器人系统100的示例手术室环境的图。应当注意,这仅是出于说明目的的示例,并且可以使用其他布置和部件。因此,除非在本文中明确陈述,否则本文提出的所有细节均不应读入权利要求中。

如图1所示,手术机器人系统100包括外科医生控制台120、控制塔130以及位于手术机器人平台110(例如桌子或床等)处的一个或多个手术机器人臂112,其中带有末端执行器的手术工具附接到机器人臂112的远端,以执行手术处理。机器人臂112被示为台式系统,但在其他配置中,机器人臂可以安装在推车、天花板或侧壁或者其他合适的支撑表面中。

通常,用户比如外科医生或其他操作者可以使用用户控制台120来远程操纵机器人臂112和/或手术器械(例如遥控操作)。如图1所示,用户控制台120可以位于与机器人系统100相同的手术室中。在其他环境中,用户控制台120可以位于相邻或附近的房间中,或者可以从在其他建筑物、城市或国家中的远程位置进行遥控操作。用户控制台120可以包括座椅122、脚操作控件124、一个或多个手持式用户界面设备126以及至少一个用户显示器128,其配置为例如显示患者体内的手术部位的视图。如在示例性用户控制台120中所示,位于座椅122中并查看用户显示器128的外科医生可以操纵脚操作控件124和/或手持式用户界面设备126以远程控制机器人臂112和/或安装到臂的远端的手术器械。

在一些变型中,用户也可以在“在床上(overthebed)”(otb)模式下操作外科手术机器人系统100,在该模式下,用户在患者旁边并且同时操纵机器人驱动的工具/附接至其的末端执行器(例如用一只手握住手持式用户界面设备126)和手动腹腔镜工具。例如,用户的左手可能正在操纵手持式用户界面设备126以控制机器人手术部件,而用户的右手可能正在操纵手动腹腔镜工具。因此,在这些变型中,用户可以对患者执行机器人辅助的微创手术(mis)和手动腹腔镜手术。

在示例性处理或手术期间,以无菌方式对患者进行准备和披巾以实现麻醉。可以采用处于收起配置或缩回配置的机器人系统100来手动执行对手术部位的初始进入,以便于进入手术部位。一旦进入完成,就可以执行机器人系统的初始定位和/或准备。在该处理期间,用户控制台120中的外科医生可以利用脚操作控件124和/或用户界面设备126来操纵各种末端执行器和/或成像系统以进行手术。无菌罩衣人员也可以在手术台上提供手动协助,他们可以执行的任务包括但不限于撤回组织或执行涉及一个或多个机器人臂112的手动重新定位或工具更换。非无菌人员也可以在用户控制台120处协助医生。当处理或手术完成时,机器人系统100和/或用户控制台120可以配置或设置成便于一个或多个手术后处理的状态,包括但不限于机器人系统100清洁和/或灭菌,和/或医疗记录输入或打印输出,无论是电子版还是硬拷贝,比如通过用户控制台120。

在一些方面,机器人平台110和用户控制台120之间的通信可以通过控制塔130,其可以将来自用户控制台120的用户命令转换为机器人控制命令并传输到机器人平台110。控制塔130还可以将状态和反馈从机器人平台110发送回用户控制台120。机器人平台110、用户控制台120和控制塔130之间的连接可以是有线和/或无线连接,并且可以是专有的和/或使用多种数据通信协议中的任何一种来执行。任何有线连接都可以可选地内置在手术室的地板和/或墙壁或天花板中。手术机器人系统100可以将视频输出提供给一个或多个显示器,包括手术室内的显示器以及可通过互联网或其他网络访问的远程显示器。视频输出或供给也可被加密以确保隐私,并且视频输出的全部或部分可以保存到服务器或电子医疗记录系统。

图2是示出了根据本发明技术的方面的装有手术工具的机器人臂、工具驱动器和套管的一示例性设计的图。如图2所示,示例手术机器人臂112可包括多个连杆和用于相对于彼此致动多个连杆的多个致动接头模块。接头模块可以包括各种类型,比如俯仰接头或侧倾接头,其可以实质上限制相邻连杆围绕某些轴线相对于其他轴线的运动。同样在图2的示例性设计中示出,工具驱动器210可以附接到机器人臂112的远端。工具驱动器210可以包括基座或基台212以及套管214,其联接到工具驱动器210的端部,以接收和引导手术器械220(例如内窥镜、吻合器等)。手术器械(或工具)220可包括机器人腕222和在工具的远端处的一个或多个末端执行器224。机器人臂112的多个关节模块可被致动以定位和定向工具驱动器210,其致动机器人腕222和用于机器人手术的一个或多个末端执行器224。

机器人臂112还包括在相邻连杆之间的多个节点。如本文所用,“节点”通常可以指与机器人手术系统的控制器通信的部件。“节点”有时在本文中将被称为“关节模块”,可用于相对于彼此来致动机器人臂的一个连杆(例如通过使用马达来移动一系列滑轮和连接滑轮的一系列皮带,以促进四杆联动运动)。响应于来自外部控制器的命令(在下文中更详细讨论),节点可用于使机器人臂中的各种连杆进行关节运动以操纵臂来进行手术处理。

节点的示例包括但不限于以下中的一个或多个:单马达(例如伺服马达、枢轴连杆马达、关节马达和工具驱动器马达)、双马达(例如通过差动齿轮驱动器来组合各个马达输出)、无线工具接口(例如工具无线板)、力/扭矩传感器(例如编码器,其检测并提供表征施加在臂连杆/段之间的机器人臂上的力和扭矩多方向性中的至少一个的信号)、输入/输出板、监视电源和/或通信链接的部件或者可以接收/传输数据的任何其他部件。节点还可以包括各种电子设备,比如但不限于马达控制器/驱动器、信号处理器和/或电路板上的通信电子设备。如将在下面更详细地讨论,可以将节点布置在环形网络中以与外部控制器通信。在一实施例中,通过无线工具接口来完成对机器人臂的工具的控制,以便出于安全原因在工具与机器人的其他部件之间提供电隔离。

机器人手术系统的通信网络的示例

返回附图,图3是实施例的机器人手术系统的通信网络的图示。如图3所示,该实施例的机器人手术系统包括与基本控制器304(有时在本文中称为“第二控制器”)通信的主控制器302(有时在本文中称为“机器人控制器”或“数据主机”或简称为“控制器”),基本控制器304与多个机器人臂(arm1-armn)通信。如本文所用,短语“与…通信”可以意指通过在本文中可能未示出或未描述的一个或多个部件的直接通信或间接通信。例如,来自主控制器302和基本控制器304的信号可以通过在机器人臂的臂连杆和关节模块的内部空间内通过的成束(例如在线束中)的有线连接传送到节点。而且,应当注意,尽管图3示出了多个机器人臂,但机器人手术系统可以仅具有单个机器人臂,在这种情况下,可以不使用基本控制器304。在一些实施例中,即使当机器人手术系统具有多个机器人臂时也不使用基本控制器304。在一实施例中,基本控制器304位于患者台或床中或附近(在这种情况下,基本控制器304可被称为台适配器控制器(“tac”)),并且主控制器302位于与专利床分开的通信塔中。

应当注意,任何控制器都可以任何合适的方式实现。例如,控制器可以采取处理电路、微处理器或处理器以及计算机可读介质的形式,该计算机可读介质存储计算机可读程序代码(例如固件),其可由例如(微)处理器、逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌入式微控制器执行。控制器可以配置有硬件和/或固件,以执行以下所述和流程图中所示的各种功能。更一般而言,控制器(或模块)可以包含配置为执行各种操作的“电路”。如本文所用,术语“电路”可以指代指令处理器,比如中央处理器(cpu)、微控制器或微处理器;或者专用集成电路(asic)、可编程逻辑器件(pld)或现场可编程门阵列(fpga);或者离散逻辑或其他电路部件的集合,包括模拟电路部件、数字电路部件或两者;或者其任何组合。电路可以包括离散互连硬件部件,或者可以组合在单个集成电路管芯上,分布在多个集成电路管芯之间,或者以通用封装在多个集成电路管芯的多芯片模块(mcm)中实现。因此,“电路”可以存储或访问用于执行的指令,或者可以仅在硬件中实现其功能。

主控制器302可以从用户控制台100(图1)接收用于操纵机器人臂的命令,并将那些命令发送到机器人臂。如图3所示,在该实施例中,每个机器人臂的节点布置在环形网络中。如本文所用,环形网络是指其中每个节点连接到两个其他节点从而形成用于信号通过每个节点的单个连续路径的网络拓扑。数据从一个节点传到另一个节点,每个沿途节点处理每个数据包。传播延迟可以达到平衡,尤其是对于机器人臂的远端处的节点。尽管图3示出了每个机器人臂具有相同数量的节点,但在其他实施例中,至少一个机器人臂与系统中的另一机器人臂具有不同数量的节点。如将在下面更详细地讨论,环形网络可以用于通过机器人臂网络传达实时和异步信息。

主控制器302配置为使用包括多个数据包的多节点消息与给定机器人臂中的多个节点通信,每个数据包与机器人臂中的不同节点相关。臂多节点消息是“多节点”,因为它可以包括该臂上的所有节点的数据。数据包可以任何合适的方式与节点相关。例如,每个数据包可被寻址到机器人臂中的不同节点(例如使用节点的标识符)和/或节点可以与消息中的特定数据包位置相关。当然,这些仅是示例,并且可以使用其他相关。

可以任何合适的方式格式化多节点消息中的每个数据包。例如,如图4所示,在一实施例中,多节点消息中的数据包可以包含报头、数据有效载荷和循环冗余校验(crc)字段。在图5所示的另一实施例中,数据包包括16位数据包成帧常数、16位报头、包括循环数据(命令或反馈)的固定大小(例如128位或224位)数据有效载荷、非周期性和异步数据以及16位crc字段(例如ccitt)。数据包成帧常数可用于确认数据包的开始。有效载荷数据类型可用于确定数据有效载荷的格式(例如马达命令、马达反馈、数字输入、数字输出和力反馈)。节点可以使用通道id来确认数据包打算传递到该节点。(在一实施例中,所有机器人臂上的所有节点都具有唯一通道id。)序列字段帮助节点确定数据包是否为新的。主控制器302每次发送出新数据包时都会递增序列号。如果主控制器302被中断,则节点将两次看到相同的序列号并且知道它是重复的数据包。crc字段可以覆盖整个数据包。在一实施例中,每帧有80个数据包,每个帧具有相同的大小。当然,这仅是一个示例,并且可以使用其他配置。

如果仅使用一个机器人臂,则主控制器302可以将多节点消息直接发送到该臂。如果使用多个机器人臂,则主控制器302可以将所有臂的所有多节点消息一起在单个消息中发送给基本控制器304。基本控制器304可以从单个消息中分离出每个单独的多节点消息,并向每个机器人臂发送其相关的各个多节点消息。例如,基本控制器304可以基于整个组合消息中的消息偏移量将消息路由到不同的机器人臂。

在多节点消息通过环并返回到基本控制器304之后,基本控制器304可以将所接收的各个多节点消息组合成单个返回的合并消息,并将单个返回的合并消息发送给主控制器302。基本控制器304可以配置为执行其他功能。例如,如果主控制器302未插入系统中,则基本控制器304可用于移动机器人臂(例如允许护士在将患者用布覆盖之前将机器人臂移开)。

如上所述,多节点消息用于与给定臂中的节点进行通信。多节点消息类似于带有k个棚车的火车,臂上的每个节点都分配了一个棚车,乘客(数据有效载荷)上下指定的棚车(即全双工)。主控制器302可以在每个周期调度一个或多个多节点消息,并且可以优化每个消息的定时以最佳地控制分布式数字采样系统。

图6a、6b和6c说明了此通信流程。如这些图所示,节点可以包括现场可编程门阵列(fpga),其处理多节点消息并且是该节点与环形网络之间的物理接口。在一实施例中,fpga和节点控制器经由串行外围接口(spi)总线通信。尽管未示出以简化附图,但节点可以具有连接至节点控制器的一个或多个其他部件,比如马达或传感器。

在操作中,fpga解码多节点消息,查找同步令牌,并确定消息中的哪个数据包与该节点相关。然后,它可以交换消息的数据包中的数据。例如,如图6a和6b所示,在fpga接收消息后,它将让消息的数据包通过,直到fpga确定给定的数据包与其节点相关。如图6c所示,在此时,fpga可以将数据包中的数据复制到节点控制器中的内存,并交换存储在节点控制器的内存中的其他数据。交换的数据可以由节点控制器预先准备,因此一旦适当的数据包到达就可以发送了。在该实施例中,spi总线使用进行自动交换的协议,fpga可以稍有延迟地进行编程,以解决将数据移入和移出数据包的任何同步问题。这样做的最终结果是,每个节点引入的等待时间很少,因为每个节点与其他节点同时接收并响应其数据包(即每个节点没有接收整个多节点消息,然后发送响应)。

在一实施例中,默认情况下,多节点消息中的所有消息不经改变地通过任何节点。节点被编程为基于相对于帧同步令牌的编程起始值和编程消息长度仅提取和替换特定消息。这类似于为节点分配火车内的特定有轨车厢(或者说是两个,因为每帧有两个交换)。如果有n个节点,则有2n个车厢,并且将为节点x分配车厢x和x+n。在一实施例中,每个节点必须在分配的时间交换数据,并且这样做失败是系统故障(其他实现也是可能的)。即使没有新数据可用,也可能要求该节点生成格式正确的响应数据包。如上所述,每帧有两个数据交换,分别承载同步命令/异步响应和异步命令/同步响应。数据交换纯粹基于消息相对于同步令牌的位置。处理器内部将对消息本身的任何解释在消息之间的时间期间进行。同样,任何响应都是在传输时隙到达之前由节点准备。节点负责确保它可以满足此要求的定时。

去往或来自机器人臂的节点的通信同步和异步信息的示例

在一实施例中,要在主控制器302与机器人臂的节点之间通信的信息通常可以分类为“同步信息”或“异步信息”。如本文所用,“同步信息”是指打算在接收时或在一时间范围(timeframe)内(实时)处理的信息,而“异步信息”是指可被存储并稍后处理的信息(不要求在一时间范围内进行处理)。因此,与同步信息相比,在接收异步信息和对其进行处理之间可能会有一些等待时间。例如,由于外科医生期望机器人臂在指示运动之后立即运动,因此可以将致动马达的命令分类为同步信息。这样,该命令需要在特定时间范围内执行。相反,执行低优先级维护功能的命令可以归类为异步命令,因为该命令不需要在严格的时间范围内执行,并且可以在节点到位的任何时间执行。

在一实施例中,无论所传送的信息是同步信息还是异步信息,主控制器302与机器人臂的节点之间的传输定时都是相同的。因此,“同步”和“异步”是指协议级别上的信息类型(即是否需要实时处理命令),而不是传输级别上的定时要求,因为在本实施例中,同步信息和异步信息都具有相同的传输同步性。在一实施例中,就定时而言,异步与同步之间的唯一区别在于,由于在帧内的放置,后者具有稍低的等待时间。

可以使用任何合适类型的同步信息和异步信息,并且可以采取命令(有时称为“请求”)和对命令的响应的形式。例如,同步命令可以是发送到节点的命令(即实时马达控制命令),当由该节点处理/执行时,该命令致动马达以将机器人臂中的连杆移动到某一位置或施加特定扭矩。来自节点对同步命令的响应可被反馈到该命令(例如,从节点中的力/扭矩传感器的读数以确认所请求的运动实际上发生了)。异步命令可以是发送到节点的命令,以从节点请求信息(例如插入到机器人臂中的手术工具以及有关其校准和运动参数的信息的识别)、请求执行监督/管家功能(例如测量节点的温度和电压)或请求更改节点的参数之一。

如上所述,在一实施例中,无论所传送的信息是同步信息还是异步信息,主控制器302与机器人臂的节点之间的传输定时都是相同的。以下段落描述了可用于在实时网络上调度同步信息或异步信息的实施例的协议。例如,该实时协议可以用于规定在主控制器302和机器人臂的节点中的分布式马达控制器之间的数据传输和数据序列。通过这样的协议,可以将轻量级的确定性通信系统紧密集成到机器人平台中,从而提供可靠且可维护的设计。

通常,该实施例的通信协议使用静态分配的带宽和用于在不同类型的同步和异步信息之间共享带宽的简单调度来提供同步和异步信息的实时等时数据通信。在一实施例中,通信协议使用恒定周期时间来支持在主控制器302与机器人臂中的多个节点之间的硬性同步实时数据传输。(如本文所用,周期可以指从主控制器302向环形网络发送一个或多个多节点消息到其从环形网络接收到这些消息的时间。)尽管可以使用任何合适的周期时间。但在一实施例中,周期时间处于高频(例如4khz),其可以提供具有最小延迟和最小抖动的运动控制更新速率。如将在下面更详细地讨论,在一实施例中,数据包的有效载荷在同步命令(例如马达控制命令)、异步命令、对同步命令的响应(例如传感器反馈)以及对异步命令的响应之间交替。在该实施例中,每个类别的数据接收总带宽的固定部分,并以与其他类别的数据相同的优先级被服务。

如上所述,在一实施例中,周期时间是恒定的(名义上为250微秒),以支持具有硬性通信期限的同步实时数据传输,并且每个周期交换两个数据帧。这在图7中进行了说明。如图7所示,在给定的周期中,两个数据帧正在主控制器302与机器人臂的节点之间传输。同时,主控制器302正在执行机器人控制算法,以确定在下一个命令周期中要发出什么命令。例如,在第一个通信周期中,从左到右看图7中的中线,主控制器302接收帧b,在此示例中,该帧b包含来自所有臂中的马达控制器的传感器数据(即对节点先前接收的同步命令的响应)。在第二通信周期中,主控制器302使用该传感器数据来确定在下一通信周期中向节点发送什么命令。例如,如果传感器反馈示出机器人臂不在预期位置,则主控制器302可以确定该节点需要另一马达命令来校正位置。在第三通信周期中,主控制器302将帧a发送到节点,该帧a包含在先前周期中在机器人控制算法中确定的命令。因此,此通信协议使用流水线和分段。这样,动作在时间上重叠,并且从接收到反馈到发出新命令之间存在一定量的延迟。

现在转到图8,图8示出了周期中的两个帧如何可用于在主控制器302(在此示例中称为“机器人控制器”)和节点(在此示例中为马达控制器)之间通信同步信息。如图8所示,在周期的一部分期间(帧a),从主/机器人控制器102向每个节点(例如马达控制器)发送同步命令(例如马达命令),并且对在较早周期中接收的异步命令的响应被从每个节点发送到主/机器人控制器302。在该周期的另一部分期间(帧b),对在较早周期中接收的同步命令的响应(例如响应于马达控制命令的马达反馈)从每个节点被发送到主/机器人控制器302,并且从主/机器人控制器302向每个节点发送异步命令。因此,在每个帧中,异步信息与同步信息交织。即,对于每个帧,带宽的一半被保留用于异步信息,而另一半带宽被保留用于同步信息。

如上所述,当同步信息被实时处理时,异步信息(命令或响应)可被存储并在以后处理。由于异步信息可能不会实时消耗,因此图8示出了主/机器人控制器402和节点(比如马达控制器)可以具有至少一个内存,以将异步命令(请求)和要发送或处理的响应排队。这样,队列在异步域中发生的事情与实时网络中发生的事情之间创建缓冲。例如,主/机器人控制器402可以生成异步管家命令并将它们存储在异步请求队列中,直到它有机会将它们发送到节点。同样,该节点可以在其队列中存储异步管家命令,并且可以在节点有机会时就处理它。当节点将异步响应发送到主/机器人控制器302时,可能会发生节点与主/机器人控制器302的相同队列处理。然而,如图8中的单个框所示,同步命令/响应被实时发送并采取行动(即它们不被存储以供以后传输和执行)。

再次参考图7和8,在一实施例中,同步反馈在一个周期(周期n-1)中尽可能晚地发生,从而使机器人控制算法具有最新的信息,因为它决定(在周期n中)下一个周期(n+1)的下一个同步命令应该是什么。同样,在一实施例中,同步命令在周期n+1中尽可能早地发送,因此同步命令可以到达其节点并尽快执行。

机器人手术系统的通信网络的物理层的示例

可以在网络中使用任何合适的物理层,在一实施例中,基本控制器304与机器人臂上的节点之间的通信使用双绞铜电缆,其具有伪低压差分信号(lvds),具有其他低速双向共模通信功能。为了最小化最长电缆长度,代替使用单个电缆将所有节点连接到基本控制器304,可以在每个部件之间使用短电缆。这些特征如图9示意性示出。

主控制器302和基本控制器304之间的通信可以使用光纤链路来实现电隔离和低电磁干扰。在一示例实施方式中,使用与1000base-sx以太网兼容的光纤链路。然而,该链路不承载以太网数据包,而是使用具有1.25gbps原始比特率的aurora接口。此实施方式可以为其他类型的解决方案提供优势。例如,对于某些要求(例如1mbit/s,400hz循环速率),控制器局域网可能太慢;以太网不适合实时通信且太大又笨重;并且对于某些应用来说,用于控制自动化技术同时支持硬实时应用的以太网(ethercat)可能太大而又昂贵。

如上所述,为了最小化最长电缆长度,而不是使用单个电缆将所有节点连接到基本控制器304,可以在每个部件之间使用短电缆。以下段落描述了环形拓扑,其使节点到节点的长度相等,允许轻松替换单个节点,并且(可选地)不允许反向连接器。

为了实时控制,需要高速总线。然而,机械上呈线性方式的环形拓扑通常在节点之间具有短跳,并且返回路径较长,这降低了总线的最大速度。较长返回也更容易受到噪声的影响。每个节点上都有两个连接器也很容易使发送和接收电缆反向,这不是理想的。节点跳过配置中的典型接线将具有未在每个节点处终止的电线,且替换节点将需要拆卸两个相邻节点。

均衡每个节点之间的距离允许更高的总线速度和分布噪声。每个节点处有两条可见的通信电缆,因此从制造和减少故障排除的角度来看,了解每一个连接位置是有益的。节点跳过配置中的典型接线将使电线不在每个节点处终止。更换节点也需要拆卸两个相邻节点。直通终端可以解决此问题。

参考图13,在一实施例中,每个节点具有直通(passthrough)电缆连接器和有源电缆连接器,它们可用于提供节点跳过配置。更具体地,在一实施例中,每个节点具有两条独特的连接器电缆,其以交叉的方式进行接线(引脚1接线至引脚4,引脚2接线至引脚3等)。在一实施方式中,一根电缆是4引脚与4引脚,而另一根电缆是5引脚与5引脚。使用这两个不同的连接器防止反向连接。4引脚电缆连接直通,以接收来自相邻节点的信号。5引脚连接到相邻节点上的直通(passthrough)。直通对于每个节点都是本地的。因此,每个节点都包括直通电缆连接器和有源电缆连接器,以便电缆可以连接到直通电缆连接器和有源电缆连接器以提供节点跳过配置。这在图13中示出。如图13中所示,箭头1300示出了环的递增的节点编号部分,箭头1310示出了从节点3发送、经过节点4并且被节点5接收。箭头1320示出了环的递减的节点编号部分,其中从节点4的传输信号经过节点3并被节点2接收。这可以看作是“向外和返回”,其中一半的节点在向外途中处于活动状态,而其余一半在返回途中处于活动状态。

环回可以在最后节点上是本地的,或通过最后节点上的外部环回电缆。在一实施例中,最后节点在物理上只是线性布局中的最后节点;它实际上是数据流布局中的n/2个节点。第一节点或“主机”可以同时进行发送和接收而没有环回。

此外,在一实施例中,基本控制器304是用于与节点通信的定时主机。这将结合图10进行讨论,图10是实施例的环形网络的另一视图。如上所述,基本控制器304可以从单个消息中分离出每个单独的多节点消息,并同时向每个机器人臂发送其相关的单个多节点消息。在该实施例中,基本控制器304负责对与节点的通信进行定时,使得同时通信发生。例如,如图9所示,在t0和t1之间,每个多节点消息的第一字节同时被发送到每个目标臂。类似地,在相反的方向上,来自臂的返回消息同时被组合到主合并消息中。

在一实施例中,除了负责分离出各个多节点臂消息之外,基本控制器304还负责对通信进行定时和调度。基本控制器304是“定时主机”,因为它可以生成4khz帧,并知道何时将消息发送到机器人臂以及从机器人臂接收消息(例如,因此将消息同时发送到节点/从节点接收消息)。例如,如图10所示,在一周期(t)中,可以有tn个时隙(或“单位间隔(ui)”)。在4khz周期时间,可以有15000单位间隔(t0加tn)(假设ui速率为60mbps)。基本控制器304可以精确地知道每个周期传输多少单位间隔,并且由于网络上的通信是等时通信,因此基本控制器304可以将时钟传送到网络上的节点,因此它们可以将其本地时钟锁定到主时钟。在一实施例中,每个节点具有锁相环(pll),其可以与主时钟一起再生。以此方式,网络中的所有节点可以相同的频率运行(例如,通过在该示例中将整数分数关系(integerfractionrelationship)设置为250us帧周期),因此它们不会相对彼此漂移。在另一示例中,pwm以40khz运行,即比250us帧速率快10倍。

图11和12是可用于在基本控制器304与机器人臂上的节点之间的物理网络上通信的发送器和接收器的图示。应当注意,这仅是一个示例,并且可以使用其他配置。首先转向图11中的发送器,该实施例中的发送器是“伪lvds”发送器,因为输出信号与lvds兼容,但它不是由常规lvds发送器发送的。对此有多个原因。例如,lvds在共模下通常约为1.25伏,上升或下降几百毫伏以传输0和1。本实施例中的发送器通过外部电阻分压器产生相同的信号电平。将一个输入驱动为高而将另一个输入驱动为低将产生与lvds兼容的信号。将两个输入都驱动为高或低会导致共模电压分别为3.3伏和0伏,这可用于编码附加信息(例如用于加电排序和用于辅助低速通信信道以初始化环形网络)。使用此伪lvds发送器的另一个原因是要提供反向端接的传输线,因此如果该线上存在任何噪声,它将在一半的延迟时间内消失且不必来回弹跳。具体而言,在本实施例中,3.3vlvcmos输出通过电阻器网络进行布线,以将反向端接的100ohm差分驱动器制成屏蔽双绞线。对于反向通信,禁用驱动器并将其用作感测共模线电压的输入。

现在转到图12中的接收器,该实施例中的接收器包含用于高速接口的高共模范围lvds接收器和具有滞后的低通滤波共模电压检测器。此外,接收器可以驱动共模电压(通过cm_talk)用于上游通信。臂马达节点还包含感测共模电压以在加电后打开节点的电路。这意在使臂内的浪涌电流错开。一旦加电,启用被锁存,节点保持开启。更具体地,该实施例中的接收器具有带有高共模抑制能力的lvds接收器,这意味着它可以在存在大共模电压的情况下区分小的差分信号。该实施例的接收器的顶部可以处理存在噪声尖峰和节点之间的接地基准摇摆的情况(例如当马达被激活并且电源部分崩溃时)。该实施例的接收器具有共模抑制能力,以仍然能够在存在共模的情况下可靠地检测低电压差。

该实施例的接收器的底部可以区分共模信号。因此,如果发送器将两个输入信号均驱动为高或低,则接收器的底部可以使用具有大量滞后的比较器进行检测以抑制噪声。在该比较器上方是二极管,用于按顺序为节点加电,以避免可能导致配电网络难以维持的大冲击电流。特别地,出于安全原因,一实施例隔离了每个臂的功率。因此,当对臂加电时,电压就存在了,但节点中的各个调节器实际上并未接通,因为在环形网络上驱动了共模0(因此,en12v上的电压会很低)。首先将臂的基部中的节点驱动到共模高,然后将其通过该二极管并为下一个节点开启调节器。一实施例使用约5毫秒的自动延迟,因为该延迟可以允许所有浪涌电流在输出驱动器为高之前消退。以这种方式通过节点施加功率会错开节点的加电,并在更长的时间内分配浪涌电流,并使它们更小。该实施例的接收器还具有cmtalk信号,以向接收器提供与发送器通话的能力。因此,可以将发送器关闭并转为输入,以进行调试和诊断。

如上所述,在一实施例中,虽然基本控制器304和节点之间的通信是通过使用双绞铜电缆的伪lvds进行的,但主控制器302和基本控制器304之间的通信可以使用光缆。在一实施例中,主控制器302具有计算机,其具有用于与光缆通信的pcie卡。主控制器302从基本控制器304接收定时信号,并负责向基本控制器304发送同步和异步命令,以分配给机器人臂的节点。

如以上参考图7和8说明,在一实施例中,同步反馈在一个周期中尽可能晚地发生,从而使机器人控制算法具有最新的信息,因为它决定下一个同步命令应该是什么。同样,在一实施例中,同步命令在周期中尽可能早地发送,因此同步命令可以到达其节点并尽快执行。即,该实施例试图通过使基本控制器304相移—相对于主控制器302的臂通信—基本控制器204通信来使主控制器302从节点接收反馈和其向节点发送新的实时命令之间的等待时间最小化。主控制器302可以负责该定时。由于主控制器302中的这些传输是通过pcde进行的,因此它们非常快,并且仅占用250微秒周期时间的一小部分。一旦数据通过光纤传输出去,传输就不如通过pcie那样快,但是数据可以交织并以适当的顺序放置,因此数据可以流畅地传输。这样,基本控制器304不需要负责对数据包进行排序,这可能占用周期时间的相对显著部分。

最后,应注意,以上讨论的协议不必占用通信链路的所有带宽。这允许在环形网络通信的间隙期间运行附加协议(例如用于系统的初始化和健康检查的辅助(“节点管理”)协议)。

结论

旨在将前述详细描述理解为对本发明可以采用的所选形式的说明,而不是对本发明的定义。仅以下权利要求书,包括所有等同物,旨在限定所要求保护的发明的范围。最后,应注意,本文所述的任何优选实施例的任何方面可以单独或彼此结合使用。

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