Multi-arm robotic systems and methods for calibrating and verifying calibration of the same

The method uses imagers on robotic arms to capture images of a calibration object, forming a matrix for solving unknown parameters, addressing calibration inaccuracies and enhancing surgical arm accuracy and safety.

WO2025173000A1PCT designated stage Publication Date: 2025-08-21MAZOR ROBOTICS
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/IL2025/050145
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-13
Filing Date
2025-02-11
Publication Date
2025-08-21

AI Technical Summary

Technical Problem

Existing robotic arm calibration methods are inadequate for accurately accounting for inaccuracies introduced by manufacturing tolerances, assembly errors, and environmental differences between calibration and surgical site conditions, posing patient safety risks and requiring costly equipment for verification.

Method used

A method and system for calibrating multi-arm robotic systems using imagers attached to each arm to capture X-ray images of a calibration object with varying perspectives, recording pose and location data to form a matrix for solving unknown parameters and verifying calibration on-site.

Benefits of technology

Enables accurate calibration and verification of robotic arms in the surgical environment, improving system accuracy and patient safety by compensating for manufacturing and environmental inaccuracies without expensive equipment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IL2025050145_21082025_PF_FP_ABST
    Figure IL2025050145_21082025_PF_FP_ABST
Patent Text Reader

Abstract

A system for calibrating a multi-arm robotic system includes a memory including instructions and at least one processor that executes the instructions to receive a set of pose data that is indicative of a pose of a first robotic arm and a pose of a second robotic arm when each image of a plurality of images of a calibration object is captured, to receive a set of location data that is indicative of a location of the calibration object within each image, and to calibrate the multi-arm robotic system or verify calibration of the multi-arm robotic system based on the set of pose data and the set of location data. The calibration object has a known dimension, and each image is captured from a different perspective relative to the calibration object with a first imager and a second imager.
Need to check novelty before this filing date? Find Prior Art

Description

MULTI-ARM ROBOTIC SYSTEMS AND METHODS FOR CALIBRATING AND VERIFYING CALIBRATION OF THE SAMEFIELD

[0001] The present technology generally relates to robotic systems using multiple robotic arms, and relates more particularly to calibrating and / or verifying calibration of multi-arm robotic systems.BACKGROUND

[0002] Surgical robots may be used to hold one or more imaging devices, tools, or devices during a surgery, and may operate autonomously (e.g., without any human input during operation), semi- autonomously (e.g., with some human input during operation), or non-autonomously (e.g., only as directed by human input).SUMMARY

[0003] Example aspects of the present disclosure include:

[0004] A system for calibrating a multi -arm robotic system, comprising: memory including instructions; and at least one processor that executes the instructions to: receive a set of pose data that is indicative of a pose of a first robotic arm and a pose of a second robotic arm when each image of a plurality of images of a calibration object is captured, wherein the calibration object has a known dimension, and wherein each image is captured from a different perspective relative to the calibration object with a first imager attached to the first robotic arm and a second imager attached to the second robotic arm; receive a set of location data that is indicative of a location of the calibration object within each image; and calibrate the multi-arm robotic system or verify calibration of the multi-arm robotic system based on the set of pose data and the set of location data.

[0005] Any of the aspects herein, wherein the set of location data is indicative of a location of a center of the calibration object within each image.

[0006] Any of the aspects herein, wherein the set of location data includes coordinates of the center of the calibration object within each image.

[0007] Any of the aspects herein, wherein the calibration object comprises a sphere and the known dimension comprises a diameter of the sphere.

[0008] Any of the aspects herein, wherein the set of location data and the set of pose data form a matrix that associates the pose of the first robotic arm and the pose of the second robotic arm for a respective image with the center of the calibration object for the respective image.

[0009] Any of the aspects herein, wherein the memory includes instructions that the at least one processor executes to: calibrate the multi-arm robotic system or verify the calibration of the multiarm robotic system using the matrix to solve for unknown parameters of the first robotic arm and the second robotic arm.

[0010] Any of the aspects herein, wherein the memory includes instructions that the at least one processor executes to cause the first and second imagers to capture the plurality of images by: capturing a first image of the calibration object with the first and second robotic arms in respective first poses; and capturing a second image of the calibration object with at least one of the first robotic arm and second robotic arm in a respective second pose.

[0011] Any of the aspects herein, wherein the memory includes instructions that the at least one processor executes to cause the first and second imagers to capture the plurality of images by: capturing a first image of the calibration object with the first and second robotic arms in respective first poses with the first imager acting as a transmitter and the second imager acting as a receiver; and capturing a second image of the calibration object with the first and second robotic arms in the respective first poses with the first imager acting as the receiver and the second imager acting as the transmitter.

[0012] Any of the aspects herein, wherein, prior to calibration or prior to verifying the calibration, the multi-arm robotic system has N number of unknown parameters with the number N being based on a number of degrees of freedom of the first and second robotic arms.

[0013] Any of the aspects herein, wherein a number of the plurality of images to be captured is based on the N number of unknown parameters.

[0014] Any of the aspects herein, wherein the memory includes instructions that the at least one processor executes to: solve for the unknown parameters by applying a fitting algorithm.

[0015] Any of the aspects herein, wherein the fitting algorithm comprises a least square algorithm.

[0016] A method for calibrating a multi-arm robotic system, comprising: capturing a plurality of images of a calibration object having a known dimension with each image being captured from a different perspective relative to the calibration object, wherein each image is captured with a firstimager attached to a first robotic arm and a second imager attached to a second robotic arm; recording, for each captured image, pose data that is indicative of a pose of each of the first robotic arm and the second robotic arm to yield a set of pose data; determining, within each image, a location of the calibration object to yield a set of location data; and calibrating the multi-arm robotic system or verifying calibration of the multi-arm robotic system based on the set of pose data and the set of location data.

[0017] Any of the aspects herein, wherein determining a location of the calibration object within each image comprises a determining a center of the calibration object.

[0018] Any of the aspects herein, wherein the set of location data includes coordinates of the center of the calibration object within each image.

[0019] Any of the aspects herein, wherein the calibration object comprises a sphere and the known dimension comprises a diameter of the sphere.

[0020] Any of the aspects herein, wherein the set of location data and the set of pose data form a matrix that associates the pose data for a respective image with the center of the calibration object for the respective image.

[0021] Any of the aspects herein, wherein calibrating the multi-arm robotic system or verifying the calibration of the multi-arm robotic system comprises using the matrix to solve for unknown parameters of the first robotic arm and the second robotic arm.

[0022] A system for calibrating a multi-arm robotic system, comprising: a first robotic arm having a first imager attached thereto; a second robotic arm having a second imager attached thereto; a calibration object having a known dimension; memory including instructions; and at least one processor that executes the instructions to: cause the first imager and the second imager to capture a plurality of images of the calibration object such that each image is captured from a different perspective relative to the calibration object; record, for each captured image, pose data that is indicative of a pose of each of the first robotic arm and the second robotic arm to yield a set of pose data; determine, within each image, a location of the calibration object to yield a set of location data; and calibrate the multi-arm robotic system or verify calibration of the multi-arm robotic system based on the set of pose data and the set of location data.

[0023] Any of the aspects herein, wherein the at least one processor causes the first and second imagers to capture the plurality of images by: causing capture of a first image of the calibration object with the first and second robotic arms in respective first poses with the first imager actingas a transmitter and the second imager acting as a receiver; causing capture of a second image of the calibration object with the first and second robotic arms in the respective first poses with the first imager acting as the receiver and the second imager acting as the transmitter; and causing capture of a third image of the calibration object with at least one of the first and second robotic arms in a second pose.

[0024] Any aspect in combination with any one or more other aspects.

[0025] Any one or more of the features disclosed herein.

[0026] Any one or more of the features as substantially disclosed herein.

[0027] Any one or more of the features as substantially disclosed herein in combination with any one or more other features as substantially disclosed herein.

[0028] Any one of the aspects / features / embodiments in combination with any one or more other aspects / features / embodiments .

[0029] Use of any one or more of the aspects or features as disclosed herein.

[0030] It is to be appreciated that any feature described herein can be claimed in combination with any other feature(s) as described herein, regardless of whether the features come from the same described embodiment.

[0031] The details of one or more aspects of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the techniques described in this disclosure will be apparent from the description and drawings, and from the claims.

[0032] The phrases “at least one”, “one or more”, and “and / or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions “at least one of A, B and C”, “at least one of A, B, or C”, “one or more of A, B, and C”, “one or more of A, B, or C” and “A, B, and / or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together. When each one of A, B, and C in the above expressions refers to an element, such as X, Y, and Z, or class of elements, such as Xi-Xn, Yi-Ym, and Zi-Zo, the phrase is intended to refer to a single element selected from X, Y, and Z, a combination of elements selected from the same class (e.g., Xi and X2) as well as a combination of elements selected from two or more classes (e.g., Yi and Zo).

[0033] The term “a” or “an” entity refers to one or more of that entity. As such, the terms “a” (or “an”), “one or more” and “at least one” can be used interchangeably herein. It is also to be noted that the terms “comprising”, “including”, and “having” can be used interchangeably.

[0034] The preceding is a simplified summary of the disclosure to provide an understanding of some aspects of the disclosure. This summary is neither an extensive nor exhaustive overview of the disclosure and its various aspects, embodiments, and configurations. It is intended neither to identify key or critical elements of the disclosure nor to delineate the scope of the disclosure but to present selected concepts of the disclosure in a simplified form as an introduction to the more detailed description presented below. As will be appreciated, other aspects, embodiments, and configurations of the disclosure are possible utilizing, alone or in combination, one or more of the features set forth above or described in detail below.

[0035] Numerous additional features and advantages of the present invention will become apparent to those skilled in the art upon consideration of the embodiment descriptions provided hereinbelow.BRIEF DESCRIPTION OF THE DRAWINGS

[0036] The accompanying drawings are incorporated into and form a part of the specification to illustrate several examples of the present disclosure. These drawings, together with the description, explain the principles of the disclosure. The drawings simply illustrate preferred and alternative examples of how the disclosure can be made and used and are not to be construed as limiting the disclosure to only the illustrated and described examples. Further features and advantages will become apparent from the following, more detailed, description of the various aspects, embodiments, and configurations of the disclosure, as illustrated by the drawings referenced below.

[0037] Fig. 1 is a block diagram of a system according to at least one embodiment of the present disclosure.

[0038] Fig. 2 illustrates a block diagram of a system according to at least one embodiment of the present disclosure.

[0039] Fig. 3 illustrates a technique for calibrating or verifying calibration of a multi-arm robotic system according to at least one embodiment of the present disclosure.

[0040] Fig. 4 depicts a method used to calibrate a multi-arm robotic system according to at least one embodiment of the present disclosure.

[0041] Fig. 5 depicts another method used to calibrate a multi-arm robotic system according to at least one embodiment of the present disclosure.DETAILED DESCRIPTION

[0042] It should be understood that various aspects disclosed herein may be combined in different combinations than the combinations specifically presented in the description and accompanying drawings. It should also be understood that, depending on the example or embodiment, certain acts or events of any of the processes or methods described herein may be performed in a different sequence, and / or may be added, merged, or left out altogether (e.g., all described acts or events may not be necessary to carry out the disclosed techniques according to different embodiments of the present disclosure). In addition, while certain aspects of this disclosure are described as being performed by a single module or unit for purposes of clarity, it should be understood that the techniques of this disclosure may be performed by a combination of units or modules associated with, for example, a computing device and / or a medical device.

[0043] In one or more examples, the described methods, processes, and techniques may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or code on a computer-readable medium and executed by a hardware-based processing unit. Alternatively or additionally, functions may be implemented using machine learning models, neural networks, artificial neural networks, or combinations thereof (alone or in combination with instructions). Computer-readable media may include non-transitory computer-readable media, which corresponds to a tangible medium such as data storage media (e.g., RAM, ROM, EEPROM, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer).

[0044] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors (e.g., Intel Core i3, i5, i7, or i9 processors; Intel Celeron processors; Intel Xeon processors; Intel Pentium processors; AMD Ryzen processors; AMD Athlon processors; AMD Phenom processors; Apple A10 or 10X Fusion processors; Apple Al l, A12, A12X, A12Z, or A13 Bionic processors; or any other general purpose microprocessors), graphics processing units (e.g., Nvidia GeForce RTX 2000-series processors, Nvidia GeForce RTX 3000-series processors, AMD Radeon RX 5000-series processors, AMD Radeon RX 6000-series processors, or any other graphics processing units), application specificintegrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor” as used herein may refer to any of the foregoing structure or any other physical structure suitable for implementation of the described techniques. Also, the techniques could be fully implemented in one or more circuits or logic elements.

[0045] Before any embodiments of the disclosure are explained in detail, it is to be understood that the disclosure is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The disclosure is capable of other embodiments and of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Further, the present disclosure may use examples to illustrate one or more aspects thereof. Unless explicitly stated otherwise, the use or listing of one or more examples (which may be denoted by “for example,” “by way of example,” “e.g.,” “such as,” or similar language) is not intended to and does not limit the scope of the present disclosure.

[0046] The terms proximal and distal are used in this disclosure with their conventional medical meanings, proximal being closer to the operator or user of the system, and further from the region of surgical interest in or on the patient, and distal being closer to the region of surgical interest in or on the patient, and further from the operator or user of the system.

[0047] When performing spine surgeries with a robotic arm, it is essential for the arm to be calibrated / verified (e.g., to verify that the system has accurate positioning or other details) in the field for accuracy to avoid patient safety risks that arise due to inaccuracy (for example, misplacement of a screw causing harm to the spinal cord). Taking the arm off the overall machine and performing a calibration process is a time consuming task that requires expensive dedicated equipment. The accuracy chain for a robotic arm may be as follows: chassis — arm base — arm tip — tool changer base — tool changer top with tool — end effector. The combinations of different parts and additional robotic arms can introduce inaccuracies due to manufacturing, measuring, and assembly tolerances. In addition, when a machine with a robot is placed in the field, the floor angle or slope straightness may create unaccounted for deflections in the machine structure. The aboveinaccuracies are not normally accounted for when calibrating a robotic arm because the calibration is done in ideal conditions (and not in the field).

[0048] At least one aspect of the present disclosure proposes to calibrate and / or validate calibration of two or more robotic arms with a process that can be performed at the surgical site (i.e., in the field). The components used for such a process include an imager (e.g., an X-ray imager) attached to each robotic arm so that each arm can function as a transmitter for capturing some images during the process and as a receiver for capturing other images during the process.

[0049] In one specific, nonlimiting example, the process includes placing a metal sphere of known dimensions (e.g., a known diameter) at a location within the robot environment that is reachable by the robotic arms. Then, imagers on the robotic arms take multiple X-ray images of the sphere from various orientations and distances. Pose data of the arms, receiver, and transmitter are recorded for each image and the sphere’s location and size is extracted from each image and compared to the recorded data and known sphere size, which enables calibration or validation of calibration of the multi-arm robotic system. Here, it should be appreciated that although embodiments of the present disclosure are described with reference to imagers that take X-ray images, other imager modalities such as ultrasound, MRI, infrared, and / or the like may be used in the same or similar manner.

[0050] Embodiments of the present disclosure provide technical solutions to the problems of (1) inaccuracies due to differences between the field environment and the calibration environment and / or tool wearing; (2) patient safety risks caused by such inaccuracies; and / or (3) costs associated with having to use high quality imagers and other tools for calibration or verification of calibration. Indeed, embodiments of the present disclosure enable accurate calibration or accurate verification of calibration to improve accuracy of the system, which in turn improves patient safety during procedure.

[0051] Fig. 1 illustrates a block diagram of a system 100 according to at least one embodiment of the present disclosure. The system 100 may be used to operate one or more robotic arms in a common coordinate system and / or carry out one or more other aspects of one or more of the methods disclosed herein. The system 100 comprises a computing device 102, one or more imaging devices 112, a robot 114 (which may further comprise one or more of the images devices 112, one or more robotic arms 116, and / or one or more sensors 144), a navigation system 118, a database130, and / or a cloud or other network 134. Systems according to other embodiments of the present disclosure may comprise more or fewer components than the system 100.

[0052] The computing device 102 comprises a processor 104, a memory 106, a communication interface 108, and a user interface 110. Computing devices according to other embodiments of the present disclosure may comprise more or fewer components than the computing device 102.

[0053] The processor 104 of the computing device 102 may be any processor described herein or any similar processor. The processor 104 may be configured to execute instructions stored in the memory 106, which instructions may cause the processor 104 to carry out one or more computing steps utilizing or based on data received from the imaging device 112, the robot 114, the navigation system 118, the database 130, and / or the cloud 134. The processor 104 may comprise an integrated circuit, such as an ASIC or FPGA.

[0054] The memory 106 may be or comprise RAM, DRAM, SDRAM, other solid-state memory, any memory described herein, or any other tangible, non-transitory memory for storing computer- readable data and / or instructions. The memory 106 may store information or data useful for completing, for example, any step of the methods 300, 600, 700, and / or 900 described herein, or of any other methods. The memory 106 may store, for example, one or more surgical plan(s) 120, information about one or more coordinate system(s) 122 (e.g., information about a robotic coordinate system or space corresponding to the robot 114, information about a navigation coordinate system or space, information about a patient coordinate system or space), and / or one or more algorithms 124, which may include algorithms for calibrating or verifying calibration of robotic arms 116. Such algorithms may, in some embodiments, be organized into one or more applications, modules, packages, layers, or engines. Alternatively or additionally, the memory 106 may store other types of data (e.g., machine learning modes, artificial neural networks, etc.) or instructions that can be processed by the processor 104 to carry out the various method and features described herein. Thus, although various components of memory 106 are described as instructions, it should be appreciated that functionality described herein can be achieved through use of instructions, algorithms, and / or machine learning models. The data, algorithms, and / or instructions may cause the processor 104 to manipulate data stored in the memory 106 and / or received from or via the imaging device 112, the robot 114, the database 130, and / or the cloud 134.

[0055] The computing device 102 may also comprise a communication interface 108. The communication interface 108 may be used for receiving image data or other information from anexternal source (such as the imaging device 112, the robot 114, the sensor 144, the navigation system 118, the database 130, the cloud 134, and / or any other system or component not part of the system 100), and / or for transmitting instructions, images, or other information to an external system or device (e.g., another computing device 102, the imaging device 112, the robot 114, the sensor 144, the navigation system 118, the database 130, the cloud 134, and / or any other system or component not part of the system 100). The communication interface 108 may comprise one or more wired interfaces (e.g., a USB port, an ethemet port, a Firewire port) and / or one or more wireless transceivers or interfaces (configured, for example, to transmit and / or receive information via one or more wireless communication protocols such as 802.1 la / b / g / n, Bluetooth, NFC, ZigBee, and so forth). In some embodiments, the communication interface 108 may be useful for enabling the device 102 to communicate with one or more other processors 104 or computing devices 102, whether to reduce the time needed to accomplish a computing-intensive task or for any other reason.

[0056] The computing device 102 may also comprise one or more user interfaces 110. The user interface 110 may be or comprise a keyboard, mouse, trackball, monitor, television, screen, touchscreen, and / or any other device for receiving information from a user and / or for providing information to a user. The user interface 110 may be used, for example, to receive a user selection or other user input regarding any step of any method described herein. Notwithstanding the foregoing, any required input for any step of any method described herein may be generated automatically by the system 100 (e.g., by the processor 104 or another component of the system 100) or received by the system 100 from a source external to the system 100. In some embodiments, the user interface 110 may be useful to allow a surgeon or other user to modify instructions to be executed by the processor 104 according to one or more embodiments of the present disclosure, and / or to modify or adjust a setting of other information displayed on the user interface 110 or corresponding thereto.

[0057] Although the user interface 110 is shown as part of the computing device 102, in some embodiments, the computing device 102 may utilize a user interface 110 that is housed separately from one or more remaining components of the computing device 102. In some embodiments, the user interface 110 may be located proximate one or more other components of the computing device 102, while in other embodiments, the user interface 110 may be located remotely from one or more other components of the computer device 102.

[0058] The imaging device(s) 112 may be operable to image anatomical feature(s) (e.g., a bone, veins, tissue, etc.) and / or other aspects of patient anatomy to yield image data (e.g., image data depicting or corresponding to a bone, veins, tissue, etc.). “Image data” as used herein refers to the data generated or captured by an imaging device 112, including in a machine-readable form, a graphical / visual form, and in any other form. In various examples, the image data may comprise data corresponding to an anatomical feature of a patient, or to a portion thereof. The image data may be or comprise a preoperative image, an intraoperative image, a postoperative image, or an image taken independently of any surgical procedure. In some embodiments, a first imaging device 112 may be used to obtain first image data (e.g., a first image) at a first time, and a second imaging device 112 may be used to obtain second image data (e.g., a second image) at a second time after the first time. The imaging device 112 may be capable of taking a 2D image or a 3D image to yield the image data. The imaging device 112 may be or comprise, for example, an ultrasound scanner (which may comprise, for example, a physically separate transducer and receiver, or a single ultrasound transceiver), an 0-arm, a C-arm, a G-arm, or any other device utilizing X-ray-based imaging (e.g., a fluoroscope, a CT scanner, or other X-ray machine), a magnetic resonance imaging (MRI) scanner, an optical coherence tomography (OCT) scanner, an endoscope, a microscope, an optical camera, a thermographic camera (e.g., an infrared camera), a radar system (which may comprise, for example, a transmitter, a receiver, a processor, and one or more antennae), or any other imaging or sensing device 112 suitable for obtaining images of an anatomical feature of a patient. The imaging device 112 may be contained entirely within a single housing, or may comprise a transmitter / emitter and a receiver / detector that are in separate housings or are otherwise physically separated.

[0059] The imaging device 112 may be operable to generate a stream of image data. For example, the imaging device 112 may be configured to operate with an open shutter, or with a shutter that continuously alternates between open and shut so as to capture successive images. For purposes of the present disclosure, unless specified otherwise, image data may be considered to be continuous and / or provided as an image data stream if the image data represents two or more frames per second. In some examples, the system 100 uses a more accurate imaging device 112 for the calibration and verification methods described herein than in other scenarios, such as the imaging device(s) used before, during, or after a procedure.

[0060] The robot 114 may be any surgical robot or surgical robotic system. The robot 114 may be or comprise, for example, the Mazor X™ Stealth Edition robotic guidance system. The robot 114 may be configured to position the imaging device 112 at one or more precise position(s) and orientation(s), and / or to return the imaging device 112 to the same position(s) and orientation(s) at a later point in time. The robot 114 may additionally or alternatively be configured to manipulate a surgical tool (whether based on guidance from the navigation system 118 or not) to accomplish or to assist with a surgical task. In some embodiments, the robot 114 may be configured to hold and / or manipulate an anatomical element during or in connection with a surgical procedure. The robot 114 may comprise one or more robotic arms 116. In some embodiments, the robotic arm 116 may comprise a first robotic arm and a second robotic arm, though the robot 114 may comprise more than two robotic arms. In some embodiments, one or more of the robotic arms 116 may be used to hold and / or maneuver an imaging device 112. In embodiments where the imaging device 112 comprises two or more physically separate components (e.g., a transmitter and receiver), one robotic arm 116 may hold one such component, and another robotic arm 116 may hold another such component. Each robotic arm 116 may be positionable independently of the other robotic arm. The robotic arms may be controlled in a single, shared coordinate space, or in separate coordinate spaces.

[0061] The robot 114, together with the robotic arm 116, may have, for example, one, two, three, four, five, six, seven, or more degrees of freedom. Further, a robotic arm 116 may be positioned or positionable in any pose, plane, and / or focal point. As described herein, the pose of an object, such as a robotic arm 116, an imaging device 112, etc., refers to both a position and an orientation of the object within a particular space.

[0062] The robotic arm(s) 116 may comprise the sensors 144 that enable the processor 104 (or a processor of the robot 114) to determine a precise pose in space of the robotic arm (as well as any object or element held by or secured to the robotic arm). The sensors 144 may correspond to or include an encoder located at each joint of a robotic arm 116.

[0063] In some embodiments, reference markers (i.e., navigation markers) may be placed on the robot 114 (including, e.g., on the robotic arm 116), the imaging device 112, or any other object in the surgical space. The reference markers may be tracked by the navigation system 118, and the results of the tracking may be used by the robot 114 and / or by an operator of the system 100 or any component thereof. In some embodiments, the navigation system 118 can be used to track othercomponents of the system (e.g., imaging device 112) and the system can operate without the use of the robot 114 (e.g., with the surgeon manually manipulating the imaging device 112 and / or one or more surgical tools, based on information and / or instructions generated by the navigation system 118, for example).

[0064] The navigation system 118 may provide navigation for a surgeon and / or a surgical robot during an operation. The navigation system 118 may be any now-known or future-developed navigation system, including, for example, the Medtronic StealthStation™ S8 surgical navigation system or any successor thereof. The navigation system 118 may include one or more cameras or other sensor(s) for tracking one or more reference markers, navigated trackers, or other objects within the operating room or other room in which some or all of the system 100 is located. The one or more cameras may be optical cameras, infrared cameras, or other cameras. In some embodiments, the navigation system may comprise one or more electromagnetic sensors. In various embodiments, the navigation system 118 may be used to track a position and orientation (i.e., pose) of the imaging device 112, the robot 114 and / or robotic arm 116, and / or one or more surgical tools (or, more particularly, to track a pose of a navigated tracker attached, directly or indirectly, in fixed relation to the one or more of the foregoing). The navigation system 118 may include a display for displaying one or more images from an external source (e.g., the computing device 102, imaging device 112, or other source) or for displaying an image and / or video stream from the one or more cameras or other sensors of the navigation system 118. In some embodiments, the system 100 can operate without the use of the navigation system 118. The navigation system 118 may be configured to provide guidance to a surgeon or other user of the system 100 or a component thereof, to the robot 114, or to any other element of the system 100 regarding, for example, a pose of one or more anatomical elements, whether or not a tool is in the proper trajectory, and / or how to move a tool into the proper trajectory to carry out a surgical task according to a preoperative or other surgical plan. In some examples, the navigation system 118 uses a more accurate camera for the calibration and verification methods described herein than in other scenarios, such as the camera(s) used in the navigation system 118 before, during, or after a procedure.

[0065] The database 130 may store information that correlates one coordinate system 122 to another (e.g., one or more robotic coordinate systems to a patient coordinate system and / or to a navigation coordinate system). The database 130 may additionally or alternatively store, forexample, one or more surgical plans 120 (including, for example, pose information about a target and / or image information about a patient’s anatomy at and / or proximate the surgical site, for use by the robot 114, the navigation system 118, and / or a user of the computing device 102 or of the system 100); one or more images useful in connection with a surgery to be completed by or with the assistance of one or more other components of the system 100; one or more images useful in connection with calibration and verification of calibration of the robotic arms 116; and / or any other useful information. The database 130 may be configured to provide any such information to the computing device 102 or to any other device of the system 100 or external to the system 100, whether directly or via the cloud 134. In some embodiments, the database 130 may be or comprise part of a hospital image storage system, such as a picture archiving and communication system (PACS), a health information system (HIS), and / or another system for collecting, storing, managing, and / or transmitting electronic medical records including image data.

[0066] The cloud 134 may be or represent the Internet or any other wide area network. The computing device 102 may be connected to the cloud 134 via the communication interface 108, using a wired connection, a wireless connection, or both. In some embodiments, the computing device 102 may communicate with the database 130 and / or an external device (e.g., a computing device) via the cloud 134.

[0067] The system 100 or similar systems may be used, for example, to carry out one or more aspects of any of the methods described herein. The system 100 or similar systems may also be used for other purposes.

[0068] Fig. 2 illustrates a block diagram of a system 200 according to at least one embodiment of the present disclosure. The system 200 may correspond to a system for calibrating and / or verifying calibration of multiple robotic arms using various elements in Fig. 1. For example, the system 200 includes the computing device 102, the navigation system 118, and the robot 114. Systems according to other embodiments of the present disclosure may comprise more or fewer components than the system 200. For example, the system 200 may not include the navigation system 118 if not deemed necessary for calibration and / or verification of calibration methods described herein.

[0069] As illustrated, the robot 114 includes a first robotic arm 116-1 (which may comprise one or more members 116-1A connected by one or more joints 116- IB) and a second robotic arm 116- 2 (which may comprise one or more members 116-2A connected by one or more joints 116-2B),each extending from a base 208. In other embodiments, the robot 114 includes more than two robotic arms. The base 208 may be stationary or movable. The first robotic arm 116-1 and the second robotic arm 116-2 may operate in a shared or common coordinate space. By operating in the common coordinate space, a position of each robotic arm 116-1, 116-2 is known to each other. In other words, because each of the first robotic arm 116-1 and the second robotic arm 116-2 have a known position in the same common coordinate space, collision can be automatically avoided as a controller of the first robotic arm 116-1 and of the second robotic arm 116-2 is aware of a position of both of the robotic arms.

[0070] According to embodiments of the present disclosure, an imaging device or imager may be disposed or supported on an end of the first robotic arm 116-1 and / or the second robotic arm 116-2 as well as any other robotic arms included with the system. In some examples, the imager(s) are detachable and replaceable by other imagers or tools, which may be made possible by a tool changer attached to the robotic arms 116. Thus, although not the focus of the instant disclosure, one or more tools, tool changers, or instruments may be disposed on an end of each of the first robotic arm 116-1 and the second robotic arm 116-2, though the tools or instruments may be disposed on any portion of the first robotic arm 116-1 and / or the second robotic arm 116-2. In a surgical setting, the first robotic arm 116-1 and / or the second arm 116-2 is operable to execute one or more planned movements and / or procedures autonomously and / or based on input from a surgeon or user.

[0071] As illustrated in Fig. 2, imager 112A is supported by or otherwise attached to the first robotic arm 116-1 and imager 112B is supported by or otherwise attached to the second robotic arm 116-2. In some embodiments, imagers 112A and 112B correspond to X-ray imaging devices. As will be described in more detail below, imagers 112A and 112B are used to capture images of a calibration object 204, which may be placed on a surface 210, with one of the imagers 112 acting as transmitter and the other of the imagers 112 acting as receiver. The calibration object 204 remains fixed relative to the robot 114 during calibration and verification. In some examples, surface 210 is a surface of a radiotransparent object, such as a plastic pyramid. As may be appreciated from the below discussion, additional robotic arms 116 may be included which each additional arm having a respective imager 112 attached thereto and capable of acting as transmitter and / or receiver to capture X-ray images of the calibration object 204.

[0072] In the illustrated example, the calibration object 204 is a metal sphere (e.g., a substantially perfect sphere) with a known dimension, such as a known diameter. However, the calibration object 204 may be made of any suitable material (e.g., a radiopaque material) and take a different shape so long as that shape has a uniform footprint from the perspectives of the imagers 112 when in different orientations and at least one known dimension or dimensions (e.g., a metal cube with a known and equal length, width, and height). In some embodiments, the calibration object 204 may be a tool attached to a robotic arm, a surgical instrument attached to a robotic arm, another object held by a robotic arm, or the like. In any event, the calibration object 204 has at least one known dimension, which is used in conjunction with other information in a calibration or verification of calibration process for the robotic arms 116 as described in more detail below. In general, the goal of calibrating of the robotic arms and / or verifying such calibration is to reveal and compensate for manufacturing tolerances within arm components, sloped surfaces when the robotic is placed within the operating environment, component wear and tear, and / or the like. For example, a step of a surgical procedure may call for a joint of a robotic arm to rotate 5 degrees, but the joint’s encoder has inherent manufacturing errors that cause the encoder to detect a 5 degree rotation which is in actuality a 4.9 degree rotation. Performing calibration or verifying calibration according to embodiments of the present disclosure will detect and correct for this inaccuracy.

[0073] Fig. 3 illustrates a technique for calibrating or verifying calibration of a multi-arm robotic system, which may include elements from the system from Fig. 1 and / or Fig. 2. Fig. 3 illustrates a three-arm system, but the system may have only two arms or more than three arms. The three robotic arms in Fig. 3 are, labeled as arms Al, A2, and A3 and each include an imager 112 (not shown) for imaging the calibration object 204. The calibration or verification of calibration process comprises placing the calibration object 204 (referred to as a sphere 204 in this example) within an environment of the arms Al to A3, and then imaging the sphere 204 with the imagers on the arms Al to A3 in various combinations and poses within the space around the sphere 204. In the example of Fig. 3, the imagers are used to take X-ray images, and the sphere 204 remains in the same place and is not moved throughout the image capture process.

[0074] Fig. 3 illustrates example robotic arm sequences or configurations 1 to 6 used for taking images of a calibration object 204. Table 1 at the top right of Fig. 3 indicates, for each sequence, whether a particular arm is used as the receiver R, the transmitter T, or not used NU. For example, as shown in Table 1, arm Al is used as the receiver, arm A2 is used as the transmitter, and arm A3is not used in sequence 1. Meanwhile, in sequence 2, arm Al is not used, arm A2 is used as the receiver, and arm A3 is used as the transmitter. And so on for the remaining sequences. Here, it should be understood that Fig. 3 is a two dimensional representation of arms Al to A3 and sphere 204. In practice, each image is captured with the transmitter arm and receiver arm on opposite sides of the sphere 204 within three-dimensional space. As may be appreciated, all possible scanning combinations of the arms Al to A3 are used to obtain the images.

[0075] Notably, the pose of each arm (and the pose of each imager attached to each arm) may change between each captured image for a given sequence so that many images are taken in each given sequence from different perspectives around the sphere 204. For example, between 2,000 and 50,000 images may be taken in each sequence 1 to 6 with at least one of the transmitter or receiver arms changing its pose relative to the sphere 204 between each captured image. Stated another way, the pose of the transmitter arm and / or the receiver arm and any corresponding imagers is changed relative to the sphere 204 from one captured image to the next. As described herein, altering the pose of an arm may change the distance between the arm the sphere 204, the orientation of the arm relative to the sphere 204, or both the distance and the orientation. The change in pose may be accomplished automatically by the system running a calibration program or algorithm so as to occur without user input or with very little user input. In any event, the amount of change between poses should be sufficient enough to be detectable by the sensors 144 (e.g., encoders). As discussed in more detail below, the process of taking a set of images with different combinations of arms acting as transmitter and receiver while altering a pose of at least one arm between each set of images is repeated until a sufficient number of images have been captured to enable accurate calibration or verification of calibration of the system. Although Fig. 3 shows and describes capturing images with three robotic arms, the same concepts for capturing images apply to two- arm systems and systems with more than three arms, where each arm alternates acting as transmitter and receiver to capture images with the arms in different poses.

[0076] Table 2 at the bottom of Fig. 3 corresponds to a matrix of parameters determined and / or recorded during the image capture process and is explained in more detail below. Prior to calibration or verification of calibration, a multi-arm robotic system has a number of unknown parameters of the calibration that are missing. Since the same sphere 204 is measured in each image and its position does not change, it is possible to solve for the unknown parameters using a certain number of known input N_free_parameters. However, this solution may not be accurate if usingthe minimum number of known input N_free_parameters. Accordingly, example embodiments propose to capture more readings (images, location data, and pose data) than the minimum (e.g., by a factor of F, which may be 5, 10, or a number greater than 10), which enables fitting (e.g., by a regression technique such as the least square method, the weighted least square method, or the like) of the input N_free_parameters to get more accurate results for the unknown parameters. Consider the following example for a robotic arm having N_dof degrees of freedom (for example, seven DoFs). Each DoF has a transformation with six unknown parameters. The receiver imager and the transmitter imager also each have one transformation, meaning that there are a total of N_dof + 2 transformations.

[0077] In an example where the number of degrees of freedom for an arm is seven, there are 7 + 2 = 9 transformations, with each transformation having six unknown parameters that require calibration or verification of calibration. The six unknown parameters may correspond to three translation parameters and three rotation parameters from one robotic arm joint to another robotic arm joint (e.g., a joint 116-1B to another joint 116-1B). The total number of unknown parameters for a multi-arm robotic system further depends on the number of robotic arms N_ra in the system, which may be expressed as follows: total number of unknown parameters = (N_dof + 2)*6*N_ra. Assuming three robotic arms in the same example where each arm has seven DoF, there are (7 +2)*6*3 = 162 total unknown parameters. For a certain number of unknown parameters, at least the same number of images should be captured with information about the pose of the robotic arms recorded in each image. However, accuracy may be improved by taking more than the minimum number of readings (images, location data, and pose data) and then using one or more fitting algorithms (e.g., a polynomial regression) to fit the recorded data. In some examples, the number of images captured is sufficient to cover the range of each encoder of each robotic arm (e.g., 1,000 images, 2,000 images, or more - in general, more images leads to greater calibration or verification accuracy ).

[0078] Table 2 at the bottom of Fig. 3 shows a matrix of information determined and / or recorded for each image i of the sphere 204 with the arms in each sequence 1 to 6, which may be used to solve for the unknown parameters. The matrix of information includes a set of location data that is indicative of a location of the sphere 204 within each image. The set of location data may be generated by determining or extracting a location of the sphere 204 in each image i and expressed as Xi and Yi. In some examples, Xi and Yi are two dimensional coordinates that correspond to orare indicative of a center of the sphere 204 in a particular image or to some other point on the sphere in that image. A diameter Di of the sphere 204 in each image i may also be extracted and / or determined and included as part of the set of location data. Table 2 further illustrates a set of pose data that is indicative of a pose of a robotic arm when each image i is captured. In this example, the set of pose data is represented by Alpha parameters which may correspond to or be based on output of the robotic arm’s encoders at a time when each image is captured. As such, the Alpha parameters recorded at each instance of image capture are indicative of a pose of the robotic arm at each instance of image capture. In some examples, each Alpha parameter is a value (e.g., a value in rotational degrees and / or a value in linear degrees) that is derived from output of a corresponding encoder located at a corresponding joint of the robotic arm.

[0079] Calibration or verification of calibration of the robotic arm is performed using the data in Table 2 and the known dimension of the sphere 204, which is the diameter of the sphere in this example. That is, once all of the relevant information in Table 2 is collected or determined (and fitted according to a fitting algorithm, if applicable), the unknown translation and rotation parameters from one robot joint to the next are solved for which completes the calibration or verification. Here, estimations of arm positions in the images may be verified to one another and estimations of sphere diameter in the images may be verified to the known value of the diameter.

[0080] Fig. 4 depicts a method 400 that may be used to calibrate a multi-arm robotic system according to at least one embodiment of the present disclosure.

[0081] The method 400 (and / or one or more steps thereof) may be carried out or otherwise performed, for example, by at least one processor. The at least one processor may be the same as or similar to the processor(s) 104 of the computing device 102 described above. The at least one processor may be part of a robot (such as a robot 114) or part of a navigation system (such as a navigation system 118). A processor other than any processor described herein may also be used to execute the method 400. The at least one processor may perform the method 400 by executing instructions stored in a memory such as the memory 106. The instructions may correspond to one or more steps of the method 400 described below. The instructions may cause the processor to execute one or more algorithms, such as the algorithms 124, which may include one or more algorithms for calibrating and / or verifying calibration of the robotic arms 116.

[0082] The method 400 may include capturing or, in some cases, causing capture of a plurality of images of a calibration object 204 having a known dimension with each image being capturedfrom a different perspective relative to the calibration object 204 (step 404). As described above and with reference to a two-arm system, each image is captured with a first imager 112-A attached to a first robotic arm 116-1 and a second imager 112B attached to a second robotic arm 116-2. Each image is captured from a different perspective relative to the calibration object 204 in that an imager 112 has switched from acting as the transmitter to acting as the receiver and / or in that one or both of the robotic arms 116 has changed its pose compared to the previously captured image. For example, step 404 may include capturing or causing capture of a first image of the calibration object with the first and second robotic arms in respective first poses, and then capturing or causing capture of a second image of the calibration object with at least one of the first robotic arm and second robotic arm in a respective second pose. In some examples, step 404 includes capturing of causing capture of a first image of the calibration object with the first and second robotic arms in respective first poses with the first imager acting as a transmitter and the second imager acting as a receiver, and then capturing of causing capture of a second image of the calibration object with the first and second robotic arms in the respective first poses with the first imager acting as the receiver and the second imager acting as the transmitter. In other examples, step 404 includes capturing or causing capture of a first image of the calibration object with the first and second robotic arms in respective first poses with the first imager acting as a transmitter and the second imager acting as a receiver, capturing or causing capture of a second image of the calibration object with the first and second robotic arms in the respective first poses with the first imager acting as the receiver and the second imager acting as the transmitter, and then capturing or causing capture of a third image of the calibration object with at least one of the first and second robotic arms in a second pose. The above-described steps related to capturing or causing capture of images may be repeated from ever-changing perspectives relative to the calibration object until a sufficient number of images of the calibration object have been captured to enable accurate calibration or verification of calibration. The movement of the robotic arms and functionality of an imager as a transmitter or receiver may be controlled automatically through execution of a calibration program or algorithm by one or more processors. Each captured image may be a 2-dimensional X-ray image.

[0083] The method 400 may further include recording, for each captured image, pose data that is indicative of a pose of each of the first robotic arm 116-1 and the second robotic arm 116-2 to yield a set of pose data (step 408). The set of pose data may correspond to the pose information (Alpha parameters) in Table 2 of Fig. 3 provided by robotic arm encoders. Step 408 may be carriedout substantially simultaneously with step 404. For example, capturing an image in step 404 may automatically trigger the system to record (store to memory) the current pose of each robotic arm 116 so that each image is matched to the pose of the robotic arm used to capture that image.

[0084] The method 400 may further comprise determining, within each image, a location of the calibration object 204 to yield a set of location data (step 412). The set of location data may correspond to the location information in Table 2 of Fig. 3. Determining the location of the calibration object 204 in an image may comprise using image processing to differentiate the calibration object 204 from its surroundings and then determining or calculating a center of the calibration object 204 (e.g., using an average function) so that the set of location data includes coordinates of the center of the calibration object 204 within each image. As shown in Table 2, the center of the calibration object 204 may be recorded (stored to memory) as an X-Y coordinate. Here, a dimension of the calibration object 204 may also be determined and recorded for each image. The dimension determined at this stage may correspond to the known dimension of the object from step 404. In the example where the calibration object 204 is a sphere, a diameter D of the sphere is determined in each image. Step 412 may occur in parallel with and / or substantially simultaneously with steps 404 and 408. For example, capturing an image may trigger recordation of the pose information in step 408 as well as the determination in step 412.

[0085] The method 400 may then include calibrating the multi-arm robotic system or verifying calibration of the multi-arm robotic system based on the set of pose data and the set of location data (step 416). The calibration or verification of calibration may be carried out in accordance with the discussion of Fig. 3, where the pose data and location data as well as the known dimension of the calibration object 204 are used to solve for unknown parameters (i.e., calibration parameters) of the multi-arm system. That is, prior to calibration or prior to verifying the calibration in step 416, the multi-arm robotic system has N number of unknown parameters with the number N being based on a number of degrees of freedom of the first and second robotic arms. In addition, as described with reference to Fig. 3, a number of the plurality of images to be captured is based on the N number of unknown parameters.

[0086] For example, upon completion of steps 404 to step 412, the set of location data and the set of pose data form a matrix that associates the pose data for a respective image with the center of the calibration object for the respective image, as shown by Table 2. Then, calibrating the multiarm robotic system or verifying the calibration of the multi-arm robotic system may comprise usingthe matrix to solve for unknown parameters of the first robotic arm and the second robotic arm. Solving for the unknown parameters may comprise apply a fitting algorithm, such a least square algorithm. Once all of the relevant information in Table 2 is collected or determined (and fitted according to a fitting algorithm, if applicable), the translation and rotation parameters from one robot joint to the next are solved for to complete the calibration or verification. Here, all estimations of arm positions are verified to one another and all estimations of the dimension of the calibration object 204 are verified to the known value of the dimension.

[0087] The present disclosure encompasses embodiments of the method 400 that comprise more or fewer steps than those described above, and / or one or more steps that are different than the steps described above.

[0088] Fig. 5 depicts a method 500 that may be used to calibrate a multi-arm robotic system according to at least one embodiment of the present disclosure.

[0089] The method 500 (and / or one or more steps thereof) may be carried out or otherwise performed, for example, by at least one processor. The at least one processor may be the same as or similar to the processor(s) 104 of the computing device 102 described above. The at least one processor may be part of a robot (such as a robot 114) or part of a navigation system (such as a navigation system 118). A processor other than any processor described herein may also be used to execute the method 500. The at least one processor may perform the method 400 by executing instructions stored in a memory such as the memory 106. The instructions may correspond to one or more steps of the method 500 described below. The instructions may cause the processor to execute one or more algorithms, such as the algorithms 124, which may include one or more algorithms for calibrating and / or verifying calibration.

[0090] The method 500 may include receiving a set of pose data that is indicative of a pose of a first robotic arm 116-1 and a pose of a second robotic arm 116-2 when each image of a plurality of images of a calibration object 204 is captured (Step 504). As noted herein, the calibration object has a known dimension, and each image is captured from a different perspective relative to the calibration object with a first imager 112A attached to the first robotic arm and a second imager 112B attached to the second robotic arm. The method 500 may further include receiving a set of location data that is indicative of a location of the calibration object within each image (step 508). As may be appreciated, the pose data and location data from steps 504 and 508 may correspond to the data from Table 2 in Fig. 3 and be generated / recorded in the same or similar as described withreference to Figs. 3 and 4. The method 500 may then include calibrating the multi-arm robotic system or verifying calibration of the multi-arm robotic system based on the set of pose data and the set of location data (step 512). Step 512 may be carried out in the same or similar manner as step 416, where the set of location data and the set of pose data form a matrix that associates the pose of the first robotic arm and the pose of the second robotic arm for a respective image with the center of the calibration object for the respective image, and where the matrix is used to solve for unknown parameters of the first robotic arm and the second robotic arm.

[0091] Although embodiments of the present disclosure have been described with respect calibrating and verifying calibration of robotic arms, it should be appreciated that the same concepts may be applied to calibrate or verify calibration of components that are later attached to the robotic arms, such as tools (end effectors), tool changer, and / or the like. In some examples, the concepts described herein enable measurement of tool wearing in the field.

[0092] As noted above, the present disclosure encompasses methods with fewer than all of the steps identified in the figures and the corresponding description of the methods, as well as methods that include additional steps beyond those identified in the figures and the corresponding description of the methods. The present disclosure also encompasses methods that comprise one or more steps from one method described herein, and one or more steps from another method described herein. Any correlation described herein may be or comprise a registration or any other correlation.

[0093] The foregoing is not intended to limit the disclosure to the form or forms disclosed herein. In the foregoing Detailed Description, for example, various features of the disclosure are grouped together in one or more aspects, embodiments, and / or configurations for the purpose of streamlining the disclosure. The features of the aspects, embodiments, and / or configurations of the disclosure may be combined in alternate aspects, embodiments, and / or configurations other than those discussed above. This method of disclosure is not to be interpreted as reflecting an intention that the claims require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed aspect, embodiment, and / or configuration. Thus, the following claims are hereby incorporated into this Detailed Description, with each claim standing on its own as a separate preferred embodiment of the disclosure.

[0094] Moreover, though the foregoing has included description of one or more aspects, embodiments, and / or configurations and certain variations and modifications, other variations, combinations, and modifications are within the scope of the disclosure, e.g., as may be within the skill and knowledge of those in the art, after understanding the present disclosure. It is intended to obtain rights which include alternative aspects, embodiments, and / or configurations to the extent permitted, including alternate, interchangeable and / or equivalent structures, functions, ranges or steps to those claimed, whether or not such alternate, interchangeable and / or equivalent structures, functions, ranges or steps are disclosed herein, and without intending to publicly dedicate any patentable subject matter.

[0095] The following Examples provide various embodiments and aspects of the invention.

[0096] Example (1). A system for calibrating a multi-arm robotic system, comprising: memory including instructions; and at least one processor that executes the instructions to: receive a set of pose data that is indicative of a pose of a first robotic arm and a pose of a second robotic arm when each image of a plurality of images of a calibration object is captured, wherein the calibration object has a known dimension, and wherein each image is captured from a different perspective relative to the calibration object with a first imager attached to the first robotic arm and a second imager attached to the second robotic arm; receive a set of location data that is indicative of a location of the calibration object within each image; and calibrate the multi-arm robotic system or verify calibration of the multi-arm robotic system based on the set of pose data and the set of location data.

[0097] Example (2). The system of Example (1), wherein the set of location data is indicative of a location of a center of the calibration object within each image.

[0098] Example (3). The system of Example (1) or (2), wherein the set of location data includes coordinates of the center of the calibration object within each image.

[0099] Example (4). The system of one or more of Examples (1) to (3), wherein the calibration object comprises a sphere and the known dimension comprises a diameter of the sphere.

[0100] Example (5). The system of one or more of Examples (1) to (4), wherein the set of location data and the set of pose data form a matrix that associates the pose of the first robotic arm and the pose of the second robotic arm for a respective image with the center of the calibration object for the respective image.

[0101] Example (6). The system of one or more of Examples (1) to (5), wherein the memory includes instructions that the at least one processor executes to calibrate the multi-arm robotic system or verify the calibration of the multi-arm robotic system using the matrix to solve for unknown parameters of the first robotic arm and the second robotic arm.

[0102] Example (7). The system of one or more of Examples (1) to (6), wherein the memory includes instructions that the at least one processor executes to cause the first and second imagers to capture the plurality of images by: capturing a first image of the calibration object with the first and second robotic arms in respective first poses; and capturing a second image of the calibration object with at least one of the first robotic arm and second robotic arm in a respective second pose.

[0103] Example (8). The system of one or more of Examples (1) to (7), wherein the memory includes instructions that the at least one processor executes to cause the first and second imagers to capture the plurality of images by: capturing a first image of the calibration object with the first and second robotic arms in respective first poses with the first imager acting as a transmitter and the second imager acting as a receiver; and capturing a second image of the calibration object with the first and second robotic arms in the respective first poses with the first imager acting as the receiver and the second imager acting as the transmitter.

[0104] Example (9). The system of one or more of Examples (1) to (8), wherein, prior to calibration or prior to verifying the calibration, the multi-arm robotic system has N number of unknown parameters with the number N being based on a number of degrees of freedom of the first and second robotic arms.

[0105] Example (10). The system of one or more of Examples (1) to (9), wherein a number of the plurality of images to be captured is based on the N number of unknown parameters.

[0106] Example (11). The system of one or more of Examples (1) to (10), wherein the memory includes instructions that the at least one processor executes to solve for the unknown parameters by applying a fitting algorithm.

[0107] Example (12). The system of one or more of Examples (1) to (11), wherein the fitting algorithm comprises a least square algorithm.

[0108] Example (13). A method for calibrating a multi-arm robotic system, comprising: capturing a plurality of images of a calibration object having a known dimension with each image being captured from a different perspective relative to the calibration object, wherein each image is captured with a first imager attached to a first robotic arm and a second imager attached to asecond robotic arm; recording, for each captured image, pose data that is indicative of a pose of each of the first robotic arm and the second robotic arm to yield a set of pose data; determining, within each image, a location of the calibration object to yield a set of location data; and calibrating the multi-arm robotic system or verifying calibration of the multi-arm robotic system based on the set of pose data and the set of location data.

[0109] Example (14). The method of Example (13), wherein determining a location of the calibration object within each image comprises a determining a center of the calibration object.

[0110] Example (15). The method of Example (13) or (14), wherein the set of location data includes coordinates of the center of the calibration object within each image.

[0111] Example (16). The method of one or more of Examples (13) to (15), wherein the calibration object comprises a sphere and the known dimension comprises a diameter of the sphere.

[0112] Example (17). The method of one or more of Examples (13) to (16), wherein the set of location data and the set of pose data form a matrix that associates the pose data for a respective image with the center of the calibration object for the respective image.

[0113] Example (18). The method of one or more of (13) to (17), wherein calibrating the multiarm robotic system or verifying the calibration of the multi-arm robotic system comprises using the matrix to solve for unknown parameters of the first robotic arm and the second robotic arm.

[0114] Example (19). A system for calibrating a multi-arm robotic system, comprising: a first robotic arm having a first imager attached thereto; a second robotic arm having a second imager attached thereto; a calibration object having a known dimension; memory including instructions; and at least one processor that executes the instructions to: cause the first imager and the second imager to capture a plurality of images of the calibration object such that each image is captured from a different perspective relative to the calibration object; record, for each captured image, pose data that is indicative of a pose of each of the first robotic arm and the second robotic arm to yield a set of pose data; determine, within each image, a location of the calibration object to yield a set of location data; and calibrate the multi-arm robotic system or verify calibration of the multi-arm robotic system based on the set of pose data and the set of location data.

[0115] Example (20). The system of Example (19), wherein the at least one processor causes the first and second imagers to capture the plurality of images by: causing capture of a first image of the calibration object with the first and second robotic arms in respective first poses with the first imager acting as a transmitter and the second imager acting as a receiver; causing capture of asecond image of the calibration object with the first and second robotic arms in the respective first poses with the first imager acting as the receiver and the second imager acting as the transmitter; and causing capture of a third image of the calibration object with at least one of the first and second robotic arms in a second pose.

Claims

CLAIMSWhat is claimed is:

1. A system for calibrating a multi-arm robotic system, comprising: memory including instructions; and at least one processor that executes the instructions to: receive a set of pose data that is indicative of a pose of a first robotic arm and a pose of a second robotic arm when each image of a plurality of images of a calibration object is captured, wherein the calibration object has a known dimension, and wherein each image is captured from a different perspective relative to the calibration object with a first imager attached to the first robotic arm and a second imager attached to the second robotic arm; receive a set of location data that is indicative of a location of the calibration object within each image; and calibrate the multi-arm robotic system or verify calibration of the multi-arm robotic system based on the set of pose data and the set of location data.

2. The system of claim 1, wherein the set of location data is indicative of a location of a center of the calibration object within each image.

3. The system of claim 1 or 2, wherein the set of location data includes coordinates of the center of the calibration object within each image.

4. The system of one or more of claims 1 to 3, wherein the calibration object comprises a sphere and the known dimension comprises a diameter of the sphere.

5. The system of one or more of claims 1 to 4, wherein the set of location data and the set of pose data form a matrix that associates the pose of the first robotic arm and the pose of the second robotic arm for a respective image with the center of the calibration object for the respective image.

6. The system of claim 5, wherein the memory includes instructions that the at least one processor executes to:calibrate the multi-arm robotic system or verify the calibration of the multi-arm robotic system using the matrix to solve for unknown parameters of the first robotic arm and the second robotic arm.

7. The system of one or more of claims 1 to 6, wherein the memory includes instructions that the at least one processor executes to cause the first and second imagers to capture the plurality of images by: capturing a first image of the calibration object with the first and second robotic arms in respective first poses; and capturing a second image of the calibration object with at least one of the first robotic arm and second robotic arm in a respective second pose.

8. The system of one or more of claims 1 to 7, wherein the memory includes instructions that the at least one processor executes to cause the first and second imagers to capture the plurality of images by: capturing a first image of the calibration object with the first and second robotic arms in respective first poses with the first imager acting as a transmitter and the second imager acting as a receiver; and capturing a second image of the calibration object with the first and second robotic arms in the respective first poses with the first imager acting as the receiver and the second imager acting as the transmitter.

9. The system of one or more of claims 1 to 8, wherein, prior to calibration or prior to verifying the calibration, the multi-arm robotic system has N number of unknown parameters with the number N being based on a number of degrees of freedom of the first and second robotic arms.

10. The system of claim 9, wherein a number of the plurality of images to be captured is based on the N number of unknown parameters.

11. The system of claim 9, wherein the memory includes instructions that the at least one processor executes to:solve for the unknown parameters by applying a fitting algorithm.

12. The system of claim 11, wherein the fitting algorithm comprises a least square algorithm.

13. A method for calibrating a multi-arm robotic system, comprising: capturing a plurality of images of a calibration object having a known dimension with each image being captured from a different perspective relative to the calibration object, wherein each image is captured with a first imager attached to a first robotic arm and a second imager attached to a second robotic arm; recording, for each captured image, pose data that is indicative of a pose of each of the first robotic arm and the second robotic arm to yield a set of pose data; determining, within each image, a location of the calibration object to yield a set of location data; and calibrating the multi-arm robotic system or verifying calibration of the multi-arm robotic system based on the set of pose data and the set of location data.

14. The method of claim 13, wherein determining a location of the calibration object within each image comprises a determining a center of the calibration object.

15. The method of claim 13 or 14, wherein the set of location data includes coordinates of the center of the calibration object within each image.

16. The method of one or more of claims 13 to 15, wherein the calibration object comprises a sphere and the known dimension comprises a diameter of the sphere.

17. The method of one or more of claims 13 to 16, wherein the set of location data and the set of pose data form a matrix that associates the pose data for a respective image with the center of the calibration object for the respective image.

18. The method of claim 17, wherein calibrating the multi-arm robotic system or verifying the calibration of the multi-arm robotic system comprises using the matrix to solve for unknown parameters of the first robotic arm and the second robotic arm.

19. A system for calibrating a multi-arm robotic system, comprising: a first robotic arm having a first imager attached thereto; a second robotic arm having a second imager attached thereto; a calibration object having a known dimension; memory including instructions; and at least one processor that executes the instructions to: cause the first imager and the second imager to capture a plurality of images of the calibration object such that each image is captured from a different perspective relative to the calibration object; record, for each captured image, pose data that is indicative of a pose of each of the first robotic arm and the second robotic arm to yield a set of pose data; determine, within each image, a location of the calibration object to yield a set of location data; and calibrate the multi-arm robotic system or verify calibration of the multi-arm robotic system based on the set of pose data and the set of location data.

20. The system of claim 19, wherein the at least one processor causes the first and second imagers to capture the plurality of images by: causing capture of a first image of the calibration object with the first and second robotic arms in respective first poses with the first imager acting as a transmitter and the second imager acting as a receiver; causing capture of a second image of the calibration object with the first and second robotic arms in the respective first poses with the first imager acting as the receiver and the second imager acting as the transmitter; and causing capture of a third image of the calibration object with at least one of the first and second robotic arms in a second pose.

Citation Information

Patent Citations

  • Rapid double-mechanical-arm base coordinate system calibration method

    CN110405731A

  • Calibration method and device for relative spatial position relation of multiple robots

    CN111452048A

  • Multi-mechanical-arm base coordinate system calibration method based on visual marks

    CN114227693A

  • Method of obtaining the relation between coordinate systems of two robots uses imaging cameras on each robot directed at three marks for different robot positions

    DE102006004153A1