CN107563050B - Method for quickly searching optimization curve in collision graph layer - Google Patents

Method for quickly searching optimization curve in collision graph layer Download PDF

Info

Publication number
CN107563050B
CN107563050B CN201710766425.7A CN201710766425A CN107563050B CN 107563050 B CN107563050 B CN 107563050B CN 201710766425 A CN201710766425 A CN 201710766425A CN 107563050 B CN107563050 B CN 107563050B
Authority
CN
China
Prior art keywords
collision
curve
list
searching
optimization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201710766425.7A
Other languages
Chinese (zh)
Other versions
CN107563050A (en
Inventor
张铁
苏杰汶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201710766425.7A priority Critical patent/CN107563050B/en
Publication of CN107563050A publication Critical patent/CN107563050A/en
Application granted granted Critical
Publication of CN107563050B publication Critical patent/CN107563050B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)

Abstract

The invention provides a method for quickly searching an optimization curve in a collision graph layer, which comprises the following steps: 1) a step of obtaining the midpoint of the collision-free interval, namely taking the midpoint of the collision-free interval of the knife contact serial number corresponding to the intersection point when the optimization curve intersects with the boundary of the collision area in the advancing process as the starting point of a new optimization curve; 2) a one-way optimization curve searching step based on a neighborhood searching method, namely starting from the middle point of a certain collision-free interval, and searching an optimization curve in a reliable area under the condition of not generating a complete collision map layer; 3) searching a bidirectional optimization curve based on a recursive method; 4) and generating an optimization curve in the whole collision and collision layer. The method has the characteristics of flexibility and practicability, greatly improves the speed of searching the optimized curve in the collision graph layer and greatly reduces the operation amount in the process of searching the optimized curve.

Description

Method for quickly searching optimization curve in collision graph layer
Technical Field
The invention relates to a method for quickly searching an optimized curve in a collision layer, which comprises an algorithm for solving the midpoint of a collision-free interval, a one-way optimized curve searching algorithm based on a neighborhood search method and a two-way optimized curve searching algorithm based on a recursion method.
Background
When a robot processes a workpiece, a processing path of the workpiece is generally generated by CAM software, and then the robot end clamps the workpiece or a tool to execute the processing path, thereby processing the workpiece. However, as the shape of the workpiece becomes more complicated, collision phenomena, such as collision of the robot with the tool, collision of the tool with the workpiece, etc., often occur during the execution of the machining path. This may cause the machined workpiece to be scrapped or cause damage to the robot. Therefore, it is very important to perform collision-free optimization on the processing path of the robot, and the optimization method is usually realized by using a collision graph layer method. The collision graph layer of the robot machining path is obtained through simulation and collision detection of the robot machining process, an optimization curve is searched in a reliable area of the collision graph layer, and the optimization curve is converted into the machining path of the robot, so that collision-free machining of the robot on a workpiece is achieved. However, a large amount of collision detection is required to generate a complete collision layer, the calculation amount is huge, and the consumed time is long. At this time, an optimization curve needs to be quickly found in the collision map layer under the condition that a complete collision map layer is not generated, so that collision-free optimization of the machining path of the robot is realized.
Disclosure of Invention
The invention provides a method for quickly searching an optimization curve in a collision graph layer. The method comprises an algorithm for solving the midpoint of a collision-free interval, a one-way optimization curve searching algorithm based on a neighborhood searching method and a two-way optimization curve searching algorithm based on a recursion method. The method for solving the midpoint of the collision-free interval solves the problem that when the optimization curve meets a collision region, the starting point of a new optimization curve is determined to be bright, the one-way optimization curve searching algorithm based on the neighborhood search method solves the problem of searching the optimization curve without a complete collision layer, and the two-way optimization curve searching algorithm based on the recursion method solves the problem of searching the whole optimization curve in the whole collision layer. The method has the characteristics of flexibility and practicability, greatly improves the speed of searching the optimized curve in the collision graph layer and greatly reduces the operation amount in the process of searching the optimized curve.
The purpose of the invention is realized by the following technical scheme:
a method for fast finding an optimized curve in a collision map layer, comprising the steps of:
1) a step of obtaining the midpoint of the collision-free interval, namely taking the midpoint of the collision-free interval of the knife contact serial number corresponding to the intersection point when the optimization curve intersects with the boundary of the collision area in the advancing process as the starting point of a new optimization curve;
2) a one-way optimization curve searching step based on a neighborhood searching method, namely starting from the middle point of a certain collision-free interval, and searching an optimization curve in a reliable area under the condition of not generating a complete collision map layer;
3) searching a bidirectional optimization curve based on a recursive method;
4) and generating an optimization curve in the whole collision and collision layer.
Further, the step 1) specifically comprises:
11) setting an initial curve as a straight line with the head and tail points respectively (1,0) and (N,0), and indicating that the processing coordinate system (M') corresponding to all the cutter contacts is on the coordinate axis at the initial time
Figure GDA0003069849640000021
D is 0;
12) the robot starts to polish the simulation from the 1 st knife contact point, and when the simulation is polished to the ith knife contact point PiWhen collision between the workpiece or the robot and the tool is detected, the ith tool contact point P is obtainediMachining coordinate system of { M'iOn the coordinate axis
Figure GDA0003069849640000031
A plurality of collision free zones;
13) then, the midpoint of each collision-free section is determined, and when the midpoint of each collision-free section is determined, it is necessary to locate the machining coordinate system { M 'of the ith tool contact point'iFrom the feasible region d-A-W/2 to d-A + W/2 with a certain interval Δ d across the whole coordinate axis
Figure GDA0003069849640000032
And carrying out collision detection on the points (i, d), sequentially finding the starting point and the end point of each collision-free interval, and solving the middle point of the interval, wherein W is the width of the abrasive belt, and A is the maximum value of the angle alpha of the machining coordinate system { M' } rotating around the tangent line of the abrasive belt;
further, in the step 13), i is set as the current knife contact, and list is displayedmidUsed for storing the middle point of the collision-free interval, delta d is the step length of adjustment of the processing coordinate system { M' }, doNull is an integer greater than A + W/2 and is the starting point of the collision-free interval when doWhen not equal to null, the machining coordinate system (M') is shown to enter
Figure GDA0003069849640000037
The specific step of finding the midpoint of the collision-free interval of the ith knife contact comprises the following steps:
131) { M' } from the coordinate axis
Figure GDA0003069849640000033
The lower limit d of the interval is-A-W/2 and starts to traverse the coordinate axis
Figure GDA0003069849640000034
132) If d is larger than [ -A-W/2, A + W/2], performing collision detection on (i, d) in a collision layer; otherwise go to step 136);
133) if (i, d) ∈ CA and doNot equal to null, then order dm=(do+ d- Δ d)/2, mixing dmAdd to listmidIn the middle, let doGo to step 132) null, d + Δ d;
134) if (i, d) ∈ CA and doNull or if
Figure GDA0003069849640000035
And d isoNot null, go to step 132);
135) if it is not
Figure GDA0003069849640000036
And d isoWhen d is null, orderoGo to step 132 ═ d);
136) if d isoIf null, finish searching, otherwise make dm=(do+ d)/2, mixing dmAdd to listmidIn the middle, let doNull, the search ends.
Further, in the step 2),
21) inputting a point value mid-point value mid in a collision-free interval as a starting point of an optimization curve, and a search range n ═ io→itInteger m, robot initial joint pose list Joints, knife contact list points, point list curve on initial curve, ith value curve [ i]Represents { M'iAt
Figure GDA0003069849640000041
(iii) a position of (d);
22) calculating the increasing step length delta i (1 or-1) of the knife contact serial number, and ensuring curve [ i [ -1 ]o-Δi]=mid,i=io,d=mid;
23) If i ≠ it+ Δ i, find the neighborhood U (d, m Δ d), and increase the value in the neighborhood U (d, m Δ d)The small order is put into a list { d-m · Δ, …, d, d + Δ, … d + m · Δ }, where:
Figure GDA0003069849640000042
in the formula (d)iPoint p being the ith point in the initial curveiOrdinate of d'i+1Is the i +1 th point p 'in the initial curve'i+1The ordinate of (a); otherwise return ilast=itIndicating that the searching of the optimization curve is successful, and ending the searching;
24) if it is not
Figure GDA0003069849640000043
Jump to step 25); otherwise, pair (i, curve [ i ] in collision layer]) Performing collision detection if (i, curve [ i ]]) E to CA, finding the optimization curve successfully, and returning to ilast=itEnding the search; if it is not
Figure GDA0003069849640000044
Jump to step 25);
25) go through list from beginning to end and perform collision detection to see if there is d' e list and
Figure GDA0003069849640000045
and calculating the pose theta of the robot joint at the moment, and if the pose theta exists, making curve i]=d=d′,Joints[i]Jump to step 23) by θ, i + Δ i; otherwise, the optimization curve searching fails, and i is returnedlastI, the search is ended.
Further, the step 3) specifically includes:
31) inputting the collision knife contact serial number iFAnd find the ithFA midpoint list of collision-free intervals of the blade contacts;
32) if listmidIf it is empty, return to irWhen the two-way optimization curve is-1, the searching fails, and the searching is finished; otherwise, the first element of the list is taken out and assigned to the mid, and the first element in the list is deletedLet io=iF-1,i t0; starting from mid, by n ═ io→itAccording to the sequence of the step (i), searching the optimized curve according to the step (i), searching the optimized curve backwards, and returning the optimized result and the step (i)last
33) Jumping to step 34) if the curve finding is successful; otherwise, the index n of the tool contact point with the collision is made to be ilastRecursively invoking the bidirectional optimization curve finding step and returning to irIf i isrNot equal to-1, jump to step 34), otherwise jump to step 32);
34) let io=iF+1,it=imaxWherein imaxThe largest knife contact number is determined by taking mid as a starting point and using n-io→itIn the sequence of (1), searching an optimization curve backwards, and returning an optimization result and ilast
35) If the optimization is successful, jumping to step 36); otherwise, the index of the tool contact point with the collision is set as n-ilastRecursively invoking the bidirectional optimization curve finding step and returning to irIf i isrIf not equal to-1, the distance is Step6, otherwise, the Step2 is jumped to;
36) return to ir=ilastAnd ending the search.
Further, the step 4) specifically includes:
41) inputting an initial machining coordinate system { M'OFifthly, polishing a knife contact list points on the path;
42) according to { M'OGenerating all joint poses of the robot by the points, and sequentially putting the pose and the pose into a joint list Joins;
43) generating an axial path list curve which is a list of points on the initial curve, wherein each point respectively represents a processing coordinate system (M') corresponding to the knife contact in points on a coordinate axis
Figure GDA0003069849640000061
The initial value of all elements in the list is 0; let i equal to 1;
44) if i is not greater than joint.size, wherein the joint.size is the number of elements in the list Joints, moving the robot to a joint pose join [ i ] in the simulation scene, and performing collision detection; otherwise, the optimization is successful, and the step is ended;
45) if no collision occurs, let i equal i +1, go to step 44); otherwise, taking i as the serial number of the collision knife contact, calling a bidirectional optimization curve searching step, and returning to ir
46) If irNot equal to-1, let i be irI +1 and go to step 44); otherwise, the optimization fails, and the step is ended.
Compared with the prior art, the method has the characteristics of flexibility and practicability, greatly improves the speed of searching the optimized curve in the collision graph layer, greatly reduces the operation amount in the process of searching the optimized curve, and has the advantages of simplicity, high efficiency and easiness in implementation.
Drawings
Fig. 1 is a schematic diagram of a determination of a midpoint of a collision-free interval in a collision map layer.
FIG. 2 is a schematic diagram of a one-way optimization curve search based on a neighborhood search method.
In FIG. 3, (a) is when di≤d′i+1When d is greater than d, the values in list are arranged in a schematic diagram from large to smalli>d′i+1When the values in list are arranged from large to small, the schematic diagram is shown.
Fig. 4 (a) is a schematic diagram of finding an optimized curve when the initial curve is within the neighborhood range of the optimized curve, and (b) is a schematic diagram of finding an optimized curve when the initial curve is not within the neighborhood range of the optimized curve.
Fig. 5 is a schematic diagram of collision-free optimization of a motion path when collision of a workpiece or a robot with a tool occurs until the ith tool contact point is processed.
Fig. 6 is a schematic diagram of a recursive call bidirectional optimization curve finding algorithm in bidirectional optimization curve finding.
Fig. 7 is a schematic diagram of a robot machining simulation environment.
Detailed Description
The present invention will be described in further detail below with reference to the drawings and examples, but the embodiments of the present invention are not limited thereto.
Generating a processing path of a workpiece in CAM software, in this embodiment, generating a polishing path of the workpiece, and converting the polishing path into a motion path during robot processing, as shown in FIG. 7, building a robot processing simulation environment including a robot, the workpiece and a grinding belt machine, then simulating the robot processing workpiece, generating a collision graph layer during simulation, and searching for an optimization curve in the collision graph layer.
A method for fast finding an optimized curve in a collision map layer, comprising the steps of:
1) a step of obtaining the midpoint of the collision-free interval, namely taking the midpoint of the collision-free interval of the knife contact serial number corresponding to the intersection point when the optimization curve intersects with the boundary of the collision area in the advancing process as the starting point of a new optimization curve;
2) a one-way optimization curve searching step based on a neighborhood searching method, namely starting from the middle point of a certain collision-free interval, and searching an optimization curve in a reliable area under the condition of not generating a complete collision map layer;
3) searching a bidirectional optimization curve based on a recursive method;
4) and generating an optimization curve in the whole collision and collision layer.
Specifically, as shown in fig. 1, the step 1) specifically includes:
11) setting an initial curve as a straight line with the head and tail points respectively (1,0) and (N,0), and indicating that the processing coordinate system (M') corresponding to all the cutter contacts is on the coordinate axis at the initial time
Figure GDA0003069849640000081
D is 0;
12) the robot starts to polish the simulation from the 1 st knife contact point, and when the simulation is polished to the ith knife contact point PiWhen collision between the workpiece or the robot and the tool is detected, the ith tool contact point P is obtainediMachining coordinate system of { M'iOn the coordinate axis
Figure GDA0003069849640000082
A number of the collision-free zones in (a),such as the interval S in fig. 11And S2
13) Then, the midpoint of each collision-free interval, i.e., point m shown in FIG. 1, is determined1And m2When the midpoint of the collision-free zone is obtained, the machining coordinate system { M 'located at the ith tool contact point is required'iFrom the feasible region d-A-W/2 to d-A + W/2 with a certain interval Δ d across the whole coordinate axis
Figure GDA0003069849640000086
And carrying out collision detection on the points (i, d), sequentially finding the starting point and the end point of each collision-free interval, and solving the middle point of the interval, wherein W is the width of the abrasive belt, and A is the maximum value of the angle alpha of the machining coordinate system { M' } rotating around the tangent line of the abrasive belt;
specifically, in the step 13), i is set as the current tool contact, and list is displayedmidUsed for storing the middle point of the collision-free interval, delta d is the step length of adjustment of the processing coordinate system { M' }, doNull is an integer greater than A + W/2 and is the starting point of the collision-free interval when doWhen not equal to null, the machining coordinate system (M') is shown to enter
Figure GDA0003069849640000083
The specific step of finding the midpoint of the collision-free interval of the ith knife contact comprises the following steps:
131) { M' } from the coordinate axis
Figure GDA0003069849640000084
The lower limit d of the interval is-A-W/2 and starts to traverse the coordinate axis
Figure GDA0003069849640000085
132) If d is larger than [ -A-W/2, A + W/2], performing collision detection on (i, d) in a collision layer; otherwise go to step 136);
133) if (i, d) ∈ CA and doNot equal to null, then order dm=(do+ d- Δ d)/2, mixing dmAdd to listmidIn the middle, let doGo to step 132) null, d + Δ d;
134) if (i, d) ∈ CA and doNull or if
Figure GDA0003069849640000091
And d isoNot null, go to step 132);
135) if it is not
Figure GDA0003069849640000092
And d isoWhen d is null, orderoGo to step 132 ═ d);
136) if d isoIf null, finish searching, otherwise make dm=(do+ d)/2, mixing dmAdd to listmidIn the middle, let doNull, the search ends.
Regarding the step of searching for the one-way optimization curve based on the neighborhood search method, as shown in fig. 2, after finding the middle point of the collision-free interval of the ith knife contact point, one of the middle points of the interval is selected as the starting point, as shown in m of fig. 21And (4) point. From m1Starting from the point that n is io→itIn the range of (1), an optimized curve (a dotted curve) is searched, a collision area is avoided, the optimized curve is connected with an initial curve (a solid line in the figure) after the ith point, and n is the intersection point1. Replacing n-i in the initial curve by the optimized curveo→itThe robot does not collide when processing the knife contacts.
When an optimization curve is searched, the processing coordinate systems (M') corresponding to two adjacent cutter contacts are in
Figure GDA0003069849640000093
The distance in (1) cannot be too large, because once the distance is too large, the amplitude of the axial movement of the robot along the contact wheel is suddenly increased when the two knife contacts are machined, and the machining quality is affected. Therefore, a neighborhood search method is adopted to find points on the optimization curve, so that the optimization curve is smoother.
As shown in FIG. 3, the optimization curve reaches the ith point pi=(i,di) At the i +1 st point pi+1When the (i + 1) th point is verticalThe value range of the coordinates should be dsm.DELTA.d neighborhood of U (d)i,m·Δd)={di-m·Δd,…,di,di+Δd,…di+ M · Δ d } (Δ d > 0), so as to keep the { M' } corresponding to the contacts of two adjacent blades at
Figure GDA0003069849640000094
The distance of (D) is limited to the range of. + -. m.DELTA.d.
To improve the efficiency of the search, U (d) may be usediValues in m · Δ d) are put in a list of { d ═ d) in order of magnitudei-m·Δ,…,di,di+Δ,…di+ m · Δ }, wherein:
Figure GDA0003069849640000101
of formula (II) to'i+1Is the i +1 th point p 'in the initial curve'i+1The ordinate of (c). When d isi≤d′i+1When the values in list are arranged from large to small, as shown in fig. 3 (a), and vice versa, as shown in fig. 3 (b). Traversing the list value d from beginning to end and carrying out collision detection on the points (i +1, d) if the collision detection is successful
Figure GDA0003069849640000102
Then optimize point p on the curvei+1(i +1, d). If it is
Figure GDA0003069849640000103
If (i +1, d) belongs to CA, the search of the optimization curve fails. This search method can ensure that the optimized curve approaches the initial curve until it intersects.
When d 'as shown in FIG. 4'i+1∈U(diM Δ d), indicating that the initial curve is within the neighborhood of the optimized curve, the pair is preferably (i +1, d'i+1) Make collision detection if
Figure GDA0003069849640000104
As shown in fig. 4 (a), the point p on the optimization curvei+1=(i+1,d′i+1) And is combined withConnecting with the initial curve, and successfully searching the optimized curve; otherwise, go through list as shown in fig. 4 (b).
Therefore, the step 2) specifically comprises the steps of,
21) inputting a point value mid-point value mid in a collision-free interval as a starting point of an optimization curve, and a search range n ═ io→itInteger m, robot initial joint pose list Joints, knife contact list points, point list curve on initial curve, ith value curve [ i]Represents { M'iAt
Figure GDA0003069849640000105
(iii) a position of (d);
22) calculating the increasing step length delta i (1 or-1) of the knife contact serial number, and ensuring curve [ i [ -1 ]o-Δi]=mid,i=io,d=mid;
23) If i ≠ it+ Δ i, find the neighborhood U (d, m Δ d), put the values in the neighborhood U (d, m Δ d) into a list of list { d-m Δ, …, d, d + Δ, … d + m Δ } in order of magnitude, where:
Figure GDA0003069849640000111
in the formula (d)iPoint p being the ith point in the initial curveiOrdinate of d'i+1Is the i +1 th point p 'in the initial curve'i+1The ordinate of (a); otherwise return ilast=itIndicating that the searching of the optimization curve is successful, and ending the searching;
24) if it is not
Figure GDA0003069849640000112
Jump to step 25); otherwise, pair (i, curve [ i ] in collision layer]) Performing collision detection if (i, curve [ i ]]) E to CA, finding the optimization curve successfully, and returning to ilast=itEnding the search; if it is not
Figure GDA0003069849640000113
Jump to step 25);
25) go through list from beginning to end and perform collision detection to see if there is d' e list and
Figure GDA0003069849640000114
and calculating the pose theta of the robot joint at the moment, and if the pose theta exists, making curve i]=d=d′,Joints[i]Jump to step 23) by θ, i + Δ i; otherwise, the optimization curve searching fails, and i is returnedlastI, the search is ended.
When i is shown in FIG. 2o<itWhen the optimization curve of the knife contact point with n being larger than i is searched forward from mid, the algorithm only needs to enable i to be smaller than i when the optimization curve of the knife contact point with n being smaller than i is searchedo>itAnd (4) finishing.
Specifically, the step 3) specifically includes:
31) inputting the collision knife contact serial number iFAnd find the ithFA midpoint list of collision-free intervals of the blade contacts;
32) if listmidIf it is empty, return to irWhen the two-way optimization curve is-1, the searching fails, and the searching is finished; otherwise, taking out the first element of the list, assigning the first element of the list to the mid, deleting the first element of the list, and enabling i to beo=iF-1,i t0; starting from mid, by n ═ io→itAccording to the sequence of the step (i), searching the optimized curve according to the step (i), searching the optimized curve backwards, and returning the optimized result and the step (i)last
33) Jumping to step 34) if the curve finding is successful; otherwise, the index n of the tool contact point with the collision is made to be ilastRecursively invoking the bidirectional optimization curve finding step and returning to irIf i isrNot equal to-1, jump to step 34), otherwise jump to step 32);
34) let io=iF+1,it=imaxWherein imaxThe largest knife contact number is determined by taking mid as a starting point and using n-io→itIn the sequence of (1), searching an optimization curve backwards, and returning an optimization result and ilast
35) If the optimization is successful, jumping to step 36); otherwise, the index of the tool contact point with the collision is set as n-ilastRecursively invoking the bidirectional optimization curve finding step and returning to irIf i isrNot equal to-1, executing step 36), otherwise jumping to step 32);
36) return to ir=ilastAnd ending the search.
As shown in fig. 5, when the ith tool contact point is machined, if a collision between the workpiece or the robot and the tool occurs, it is necessary to start from a middle point of a collision-free section where n is i, as shown by m in fig. 51And respectively searching an optimization curve connected with the initial curve forwards and backwards to enable the whole curve to avoid a collision area, so as to realize collision-free optimization of the motion path.
The basic process of the two-way optimization curve searching algorithm is as follows: firstly, a list of middle points in a collision-free interval of the ith knife contact is obtainedmidGo to listmidThe m in the point is used as a starting point, the optimization curves are respectively searched forwards and backwards, if both the curves are searched successfully, the algorithm is ended, and if one curve is searched unsuccessfully, the list is continued to be performed againmidUntil listmidThe process is completed.
As shown in FIG. 6, in the two-way optimization curve finding algorithm, if from m1When the point starts to search the optimization curve forwards, the point encounters a collision region, such as the curve c in fig. 6, when n is equal to ilastInto the collision zone 1. In order to keep the optimization curve away from the collision region, a recursive approach may be used. Number n ═ i of knife contactlastAnd recursively calling a bidirectional optimization curve finding algorithm to find the midpoint m 'in the collision-free interval'1And starting, searching an optimized curve connection curve c backwards, and searching an optimized curve connection initial curve forwards. From m1The same approach is also used when a point encounters a collision zone when looking back at the optimization curve.
Finally, the step 4) specifically comprises the following steps:
41) inputting an initial machining coordinate system { M'OFifthly, polishing a knife contact list points on the path;
42) according to { M'OGenerating all joint poses of the robot by the points, and sequentially putting the pose and the pose into a joint list Joins;
43) generating an axial path list curve which is a list of points on the initial curve, wherein each point respectively represents a processing coordinate system (M') corresponding to the knife contact in points on a coordinate axis
Figure GDA0003069849640000131
The initial value of all elements in the list is 0; let i equal to 1;
44) if i is not greater than joint.size, wherein the joint.size is the number of elements in the list Joints, moving the robot to a joint pose join [ i ] in the simulation scene, and performing collision detection; otherwise, the optimization is successful, and the step is ended;
45) if no collision occurs, let i equal i +1, go to step 44); otherwise, taking i as the serial number of the collision knife contact, calling a bidirectional optimization curve searching step, and returning to ir
46) If irNot equal to-1, let i be irI +1 and go to step 44); otherwise, the optimization fails, and the step is ended.
After the robot motion path collision-free optimization algorithm is successfully optimized, an optimized robot joint pose list Joints is generated, and the robot can realize collision-free grinding of the workpiece as long as poses in the list are sequentially executed by the robot.
In summary, compared with the prior art, the invention has the following outstanding advantages:
and solving the middle point of the collision-free interval corresponding to the knife contact point corresponding to the intersection point of the current optimization curve and the collision region boundary, and taking the middle point as the starting point of the new optimization curve segment, so that the new optimization curve segment can be ensured to have higher possibility of bypassing the collision region.
And the optimized curve is searched by adopting a neighborhood search strategy, so that the times of collision detection are greatly reduced, the calculation amount is greatly reduced, and the curve searching efficiency is improved.
When the optimized curve is searched, the optimized curve meets the collision region, the bidirectional optimized curve searching algorithm is called recursively, the optimized curve can flexibly bypass the collision region, and the method has the advantages of simplicity, high efficiency and easiness in implementation.
The above embodiments are provided only for illustrating the present invention and not for limiting the present invention, and those skilled in the art can make various changes and modifications without departing from the spirit and scope of the present invention, and therefore all equivalent technical solutions should also fall within the scope of the present invention, and should be defined by the claims.

Claims (4)

1. A method for fast finding an optimized curve in a collision map layer, comprising the steps of:
1) a step of obtaining the midpoint of the collision-free interval, namely taking the midpoint of the collision-free interval of the knife contact serial number corresponding to the intersection point when the optimization curve intersects with the boundary of the collision area in the advancing process as the starting point of a new optimization curve;
2) a one-way optimization curve searching step based on a neighborhood searching method, namely starting from the middle point of a certain collision-free interval, and searching an optimization curve in a reliable area under the condition of not generating a complete collision map layer;
3) searching a bidirectional optimization curve based on a recursive method;
the method specifically comprises the following steps:
31) inputting the collision knife contact serial number iFAnd find the ithFA midpoint list of collision-free intervals of the blade contacts;
32) if listmidIf it is empty, return to irWhen the two-way optimization curve is-1, the searching fails, and the searching is finished; otherwise, taking out the first element of the list, assigning the first element of the list to the mid, deleting the first element of the list, and enabling i to beo=iF-1,it0; starting from mid, by n ═ io→itAccording to the sequence of the step (i), searching the optimized curve according to the step (i), searching the optimized curve backwards, and returning the optimized result and the step (i)last
33) Jumping to step 34) if the curve finding is successful; otherwise, the index n of the tool contact point with the collision is made to be ilastRecursive call pairSearching the optimized curve and returning to irIf i isrNot equal to-1, jump to step 34), otherwise jump to step 32);
34) let io=iF+1,it=imaxWherein imaxThe largest knife contact number is determined by taking mid as a starting point and using n-io→itIn the sequence of (1), searching an optimization curve backwards, and returning an optimization result and ilast
35) If the optimization is successful, jumping to step 36); otherwise, the index of the tool contact point with the collision is set as n-ilastRecursively invoking the bidirectional optimization curve finding step and returning to irIf i isrNot equal to-1, executing step 36), otherwise jumping to step 32);
36) return to ir=ilastEnding the search;
4) generating an optimization curve in the whole collision and collision graph layer, which specifically comprises the following steps:
41) inputting an initial machining coordinate system { M'OFifthly, polishing a knife contact list points on the path;
42) according to { M'OGenerating all joint poses of the robot by the points, and sequentially putting the pose and the pose into a joint list Joins;
43) generating an axial path list curve which is a list of points on the initial curve, wherein each point respectively represents a processing coordinate system (M') corresponding to the knife contact in points on a coordinate axis
Figure FDA0003069849630000021
The initial value of all elements in the list is 0; let i equal to 1;
44) if i is not greater than joint.size, wherein the joint.size is the number of elements in the list Joints, moving the robot to a joint pose join [ i ] in the simulation scene, and performing collision detection; otherwise, the optimization is successful, and the step is ended;
45) if no collision occurs, let i equal i +1, go to step 44); otherwise, taking i as the serial number of the collision knife contact, calling a bidirectional optimization curve searching step, and returning to ir
46) If irNot equal to-1, let i be irI +1 and go to step 44); otherwise, the optimization fails, and the step is ended.
2. The method for quickly finding an optimization curve in a collision map layer according to claim 1, wherein the step 1) specifically comprises:
11) setting an initial curve as a straight line with the head and tail points respectively (1,0) and (N,0), and indicating that the processing coordinate system (M') corresponding to all the cutter contacts is on the coordinate axis at the initial time
Figure FDA0003069849630000031
D is 0;
12) the robot starts to polish the simulation from the 1 st knife contact point, and when the simulation is polished to the ith knife contact point PiWhen collision between the workpiece or the robot and the tool is detected, the ith tool contact point P is obtainediMachining coordinate system of { M'iOn the coordinate axis
Figure FDA0003069849630000032
A plurality of collision free zones;
13) then, the midpoint of each collision-free section is determined, and when the midpoint of each collision-free section is determined, it is necessary to locate the machining coordinate system { M 'of the ith tool contact point'iFrom the feasible region d-A-W/2 to d-A + W/2 with a certain interval Δ d across the whole coordinate axis
Figure FDA0003069849630000033
And (3) carrying out collision detection on the points (i, d), sequentially finding the starting point and the end point of each non-collision interval, and solving the middle point of the interval, wherein W is the width of the abrasive belt, and A is the maximum value of the angle alpha of the machining coordinate system { M' } rotating around the tangent line of the abrasive belt.
3. The method for rapidly finding the optimization curve in the collision map layer according to claim 2, wherein in the step 13), i is set as the current tool contact point, listmidUsed for storing the middle point of the collision-free interval, delta d is the step length of adjustment of the processing coordinate system { M' }, doNull is an integer greater than A + W/2 and is the starting point of the collision-free interval when doWhen not equal to null, the machining coordinate system (M') is shown to enter
Figure FDA0003069849630000034
The specific step of finding the midpoint of the collision-free interval of the ith knife contact comprises the following steps:
131) { M' } from the coordinate axis
Figure FDA0003069849630000035
The lower limit d of the interval is-A-W/2 and starts to traverse the coordinate axis
Figure FDA0003069849630000036
132) If d is larger than [ -A-W/2, A + W/2], performing collision detection on (i, d) in a collision layer; otherwise go to step 136);
133) if (i, d) ∈ CA and doNot equal to null, then order dm=(do+ d- Δ d)/2, mixing dmAdd to listmidIn the middle, let doGo to step 132) null, d + Δ d;
134) if (i, d) ∈ CA and doNull or if
Figure FDA0003069849630000043
And d isoNot null, go to step 132);
135) if it is not
Figure FDA0003069849630000045
And d isoWhen d is null, orderoGo to step 132 ═ d);
136) if d isoIf null, finish searching, otherwise make dm=(do+ d)/2, mixing dmAdd to listmidIn the middle, let doNull, the search ends.
4. The method for fast finding an optimization curve in a collision map layer according to claim 1, wherein in step 2),
21) inputting a point value mid-point value mid in a collision-free interval as a starting point of an optimization curve, and a search range n ═ io→itInteger m, robot initial joint pose list Joints, knife contact list points, point list curve on initial curve, ith value curve [ i]Represents { Mi' } at
Figure FDA0003069849630000041
(iii) a position of (d);
22) calculating the increasing step length delta i of the knife contact serial number to curve io-Δi]=mid,i=io,d=mid;
23) If i ≠ it+ Δ i, find the neighborhood U (d, m Δ d), put the values in the neighborhood U (d, m Δ d) into a list of list { d-m Δ, …, d, d + Δ, … d + m Δ } in order of magnitude, where:
Figure FDA0003069849630000042
in the formula (d)iPoint p being the ith point in the initial curveiOrdinate of (d)i+1Is the i +1 st point p in the initial curvei+1The ordinate of (a); otherwise return ilast=itIndicating that the searching of the optimization curve is successful, and ending the searching;
24) if it is not
Figure FDA0003069849630000044
Jump to step 25); otherwise, pair (i, curve [ i ] in collision layer]) Performing collision detection if (i, curve [ i ]]) E to CA, finding the optimization curve successfully, and returning to ilast=itEnding the search; if it is not
Figure FDA0003069849630000051
Jump to step 25);
25) go through list from beginning to end and perform collision detection to see if there is d' e list and
Figure FDA0003069849630000052
and calculating the pose theta of the robot joint at the moment, and if the pose theta exists, making curve i]=d=d′,Joints[i]Jump to step 23) by θ, i + Δ i; otherwise, the optimization curve searching fails, and i is returnedlastI, the search is ended.
CN201710766425.7A 2017-08-30 2017-08-30 Method for quickly searching optimization curve in collision graph layer Expired - Fee Related CN107563050B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710766425.7A CN107563050B (en) 2017-08-30 2017-08-30 Method for quickly searching optimization curve in collision graph layer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710766425.7A CN107563050B (en) 2017-08-30 2017-08-30 Method for quickly searching optimization curve in collision graph layer

Publications (2)

Publication Number Publication Date
CN107563050A CN107563050A (en) 2018-01-09
CN107563050B true CN107563050B (en) 2021-08-10

Family

ID=60978600

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710766425.7A Expired - Fee Related CN107563050B (en) 2017-08-30 2017-08-30 Method for quickly searching optimization curve in collision graph layer

Country Status (1)

Country Link
CN (1) CN107563050B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109664296B (en) * 2018-12-13 2021-12-17 华南理工大学 Optimized track searching method for robot abrasive belt grinding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426391A (en) * 2011-09-05 2012-04-25 华南理工大学 Method for determining whether there is collision during robot operation
CN103823466A (en) * 2013-05-23 2014-05-28 电子科技大学 Path planning method for mobile robot in dynamic environment
CN105868858A (en) * 2016-03-31 2016-08-17 华南理工大学 Method for optimizing track of engraving machine
CN105867381A (en) * 2016-04-25 2016-08-17 广西大学 Industrial robot path search optimization algorithm based on probability map
CN105955254A (en) * 2016-04-25 2016-09-21 广西大学 Improved A* algorithm suitable for robot path search

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6876899B2 (en) * 2002-01-18 2005-04-05 Vulcan Engineering Co., Inc. Method for automatic riser gate removal compensating for variance in casting

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426391A (en) * 2011-09-05 2012-04-25 华南理工大学 Method for determining whether there is collision during robot operation
CN103823466A (en) * 2013-05-23 2014-05-28 电子科技大学 Path planning method for mobile robot in dynamic environment
CN105868858A (en) * 2016-03-31 2016-08-17 华南理工大学 Method for optimizing track of engraving machine
CN105867381A (en) * 2016-04-25 2016-08-17 广西大学 Industrial robot path search optimization algorithm based on probability map
CN105955254A (en) * 2016-04-25 2016-09-21 广西大学 Improved A* algorithm suitable for robot path search

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Path Planning Method for Robotic Belt Surface Grinding;WANG Wei;《Chinese Journal of Aeronautics》;20110430;第520-526页 *
基于改进蚁群算法的机器人末端路径排序优化;张铁;《中国机械工程》;20161015;第2624-2629页 *

Also Published As

Publication number Publication date
CN107563050A (en) 2018-01-09

Similar Documents

Publication Publication Date Title
CN109724612B (en) AGV path planning method and device based on topological map
CN108262747B (en) Motion trajectory planning method and device, robot and storage medium
CN109496286B (en) Numerical control system, path planning method thereof and computer-readable storage medium
CN103473658A (en) Warehouse-in and warehouse-out method for storage, and system thereof
CN111323037A (en) Voronoi path planning algorithm for novel framework extraction of mobile robot
CN107563050B (en) Method for quickly searching optimization curve in collision graph layer
CN112764394B (en) Method, device and apparatus for controlling machining trajectory of workpiece, processor and medium thereof
CN110487295A (en) A kind of time-optimized smooth A* algorithm
CN113188555A (en) Mobile robot path planning method
CN115755951A (en) Unmanned aerial vehicle obstacle avoidance method for quickly recovering flight path
CN114611317A (en) Multi-direction random polishing path generation method based on tree topology structure
CN103792880A (en) Numerical control system and method for improving thread turning speed and machining precision
CN112051803B (en) Small line segment fairing method based on space plane normal vector
CN116958178B (en) Autonomous planning method and system for weld polishing based on laser vision
CN117032231A (en) Multi-agent path planning method based on improved RRT
CN111487972A (en) Kickball gait planning method and device, readable storage medium and robot
CN109799785B (en) Spline curve positioning method and storage medium
CN112835363B (en) Method and device for controlling flow of large-scale crowdsourcing map lane line data fusion
CN112305994B (en) Straight line segment smoothing method, device and equipment based on average filtering and storage medium
CN117745719B (en) Extraction method of robot weld milling track
CN113359760B (en) Method for eliminating vehicle collision in optimal path algorithm operation result
CN110658783A (en) Solving method and system for feasible region of five-axis machining cutter shaft
CN116542954A (en) Workpiece polishing method and device and robot
CN117055463B (en) Processing method and device for automatically generating high-energy beam three-dimensional processing path
CN116068964B (en) Automatic generation method of control instruction of numerical control machine tool and related equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210810

CF01 Termination of patent right due to non-payment of annual fee