Reduction of inverse kinematics calculation time

By combining the analytical solver and numerical solver in the inverse kinematic calculation of the robot arm, the design value of the robot type generates analytical solutions and performs numerical solutions as seed values, the problem of long inverse kinematic calculation time is solved, and efficient real-time planning is achieved.

CN119927895APending Publication Date: 2025-05-06THE BOEING CO
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411340169.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-11-02
Filing Date
2024-09-25
Publication Date
2025-05-06

AI Technical Summary

Technical Problem

In the prior art, the inverse kinematic calculation time of the robot arm is longer, which affects the efficiency of real-time planning, especially since each robot arm has its own manufacturing length value, affecting the accuracy of the calculation.

Method used

The numerical solution is determined to achieve the desired position of the tool center point by generating an analytical solution of the connector parameters using an analytical solver based on the design value of the robot type and providing it as a seed value to the numerical solver.

Benefits of technology

It significantly reduces the inverse kinematic calculation time of the robot arm while maintaining the accuracy of the calculation, which is suitable for real-time planning requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119927895A_ABST
    Figure CN119927895A_ABST
Patent Text Reader

Abstract

The invention relates to inverse kinematics calculation time reduction. A method of reducing the calculation time of inverse kinematics of a robotic arm is presented. An analytic solution of the joint parameter is generated using an analytic solver based on the design value of the robot type, where the robot arm has the robot type, to achieve a desired position of the tool center point of the robot type. An analytical solution of the joint parameter is provided as a seed value to a numerical solver of a robot arm of the robot type. A numerical solution is determined using the numerical solver and the seed value, the numerical solution including joint parameters for the robotic arm to achieve a desired position of a tool center point of the robotic arm.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to inverse kinematics, and more particularly to reducing computation time for inverse kinematics of a robotic arm. Background Art

[0002] Robotic arm motion planning uses the calculation of inverse kinematics. For meaningful use, the calculation should be fast enough to allow real-time planning. However, each robotic arm has its own set of manufactured length values ​​for its respective components, which affects the accuracy of the calculation. Inverse kinematics solving using calibration parameters with factory values ​​can be orders of magnitude slower than available analytical solvers.

[0003] Therefore, it would be desirable to have methods and apparatus that take into account at least some of the above-mentioned problems as well as other possible problems.For example, it would be desirable to provide an inverse kinematics solution with reduced time but with desired accuracy. Summary of the invention

[0004] Embodiments of the present disclosure provide a method for reducing the computation time of inverse kinematics of a robot arm. An analytical solver based on design values ​​of a robot type is used to generate an analytical solution of joint parameters to achieve a desired position of a tool center point of the robot type. The robot arm has a robot type. The analytical solution of the joint parameters is provided as a seed value to a numerical solver of the robot arm of the robot type. A numerical solution is determined using the numerical solver and the seed value, the numerical solution including the joint parameters for the robot arm to achieve the desired position of the tool center point of the robot arm.

[0005] Another embodiment of the present disclosure provides a method for reducing the computation time of inverse kinematics of a robot arm. Design values ​​of components of a robot type are received. An analytical solver is developed using the design values. An analytical solution of joint parameters of the robot type is generated to achieve a desired position of a tool center point of the robot type. Factory values ​​of components of a robot arm of the robot type are determined. The factory values ​​and the analytical solution are provided as input to a numerical solver. A numerical solution including joint parameters of the robot arm is generated to achieve a desired position of a tool center point.

[0006] Another embodiment of the present disclosure provides a method for reducing the computation time of inverse kinematics of a robot arm. Using an analytical model, an analytical solution of joint parameters of a robot type is generated to achieve a desired position of a tool center point of the robot type, wherein the analytical model is formed using design lengths of components of the robot type. Factory values ​​of components of a robot arm of the robot type are determined. The factory values ​​and the analytical solution are provided as input to a numerical solver. A numerical solution including joint parameters of the robot arm is generated to achieve a desired position of a tool center point. The robot arm is moved according to the numerical solution to place a tool center point of the robot arm at a desired position.

[0007] The features and functions can be achieved independently in various embodiments of the present disclosure or may be combined in yet other embodiments, in which further details can be seen with reference to the following description and drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The novel features which are believed to be characteristic of the illustrative embodiments are set forth in the appended claims. However, the illustrative embodiments and their preferred modes of use, further objects and features will be best understood by reference to the following detailed description of illustrative embodiments of the present disclosure when read in conjunction with the accompanying drawings, in which:

[0009] Figure 1 is a diagram of an aircraft according to an illustrative embodiment;

[0010] Figure 2 is an illustration of a block diagram of a manufacturing environment according to an illustrative embodiment;

[0011] Figure 3 is an illustration of a robotic arm in a manufacturing environment according to an illustrative embodiment;

[0012] Figure 4 is a flow chart of a method of reducing computation time for inverse kinematics of a robotic arm according to an illustrative embodiment;

[0013] Figure 5 is a flow chart of a method of reducing computation time for inverse kinematics of a robotic arm according to an illustrative embodiment;

[0014] Figure 6 is a flow chart of a method of reducing computation time for inverse kinematics of a robotic arm according to an illustrative embodiment;

[0015] Figure 7 is an illustration of an aircraft manufacturing and service methodology in block diagram form in accordance with an illustrative embodiment; and

[0016] Figure 8 is an illustration of an aircraft in block diagram form in which illustrative embodiments may be implemented. DETAILED DESCRIPTION

[0017] Illustrative Examples recognize and take into account that in robotics, inverse kinematics is the process of calculating the joint angles required to reach a desired tip position. The robot arm has factory or "true" parameters and variables for the robot including angles and joint lengths.

[0018] The illustrative examples provide solvers that produce calibrated inverse kinematics solutions faster than conventional numerical-only solvers while giving the full solution set of analytical solvers. The illustrative methods provided reduce calibrated inverse kinematics computation time. Implementation of the algorithms in the illustrative examples allows accurate robot movement computation without large motion planning computation time for scenarios such as offline planning where thousands of such computations need to be performed.

[0019] Now turn to Figure 1 , an illustration of an aircraft is depicted in accordance with an illustrative embodiment. Aircraft 100 has wing 102 and wing 104 attached to body 106. Aircraft 100 includes engine 108 attached to wing 102 and engine 110 attached to wing 104.

[0020] The body 106 has a tail section 112. Attached to the tail section 112 of the body 106 are a horizontal stabilizer 114, a horizontal stabilizer 116, and a vertical stabilizer 118.

[0021] Aircraft 100 is an example of an aircraft that may have parts manufactured using a robot that is controlled using inverse kinematics determined using the method of the illustrative examples. The inverse kinematics of the illustrative examples may be used to perform manufacturing operations on aircraft 100.

[0022] Now turn to Figure 2 , an illustration of a block diagram of a manufacturing environment is depicted in accordance with an illustrative embodiment. Manufacturing environment 200 has a robot arm 202. Robot arm 202 is of robot type 204. Robot type 204 is a design for a robot. Robot type 204 has design values ​​205 for a part 208. Robot arm 202 is a specific instance of robot type 204.

[0023] The robotic arm 202 has a tool center point 206. The tool center point 206 is the location where the robotic arm 202 performs manufacturing operations. The tool center point 206 may be referred to as an operating location. In order to perform manufacturing operations using the robotic arm 202, the tool center point 206 needs to be located at a desired location 226 in the manufacturing environment 200.

[0024] Robot arm 202 is formed from component 208. Component 208 of robot arm 202 includes plurality of pieces 210 connected by plurality of joints 220. In some illustrative examples, plurality of pieces 210 may be referred to as plurality of arm segments 212. Plurality of pieces 210 has plurality of design lengths 214. Plurality of design lengths 214 is the same as design value 205 for robot type 204. Plurality of pieces 210 has plurality of manufactured lengths 216.

[0025] Since factory values ​​218 for robot arm 202 include number of manufactured lengths 216, factory values ​​218 may also include angles of robot arm 202. In some illustrative examples, factory values ​​218 may be described using Denavi-Hartenberg parameters.

[0026] The difference between plurality of manufactured lengths 216 and plurality of designed lengths 214 results from manufacturing tolerances. Manufacturing variability results in the difference between plurality of designed lengths 214 for component 208 and plurality of manufactured lengths 216 for component 208 .

[0027] In this illustrative example, plurality of pieces 210 include first piece 230 and second piece 232. First piece 230 is connected to second piece 232 via joint 234. Second piece 232 is connected to base 246 via joint 236. Joint 234 takes the form of any desired type of joint. In some illustrative examples, joint 234 may take the form of a linear joint, a swivel joint, or a spherical joint. Joint 236 takes the form of any desired type of joint. In some illustrative examples, joint 236 may take the form of a linear joint, a swivel joint, or a spherical joint.

[0028] The first piece 230 has a design length 238. The design length 238 is one of the plurality of design lengths 214. The first piece 230 has a manufacturing length 242. The manufacturing length 242 is one of the plurality of manufacturing lengths 216. The difference between the design length 238 and the manufacturing length 242 is a result of manufacturing variability. The difference between the design length 238 and the manufacturing length 242 makes it difficult to perform inverse kinematics 248 on the robotic arm 202.

[0029] The second piece 232 has a design length 240. The design length 240 is one of the plurality of design lengths 214. The second piece 232 has a manufactured length 244. The manufactured length 244 is one of the plurality of manufactured lengths 216. The difference between the design length 240 and the manufactured length 244 is a result of manufacturing variability. The difference between the design length 240 and the manufactured length 244 makes it difficult to perform inverse kinematics 248 on the robotic arm 202.

[0030] Robotic arm 202 may be used to perform a manufacturing operation (such as manufacturing operation 224) on a part (such as part 228). Robotic arm 202 has a tool 222 attached to first piece 230. Tool 222 is connected to robotic arm 202 to perform manufacturing operation 224. Tool 222 is configured to perform manufacturing operation 224. Tool center point 206 is an operation point generated by tool 222. In some illustrative examples, tool 222 is a permanent part of robotic arm 202. In some illustrative examples, tool 222 is removable and can be replaced with other tools. Changing tool 222 may also change the location of tool center point 206.

[0031] The analytical solver 250 and the numerical solver 252 are used sequentially to reduce the time to perform inverse kinematics 248 for the robotic arm 202. The analytical solver 250 and the numerical solver 252 are sequentially used to reduce the time to determine joint parameters 268 of the robotic arm 202. The analytical solver 250 is used to determine the seed value 260 to reduce the computational time used to determine the numerical solution 262 in the numerical solver 252.

[0032] The analytical solver 250 can be used to form an analytical solution 254 for joint parameters. The analytical solver 250 performs inverse kinematics 248 on the robotic arm 202 within a set amount of time. The analytical solver 250 generates an analytical solution 254 for joint parameters of the robotic arm 202 within a set amount of time. The fixed computation time of the analytical model 256 can be advantageous. However, the analytical solution 254 for joint parameters has an undesirable level of accuracy. The analytical solver 250 is a deterministic formula or algorithm. In some illustrative examples, the analytical solver 250 includes an algorithm that generates kinematic results using a designed kinematic model 258.

[0033] The numerical solver 252 is more accurate than the analytical solver 250. However, the numerical solver 252 is significantly slower than the analytical solver 250. The numerical solver 252 includes an algorithm that utilizes a numerical model 266. The numerical model 266 is the factory kinematic model 264 that generates kinematic results.

[0034] To determine the joint parameters of the robot arm 202 according to the illustrative example, the analytical solver 250 determines an analytical solution 254 for the joint parameters using the design values ​​205 for the robot type 204. The analytical solution 254 for the joint parameters can achieve a desired position 226 for the tool center point 206 of the robot type 204. The desired position 226 can also be referred to as a target coordinate. The target coordinates are typically specified in a global coordinate system. During inverse kinematics 248, the coordinates can be converted from the global coordinate system to joint coordinates.

[0035] The analytical solution 254 for the joint parameters is provided to the numerical solver 252 as a seed value 260. The numerical solution 262 is determined using the numerical solver 252 and the seed value 260. The numerical solution 262 includes joint parameters 268 for the robotic arm 202 to achieve the desired position 226 for the tool center point 206 of the robotic arm 202.

[0036] Numerical solver 252 includes an algorithm that utilizes a factory kinematic model 264. Factory kinematic model 264 is created using factory values ​​218. Analytical solution 254 for joint parameters provides seed values ​​260 that reduce computation time for numerical solver 252. Seed values ​​260 allow numerical solution 262 to be determined within a desired amount of time.

[0037] After determining the numerical solution 262, the robotic arm 202 is moved according to the numerical solution 262 to place the tool center point 206 of the robotic arm 202 at the desired location 226. Then, after moving the robotic arm 202 according to the numerical solution 262, a manufacturing operation 224 is performed using the tool 222 at the tool center point 206 of the robotic arm 202.

[0038] Figure 2 The illustration of manufacturing environment 200 in FIG. 1 is not meant to imply physical or architectural limitations on the manner in which the illustrative embodiments may be implemented. Other components may be used in addition to or in place of the components shown. Some components may be unnecessary. Moreover, the blocks are presented to illustrate some functional components. When implemented in the illustrative embodiments, one or more of these blocks may be combined, divided, or combined and divided into different blocks.

[0039] For example, in some illustrative examples, number of pieces 210 may include more than two pieces. In some illustrative examples, number of pieces 210 includes three arm sections. In other illustrative examples, analytical solver 250 and numerical solver 252 may be used to determine joint parameters 268 for different robot types other than robotic arms.

[0040] Additionally, although analytical solver 250 is described as generating analytical solution 254 for joint parameters, analytical solver 250 may generate multiple analytical solutions. In these illustrative examples, multiple analytical solutions are provided to numerical solver 252 as seeds for numerical solver 252.

[0041] The analytical solver 250 generates all possible solutions. In this example, all possible solutions are all different configurations of the robot arm 202 that can achieve positioning the tool center point 206 at the desired position 226. In contrast, the numerical solver 252 generates one or fewer solutions each time it is run.

[0042] Now turn to Figure 3, depicts an illustration of a robotic arm in a manufacturing environment according to an illustrative embodiment. The robotic arm 300 is Figure 2 A physical implementation of the robotic arm 202.

[0043] Robotic arm 300 includes tool center point 302. To perform a manufacturing operation on part 320 using tool 318, tool center point 302 is moved to a desired position using inverse kinematics. In some illustrative examples, the desired position may be referred to as a target coordinate. To determine joint parameters of robotic arm 300 using inverse kinematics, design values ​​and factory values ​​of components of robotic arm 300 are determined and used.

[0044] The robot arm 300 includes a first piece 304 and a second piece 306. The first piece 304 and the second piece 306 are arm sections of the robot arm 300. The first piece 304 is connected to the second piece 306 through a joint 308. The second piece 306 is connected to a base 312 through a joint 310.

[0045] Robot arm 300 is a specific example of a robot type. Although the robot type has design values ​​for arm segment lengths, variations occur during manufacturing. As a result of the manufacturing variation, first piece 304 of robot arm 300 has a manufactured length 314. Second piece 306 of robot arm 300 has a manufactured length 316 due to the manufacturing variation.

[0046] To reduce inverse kinematics calculations for robotic arm 300, an analytical solution using the design lengths of first piece 304 and second piece 306 may be provided to a numerical solver. The numerical solver uses manufactured length 314, manufactured length 316, and the analytical solution to determine a numerical solution in a significantly reduced time.

[0047] After the numerical solution is determined using the numerical solver, the numerical solution is used to move the robotic arm 300 so that the tool center point 302 is placed at the desired location. After moving the robotic arm 300, a manufacturing operation is performed on the part 320 using the tool 318. In this illustrative example, the part 320 rests on a support 322. However, in other illustrative examples, the part 320 may be placed on a large structure such as a Figure 1 Manufacturing operations are performed on an aircraft 100).

[0048] Now turn to Figure 4 , depicts a flow chart of a method for reducing the computation time of inverse kinematics of a robotic arm according to an illustrative embodiment. The method 400 may be performed to determine joint parameters of the robotic arm to Figure 1 A manufacturing operation may be performed on a portion of an aircraft 100. Figure 2 The method 400 can be performed using the analytical solver 250 and the numerical solver 252 of Figure 3The inverse kinematics of the robot arm 300 is used to determine the joint parameters.

[0049] The method 400 generates an analytical solution for joint parameters using an analytical solver based on design values ​​for the robot type to achieve a desired position of a tool center point of the robot type, wherein the robot arm has the robot type (operation 402). The desired position may be referred to as a target coordinate. The method 400 provides the analytical solution for the joint parameters as a seed value to a numerical solver for the robot arm of the robot type (operation 404). The method 400 uses the numerical solver and the seed value to determine a numerical solution that includes the joint parameters of the robot arm to achieve the desired position of the tool center point of the robot arm (operation 406). Thereafter, the method 400 terminates.

[0050] The analytical model is based on design values ​​for the robot type. In some illustrative examples, method 400 generates an as-designed kinematic model using the design values ​​for the robot type, wherein the analytical solver includes an algorithm that utilizes the as-designed kinematic model (operation 408 ).

[0051] In some illustrative examples, method 400 determines factory values ​​for components of the robotic arm (operation 410). In some illustrative examples, the factory values ​​include a plurality of manufactured lengths for a plurality of arm segments of the robotic arm (operation 412). In some illustrative examples, method 400 generates a factory kinematic model of the robotic arm using the factory values, wherein the numerical solver includes an algorithm that utilizes the factory kinematic model (operation 414).

[0052] In some illustrative examples, method 400 moves the robotic arm according to the numerical solution to place a tool center point of the robotic arm at a desired location (operation 416). In some illustrative examples, after moving the robotic arm according to the numerical solution, method 400 performs a manufacturing operation using a tool at the tool center point of the robotic arm (operation 418). In some illustrative examples, method 400 converts target coordinates between a global coordinate system and joint coordinates (operation 420).

[0053] Now turn to Figure 5 , depicts a flow chart of a method for reducing the computation time of inverse kinematics of a robotic arm according to an illustrative embodiment. The method 500 may be performed to determine joint parameters of the robotic arm to Figure 1 A manufacturing operation may be performed on a portion of an aircraft 100. Figure 2 The method 500 can be performed using the analytical solver 250 and the numerical solver 252 of Figure 3 The inverse kinematics of the robot arm 300 is used to determine the joint parameters.

[0054] The method 500 receives design values ​​for components of a robot type (operation 502). The method 500 develops an analytical solver using the design values ​​(operation 504). The method 500 generates an analytical solution for joint parameters of the robot type using the analytical solver to achieve a desired position of a tool center point of the robot type (operation 506). The method 500 determines factory values ​​for components of a robot arm of the robot type (operation 508). The method 500 provides the factory values ​​and the analytical solution as input to a numerical solver (operation 510). The method 500 generates a numerical solution including joint parameters of the robot arm to achieve a desired position of a tool center point (operation 512). Thereafter, the method 500 terminates.

[0055] In some illustrative examples, the factory values ​​include a plurality of manufactured lengths of a plurality of arm segments of the robot arm (operation 514). In other illustrative examples, if the robot is a type of robot other than a robot arm, the plurality of manufactured lengths may be lengths of components other than the arm segments. In some illustrative examples, method 500 generates a kinematic model of the robot arm using the factory values, wherein the numerical solver includes an algorithm that utilizes the kinematic model (operation 516).

[0056] In some illustrative examples, method 500 moves the robotic arm according to the numerical solution to place the tool center point of the robotic arm at the desired location (operation 518). In some illustrative examples, after moving the robotic arm according to the numerical solution, method 500 performs a manufacturing operation using a tool at the tool center point of the robotic arm (operation 520). In some illustrative examples, method 500 converts the target coordinates between the global coordinate system and the joint coordinates (operation 522).

[0057] Now turn to Figure 6 , depicts a flow chart of a method for reducing the computation time of inverse kinematics of a robotic arm according to an illustrative embodiment. The method 600 may be performed to determine joint parameters of the robotic arm to Figure 1 A manufacturing operation may be performed on a portion of an aircraft 100. Figure 2 The method 600 can be performed using the analytical solver 250 and the numerical solver 252 of Figure 3 The inverse kinematics of the robot arm 300 is used to determine the joint parameters.

[0058] The method 600 generates an analytical solution for joint parameters of a robot type using an analytical model to achieve a desired position of a tool center point of the robot type, wherein the analytical model is formed using the design lengths of components of the robot type (operation 602). The method 600 determines factory values ​​of components of a robot arm of the robot type (operation 604). The method 600 provides the factory values ​​and the analytical solution as input to a numerical solver (operation 606). The method 600 generates a numerical solution including joint parameters of the robot arm to achieve a desired position of a tool center point (operation 608). The method 600 moves the robot arm according to the numerical solution to place the tool center point of the robot arm at a desired position (operation 610). Thereafter, the method 600 terminates.

[0059] In some illustrative examples, method 600 generates an analytical model based on design values ​​for a component of the robot type, wherein generating the analytical solution includes generating the analytical solution using the analytical model by an analytical solver (operation 612). In some illustrative examples, the factory values ​​include a plurality of manufactured lengths for a plurality of arm segments of the robot arm (operation 614). In some illustrative examples, method 600 generates a factory kinematic model of the robot arm using the factory values, wherein the numerical solver includes an algorithm that uses the factory kinematic model (operation 616).

[0060] In some illustrative examples, after moving the robotic arm according to the numerical solution, method 600 performs a manufacturing operation using a tool at a tool center point of the robotic arm (operation 618). In some illustrative examples, method 600 converts the target coordinates between the global coordinate system and the joint coordinates (operation 620).

[0061] As used herein, the phrase "at least one," when used with a list of items, means that different combinations of one or more of the listed items may be used, and that only one of each item in the list may be required. For example, "at least one of item A, item B, or item C" may include, but is not limited to, item A, item A and item B, or item B. This example may also include item A, item B, and item C, or item B and item C. Of course, any combination of these items may exist. In other examples, "at least one" may be, for example, but not limited to, two of item A; one of item B; and ten of item C; four of item B and seven of item C; or other suitable combinations. Items may be specific objects, things, or categories. In other words, it means that at least one of any combination of items and number of items may be used from the list, but not all items in the list are required.

[0062] As used herein, "plurality" when used with reference to items means one or more items.

[0063] The flowcharts and block diagrams in the depicted different embodiments illustrate the architecture, functionality and operation of some possible implementations of the devices and methods in the illustrative embodiments. In this regard, each box in the flowchart or block diagram can represent at least one of a module, a segment, a function or a part of an operation or a step.

[0064] In some alternative embodiments of the illustrative embodiments, one or more functions indicated in the blocks may not occur in the order indicated in the drawings. For example, in some cases, two blocks shown in succession may be performed substantially simultaneously, or the blocks may sometimes be performed in reverse order, depending on the functions involved. In addition, in addition to the blocks shown in the flow chart or block diagram, other blocks may be added. Some blocks may be optional. For example, operations 408 to 420 may be optional. For example, operations 514 to 522 may be optional. As another example, operations 612 to 620 may be optional.

[0065] You can Figure 7 Aircraft manufacturing and service method 700 and the like are shown in Figure 8 Illustrative embodiments of the present disclosure are described in the context of aircraft 800 as shown. Figure 7 , an illustration of an aircraft manufacturing and service method in block diagram form is depicted in accordance with an illustrative embodiment. During pre-production, aircraft manufacturing and service method 700 may include Figure 8 Specification and design 702 of aircraft 800 and material procurement 704 .

[0066] During production, component and subassembly manufacturing 706 and system integration 708 of aircraft 800 occurs. Thereafter, aircraft 800 may undergo certification and delivery 710 for entry into service 712. While in service 712 by a customer, aircraft 800 is scheduled for routine maintenance and service 714, which may include modification, reconfiguration, refurbishment, or other maintenance and service.

[0067] Each of the processes of aircraft manufacturing and service method 700 may be performed or carried out by a system integrator, a third party, and / or an operator. In these examples, the operator may be a customer. For purposes of this description, a system integrator may include, but is not limited to, any number of aircraft manufacturers and major system subcontractors; a third party may include, but is not limited to, any number of suppliers, subcontractors, and vendors; and an operator may be an airline, leasing company, military entity, service organization, etc.

[0068] Reference now Figure 8 , depicts an illustration of an aircraft in block diagram form in which an illustrative embodiment may be implemented. In this example, aircraft 800 is Figure 7Aircraft manufacturing and service method 700 is produced and may include airframe 802 having multiple systems 804 and interior 806. Examples of systems 804 include one or more of propulsion system 808, electrical system 810, hydraulic system 812, and environmental system 814. Any number of other systems may be included.

[0069] Apparatus and methods embodied herein may be employed during at least one of the stages of aircraft manufacturing and service method 700. One or more illustrative embodiments may be employed in Figure 7 The components and subassemblies are manufactured or used during at least one of manufacturing 706 , system integration 708 , placing into service 712 , or maintenance and service 714 .

[0070] The illustrative examples reduce the inverse kinematics calculation time for calibration. Implementation of the illustrative examples allows accurate robot movement calculations without large motion planning calculation times for scenarios such as offline planning, where thousands of such calculations need to be performed.

[0071] The illustrative example is a hybrid of an analytical solver and a numerical solver, rather than being either an analytical solver or a numerical solver. The illustrative example is faster than the numerical solver, uses calibrated kinematics, and provides all possible solutions (allowing the motion planner to optimize for different criteria, singularities, speeds). The illustrative example commands the robot to refine the endpoint position according to an iterative method until the desired accuracy is achieved.

[0072] The result is a solver that produces faster calibration inverse kinematics solutions than conventional numerical-only solvers, while giving the full solution set of an analytical solver. The illustrative example reduces the inverse kinematics computation time for calibration. The implementation of the algorithm allows accurate robot movement computation without the large motion planning computation time for scenarios such as offline planning, where thousands of such computations need to be performed.

[0073] This application involves the following terms:

[0074] Clause 1. A method (400) of reducing computation time of inverse kinematics (248) of a robotic arm (202), the method comprising:

[0075] generating an analytical solution (254) for joint parameters to achieve a desired position (226) of a tool center point (206) of the robot type (204) using (402) an analytical solver (250) based on design values ​​(205) of the robot type (204) of which the robot arm (202) has;

[0076] providing (404) the analytical solution (254) of the joint parameters as a seed value (260) to a numerical solver (252) of the robot arm (202) of the robot type (204); and

[0077] A numerical solution (262) is determined (406) using the numerical solver (252) and the seed value (260), the numerical solution (262) including joint parameters (268) of the robotic arm (202) to achieve the desired position (226) of the tool center point (206) of the robotic arm (202).

[0078] Clause 2. The method (400) of clause 1, further comprising:

[0079] A factory value (218) of a component (208) of the robotic arm (202) is determined (410).

[0080] Clause 3. The method (400) of clause 2, wherein (412) the factory values ​​(218) include a plurality of manufactured lengths (216) of a plurality of arm segments (212) of the robotic arm (202).

[0081] Clause 4. The method (400) of clause 2, further comprising:

[0082] A factory kinematic model (264) of the robot arm (202) is generated (414) using the factory values ​​(218), wherein the numerical solver (252) includes an algorithm that utilizes the factory kinematic model (264).

[0083] Clause 5. The method (400) of clause 1, further comprising:

[0084] The robotic arm (202) is moved (416) based on the numerical solution (262) to place the tool center point (206) of the robotic arm (202) at the desired location (226).

[0085] Clause 6. The method (400) of clause 5, further comprising:

[0086] After moving the robotic arm (202) according to the numerical solution (262), a manufacturing operation (224) is performed (418) using a tool (222) at the tool center point (206) of the robotic arm (202).

[0087] Clause 7. The method (400) of clause 1, further comprising:

[0088] An as-designed kinematic model (258) is generated (408) using the design values ​​(205) of the robot type (204), wherein the analytical solver (250) includes an algorithm that utilizes the as-designed kinematic model (258).

[0089] Clause 8. The method (400) of clause 1, wherein determining the numerical solution (262) comprises converting (420) target coordinates between a global coordinate system and joint coordinates.

[0090] Clause 9. A method (500) of reducing computation time of inverse kinematics (248) of a robotic arm (202), the method comprising:

[0091] Receiving (502) design values ​​(205) of components (208) of a robot type (204);

[0092] developing (504) an analytical solver (250) using the design values ​​(205);

[0093] generating (506) an analytical solution (254) of joint parameters of the robot type (204) using the analytical solver (250) to achieve a desired position (226) of a tool center point (206) of the robot type (204);

[0094] determining (508) a factory value (218) of the component (208) of the robot arm (202) of the robot type (204);

[0095] providing (510) the factory values ​​(218) and the analytical solution (254) as input to a numerical solver (252); and

[0096] A numerical solution (262) including joint parameters (268) of the robotic arm (202) is generated (512) to achieve the desired position (226) of the tool center point (206).

[0097] Clause 10. The method (500) of clause 9, further comprising:

[0098] The robotic arm (202) is moved (518) based on the numerical solution (262) to place the tool center point (206) of the robotic arm (202) at the desired location (226).

[0099] Clause 11. The method (500) of clause 10, further comprising:

[0100] After moving the robotic arm (202) according to the numerical solution (262), a manufacturing operation (224) is performed (520) using a tool (222) at the tool center point (206) of the robotic arm (202).

[0101] Clause 12. The method (500) of clause 9, wherein the factory values ​​(218) include: a plurality of manufactured lengths (216) (514) of a plurality of arm segments (212) of the robotic arm (202).

[0102] Clause 13. The method (500) of clause 9, wherein determining the numerical solution (262) comprises: transforming target coordinates (522) between a global coordinate system and joint coordinates.

[0103] Clause 14. The method (500) of clause 9, further comprising:

[0104] A kinematic model of the robotic arm (202) is generated (516) using the factory values ​​(218), wherein the numerical solver (252) includes an algorithm that utilizes the kinematic model.

[0105] Clause 15. A method (600) of reducing computation time of inverse kinematics (248) of a robotic arm (202), the method comprising:

[0106] generating (602) an analytical solution (254) for joint parameters of a robot type (204) to achieve a desired position (226) of a tool center point (206) of the robot type (204) using an analytical model, wherein the analytical model is formed using a design length of a component (208) of the robot type (204);

[0107] determining (604) a factory value (218) of the component (208) of the robot arm (202) of the robot type (204);

[0108] providing (606) the factory values ​​(218) and the analytical solution (254) as input to a numerical solver (252);

[0109] generating (608) a numerical solution (262) using the numerical solver (252), the numerical solution including joint parameters (268) of the robotic arm (202) to achieve the desired position (226) of the tool center point (206); and

[0110] The robotic arm (202) is moved (610) based on the numerical solution (262) to place the tool center point (206) of the robotic arm (202) at the desired location (226).

[0111] Clause 16. The method (600) of clause 15, further comprising:

[0112] After moving the robotic arm (202) according to the numerical solution (262), a manufacturing operation (224) is performed (618) using a tool (222) at the tool center point (206) of the robotic arm (202).

[0113] Clause 17. The method (600) of clause 15, wherein the factory values ​​(218) include: a plurality of manufactured lengths (216) (614) of a plurality of arm segments (212) of the robotic arm (202).

[0114] Clause 18. The method (600) of clause 15, further comprising:

[0115] A factory kinematic model (264) of the robot arm (202) is generated (616) using the factory values ​​(218), wherein the numerical solver (252) includes an algorithm that utilizes the factory kinematic model (264).

[0116] Clause 19. The method (600) of clause 15, further comprising:

[0117] An analytical model is generated (612) based on the design value (205) of the component (208) of the robot type (204), wherein generating the analytical solution (254) includes: generating the analytical solution (254) by an analytical solver (250) using the analytical model.

[0118] Clause 20. The method (600) of clause 15, wherein generating the numerical solution (262) comprises: converting target coordinates (620) between a global coordinate system and joint coordinates.

[0119] The descriptions of different illustrative embodiments have been presented for purposes of illustration and description, and are not intended to be exhaustive or limited to the embodiments in the disclosed form. Many modifications and variations will be apparent to those of ordinary skill in the art. In addition, different illustrative embodiments may provide different features compared to other illustrative embodiments. The selected one or more embodiments are selected and described in order to best explain the principles of the embodiments, the practical application, and to enable those of ordinary skill in the art to understand the disclosure of various embodiments with various modifications suitable for the intended specific use.

Claims

1. A method (400) of reducing computation time of inverse kinematics (248) of a robotic arm (202), the method comprising: generating an analytical solution (254) for joint parameters to achieve a desired position (226) of a tool center point (206) of the robot type (204) using (402) an analytical solver (250) based on design values ​​(205) of the robot type (204) of which the robot arm (202) has; providing (404) the analytical solution (254) of the joint parameters as a seed value (260) to a numerical solver (252) of the robot arm (202) of the robot type (204); and A numerical solution (262) is determined (406) using the numerical solver (252) and the seed value (260), the numerical solution (262) including joint parameters (268) of the robotic arm (202) to achieve the desired position (226) of the tool center point (206) of the robotic arm (202).

2. The method (400) of claim 1, further comprising: A factory value (218) of a component (208) of the robotic arm (202) is determined (410).

3. The method (400) of claim 2, wherein: (412) The factory values ​​(218) include multiple manufactured lengths (216) of multiple arm sections (212) of the robot arm (202).

4. The method (400) of claim 2, further comprising: A factory kinematic model (264) of the robot arm (202) is generated (414) using the factory values ​​(218), wherein the numerical solver (252) includes an algorithm that utilizes the factory kinematic model (264).

5. The method (400) of claim 1, further comprising: The robotic arm (202) is moved (416) based on the numerical solution (262) to place the tool center point (206) of the robotic arm (202) at the desired location (226).

6. The method (400) of claim 5, further comprising: After moving the robotic arm (202) according to the numerical solution (262), a manufacturing operation (224) is performed (418) using a tool (222) at the tool center point (206) of the robotic arm (202).

7. The method (400) of claim 1, further comprising: An as-designed kinematic model (258) is generated (408) using the design values ​​(205) of the robot type (204), wherein the analytical solver (250) includes an algorithm that utilizes the as-designed kinematic model (258).

8. The method (400) of claim 1, wherein: Determining the numerical solution (262) includes converting (420) the target coordinates between the global coordinate system and the joint coordinates.

9. A method (500) of reducing computation time of inverse kinematics (248) of a robotic arm (202), the method comprising: Receiving (502) design values ​​(205) of components (208) of a robot type (204); developing (504) an analytical solver (250) using the design values ​​(205); generating (506) an analytical solution (254) of joint parameters of the robot type (204) using the analytical solver (250) to achieve a desired position (226) of a tool center point (206) of the robot type (204); determining (508) a factory value (218) of the component (208) of the robot arm (202) of the robot type (204); providing (510) the factory values ​​(218) and the analytical solution (254) as input to a numerical solver (252); and A numerical solution (262) including joint parameters (268) of the robotic arm (202) is generated (512) to achieve the desired position (226) of the tool center point (206).

10. A method (600) of reducing computation time of inverse kinematics (248) of a robotic arm (202), the method comprising: generating (602) an analytical solution (254) for joint parameters of a robot type (204) to achieve a desired position (226) of a tool center point (206) of the robot type (204) using an analytical model, wherein the analytical model is formed using a design length of a component (208) of the robot type (204); determining (604) a factory value (218) of the component (208) of the robot arm (202) of the robot type (204); providing (606) the factory values ​​(218) and the analytical solution (254) as input to a numerical solver (252); generating (608) a numerical solution (262) using the numerical solver (252), the numerical solution including joint parameters (268) of the robotic arm (202) to achieve the desired position (226) of the tool center point (206); and The robotic arm (202) is moved (610) based on the numerical solution (262) to place the tool center point (206) of the robotic arm (202) at the desired location (226).