Method for planning a movement path of a robot arm and related device
By combining guidance factor constraints and robotic arm feature parameter optimization with Bessel fitting and discretization, the randomness and non-smoothness of the traditional RRT algorithm in robotic arm path planning are solved, achieving more efficient and better path planning.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- CHINA JILIANG UNIV
- Filing Date
- 2023-04-07
- Publication Date
- 2026-05-26
Smart Images

Figure CN122077594A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the fields of automatic measurement technology and path planning technology, and in particular to a method and related equipment for planning the movement path of a robotic arm. Background Technology
[0002] With the rapid development of modern computer and industrial automation technologies, the application of measurement robots is becoming increasingly widespread. Achieving intelligent measurement through measurement robots has always been a goal pursued in the field of measurement. During intelligent measurement, the measurement robot needs to move from the starting point to the target point while avoiding collisions with obstacles. Therefore, it is necessary to plan the movement path from the starting node to the destination node.
[0003] Traditional methods use the RRT (rapidly exploring random tree) algorithm to plan movement paths, but they have drawbacks such as randomness and blindness in node selection and uneven path smoothness, which cannot guarantee the optimal quality of the path and the timeliness of the search process. Summary of the Invention
[0004] This application provides a method and related equipment for planning the movement path of a robotic arm to solve the problems existing in related technologies. The technical solution is as follows:
[0005] In a first aspect, embodiments of this application provide a method for planning the movement path of a robotic arm, including:
[0006] Obtain the starting node, the destination node, and the free space of the robotic arm;
[0007] Using the starting node as the root node, based on the guidance factor, continuous sampling is performed in the free space, and leaf nodes are determined layer by layer to obtain a tree path between the starting node and the destination node; wherein, the tree path includes multiple levels, and each level includes multiple leaf nodes; the guidance factor is obtained from the leaf node closest to the sampling point among the multiple leaf nodes of the previous level and the destination node;
[0008] Obtain the target path based on the tree-like path.
[0009] Secondly, embodiments of this application provide a movement path planning device for a robotic arm, characterized in that it includes...
[0010] The task acquisition module is used to acquire the starting node, the destination node, and the free space of the robotic arm;
[0011] A sampling module is used to continuously sample within the free space, with the starting node as the root node, based on a guidance factor, and determine leaf nodes layer by layer to obtain a tree path from the starting node to the destination node; wherein, the tree path includes multiple levels, and each level includes multiple leaf nodes; the guidance factor is obtained from the leaf node closest to the sampling point among the multiple leaf nodes of the previous level and the destination node;
[0012] The target path acquisition module is used to acquire the target path based on the tree-shaped path.
[0013] Thirdly, embodiments of this application provide an electronic device, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of the aforementioned robotic arm movement path planning.
[0014] Fourthly, embodiments of this application provide a computer-readable storage medium that stores computer instructions, wherein when the computer instructions are executed on a computer, the methods in any of the above-described embodiments are performed.
[0015] The advantages or beneficial effects of the above technical solutions include at least the following:
[0016] In this embodiment of the application, during the process of obtaining the tree path from the starting node to the destination node, a guidance factor is used to constrain the planning so that all the planned leaf nodes are nodes facing or close to the destination node. Multiple paths in the obtained tree path are all valid paths, reducing the data processing of invalid paths and improving the efficiency of movement path planning.
[0017] The above overview is for illustrative purposes only and is not intended to be limiting in any way. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features of this application will become readily apparent from the accompanying drawings and the following detailed description. Attached Figure Description
[0018] In the accompanying drawings, unless otherwise specified, the same reference numerals throughout the various drawings denote the same or similar parts or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings depict only some embodiments disclosed in this application and should not be construed as limiting the scope of this application.
[0019] Figure 1 This is a flowchart illustrating a method for planning the movement path of a robotic arm according to an embodiment of this application.
[0020] Figure 2This is a cuboid schematic diagram of an envelope obstacle according to another embodiment of this application;
[0021] Figure 3 for Figure 1 A schematic diagram of the sub-process of step S230;
[0022] Figure 4 This is a flowchart illustrating a method for planning the movement path of a robotic arm according to another embodiment of this application.
[0023] Figure 5 A schematic diagram illustrating the method for planning the movement path of a robotic arm according to an embodiment of this application to obtain an optimized path;
[0024] Figure 6 This is a flowchart illustrating a method for planning the movement path of a robotic arm according to another embodiment of this application.
[0025] Figure 7 This is a schematic diagram of Bézier fitting according to an embodiment of this application;
[0026] Figure 8 This is a schematic diagram of a movement path planning device for a robotic arm according to an embodiment of this application.
[0027] Figure 9 This is a schematic structural block diagram of an electronic device in a robotic arm used to implement the robotic arm movement path planning method in the embodiments of this application.
[0028] Figure 10 A structural block diagram of an electronic device according to an embodiment of this application is shown. Detailed Implementation
[0029] In the following description, only certain exemplary embodiments are briefly described. As those skilled in the art will recognize, the described embodiments can be modified in various ways without departing from the spirit or scope of this application. Therefore, the drawings and description are considered to be exemplary in nature and not restrictive.
[0030] The robotic arm movement path planning method provided in this application embodiment can be applied to the host computer of the robotic arm to control its movement. By controlling the movement of the robotic arm, automated operation of the robotic arm can be achieved. For example, the robotic arm can be controlled to measure an object, obtain the coordinates of multiple points on the object's surface, thereby constructing the object's external shape and obtaining its shape characteristics.
[0031] Figure 1 A flowchart illustrating a movement path planning method for a robotic arm according to an embodiment of this application is shown. Figure 1 As shown, the movement path planning method for this robotic arm may include:
[0032] S210, obtain the starting node, the destination node, and the free space of the robotic arm.
[0033] A robotic arm can be a robotic arm consisting of multiple connected joints. The end effector of the robotic arm is equipped with a side head, which controls the movement of the robotic arm, that is, it can control the position of the end effector, thereby driving the side head to move to a designated position to achieve measurement.
[0034] The starting node can be the end effector of the robotic arm, the position it is in when preparing to measure but before moving. Alternatively, it can be a preset starting position, which the robotic arm moves to before measurement.
[0035] The target node can be obtained by detecting the coordinates of the target object using sensors, and then using those coordinates to determine the target node. The target node can also be the coordinates of the surface point within the target object that is closest to the starting node.
[0036] The free space of a robotic arm refers to the space in which the robotic arm will not encounter obstacles. The free space of a robotic arm can be obtained by detecting surrounding obstacles using sensors. Sensors can detect obstacle information such as the position, shape, and size of obstacles, and the free space of the robotic arm can be determined based on this obstacle information.
[0037] In one example, when a sensor detects an obstacle, the obstacle can be represented by a cuboid that encloses it, meaning the obstacle completely falls within the space of the cuboid. Representing the obstacle with a cuboid makes it easy to obtain the coordinates, length, width, and height of the cuboid, thus improving data processing efficiency.
[0038] In a robotic arm's measurement scenario, there may be multiple obstacles. These obstacles can be detected by sensors, resulting in a set of obstacles, which can be defined as o = {o1, o2, ..., oc}, where c is the number of obstacles. Obstacles are represented by cuboids, and the relationship between the robotic arm and the obstacles can be simplified to the relationship between a straight line in space and a plane in space. The robotic arm is represented by a straight line in space, for example, as shown in the image. Figure 2 As shown, the length, width, and height of the enclosing cuboid are Lx, Ly, and Lz, respectively, where point N1 = (x0, y0, z0), and the coordinates of the other seven vertices are... Figure 2 N2~ N8 in; N2=(x0,y0+Ly,z0); N3=(x0+Lx,y0+Ly,z0); N4=(x0+Lx,y0,z0); N5=(x0,y0+Ly,z0+Lz); N6=(x0+Lx,y0+Ly,z0+Lz); N7= (x0+Lx,y0,z0+Lz); N8=(x0,y0,z0+Lz).
[0039] S220, using the starting node as the root node, based on the guidance factor, continuous sampling is performed in the free space, and leaf nodes are determined layer by layer to obtain a tree path from the starting node to the destination node. The tree path includes multiple levels, and each level includes multiple leaf nodes; the guidance factor is obtained from the leaf node closest to the sampling point among the multiple leaf nodes of the previous level and the destination node.
[0040] The expression for obtaining leaf nodes can be:
[0041]
[0042] in, (n+1) represents the leaf nodes to be determined. (n) is the leaf node of the previous level, and is the leaf node to be determined. The root node of (n+1), P rand P represents the sampling points obtained through random sampling. near The distance P among multiple leaf nodes in the next higher level rand The nearest leaf node; h is the step size, P goal Let g be the destination node and g be the guiding factor. Here, g represents the direction of approaching the destination node.
[0043] h represents the step size, which can be determined based on obstacle information each time a leaf node is expanded. The step size is related to the root node and the obstacles surrounding it. The step size can be obtained using any existing or future technical solution in the field.
[0044] S230, Obtain the target path based on the tree path.
[0045] It is understandable that the obtained tree path includes multiple feasible paths.
[0046] Step S230 is to obtain one feasible path from the multiple feasible paths in the tree path as the determined movement path.
[0047] In one example, the target path can be obtained based on relevant constraints. These constraints can be determined based on free space conditions, the robotic arm's capabilities, or user-defined conventions.
[0048] In this embodiment of the application, during the process of obtaining the tree path from the starting node to the destination node, a guidance factor is used to constrain the planning so that all the planned leaf nodes are nodes facing or close to the destination node. Multiple paths in the obtained tree path are all valid paths, reducing the data processing of invalid paths and improving the efficiency of movement path planning.
[0049] In one implementation, after step S220, the method further includes: determining whether the current leaf node satisfies the growth constraint condition; if the current leaf node does not satisfy the growth constraint condition, discarding the path where the current leaf node is located; wherein the growth constraint condition is that the difference between the distance from the current leaf node to the destination node and the distance from the previous level leaf node of the current leaf node to the destination node satisfies a preset threshold range.
[0050] The growth constraint can be expressed as:
[0051]
[0052] in, The preset threshold range can be (1, h) mm. Here, 1 is a value customized by the user according to the actual situation. In specific application scenarios, it can be modified to other positive numbers, such as 0.5, 1.8, or 7.
[0053] In this embodiment of the application, the growth constraint can be used to further confirm that the leaf node to be determined is growing closer to the target node.
[0054] In one implementation, such as Figure 3 As shown, step S230 includes:
[0055] S231, Obtain the characteristic parameters of the robotic arm, including: number of links, link length, link offset, and link twist.
[0056] The robotic arm can be a six-degree-of-freedom robotic arm. The characteristic parameters of the robotic arm can be obtained by reading its product information. Alternatively, these characteristic parameters can be adjusted based on the product information. For example, the link offset can be slightly smaller than the offset specified in the product information, allowing the robotic arm to move within a smaller offset range during movement, thus protecting its performance and extending its lifespan.
[0057] S232, Based on the characteristic parameters of the robotic arm, construct a constraint model for multiple joints.
[0058] A robotic arm consists of a set of links connected together by joints. The joints of a robotic arm with degrees of freedom can be described as follows: When the robotic arm performs scanning measurements in free space, it is considered that the k consecutive joints at the end effector will enter the free space. The pose between the k consecutive joint coordinate systems at the end point is determined using a translation matrix. and rotation matrix This represents the pose transformation matrix between the i-th joint and the (i-1)-th joint of the robotic arm under the constraints of MDH (Modified Denavit Hartenberg). It can be represented as:
[0059]
[0060] in, This refers to the link length of the robotic arm. Link twist This is for link offset. This refers to the joint angle. These are the joint and link numbers. Matrix The specific expression is as follows:
[0061]
[0062] During the movement of the robotic arm One variable is '[']', and the rest are characteristic parameters of the robotic arm. This is achieved through adjacent links. By performing a series of multiplications, we can obtain the pose matrix of each joint node of the robotic arm in the base coordinate system. Right now,
[0063]
[0064] in, Given the position coordinates of the i-th joint in the world coordinate system, we can obtain the position coordinates of the k consecutive end joints in the base coordinate system, while also considering the k joints that enter the measurement space.
[0065] Free space The state of colliding with an obstacle and the free state of the environment Composition, defining the starting position and target location The path from the starting position to the target position is described as follows: yes The parameter of dimension is the number of path points on the path. ,path It can be represented as
[0066]
[0067] in, Let m be the set of paths for each joint of the robotic arm, where m is the number of path points on the robotic arm path and n is the number of robotic arm joints. Let i be the path of the i-th joint. This is the value of the i-th joint at the j-th path point.
[0068] To ensure that none of the k joints collide or interfere with the object being measured, two constraints are imposed: a task constraint that the planned path does not collide with the measurement space, and a control constraint for continuous joint motion. The end path in free space can be planned first, and the trajectory paths of the adjacent k-1 joints can be solved using the MDH model, ensuring that the trajectory paths do not collide with free space.
[0069] Due to the coupled structure of the robotic arm, the continuous joints are mutually constrained, and the space of this constraint is defined as... The satisfied constraint relationship is expressed as follows:
[0070]
[0071] Where p is any point on the path. In a state of environmental freedom, This refers to the space required for the robotic arm to move.
[0072] If k=3, then the optimal path for the nodes of the continuous joints to satisfy the above constraints is:
[0073]
[0074] Among them, P n P n-1 P n-2 Let be the trajectories of the 1st, 2nd, and 3rd joint nodes starting from the end, respectively.
[0075] When a robotic arm performs scanning and measurement tasks in free space, two problems need to be addressed: 1. Multiple joints are located within the obstacle space formed by the measured object, requiring consideration of collisions between the links of the robotic arm in the joint space; 2. The robotic arm needs to perform high-dimensional obstacle avoidance. Based on this, this application employs Restricted Rhythm Theory (RRT) and a greedy algorithm, using the initial node and orientation as the root node. Through random sampling in free space, leaf nodes are determined, generating multiple feasible paths in free space that can avoid obstacles and reach the target node. When a feasible path is determined, inverse kinematics and forward kinematics are used to determine whether each joint of the robotic arm collides with an obstacle, achieving the transformation from the end effector pose to the poses of each joint.
[0076] S233, based on the path length between adjacent leaf nodes and the changing angles of multiple joints in the tree path, obtain the objective function.
[0077] After a robotic arm finds a feasible path, it often cannot run directly due to issues such as multi-segment linearity and redundancy, requiring backend optimization. The essence of backend optimization is balancing the process of minimizing path length and joint changes. Shorter path lengths result in shorter execution time; minimal joint changes lead to less path jitter, thus increasing the probability of the planned path running on the robotic arm. The objective function U for path optimization can be written as...
[0078] (6)
[0079] in, For the first The joint angles of a joint at time t+1. for The state of the next moment, This represents the Euclidean norm.
[0080] S234, Based on the constraint model and the objective function, obtain the target path from the tree path.
[0081] Based on the established constraint model and objective function, an improved extended random number algorithm is obtained. The input to the algorithm is the starting node P of the robotic arm. init , destination node The system also includes free space, and the output is the target path for the robotic arm in free space that satisfies various constraints. Multiple feasible paths can satisfy these constraints, and the shortest path among these is selected as the target path.
[0082] In this embodiment, the target path is obtained through a constraint model and an objective function. Taking into account the changes in path length and joint angles, the transformation angles between multiple joints are small during the movement of the robotic arm, thereby reducing jitter and obtaining a better target path.
[0083] In one implementation, such as Figure 4 As shown, the robotic arm's movement path planning method also includes:
[0084] S241, Get the current leaf node.
[0085] S242, Based on the current leaf node, obtain the target leaf node; wherein, the target leaf node is the Nth leaf node after the current leaf node in the target path, and N is a positive integer greater than 1.
[0086] S243, determine whether a collision will occur when the robotic arm moves from the current leaf node to the target leaf node.
[0087] S244, obtain the maximum N value that will not cause a collision.
[0088] S245, determine the leaf node corresponding to the maximum N value as the target leaf node.
[0089] S246, using the target leaf node as the current leaf node, determine the next target leaf node.
[0090] S247, Generate an optimized path based on the multiple target leaf nodes determined from the multiple current leaf nodes.
[0091] For example, such as Figure 5 As shown, P0 is the current leaf node, and P1 is the next leaf node that will not collide, obtained according to the path planning method. We can determine whether the robotic arm will collide with an obstacle when moving from P0 to P2. If no collision occurs, it can move directly from P0 to P2. Next, we determine whether the robotic arm will collide with an obstacle when moving from P0 to P3. If no collision occurs, we determine whether it will collide with an obstacle when moving from P0 to P4. If a collision occurs, P3 is determined as the largest leaf node that will not collide, and P3 is designated as the target node. Then, using P3 as the current leaf node, we repeat the above operations. Thus, based on multiple target nodes, a faster optimized path can be obtained. For example, Figure 5 In the middle, the optimized path can be The optimized path significantly reduces the number of leaf nodes, thereby reducing redundant paths and improving the movement efficiency of the robotic arm.
[0092] In one implementation, step S243 includes:
[0093] Obtain the parameter information of the obstacle, which includes the coordinates of the obstacle and the envelope information of the obstacle;
[0094] Construct the equation of the straight line between the current leaf node and the target leaf node;
[0095] Based on the equation of the straight line and the parameter information of the obstacle, it is determined whether a collision will occur when the robotic arm moves from the current leaf node to the target leaf node.
[0096] In one example, construct the current leaf node. and target leaf node The equation of the line segment, such as:
[0097]
[0098] Where a, b, and c are coefficients, and g(·) is a constant, it can be expressed as g = -2a·x j +b· y j -c· z jBy checking whether the product of the straight line segment and the normal vectors of each face of the obstacle enclosed by the cuboid is zero, it is determined whether a collision will occur when the robotic arm moves from the current leaf node to the target leaf node.
[0099] In one implementation, such as Figure 6 As shown, the robotic arm's movement path planning method in this application embodiment further includes:
[0100] S251, Obtain the three leaf nodes in the target path.
[0101] S252, construct the Bessel formula based on the three leaf nodes to obtain the fitting curve representation between the three leaf nodes.
[0102] S253, Obtain the spatial linear representation of the three leaf nodes.
[0103] S254, Based on the fitted curve representation and the spatial straight line, a smooth path is obtained.
[0104] like Figure 7 As shown, obtain three leaf nodes from the target path or optimized path. Perform Bezier fitting on each of the three leaf nodes to obtain a fitted curve. Transform all leaf nodes in the path into curves sequentially, allowing the robotic arm to move along the curves, making the path smooth and preventing excessive turning operations that could affect the robotic arm's lifespan.
[0105] For example, for The fitted curve obtained by performing a Bézier fit on three points is shown below:
[0106]
[0107] Where t represents the time point of the robotic arm's movement. The value 1 is user-defined based on actual conditions and can be modified to other positive numbers, such as 0.5, 1.8, or 7, in specific application scenarios.
[0108] The range of values for t is related to the step size of t. Depending on the sparsity of the distribution points for curve fitting, a suitable maximum value of t and step size should be selected.
[0109] A straight line in space can be expressed as:
[0110]
[0111] In the formula, (x0, y0, z0) represents the starting point of the spatial line segment in the coordinate system. It is the distance from one end of the line segment to the other. This represents the angle between a straight line and the x-axis in the xy coordinate system. This represents the ratio of the projection of the line onto the z-axis to the projection of the line onto the xy-coordinate system.
[0112] like Figure 8 As shown, the optimal path obtained is P. init To P goal Multiple connecting lines between them. P init To P1, from P2 to P goal Part of it is a straight line in space, P init P1 and P2 are the starting points (x0, y0, z0) of two spatial line segments, respectively. Let P1 and P2 be the starting points of these two segments. init Taking part P1 as an example, For P init Distance to P1 In the xy coordinate system, line segment P represents... init The angle between P1 and the x-axis, Represents line segment P init The ratio of the projection of P1 onto the z-axis to its projection onto the xy-coordinate system.
[0113] In this embodiment, a smooth path is obtained by performing Bezier fitting on each of the three leaf nodes, which facilitates the movement of the robotic arm.
[0114] In one embodiment, the robotic arm's movement path planning method according to this application further includes:
[0115] The smooth path is discretized to obtain a discretized path; wherein the discretized path includes multiple discrete nodes, the multiple discrete nodes include the leaf nodes in the target path and new nodes generated by the discretization process; the distance difference between multiple adjacent discrete nodes satisfies a preset threshold;
[0116] Based on the feature parameters of the robotic arm, the pose matrix of each joint in the robotic arm is obtained;
[0117] Based on the pose matrix and the discretized path, the trajectory path of each joint is determined.
[0118] In a smooth path, discretization makes the lengths between adjacent discrete nodes similar, thus making their movement times similar. Let the time interval between adjacent discrete nodes be... The smooth path can be discretized into The path trajectory of the robotic arm's end effector can be represented as:
[0119]
[0120] The pose matrix for each joint is:
[0121]
[0122] Based on the pose matrix and discretized path, the trajectory path of each joint can be determined, so that when the robotic arm moves, the end effector of the robotic arm can move according to the discretized path, and other joints can move along their respective trajectory paths, realizing the movement measurement of each joint of the robotic arm under the constraint conditions.
[0123] Figure 9 A structural block diagram of a robotic arm movement path planning device 800 according to an embodiment of this application is shown. Figure 9 As shown, the movement path planning device 800 of the robotic arm may include:
[0124] The task acquisition module 801 is used to acquire the starting node, the destination node, and the free space of the robotic arm;
[0125] The sampling module 802 is used to continuously sample in the free space with the starting node as the root node and based on the guidance factor, and determine the leaf nodes layer by layer to obtain a tree path between the starting node and the destination node; wherein, the tree path includes multiple levels, and each level includes multiple leaf nodes; the guidance factor is obtained by the leaf node closest to the sampling point among the multiple leaf nodes of the previous level and the destination node;
[0126] The target path determination module 803 is used to obtain the target path based on the tree path.
[0127] In one embodiment, the sampling module 802 is further configured to:
[0128] Determine whether the current leaf node meets the growth constraint condition. If the current leaf node does not meet the growth constraint condition, discard the path where the current leaf node is located. The growth constraint condition is that the difference between the distance from the current leaf node to the destination node and the distance from the previous level leaf node of the current leaf node to the destination node meets a preset threshold range.
[0129] In one implementation, the target path determination module 803 is used for:
[0130] The characteristic parameters of the robotic arm are obtained, including: number of links, link length, link offset, and link twist.
[0131] Based on the characteristic parameters of the robotic arm, a constraint model for multiple joints is constructed;
[0132] Based on the path length between adjacent leaf nodes and the changing angles of multiple joints in the tree path, the objective function is obtained.
[0133] Based on the constraint model and the objective function, the target path is obtained from the tree path.
[0134] In one embodiment, the robotic arm's movement path planning device 800 further includes an optimization module for:
[0135] Get the current leaf node;
[0136] Based on the current leaf node, obtain the target leaf node; wherein, the target leaf node is the Nth leaf node after the current leaf node in the target path, and N is a positive integer greater than 1;
[0137] Determine whether a collision will occur when the robotic arm moves from the current leaf node to the target leaf node;
[0138] Find the maximum N value that will not cause a collision;
[0139] The leaf node corresponding to the maximum N value is identified as the target leaf node;
[0140] Using the target leaf node as the current leaf node, determine the next target leaf node;
[0141] An optimized path is generated based on the multiple target leaf nodes determined from the multiple current leaf nodes.
[0142] In one implementation, determining whether a collision will occur as the robotic arm moves from the current leaf node to the target leaf node includes:
[0143] Obtain the parameter information of the obstacle, which includes the coordinates of the obstacle and the envelope information of the obstacle;
[0144] Construct the equation of the straight line between the current leaf node and the target leaf node;
[0145] Based on the equation of the straight line and the parameter information of the obstacle, it is determined whether a collision will occur when the robotic arm moves from the current leaf node to the target leaf node.
[0146] In one embodiment, the robotic arm's movement path planning device 800 further includes a smoothing module for:
[0147] Obtain the three leaf nodes in the target path;
[0148] Based on the three leaf nodes, a Bessel formula is constructed to obtain the fitting curve representation between the three leaf nodes;
[0149] Obtain the spatial linear representation of the three leaf nodes;
[0150] A smooth path is obtained based on the fitted curve representation and the spatial straight line.
[0151] In one embodiment, the robotic arm's movement path planning device 800 further includes a discrete module for:
[0152] The smooth path is discretized to obtain a discretized path; wherein the discretized path includes multiple discrete nodes, the multiple discrete nodes include the leaf nodes in the target path and new nodes generated by the discretization process; the distance difference between multiple adjacent discrete nodes satisfies a preset threshold;
[0153] Based on the feature parameters of the robotic arm, the pose matrix of each joint in the robotic arm is obtained;
[0154] Based on the pose matrix and the discretized path, the trajectory path of each joint is determined.
[0155] The functions of each module in each device in the embodiments of this application can be found in the corresponding descriptions in the above methods, and will not be repeated here.
[0156] Figure 10 A structural block diagram of an electronic device according to an embodiment of this application is shown. Figure 10 As shown, the electronic device includes a memory 910 and a processor 920. The memory 910 stores instructions that can be executed on the processor 920. When the processor 920 executes the instructions, it implements the movement path planning method of the robotic arm in the above embodiments. The number of memories 910 and processors 920 can be one or more. This electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workbenches, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present application described and / or claimed herein.
[0157] The electronic device may also include a communication interface 930 for communicating with external devices and exchanging data. The devices are interconnected using different buses and can be mounted on a common motherboard or otherwise as needed. The processor 920 can process instructions executed within the electronic device, including instructions stored in or on memory to display graphical information of a GUI on an external input / output device (such as a display device coupled to the interface). In other embodiments, multiple processors and / or multiple buses can be used with multiple memories and multiple memory modules, if desired. Similarly, multiple electronic devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). The bus can be divided into address buses, data buses, control buses, etc. For ease of illustration, Figure 10 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0158] Optionally, in a specific implementation, if the memory 910, processor 920, and communication interface 930 are integrated on a single chip, then the memory 910, processor 920, and communication interface 930 can communicate with each other through an internal interface.
[0159] It should be understood that the aforementioned processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. General-purpose processors can be microprocessors or any conventional processor. It is worth noting that the processor can be a processor supporting the Advanced Reduced Instruction Set Computing (RISC) machine (ARM) architecture.
[0160] This application provides a computer-readable storage medium (such as the memory 910 described above) that stores computer instructions, which, when executed by a processor, implement the method provided in this application.
[0161] Optionally, the memory 910 may include a program storage area and a data storage area, wherein the program storage area may store the operating system and applications required for at least one function; the data storage area may store data created by the use of the electronic equipment of the robotic arm's movement path planning method, etc. Furthermore, the memory 910 may include high-speed random access memory and may also include non-transient memory, such as at least one disk storage device, flash memory device, or other non-transient solid-state storage device. In some embodiments, the memory 910 may optionally include memory remotely located relative to the processor 920, and these remote memories can be connected to the electronic equipment of the robotic arm's movement path planning method via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0162] In the description of this specification, the references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of this application. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification, as well as the features of those different embodiments or examples.
[0163] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this application, "a plurality of" means two or more, unless otherwise explicitly specified.
[0164] Any process or method description in the flowchart or otherwise herein can be understood as representing a module, segment, or portion of code comprising one or more (two or more) executable instructions for implementing a particular logical function or process. Furthermore, the scope of the preferred embodiments of this application includes additional implementations in which functions may be performed not in the order shown or discussed, including substantially simultaneously or in reverse order depending on the functionality involved.
[0165] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a sequenced list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, apparatus or device (such as a computer-based system, a processor-included system or other system that can fetch and execute instructions from, an instruction execution system, apparatus or device).
[0166] It should be understood that various parts of this application can be implemented using hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented using software or firmware stored in memory and executed by a suitable instruction execution system. All or part of the steps of the methods in the above embodiments can be implemented by a program instructing related hardware, the program being stored in a computer-readable storage medium, which, when executed, includes one or a combination of the steps of the method embodiments.
[0167] Furthermore, the functional units in the various embodiments of this application can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into a module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. This storage medium can be a read-only memory, a disk, or an optical disk, etc.
[0168] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any person skilled in the art can easily conceive of various variations or substitutions within the technical scope disclosed in this application, and these should all be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for planning the movement path of a robotic arm, characterized in that, include: Obtain the starting node, the destination node, and the free space of the robotic arm; Using the starting node as the root node, based on the guidance factor, continuous sampling is performed in the free space, and leaf nodes are determined layer by layer to obtain a tree path between the starting node and the destination node; wherein, the tree path includes multiple levels, and each level includes multiple leaf nodes; the guidance factor is obtained from the leaf node closest to the sampling point among the multiple leaf nodes of the previous level and the destination node; Obtain the target path based on the tree-like path.
2. The method according to claim 1, characterized in that, The process of determining leaf nodes layer by layer by continuously sampling within the free space based on the guidance factor, with the starting node as the root node, also includes: Determine whether the current leaf node meets the growth constraint condition. If the current leaf node does not meet the growth constraint condition, discard the path where the current leaf node is located. The growth constraint condition is that the difference between the distance from the current leaf node to the destination node and the distance from the previous level leaf node of the current leaf node to the destination node meets a preset threshold range.
3. The method according to claim 1, characterized in that, Obtaining the target path based on the tree path includes: The characteristic parameters of the robotic arm are obtained, including: number of links, link length, link offset, and link twist. Based on the characteristic parameters of the robotic arm, a constraint model for multiple joints is constructed; Based on the path length between adjacent leaf nodes and the changing angles of multiple joints in the tree path, the objective function is obtained. Based on the constraint model and the objective function, the target path is obtained from the tree path.
4. The method according to any one of claims 1 to 3, characterized in that, Also includes: Get the current leaf node; Based on the current leaf node, obtain the target leaf node; wherein, the target leaf node is the Nth leaf node after the current leaf node in the target path, and N is a positive integer greater than 1; Determine whether a collision will occur when the robotic arm moves from the current leaf node to the target leaf node; Find the maximum N value that will not cause a collision; The leaf node corresponding to the maximum N value is identified as the target leaf node; Using the target leaf node as the current leaf node, determine the next target leaf node; An optimized path is generated based on the multiple target leaf nodes determined from the multiple current leaf nodes.
5. The method according to claim 4, characterized in that, Determining whether a collision will occur when the robotic arm moves from the current leaf node to the target leaf node includes: Obtain the parameter information of the obstacle, which includes the coordinates of the obstacle and the envelope information of the obstacle; Construct the equation of the straight line between the current leaf node and the target leaf node; Based on the equation of the straight line and the parameter information of the obstacle, it is determined whether a collision will occur when the robotic arm moves from the current leaf node to the target leaf node.
6. The method according to claim 4, characterized in that, Also includes: Obtain the three leaf nodes in the target path; Based on the three leaf nodes, a Bessel formula is constructed to obtain the fitting curve representation between the three leaf nodes; Obtain the spatial linear representation of the three leaf nodes; A smooth path is obtained based on the fitted curve representation and the spatial straight line.
7. The method according to claim 6, characterized in that, Also includes: The smooth path is discretized to obtain a discretized path; wherein the discretized path includes multiple discrete nodes, the multiple discrete nodes include the leaf nodes in the target path and new nodes generated by the discretization process; the distance difference between multiple adjacent discrete nodes satisfies a preset threshold; Based on the feature parameters of the robotic arm, the pose matrix of each joint in the robotic arm is obtained; Based on the pose matrix and the discretized path, the trajectory path of each joint is determined.
8. A movement path planning device for a robotic arm, characterized in that, include The task acquisition module is used to acquire the starting node, the destination node, and the free space of the robotic arm; A sampling module is used to continuously sample within the free space, with the starting node as the root node, based on a guidance factor, and determine leaf nodes layer by layer to obtain a tree path from the starting node to the destination node; wherein, the tree path includes multiple levels, and each level includes multiple leaf nodes; the guidance factor is obtained from the leaf node closest to the sampling point among the multiple leaf nodes of the previous level and the destination node; The target path determination module is used to obtain the target path based on the tree-shaped path.
9. A robotic arm, characterized in that, include: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-7.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that, when executed by a processor, implement the method as described in any one of claims 1-7.