Method and apparatus for target localization and surgical robot
By using clamps as physical constraints in fibular localization, the position of the target object is optimized, solving the problem of low positioning accuracy of visual sensors, achieving precise positioning of the fibula, and improving the accuracy of fibular mandibular reconstruction surgery.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SHANGHAI NINTH PEOPLES HOSPITAL SHANGHAI JIAO TONG UNIV SCHOOL OF MEDICINE
- Filing Date
- 2023-02-21
- Publication Date
- 2026-06-23
AI Technical Summary
In existing technologies, the positioning accuracy is low and errors exist when using visual sensors such as depth cameras or 3D cameras for fibular localization.
After initial positioning via an image acquisition device, the position of the target object is optimized using a fixture as a physical constraint. The current position of the target object is iteratively adjusted so that the contact surface relationship between the target object and the fixture meets preset conditions, thereby achieving precise positioning.
This improved the accuracy of fibular positioning, reduced positioning errors, and ensured the precision of fibular mandibular reconstruction surgery.
Smart Images

Figure CN116077189B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of robotics, and in particular to a method and apparatus for target localization and a surgical robot. Background Technology
[0002] Surgical robots are becoming increasingly common. Using robots to assist in surgical operations can not only reduce the workload of surgeons, but also improve the accuracy of operations to a certain extent.
[0003] For example, the fibular mandibular reconstruction surgical robot provides a new approach to mandibular reconstruction surgery. This method not only reduces the workload of the surgeon but also achieves higher osteotomy precision than manual operation. Fibular localization is a crucial preparatory step for robotic mandibular reconstruction. Currently, fibular localization is mostly achieved using visual sensors, including depth cameras or 3D cameras. However, using these peripheral devices introduces new errors into the localization results, leading to lower sensor localization accuracy. Summary of the Invention
[0004] One objective of this application is to propose a method for locating a target object. After obtaining an initial position by using an existing image acquisition device (such as a depth camera or a 3D camera) to initially locate the target object, the method further optimizes the initial positioning result by using a clamp for holding the target object as a surrounding physical constraint, and finally obtains a precise positioning of the target object.
[0005] In some embodiments, a method for locating a target object is provided, wherein the target object is positioned by a clamp, the method comprising:
[0006] The current position of the target object and the position of the clamp are determined based on the image acquisition device. The description of the current position or position of the object in this application includes the object's shape information and pose information.
[0007] Determine the optimization objective for the positional relationship between the target object and the fixture;
[0008] Based on the optimization objective, the current position of the target object is optimized until the optimization objective is satisfied to obtain the target position of the target object, and the target position is used to locate the target object.
[0009] In some embodiments, the target object has a defined number of contact surfaces with each of the clamps;
[0010] The step of optimizing the current position of the target object based on the optimization objective until the target object's position is satisfied includes:
[0011] Step (1): Determine the first set of points based on the current position of the target object and the positional relationship between each contact surface;
[0012] Step (2): Move each point in the first point set until the positional relationship between each point and its corresponding contact surface satisfies the preset conditions, thereby obtaining the second point set;
[0013] Step (3): Perform registration calculation on the first point set and the second point set to obtain the transformation matrix;
[0014] Step (4): Based on the transformation matrix, perform pose transformation on the current position of the target object to update the current position of the target object;
[0015] Step (5): Determine whether the current position of the target object satisfies the optimization objective; if yes, then determine the current position as the target position; if no, repeat steps (1) to (5).
[0016] In some embodiments, determining the first set of points based on the current position of the target object and the positional relationship of each contact surface includes:
[0017] The point with the smallest distance from the current position of the target object to each of the contact surfaces is selected to form the first point set.
[0018] In some embodiments, moving each point in the first set of points until the positional relationship between each point and its corresponding contact surface satisfies a preset condition includes:
[0019] Move each point in the first point set along the normal to its corresponding contact surface until the distance between each point and its corresponding contact surface is zero.
[0020] In some embodiments, the optimization objective is calculated based on the sum of the squares of the shortest distances from the current position of the target object to each contact surface. When the target value is less than a preset threshold, it is determined that the optimization objective is met.
[0021] In some embodiments, the fixture is provided with positioning marks, and the position of the fixture is determined by identifying the positioning marks.
[0022] In some embodiments, the location marker is a QR code.
[0023] This application also provides a target positioning device, including a memory, a processor, and a computer program stored in the memory. The processor executes the computer program to implement the steps of the method provided in the above embodiments. The method includes: determining the current position of the target object and the position of a fixture based on an image acquisition device; determining an optimization target for the positional relationship between the target object and the fixture; optimizing the current position of the target object based on the optimization target until the optimization target is satisfied to obtain the target position of the target object, wherein the target position is used to locate the target object.
[0024] This application also provides a computer-readable storage medium storing a computer program or instructions thereon, which, when executed by a processor, implements the steps of the method provided in the above embodiments. The method includes: determining the current position of the target object and the position of the fixture based on an image acquisition device; determining an optimization target for the positional relationship between the target object and the fixture; optimizing the current position of the target object based on the optimization target until the optimization target is satisfied to obtain the target position of the target object, wherein the target position is used to locate the target object.
[0025] This application also provides a computer program product, including a computer program or instructions, which, when executed by a processor, implement the steps of the method provided in the above embodiments. The positioning method includes: determining the current position of the target object and the position of the fixture based on an image acquisition device; determining an optimization target for the positional relationship between the target object and the fixture; optimizing the current position of the target object based on the optimization target until the optimization target is met to obtain the target position of the target object, wherein the target position is used to locate the target object.
[0026] This application also provides a surgical robot for fibular mandibular reconstruction. The surgical robot uses the method provided in the above embodiments to locate the fibula. The method includes: determining the current position of the fibula and the position of the clamp based on an image acquisition device; determining an optimization target for the positional relationship between the fibula and the clamp; optimizing the current position of the fibula based on the optimization target until the optimization target is met to obtain the target position of the fibula, wherein the target position is used to locate the fibula.
[0027] The method and apparatus for target object positioning of the present invention, based on the current position of the target object obtained by the image acquisition device, uses the clamp used to hold the target object as the surrounding physical constraint, iteratively optimizes the current position of the target object, and converges its position to a position close to the actual physical position, thereby obtaining a precise positioning result of the target object.
[0028] Additional aspects and advantages of this application will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of this application. Attached Figure Description
[0029] The above and / or additional aspects and advantages of this application will become apparent and readily understood from the description of the embodiments taken in conjunction with the following drawings, wherein:
[0030] Figure 1 This is a flowchart illustrating a method for locating a target object provided in one embodiment of this application;
[0031] Figure 2 This is a schematic diagram of the structure of a clamp holding the fibula according to an embodiment of this application;
[0032] Figure 3 This is another schematic diagram of a clamp holding the fibula according to one embodiment of this application. The figure only shows the clamp located on one side of the fibula. Figure 2 yes Figure 3 Top view;
[0033] Figure 4 This is a schematic diagram of the positional relationship between the fibula and the clamp obtained by image acquisition according to an embodiment of this application;
[0034] Figure 5 This is a flowchart illustrating the current position of an optimized target object provided in one embodiment of this application;
[0035] Figure 6 This is a flowchart illustrating the fibular positioning process in one embodiment of a surgical robot for fibular-mandibular reconstruction.
[0036] Figure 7 The illustration shows a functional module of an exemplary system that can be used in various embodiments of the present invention. Detailed Implementation
[0037] The present application will now be described in further detail with reference to the accompanying drawings.
[0038] In a typical configuration of the present invention, the terminal, the device of the service network, and the trusted party all include one or more processors (e.g., a central processing unit (CPU)), input / output interfaces, network interfaces, and memory.
[0039] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash memory. Memory is an example of computer-readable media.
[0040] Computer-readable media, including both permanent and non-permanent, removable and non-removable media, can store information using any method or technology. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PCM), programmable random access memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transfer medium that can be used to store information that can be accessed by a computing device.
[0041] The devices referred to in this invention include, but are not limited to, user equipment, network equipment, or devices composed of user equipment and network equipment integrated through a network. The user equipment includes, but is not limited to, any mobile electronic product capable of human-computer interaction (e.g., via a touchpad), such as smartphones and tablets. These mobile electronic products can use any operating system, such as Android or iOS. The network equipment includes an electronic device capable of automatically performing numerical calculations and information processing according to pre-set or stored instructions. Its hardware includes, but is not limited to, microprocessors, application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), and embedded devices. The network equipment includes, but is not limited to, computers, network hosts, single network servers, multiple network server clusters, or clouds composed of multiple servers. Here, a cloud consists of a large number of computers or network servers based on cloud computing, where cloud computing is a type of distributed computing, consisting of a virtual supercomputer composed of a group of loosely coupled computer clusters. The network includes, but is not limited to, the Internet, wide area network, metropolitan area network, local area network, VPN network, and wireless ad hoc network. Preferably, the device can also be a program running on the user equipment, network device, or a device formed by integrating user equipment and network device, network device, touch terminal, or network device and touch terminal through a network.
[0042] Of course, those skilled in the art should understand that the above-described devices are merely examples, and other existing or future devices that are applicable to this invention should also be included within the scope of protection of this invention, and are hereby incorporated by reference.
[0043] In the description of embodiments of the present invention, "a plurality of" means two or more, unless otherwise explicitly specified.
[0044] The target localization method provided in this application can be applied to robots, which can be medical robots, such as surgical robots for fibular mandibular reconstruction, for localizing the fibula.
[0045] like Figure 1 The diagram shown is a flowchart illustrating a target location method provided in one embodiment, including the following steps:
[0046] Step 10: Determine the current position of the target object and the position of the fixture based on the image acquisition device.
[0047] The target object is positioned using clamps, as in fibular mandibular reconstruction surgery, such as... Figure 2 As shown, the fibula 100 is positioned by several clamps 200 on both sides, that is, the fibula 100 and the clamps 200 are fixed in relative positions.
[0048] The image acquisition device can be a depth camera or a 3D camera. For example, the camera can be mounted on a robot. In the prior art, the camera is usually set to be able to move or rotate within a certain range, so that the target object can be captured from multiple angles by the camera on the robot. The current position of the target object is obtained by registering the multiple images (or point clouds) obtained (the current position can also be called the initial position). In subsequent steps, the current position will be optimized and updated by physical constraints to meet the optimization target, and finally used for the localization of the target object.
[0049] In some embodiments, the fixture is provided with positioning marks, and since the shape of the fixture is known and well-defined, the position of the fixture can be obtained by identifying the positioning marks on it.
[0050] In some embodiments, the positioning markers on the clamp are QR codes, such as in an example used with a fibular mandibular reconstruction surgical robot. Figure 2 and Figure 3 As shown, a QR code is set on the upper surface 210 of the clamp 200. The pose of the clamp 200 can be identified based on the QR code image obtained by the camera. For example, the pose of the QR code can be identified using the OpenCV library. Since the shape of the clamp 200 and its relative position with the QR code are known, the position of the clamp 200 can be determined.
[0051] In other embodiments, the current position of the target object can also be determined by other means, which are not limited in this application. The purpose of this application is to optimize and adjust the initial position of the target object coarsely to obtain a more accurate target position and achieve precise positioning of the target object.
[0052] Step 20: Determine the optimization objective for the positional relationship between the target object and the fixture.
[0053] The clamps are used to hold the target object. The number and position of the clamps can be set according to the shape and size of the target object. An optimization target is set based on the positional relationship between the target object and the clamps, that is, the position of the target object is constrained by the position of the clamps. The clamps used to constrain the target object can be all the clamps holding the target object, or some of the clamps holding the target object. The method in this application is applicable to both of these cases.
[0054] All clamps that hold a target object will come into contact with the target object. Based on the shape characteristics of the target object, the shape of the clamp can be set to have a specified contact surface with the target object. That is, there is a specific surface on the clamp. When the clamp holds the target object, the target object will inevitably come into contact with this surface, which is defined as the contact surface on the clamp.
[0055] The camera-based positioning method used for the target object described above has limited accuracy and can only serve as coarse positioning. However, for the positioning of the fixture, since the shape of the fixture is known and positioning can be directly performed using positioning markers, such as QR codes, its accuracy is much higher than the initial positioning of the target object. Therefore, the position of the fixture can be used as a reference to optimize the position of the target object. Specifically, the current position of the target object is optimized so that the distance between it and each contact surface of the fixture meets the preset optimization target.
[0056] For example, in an example that works in conjunction with a surgical robot for fibular mandibular reconstruction, refer to Figure 2 and Figure 3 The clamp 200 is provided with a rectangular groove 220, and the two side walls of the rectangular groove 220 define contact surfaces 221 and 222, respectively. For the fibula 100 and the clamp 200, when the clamp 200 holds the fibula 100, the fibula 100 will contact contact surfaces 221 and 222. However, the initial position of the fibula 100 obtained by camera acquisition may not match the actual position of the clamp 200. That is, the initial position of the fibula 100 may not be in contact with the clamp 200, or it may intersect with the clamp 200, such as... Figure 4 As shown, the initial position of the fibula 100 obtained by camera acquisition and registration does not match the position of the clamp 200 in the actual entity. Specifically, the fibula 100 has a gap with the contact surface 221, and the fibula 100 intersects with the contact surface 222. Therefore, the current position of the fibula 100 can be optimized and adjusted to make its positional relationship with the clamp 200, and specifically with each contact surface, conform to the actual entity.
[0057] In some embodiments, the optimization objective is calculated based on the sum of the squares of the shortest distances from the current position of the target object to each contact surface. When the target value is less than a preset threshold, the optimization objective is determined to be satisfied.
[0058] Step 30: Optimize the current position of the target object based on the optimization objective until the optimization objective is met to obtain the target position of the target object. This target position is used to locate the target object.
[0059] By iteratively optimizing the current position of the target object, it can ultimately satisfy the optimization objective, such as... Figure 5 As shown, the specific steps include:
[0060] Step 31: Determine the first point set based on the current position of the target object and the positional relationship between each contact surface.
[0061] In some embodiments, the point at the current position of the target object that is closest to each contact surface is selected to form a first point set.
[0062] Step 32: Move each point in the first point set until the positional relationship between each point and its corresponding contact surface satisfies the preset conditions, thereby obtaining the second point set.
[0063] In some embodiments, each point in the first point set is moved along the normal of its corresponding contact surface until the distance between each point and its corresponding contact surface is zero, and the moved points form the second point set.
[0064] Step 33: Perform registration calculations on the first point set and the second point set to obtain the transformation matrix.
[0065] Step 34: Based on the above transformation matrix, perform pose transformation on the current position of the target object to update the current position of the target object.
[0066] Step 35: Determine whether the current position of the target object meets the optimization objective; if so, determine the current position of the target object as the target position; if not, repeat steps 31 to 35.
[0067] Once the target location is determined, that location is used to locate the target object.
[0068] The following is an embodiment of applying the target object localization method of this application to a fibular mandibular reconstruction surgical robot, providing precise localization of the fibula during surgery, wherein the localization process for the fibula is as follows: Figure 6 As shown.
[0069] refer to Figure 2 and Figure 3 The fibula 100 is held by a number of clamps 200 arranged in pairs on the left and right sides. The clamps 200 are provided with rectangular grooves 220 and define contact surfaces 221 and 222. When the fibula 100 is held by the clamps 200, both contact surfaces 211 and 222 abut against the fibula 100, that is, the fibula 100 is in contact with contact surfaces 211 and 222 respectively.
[0070] Using a camera mounted on the surgical robot, such as a RealSense camera, multi-angle images of the fibula 100 are acquired. The current position of the fibula 100 is obtained by registering the multiple images (or point clouds) (this current position can also be called the initial position).
[0071] A QR code is provided on the upper surface 210 of the fixture 200. The pose of the QR code is identified by the image of the QR code. In this embodiment, the OpenCV library is used to identify the pose of the QR code. Since the shape of the fixture 200 is known and its relative position with the QR code is also known, the position of the fixture 200 can be determined.
[0072] The number of clamps 200 is denoted as N, where N is a positive integer. For the fibula 100 and the clamps 200, there are a total of 2N contact surfaces that will come into contact with the fibula 100. However, the current position of the fibula 100 and the position of the clamps 200 obtained by camera acquisition may not conform to the above-mentioned situation of the entity. That is, the current position of the fibula 100 may not be in contact with the contact surface of the clamps 200, may intersect with the contact surface of the clamps 200, or may be tangent to the contact surface of the clamps 200. In other words, the current position of the fibula 100 and the position of the clamps 200 obtained by camera acquisition and registration do not conform to the actual situation of the entity.
[0073] In this embodiment, the target value of the optimization target for the position of the fibula 100 based on the position of the clamp 200 is calculated using the following formula:
[0074]
[0075] Where F is the target value, d represents the minimum distance from the fibula 100 to a contact surface at the current position, and n represents the number of contact surfaces. The optimization objective is determined by comparing the target value F with a preset threshold. In this embodiment, the threshold is set to 1 (mm). 2 When the target value F calculated based on the current position of fibula 100 is less than 1, it is considered to meet the optimization objective, and the current position can be used as the target position for locating fibula 100.
[0076] When the target value F calculated based on the current position of fibula 100 is greater than or equal to 1, the current position of fibula 100, specifically the pose of fibula 100, is optimized iteratively. During the iteration process, the smaller the target value F, the more the current position of fibula 100 gradually converges to the true value, that is, reflects its true physical position. The above iterative optimization process includes:
[0077] Step A: Find the point with the smallest distance from each contact surface at the current position of fibula 100, forming point set P1.
[0078] It should be noted that when the fibula 100 is not in contact with the contact surface, or when the fibula 100 is on the outer side of the contact surface, the distance between it and the contact surface is positive. When the fibula 100 intersects with the contact surface, then the fibula 100 will also be on the inner side of the contact surface, and the distance from that point to the contact surface is recorded as negative. (Refer to...) Figure 4 The diagram illustrates distances d and -d, where d is a positive number. Therefore, to find the point with the smallest distance from each contact surface, the numerical value of the distance can be directly used for judgment and selection.
[0079] Step B: Move each point in point set P1 along the normal of its corresponding contact surface until the distance between each point and its corresponding contact surface is zero. The moved points then form point set P2.
[0080] Step C: Perform registration calculations on point set P1 and point set P2 to obtain the transformation matrix T.
[0081] In this embodiment, the corresponding transformation matrix T is calculated using VTK landmark registration for point set P1 and point set P2.
[0082] Step D: Use the transformation matrix T to perform a pose transformation on the current position of fibula 100, thereby updating the current position of fibula 100.
[0083] Step E: Calculate the target value F based on the current position of fibula 100, and determine whether the target value F is less than 1. If so, it means that the error between the current position and the actual position is very small. Then, the current position of fibula 100 is used as the target position for positioning fibula 100. If not, repeat steps A to E.
[0084] The target object positioning method provided in the above embodiments obtains an initial position after the target object is initially positioned using an image acquisition device. Based on the clamp used to hold the target object as a surrounding physical constraint, the initial positioning result is optimized, and finally, a precise positioning result of the target object can be obtained.
[0085] In some embodiments, this application also provides a computer-readable storage medium storing a computer program or instructions thereon, which, when executed by a processor, implements the steps of the method provided in the above embodiments. The method includes: determining the current position of a target object and the position of a fixture based on an image acquisition device; determining an optimization target for the positional relationship between the target object and the fixture; optimizing the current position of the target object based on the optimization target until the optimization target is satisfied to obtain the target position of the target object, wherein the target position is used to locate the target object.
[0086] In some embodiments, this application also provides a computer program product, including a computer program or instructions, which, when executed by a processor, implement the steps of the method provided in the above embodiments. The method includes: determining the current position of a target object and the position of a fixture based on an image acquisition device; determining an optimization target for the positional relationship between the target object and the fixture; optimizing the current position of the target object based on the optimization target until the optimization target is met to obtain the target position of the target object, which is used to locate the target object.
[0087] In some embodiments, this application also provides a target positioning device, including a memory, a processor, and a computer program stored in the memory. The processor executes the computer program to implement the steps of the method provided in the above embodiments. The method includes: determining the current position of the target object and the position of the fixture based on an image acquisition device; determining an optimization target for the positional relationship between the target object and the fixture; optimizing the current position of the target object based on the optimization target until the optimization target is satisfied to obtain the target position of the target object, which is used to locate the target object.
[0088] Figure 7 Exemplary systems that can be used to implement the various embodiments described in this invention are shown.
[0089] like Figure 7 As shown, in some embodiments, system 1000 can function as any of the user terminal devices described in each of the embodiments. In some embodiments, system 1000 may include one or more computer-readable media having instructions (e.g., system memory or NVM / storage device 1020) and one or more processors (e.g., one or more processors 1005) coupled to the one or more computer-readable media and configured to execute the instructions to implement the module and thus perform the actions described in this invention.
[0090] In one embodiment, the system control module 1010 may include any suitable interface controller to provide any suitable interface to at least one of the processors 1005 and / or any suitable device or component communicating with the system control module 1010.
[0091] The system control module 1010 may include a memory controller module 1030 to provide an interface to the system memory 1015. The memory controller module 1030 may be a hardware module, a software module, and / or a firmware module.
[0092] System memory 1015 may be used, for example, to load and store data and / or instructions for system 1000. In one embodiment, system memory 1015 may include any suitable volatile memory, such as suitable DRAM. In some embodiments, system memory 1015 may include double data rate type quad synchronous dynamic random access memory (DDR4 SDRAM).
[0093] In one embodiment, the system control module 1010 may include one or more input / output (I / O) controllers to provide interfaces to the NVM / storage device 1020 and (one or more) communication interfaces 1025.
[0094] For example, the NVM / storage device 1020 may be used to store data and / or instructions. The NVM / storage device 1020 may include any suitable non-volatile memory (e.g., flash memory) and / or may include any suitable (one or more) non-volatile storage devices (e.g., one or more hard disk drives (HDDs), one or more optical disc drives (CDs), and / or one or more digital universal optical disc (DVD) drives).
[0095] NVM / storage device 1020 may include storage resources that are physically part of a device on which system 1000 is mounted, or that can be accessed by the device without necessarily being part of the device. For example, NVM / storage device 1020 may be accessed via a network through one or more communication interfaces 1025.
[0096] One or more communication interfaces 1025 may provide the system 1000 with an interface to communicate over one or more networks and / or with any other suitable device. The system 1000 may wirelessly communicate with one or more components of a wireless network in accordance with any of one or more wireless network standards and / or protocols.
[0097] In one embodiment, at least one of the processors 1005 may be logically packaged with one or more controllers of the system control module 1010 (e.g., memory controller module 1030). In one embodiment, at least one of the processors 1005 may be logically packaged with one or more controllers of the system control module 1010 to form a system-in-package (SiP). In one embodiment, at least one of the processors 1005 may be integrated with the logic of one or more controllers of the system control module 1010 on the same die. In one embodiment, at least one of the processors 1005 may be integrated with the logic of one or more controllers of the system control module 1010 on the same die to form a system-on-a-chip (SoC).
[0098] In various embodiments, system 1000 may be, but is not limited to, a server, workstation, desktop computing device, or mobile computing device (e.g., laptop computing device, handheld computing device, tablet computer, netbook, etc.). In various embodiments, system 1000 may have more or fewer components and / or different architectures. For example, in some embodiments, system 1000 includes one or more cameras, a keyboard, a liquid crystal display (LCD) screen (including a touchscreen display), a non-volatile memory port, multiple antennas, a graphics chip, an application-specific integrated circuit (ASIC), and a speaker.
[0099] It should be noted that the present invention can be implemented in software and / or a combination of software and hardware, for example, using an application-specific integrated circuit (ASIC), a general-purpose computer, or any other similar hardware device. In one embodiment, the software program of the present invention can be executed by a processor to implement the steps or functions described above. Similarly, the software program of the present invention (including associated data structures) can be stored in a computer-readable recording medium, such as RAM memory, a magnetic or optical drive, a floppy disk, or similar devices. Furthermore, some steps or functions of the present invention can be implemented in hardware, for example, as circuitry that works with a processor to perform the various steps or functions.
[0100] Furthermore, a portion of this invention can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide the methods and / or technical solutions according to the invention through the operation of the computer. Those skilled in the art will understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, installation package files, etc. Correspondingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executing the instructions, or the computer compiling the instructions and then executing the corresponding compiled program, or the computer reading and executing the instructions, or the computer reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to a computer.
[0101] Communication media include media through which communication signals containing, for example, computer-readable instructions, data structures, program modules, or other data are transmitted from one system to another. Communication media can include guided transmission media (such as cables and wires (e.g., optical fibers, coaxial cables, etc.)) and wireless (unguided transmission) media capable of propagating energy waves, such as sound, electromagnetic, RF, microwave, and infrared. Computer-readable instructions, data structures, program modules, or other data can be embodied as modulated data signals in, for example, wireless media (such as carrier waves or similar mechanisms embodied as part of spread spectrum technology). The term "modulated data signal" refers to a signal whose one or more characteristics are altered or set in a manner that encodes information in the signal. Modulation can be analog, digital, or a hybrid modulation technique.
[0102] By way of example and not limitation, computer-readable storage media may include volatile and non-volatile, removable and non-removable media implemented by any method or technique for storing information such as computer-readable instructions, data structures, program modules or other data. For example, computer-readable storage media include, but are not limited to, volatile memories such as random access memory (RAM, DRAM, SRAM); and non-volatile memories such as flash memory, various read-only memories (ROM, PROM, EPROM, EEPROM), magnetic and ferromagnetic / ferroelectric memories (MRAM, FeRAM); and magnetic and optical storage devices (hard disks, magnetic tapes, CDs, DVDs); or other media now known or hereafter developed capable of storing computer-readable information / data for use by a computer system.
[0103] Here, according to one embodiment of the present invention, an apparatus is included, the apparatus including a memory for storing computer program instructions and a processor for executing the program instructions, wherein when the computer program instructions are executed by the processor, the apparatus is triggered to run the methods and / or technical solutions based on the foregoing embodiments of the present invention.
[0104] It will be apparent to those skilled in the art that the present invention is not limited to the details of the exemplary embodiments described above, and that the invention can be implemented in other specific forms without departing from the spirit or essential characteristics of the invention. Therefore, the embodiments should be considered illustrative and non-limiting in all respects, and the scope of the invention is defined by the appended claims rather than the foregoing description. Thus, all variations falling within the meaning and scope of equivalents of the claims are intended to be embraced within the present invention. No reference numerals in the claims should be construed as limiting the scope of the claims. Furthermore, it is clear that the word "comprising" does not exclude other units or steps, and the singular does not exclude the plural. Multiple units or devices recited in the apparatus claims may also be implemented by a single unit or device in software or hardware. The terms "first," "second," etc., are used to indicate names and do not indicate any particular order.
Claims
1. A method of positioning a target object, the target object being positionally defined by a clamp, characterized by, The method comprises: determining the current position of the target object and the position of the clamp based on an image acquisition device, the target object and each of the clamps having a determined number of contact surfaces; determining an optimization target of the positional relationship between the target object and the clamps; positionally optimizing the current position of the target object based on the optimization target until the optimization target is met to obtain a target position of the target object, the target position being used for positioning the target object, wherein the step of determining the target position comprises: Step (1), determining a first point set based on the positional relationship between the current position of the target object and each of the contact surfaces; Step (2), moving each point in the first point set until the positional relationship between each point and its corresponding contact surface meets a predetermined condition, thereby obtaining a second point set; Step (3), performing registration calculation on the first point set and the second point set to obtain a conversion matrix; Step (4), performing pose transformation on the current position of the target object based on the conversion matrix, thereby updating the current position of the target object; Step (5), determining whether the current position of the target object meets the optimization target; if so, the current position is determined as the target position; if not, repeating steps (1) to (5).
2. The method of claim 1, wherein, The step of determining the first point set based on the positional relationship between the current position of the target object and each of the contact surfaces comprises: selecting the points on the current position of the target object that are closest to each of the contact surfaces to form the first point set.
3. The method of claim 1, wherein, The step of moving each point in the first point set until the positional relationship between each point and its corresponding contact surface meets a predetermined condition comprises: moving each point in the first point set along the normal of its corresponding contact surface until the distance between each point and its corresponding contact surface is zero.
4. The method of claim 1, wherein, The optimization target is a target value calculated based on the sum of the squares of the shortest distances from the current position of the target object to each contact surface, and when the target value is less than a predetermined threshold, it is determined that the optimization target is met.
5. The method of claim 1, wherein, The clamp is provided with a positioning marker, and the position of the clamp is determined by recognizing the positioning marker.
6. The method of claim 5, wherein, The positioning marker is a two-dimensional code.
7. A device for locating a target object, comprising a memory, a processor, and a computer program stored in the memory, characterized in that, The processor executes the computer program to implement the steps of the method of any one of claims 1 to 6.
8. A computer readable storage medium having stored thereon a computer program or instructions, characterized in that, The computer program or instructions are executed by the processor to implement the steps of the method of any one of claims 1 to 6.
9. A fibula mandible reconstruction surgery robot, characterized in that, The method of any one of claims 1 to 6 is used to position a fibula.