CN118339426A - Surface fitting of a surface of a work object, path planning and system and method for processing a surface of a work object - Google Patents

Surface fitting of a surface of a work object, path planning and system and method for processing a surface of a work object Download PDF

Info

Publication number
CN118339426A
CN118339426A CN202280007200.2A CN202280007200A CN118339426A CN 118339426 A CN118339426 A CN 118339426A CN 202280007200 A CN202280007200 A CN 202280007200A CN 118339426 A CN118339426 A CN 118339426A
Authority
CN
China
Prior art keywords
processor
waypoint
rmse
path
sub
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.)
Pending
Application number
CN202280007200.2A
Other languages
Chinese (zh)
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.)
Canadian Maple Leaf Advanced Robotics Co
Original Assignee
Canadian Maple Leaf Advanced Robotics Co
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 Canadian Maple Leaf Advanced Robotics Co filed Critical Canadian Maple Leaf Advanced Robotics Co
Publication of CN118339426A publication Critical patent/CN118339426A/en
Pending legal-status Critical Current

Links

Abstract

The application discloses a system and a method for surface fitting of object surfaces, for path planning and for processing surfaces of parts. The method includes receiving, at a processor, a point cloud or grid of a surface; dividing, by a processor, the point cloud into a plurality of overlapping sub-blocks; determining, by the processor, a first Root Mean Square Error (RMSE) for the entire surface; and generating, by the processor, coefficients for characterizing the surface in response to the first RMSE being less than or equal to the user-set RMSE.

Description

Surface fitting of a surface of a work object, path planning and system and method for processing a surface of a work object
Cross reference to related applications
This patent application takes precedence over U.S. patent provisional application entitled "shape fitting System and method for surface treatment of parts" filed on month 5, 13 of 2022, U.S. patent provisional application entitled "Path planning System and method for surface treatment of parts" filed on month 5, 20 of 2022, application Ser. No. 63/341,656, U.S. patent provisional application entitled "System and method for surface treatment of parts" filed on month 6, 2022, application Ser. No. 63/351,578. This patent application contains the entire disclosure of the three above U.S. patent provisional applications.
Technical Field
The present application relates to workpiece processing, and in particular to a system and method for surface fitting of a surface of a processed object, path planning, and for processing a surface of an object.
Background
In order to machine a part, the robotic platform needs to know the surface characteristics of the part and adapt to the surface characteristics when machining the part.
However, existing path planning methods rarely utilize surface fitting, and existing surface fitting algorithms tend to suffer from drawbacks when dealing with large and complex surfaces. Also, existing methods typically use computationally intensive iterative algorithms, which are often impractical in practical engineering applications. Existing surface fitting methods (e.g., spline methods) are either inaccurate, have stability problems in characterizing the surface shape, or can only be piecewise smooth.
Also, most existing path planning methods calculate the surface normal by using the direction of triangles within the triangle mesh. Triangle mesh information construction is very time consuming, especially for dense point clouds.
The existing method cannot directly calculate the route points and the track attributes thereof from the point cloud, because the calculation amount of the grid construction algorithm on the high-density point cloud data is very large.
The accuracy of existing triangular mesh methods depends on the density of the mesh. This increases the computation time if higher accuracy is required. Because of the computational cost, 3D software is typically used to manually obtain waypoints by creating intersection curves from the intersection of the part CAD model and the user-generated plane. For example, in the conventional process of generating a robot programming polishing path, a path is designed through CAD software such as SolidEdge, roboDK software, and the designed path is manually loaded on a robot control to execute a processing application. A disadvantage of the existing methods is that CAD models may be different from the actual workpiece and thus may produce less accurate results. The subsequent path design cannot fully make up for the differences.
Also, conventional path designs use sharp angles to turn. This typically results in the robotic arm vibrating during cornering. Typically, this can be compensated for by reducing the tool speed at turning. This increases unnecessary effort and reduces efficiency.
Finally, the adaptable robotic platform may be used for workpiece processing, including surface finishing application robots for surface polishing, surface grinding. In such applications, the robotic platform typically involves applying a certain pressure to the surface of the part.
For example, in applications where the robot polishes a surface of a workpiece, the contact area of the tool head of the robot platform with the surface of the workpiece can directly affect the quality of the finished product. If the contact area between the tool head and the surface is not constant, uneven polishing tracks along the path may be created on the part surface, which may result in gaps or overpolishing of the part surface.
Conventionally, in order to ensure a constant contact area, it is necessary to configure a robot stage according to a surface shape to change a path. This approach requires a large number of computations and the results may be inaccurate, thereby failing to meet the processing quality requirements.
Disclosure of Invention
The present application provides systems and methods configured to perform automatic surface fitting. The system and method can process free-form surfaces of objects. Therefore, the application reduces or eliminates the manual robot programming which requires special skill labor force to perform surface treatment, improves the robot integration level and saves the operation cost.
In one aspect, a fitting method for a surface of a part is provided herein. The method includes receiving, at a processor, a surface point cloud generated by a CAD mesh model; dividing, by a processor, the point cloud into a plurality of overlapping sub-blocks; calculating, by the processor, root Mean Square Error (RMSE) of the entire surface; if the RMSE is less than or equal to the user-set RMSE, the processor generates a surface-characteristic coefficient.
In another aspect, if the RMSE of the entire surface is greater than the RMSE set by the user, further dividing, by the processor, the sub-blocks among the plurality of overlapping sub-block blocks, the sub-blocks wherein the RMSE is greater than the RMSE of the user being set as smaller overlapping sub-patches; and again calculating, by the processor, the entire surface RMSE; if the RMSE is less than or equal to the user-set RMSE, the processor generates a surface-characteristic coefficient.
In another aspect, a system for surface fitting of a surface of a part is provided herein. The system includes a processor configured to receive a surface point cloud; dividing the point cloud into a plurality of overlapping sub-blocks; determining Root Mean Square Error (RMSE) of the entire surface; if the RMSE is less than or equal to the user-set RMSE, a surface-characteristic coefficient is generated.
The application provides a robot with high adaptability, which is configured for executing path points. In the present application, the path shape is projected onto the surface function to allow more complex path designs and accurate path point positioning. Also, the present application uses surface equations for the point clouds of the object surface, which allows accurate calculation of the tangential and normal vector etc. attributes of the path.
The present application uses an arc or smooth curve between two selected waypoints of two adjacent segments at the turn. This greatly reduces the arm vibration of the robot without increasing the workload or decreasing the efficiency.
In one aspect, a method of determining a path of movement of a control tool over a surface of an object is provided. The method comprises the following steps: defining, by the processor, a path shape over a working area of the surface; projecting, by the processor, the path shape to a surface representation of a point cloud or grid characterizing the surface; based on the total curve length of the path defined by the plurality of waypoints, the processor selects the plurality of waypoints for sequential movement of the tool along the waypoints; the position and orientation of the waypoints are generated by the processor for controlling the movement of the tool along the path required for the surface treatment.
In another aspect, there is provided a system for controlling movement of a tool over a surface of an object, comprising: a processor configured to define a path shape over a working area of the surface; projecting the path shape to a surface representation characterizing a point cloud or surface mesh; selecting a plurality of waypoints for the tool to sequentially move along the waypoints according to the total curve length of the path defined by the plurality of waypoints; and generates the position and orientation of the waypoints for controlling the movement of the tool along the waypoints required for the surface treatment.
The present application also provides an adaptive robotic system for machining a free-form surface of an object surface configured to perform automated part surface machining. The adaptive robot system may include a robotic arm for part manufacturing, such as parts for the automotive industry, the aerospace industry, and other industries. The application greatly reduces the force fluctuation in the surface processing process of the part, and can more accurately control the force applied to the surface of the object, thereby obtaining better surface processing quality of the part.
In one aspect, a method for treating a surface of an object is provided. The method includes defining, by a processor, two principal directions at each waypoint on the surface; generating, by the processor, a primary radius of the surface at each waypoint; generating, by the processor, at least one of a force vector comprising an array of force values at each waypoint or a track width vector at each waypoint; and causing, by the processor, the system to process the surface of the part using at least one of the force vector or the track width vector at each waypoint in the path from each waypoint to a next waypoint in the sequence.
In another aspect, a system for treating a surface of an object is provided. The system includes a processor configured to: generating a major radius of the surface at each waypoint; generating at least one of a force vector or a track width vector comprising an array of force values at each waypoint; and causing the system to process the surface of the part using at least one of the force vector or the track width vector at each waypoint in the path from each waypoint to the next waypoint on the surface.
Brief description of the drawings
Reference will now be made, by way of example, to the accompanying drawings, which illustrate exemplary embodiments of the application, and in which:
FIG. 1 is an exemplary diagram of a system according to one embodiment of the application;
FIG. 2 is a flow chart of a method implemented by the system of FIG. 1 according to one embodiment of the application;
FIG. 3 is a diagram illustrating a point cloud generated for an exemplary object;
FIG. 4 is a diagram illustrating an example of overlapping sub-patches according to an embodiment of the application;
Fig. 5 is a diagram showing an example of an overlapping region of sub-blocks of an object surface according to an embodiment of the present application;
FIGS. 6A and 6B illustrate an example of a surface fit of two overlapping sub-blocks of the surface of FIG. 5, according to one embodiment of the application;
fig. 7 is a diagram showing an example of further dividing a sub-patch into a plurality of sub-patches according to an embodiment of the present application;
FIG. 8 is a flow chart of a method implemented by the system of FIG. 1 according to one embodiment of the application;
FIG. 9A is a diagram illustrating an exemplary work area selected on a point cloud of a surface according to an embodiment of the application;
FIG. 9B is a diagram illustrating exemplary paths on a work area according to an embodiment of the present application;
FIG. 10 is a schematic illustration of an object surface path shape design;
FIG. 11 is a diagram illustrating a normal to the surface in FIG. 10 and a tangent to a path point on the 3D path of the surface in FIG. 10;
FIG. 12 is a diagram illustrating modification of an arc of a circle to a parabola with a user-defined margin of error;
FIG. 13 is a flow chart of a method implemented by the system of FIG. 1 for processing a surface of an object in accordance with an embodiment of the application;
FIGS. 14A and 14B are diagrams illustrating two different contact widths and two different orientations of the tool head of the system of FIG. 1;
FIG. 15A illustrates an exemplary track path on a part surface when the track width is constant, according to one embodiment of the application;
FIG. 15B illustrates an exemplary track path on a part surface with a track that allows for overlap, according to one embodiment of the application; and
FIG. 15C illustrates an exemplary orbital path on a surface of a part when an applied force is constant, according to one embodiment of the application.
Like reference numerals may have been used in different figures to denote like components.
Description of specific examples of embodiments
Fig. 1 shows an example of a system 100 of the present application. The system 100 may include an adaptable robotic system, such as a robotic arm for processing a workpiece. The robot platform with strong adaptability can be used for workpiece processing, including metal finish machining robots, white light detection robots, spraying robots and the like. Robotic surfacing applications include metal and composite surface finishing. In the present application, the term "part" includes a physical object, or a part of a product, such as a vehicle, or an entire product, such as a bathtub or toilet.
The system 100 is configured to perform various functions by mounting different peripheral tools (including scanners, light curtains, spray guns, dispensing tools, and sanding or polishing machines) to a robotic arm to allow for quick and convenient integration. Thus, the system 100 may be used to perform a variety of tasks such as metal and composite metal surface finishing, part quality inspection, laser machining, white light inspection, dispensing and spraying operations, and labeling, masking and marking tools by using different peripheral devices.
The system 100 may be used in surface treatment applications, such as in automobiles, including automotive repair services, automotive glass surface finishing, in aerospace industry, such as aerospace maintenance services, including gas turbine and aeroengine blade surface finishing, in shipbuilding, composite manufacturing, furniture and lumber manufacturing, and wind turbine manufacturing, including renewable energy maintenance services.
In the example of fig. 1, the system 100 includes a processor 102, one or more sensors 103, one or more memories 104, one or more storage units 106, and a controller 108. Although fig. 1 shows only one instance for each component, there may be multiple instances for each component in system 100.
The processor 102 is configured to implement the method 200, as will be described in more detail below. The processor 102 may be a Central Processing Unit (CPU), microprocessor, application Specific Integrated Circuit (ASIC), field Programmable Gate Array (FPGA), application specific logic circuit, or a combination thereof. Device 850 may also include one or more input/output (I/O) interfaces 854, which may enable interfacing with one or more suitable input devices and/or output devices (not shown). One or more of the input devices and/or output devices may be internal components of the system 100 or may be external components of the system 100.
The sensor 103 is configured to detect relative positional information of the part with respect to the system 100, such as detecting a distance from the tool to a surface of the part, or detecting a degree of contact between the tool and the part. The sensor 103 may include one or more sensors for measuring distance to objects in the environment or information of the tool head in the environment, such as optical sensors, acoustic sensors, using known triangulation or time-of-flight measurements (e.g., triangulation sensors, time-of-flight cameras, laser rangefinders, ultrasonic sensors, etc.). Other suitable sensors may be cameras (related to image processing technology), tactile sensors, gyroscopic sensors, etc.
The memory 104 is provided for storing instructions, code, or statements that, when executed by the processor 102, cause the processor 102 to perform predetermined functions, such as surface fitting of parts and the method 200. Memory 104 may include volatile or nonvolatile memory such as flash memory, random Access Memory (RAM), and/or Read Only Memory (ROM). The non-transitory memory 104 may store instructions that are executed by the processor 102, for example, to perform the present disclosure. Memory 104 may include other software instructions, for example, for implementing an operating system and other applications/functions. In some examples, one or more of the data sets and/or modules may be provided by external memory (e.g., an external drive in wired or wireless communication with the system 100), or may be provided by transitory or non-transitory memory, providing a computer or processor readable medium. Examples of non-transitory computer readable media include RAM, ROM, erasable Programmable ROM (EPROM), electrically Erasable Programmable ROM (EEPROM), flash memory, CD-ROM, or other portable memory.
In some embodiments, the memory 104 may store data used by the processor 102 to implement the methods and operations described herein, such as point cloud or grid data for the part surface, user input criteria including RMSE, surfaces used to characterize the part.
The storage unit 106 is provided for storing the relevant data for a longer time. The storage unit 106 may include a mass storage unit such as a solid state drive, a hard disk drive, a magnetic disk drive, and/or an optical disk drive.
A controller 108, such as a microcontroller unit (MCU), is provided for communication with the processor 102. The processor 102 may send instructions or commands to the controller 108. In response to instructions or commands from the processor 102, as shown, the controller 108 may send control signals to the motion unit 110 to control the motion of the system 100. The motion unit 110 includes a motor to cause the system to perform selected operations, such as processing parts.
A user may manually configure or control the system 100 via the I/O interface 112, such as a touch screen, keyboard, or mouse. The I/O interface 112 may also output operational information of the system 100, such as on a display screen of the system 100.
In some examples, the system 100 may also include a communication unit 111 for a user to remotely control the system 100 via the communication unit 111.
The system 100 may be configured to implement the part surface fitting method 200 as shown in fig. 2. In some examples, the processor 102 may be configured to automatically perform surface fitting of the part for surface treatment applications. The surface of the part may be a dynamic and non-repeating surface, a free form surface or any form of surface. In method 200, processor 102 is configured to characterize a surface of a part using a scanned point cloud or grid of the surface of the part.
At step 202, the processor 102 is configured to receive point cloud data for the surface 500. In some examples, processor 102 may receive grid data for surface 500. The mesh data of surface 500 may be computer-generated-aided design (CAD). Although point clouds are used in the examples below, these examples may also use grid data interchangeably. The point cloud data of the surface 300 of the part (see fig. 3) may be generated by scanning the surface of the part using a scanner. For example, a scanner may be installed on system 100 as a tool to generate a point cloud. The point cloud of the part surface may be obtained from a vision system, for example, using a 3D camera, or an area scanner, laser scanner.
Fig. 3 shows a column of part surface point clouds. The example in fig. 3 is part of a B-pillar. In the example of fig. 3, the shape of the B-pillar is obtained by 3D scanning. The point 32 is a point cloud scanned from the vision system. To generate a point cloud for the part surface, each point on the scanned surface is mapped to a selected coordinate system, and each point cloud data or point 32 on the surface contains a unique (x, y, z) coordinate. The global cloud point represents the global scan surface 300 of the part. Unlike CAD model-based surface fitting, the method 200 gives the surface of a real part by scanning the surface of the part, and thus is more accurate and faster for surface shape than CAD model-based surfaces.
At step 204, the processor 102 is configured to divide the scanned point cloud data of the surface into a plurality of overlapping sub-blocks. The overlapping portions of the sub-blocks ensure stability and continuity of the surface fitting. As described below, dividing the surface into smaller sub-blocks and fitting features of the surface to each sub-block using a surface fitting mechanism ensures the accuracy of the surface, as well as the values defined on the sub-blocks.
A common problem with existing surface fitting methods is that it is difficult to accurately describe the entire surface with one equation as the surface becomes complex. The use of an equation to characterize a surface can cause serious inaccuracies in certain areas, and existing surface fitting methods cannot guarantee continuity when the equation crosses from one area to another.
In method 200, the overlapping sub-block mechanism allows for stability and continuity of surface fitting. Stability results in consistency of each fit and continuity results in overall smoothness, thereby improving accuracy. Overlapping sub-blocks solve the discontinuity problem. By having each sub-block overlap with an adjacent sub-block, when a surface fitting algorithm is applied on each sub-block, the adjacent sub-block will have a common area fitting the surface features of the sub-block and the adjacent sub-block. This ensures continuity of surface characterization from sub-block to adjacent sub-block.
In the example of FIG. 3, the resulting point cloud is divided along a first selected scale (e.g., 12) in length (x-coordinate direction) and divided along a second selected scale (e.g., 2, each sub-block having an overlap portion, the overlap value being determined by the total number of sub-blocks and a surface complexity, e.g., 30% -50% or more of the total area of the sub-blocks. The function is to decompose the data matrix B of the sub-block into the product b=qr of the quadrature matrix Q and the upper triangular matrix R. The function is determined such that the value on the sub-patch meets a predetermined criterion, such as RMSE. The function of the sub-patch is then fine-tuned to ensure that the difference between the function values of adjacent sub-blocks is similar to a predetermined criterion on the overlap region, such as RMSE.
Fig. 4 illustrates an example of overlapping sub-patches of a point cloud. The overlapping sub-patches are generated from the definition of the differential topology manifold. In the present application, the point cloud is processed into a manifold. In the example of FIG. 4, manifold X is a subsetWherein. In addition, each subset defines a coordinate mapAt the intersection area I, the first and second regions,Is smooth.Representing a coordinate transformation in whichIn order to overlap the sub-blocks,Surface function for overlapping sub-blocksIs a 3D coordinate system. For the followingCoordinate system transformation is not needed in the traditional 3D coordinate system; most commonlyRefers to a function transformation.
May be any type of function. For example, if the surface function selects a polynomial, it may be implemented by QR decompositionFitting of the points represented. Number of times nThe surface polynomial function of (2) can be expressed as
Wherein the method comprises the steps ofIs a coefficient describing a particular data set, which can be obtained by solving a linear system of the form
Wherein the method comprises the steps ofIs thatMatrix, matrixThe size of (2) depends on the polynomialTimes and data sets of (a)Is of a size of (a) and (b).
For the followingRather than precisely calculating the transform function to ensure smoothness when one sub-block overlaps another sub-block, the fine-tuning function is not as efficient. For engineering applications, accuracy is more important than repeatability accuracy. The accuracy can be achieved by fine-tuning and adjustment of the coefficients of the function term by optimizing the stability of the control function.
In some examples, a three-dimensional (3D) surface, such as two-dimensional (2D) or substantially flat, may be expressed based on the total length and width of the surface. In the example of fig. 5, surface 500 is divided into a plurality of sub-blocks, such as sub-block 502 and adjacent sub-blocks 504, 506, 508, 510, 512, 514, 516, and 518. In the example of fig. 5, sub-block 502 overlaps its neighboring sub-blocks 504, 506, 508, 510, 512, 514, 516, and 518 by an overlap extension, such as overlap extension 520 sub-block 508 between sub-block 502 and sub-block 502. The surface edges 522 are extended outward, for example using a rough fitting method, to ensure accuracy of the surface edges 522. The rough fitting method roughly fits a surface function from the entire point cloud 530 and is used to generate points to spread edges. Iterations of the coarse fitting method may be used to ensure smooth extension of the surface edges 522.
In some examples, the number of sub-blocks to be partitioned in the point cloud of the surface, as well as the length and width of the sub-blocks, may be selected with a radix, e.g., 2 or 3. The common cardinal shape surface may be determined experimentally. The number of sub-blocks and the length and width of the sub-blocks may vary gradually from iteration to iteration. For example, the number of sub-blocks may increase with each iteration of the selected step. This step may be a fixed step or a variable step. In each iteration, the overall Root Mean Square Error (RMSE) of the surface point cloud and the RMSE of each sub-block are determined at step 206. In some examples, the RMSE of the entire surface and sub-blocks may be determined by the following equation
Wherein the method comprises the steps ofIs a point on a sub-block.
The number of sub-blocks to be divided may be determined according to the geometric type of the surface 500. The size of the overlap may be determined to ensure stability and continuity of the surface fit. For example, sub-block overlap of a certain size provides sufficient overlap between sub-blocks to ensure a stable partial connection. If the overlap area is too large, the function may lose accuracy on the sub-patch. If the difference between the RMSE of each sub-block and the adjacent function value over the overlap area is small enough, e.g., equal to or less than the RMSE of the user input, the fit function may ensure accuracy and continuity of the entire surface. The surface fit is optimal to ensure the best degree of polynomial for the sub-block for accuracy and efficiency.
As shown in the example of fig. 6A and 6B, sub-block 502 may be characterized by function 1, while adjacent sub-block 504 may be characterized by function 2, with overlapping portion 602 of sub-blocks 502 and 504 matching the features of sub-blocks 502 and 504 and providing a stable partial connection between sub-blocks 502 and 504. If the overlap 602 is large enough, as described above, the connection between the sub-blocks 502 and 504, including the sub-blocks 502 and 504 and their overlap areas 602, is stable with respect to functions 1 and 2. The coefficients of the function or polynomial characterizing sub-blocks 502 and 504 may be fine-tuned to characterize the overlap region 602. The external connections are unstable with sub-blocks adjacent to sub-blocks 502 and 504. By overlapping adjacent sub-blocks on the surface 500 of each sub-patch 502 and 504, the connection between the sub-blocks 502 and 504 and the adjacent sub-patches is also stable, and so on.
If the difference in RMSE and adjacent function values for each sub-block over the overlap region is small enough, e.g., equal to or less than the user input RMSE, the fit function ensures accuracy and continuity of the entire surface.
In step 207, the processor 102 determines whether the RMSE of the entire surface 500 is greater than the RMSE set by the user.
In step 208, if the entire surface RMSE is greater than the RMSE entered by the user, and a majority of the sub-blocks, e.g., more than 50% of the entire sub-blocks have an RMSE greater than the RMSE entered by the user, the sub-blocks having RMSE greater than the user set RMSE are further divided into smaller sub-blocks, e.g., by reducing the area of the sub-blocks, such as by reducing the length and width of the sub-blocks. If the overall surface RMSE is greater than the user input RMSE, but the RMSE of most sub-blocks, e.g., more than 50% or more of the sub-blocks, is less than the user input RMSE, only sub-blocks having RMSE greater than the user input RMSE are further divided into smaller overlapping sub-blocks. The processor 102 then checks the RMSE of the further divided sub-blocks in step 207.
As shown in the example of FIG. 7, if the RMSE for sub-block 502 is greater than the user set RMSE, then the adjacent sub-block 502 may be further divided into smaller sub-blocks 502a, 502b, 502c, and 502d to further reduce the difference between the RMSE for sub-blocks 502a, 502b, 502c, and 502d and the user set RMSE.
Steps 207 and 208 are completed when the entire surface RMSE is less than the RMSE entered by the user.
Thus, in method 200, the number of sub-blocks divided on the surface is based on the user desired accuracy requirements indicated in the user set RMSE. Further partitioning the sub-patch into smaller sub-patches improves the accuracy of characterizing the surface of the point cloud representation by reducing RMSE of the sub-patch. Dividing the sub-blocks of the surface represented by the point cloud into as large an area as possible improves the efficiency of the method 200 by reducing the number of sub-blocks to be processed. Thus, the method 200 characterizes the surface 500 of the part with greater precision and efficiency.
At step 210, if the entire surface RMSE is less than or equal to the RMSE of the user input, the processor 102 is configured to generate polynomial coefficients for characterizing the various sub-blocks of the surface 500. The coefficients characterize the entire surface 500 and each sub-block of the surface 500. The coefficients may be in the form of floating point numbers or matrices. The coefficients define the surface function of each sub-block and additional values are generated to define the boundaries of each sub-block of the surface 500. A polynomial characterizes a sub-block of the surface 500.
The processor 102 may adjust the surface characteristics as the part is processed. For example, the processor 102 may use coefficients generated in subsequent surface treatments of the component, such as polishing or buffing the surface of the component. Using these coefficients, the processor 102 is configured to generate instructions or commands to control the controller 108 to process the surface of the part. Since the method 200 characterizes the surface 500 of the part with high accuracy and efficiency, the method 200 also improves the quality of the surface treatment and improves the efficiency of the surface treatment due to the accuracy of the surface characterization, as few sub-patches as possible are to be treated.
In the case of complex 3D surfaces, it is first necessary to convert the surface to a 2D surface, for example using a conformal flattening algorithm, and to divide on new u, v coordinates. The user may typically divide a complex 3D surface into different work areas. The transformed two-dimensional surface may be characterized by the method 200 described above.
As described above, the method 200 of the present application uses overlapping surface fitting. The surface accuracy and curve accuracy using method 200 may be on the order of 0.1 mm. The user may specify a lower accuracy to increase the surface fitting speed of the processor 102. Also, the processor 102 may have a speed of 1-30 seconds, 1-2 seconds for most common cases for surface fitting.
As described above, the method 800 of the present application uses an overlapping surface fit. The surface accuracy and curve accuracy using method 200 may be on the order of 0.1 mm. The user may specify a lower accuracy to increase the surface fitting speed of the processor 102. Also, the processor 102 may have a speed of 1-30 seconds, 1-2 seconds for most common cases for surface fitting.
In the present application, a smooth curve is a curve that is a smooth function, where the word "curve" is interpreted in the context of analytical geometry. In particular, a smooth curve is a continuous mapping from one-dimensional space to n-dimensional space, which has continuous derivatives over its domain to a desired order, e.g. at least three or higher. A smooth surface is a surface without singular points, each point of the surface having a unique tangent plane.
The system 100 may be configured to implement the method 800 for waypoint configuration to process a surface of a part as shown in fig. 8. In method 800, processor 102 is configured to project a path shape onto a part surface on a surface function of a point cloud, allowing for more complex path designs and more accurate waypoint locations.
At step 802, the processor 102 is configured to select a working area on a 3-dimensional (3D) scan point cloud of a component surface. For example, the working area may be defined by point cloud data of the part surface edges. The work area may also be defined manually by the user on the scanned point cloud. For example, the user may select a point on the edge of the part. In the example of fig. 9A, a user may define a working area 852 on a surface 850 of the part.
At step 804, the processor 102 is configured to receive a path shape definition of a part surface. The path shape definition includes points selected on the surface point cloud. These points are point cloud data. Starting from the point marking the boundary, the type of line is determined by the order of the points.
The path shape may be defined by a user. The user may define the shape of the path according to the processing requirements. The path shape is determined by the location of the points marking the boundary of the working area. The user may select the type of wire connection, such as a U-shape, rounded corners, or zigzagged shape, and the number of wires to fill in the selected working area 852. The spacing of the wires may be substantially uniform and configured to cover the surface of the part either partially or entirely by a tool mounted on the system 100. In some examples, in an automatic path generation application. The processor 102 may also be configured to define a path shape based on the shape and based on processing requirements of the same or similar part surfaces previously processed.
In some examples, in a manual path generation application, a user designs a path shape on a 2D surface. The user may select a plurality of points in the point cloud in sequence, for example by mouse click, or manually enter the positions of the points in sequence. These points are connected to lines of a selected shape to connect the selected points. The user may select the type of wire connection, such as a U-shape, rounded corners, or zigzagged shape, to connect the selected points.
In the example of fig. 9B, design path 900 includes alternating straight segments and smooth curves, such as circular arcs. Design path 900 is distributed over 1,2, 3, 4, 5, 6 points at different locations on a selected working area point cloud on the part surface point cloud. Points 1,2, 3, 4, 5, 6 may be near the edges of the working area such that the arcuate or smooth curved portion of the path is near the edges of the part but does not cross the edges. Straight segments 902, 904, and 906 connect points 5 and 6, 4 and 3, and 2 and 1, respectively. Every two adjacent line segments are connected by a smooth curve, and the smooth curve comprises an arc. For example, line segments 902 and 904 are connected by a smoothing curve 908, and line segments 904 and 906 are smoothed.
The smooth curve reduces the vibration of the robotic arm while turning by ensuring the continuity of speed and acceleration. By using smooth curves such as 908 and 910 in FIG. 9B at the turn, the method 800 significantly reduces arm vibration of the system 100 without increasing the workload or decreasing the efficiency of the system 100.
In addition, the system 100 may store a default set of shape databases in the memory 104 or storage unit, as well as a set of parameters, such as tangent to the waypoint and normal to the surface, for the processor 102 to adjust for changes in the path configuration. The arc may be parabolic to further reduce arm vibration during cornering, as will be discussed in more detail below.
As described above, using the coefficients of the point cloud characterizing the part surface, and using the definition of the path shape from step 804, the processor 102 is configured to project the path shape to an equation having coefficients characterizing the surface point cloud at step 806. Curve 910 connects.
For example, the path shape may be expressed in terms of an equation. An equation for the path shape may be projected onto the surface equation to derive an equation for the space curve. The curve or arc length of the curve may be determined by a space curve equation of the differential geometry.
For example, a straight line may be represented by an equation in two-dimensional space. For example, for a straight line, the equation is. These equations may then be projected onto the surface equations of the point cloud of the part surface or the working area of the part surface. The surface equation can be expressed asIs an equation representing the scanned point cloud. The equation of a straight line projected onto a 3D surface is
(1),
The arc length of the curve can be determined by
The arc length of the curve can also be derived using a similar approximation algorithm.
At step 808, the processor 102 is configured to generate a number of waypoints based on the total arc length of the path. The spacing of the path points on the actual path, such as path 900, may be determined based on the arc length of the curve or smooth curve, such as curves 908 and 910. In path 900, points 1-6 (shape points) determine the general shape of the overall path curve and are selected based on the user-defined working area and path density. The length of the curve or arc is determined when the shape point is selected. The user or processor 102 may use the spacing of waypoints and the total arc length to determine the number of total waypoints to generate the path 900.
For example, if the equidistant (L) spacing of the waypoints is used, the waypoints can be obtained by numerical solutionParameters (parameters)
(2)
Equation (2) achieves equal spacing between the path lines.
At step 810, the processor 102 is configured to generate a location and a direction of the waypoint. For example, one can derive from the equation for the above-mentioned space curveA tangent vector of a path (e.g., path 300) at the waypoint is determined. The normal vector of the surface may be determined from the surface equation (1) fitted to the point cloud data or gridding the equation, for example, by using differential geometry theory. The surface normal at a path point along the path may be used to control the direction of the end effector (e.g., tool head). The tangent vector of the path at the waypoint may be used to control the articulation of the last joint of the system 100, i.e., the end effector, e.g., the tool head of the system 100, e.g., a robot. For example, if a cutting tool is mounted on the end effector of the robot, if the cutting tool is required to point in various directions, such as along one direction of the path, the tangent vector may be used from one waypoint to the next to determine the angle of rotation of the last joint.
For example, a tangent to the path T at the waypoint (x, y, z) and a normal to the surface N may be determined, for example using a straight line, as follows:
,
where Sx and Sy are surface equations Is a partial derivative of (c).
The tangent T and the normal N may be input to the system 100 or robot to set the operation of the arm or tool.
As shown in FIG. 10, a line 1002 on the surface 1000 of the part represents the profile of the path. As shown in fig. 11, a waypoint on the 3D path, line 1102 is a normal to the surface 400 at the waypoint, and line 1104 is a tangent to the 3D path at the waypoint on one side.
As described above, the location and orientation of waypoints determined in step 810 provides uniform spacing of waypoints based on tool trajectories on complex part shapes.
To determine the velocity profile, the arc length may be expressed as a function of time. In some examples, arc length may be expressed as a polynomial function of timeWhere the subscript i indicates acceleration, constant speed of the path and deceleration phase. The speed and acceleration are
,and
By satisfying the continuity condition of the start and end of each phase, the coefficients of the function can be calculated from the speed and acceleration requirements entered by the user, so that the speed and acceleration functions are smoothed over the entire path. Furthermore, by simultaneous use ofAnd equation (2) may provide waypoints with uniform time interval spacing.
In some examples, waypoint density on a path may be planned in proportion to the density of curvature along the path. The curvature density is defined as
Is the line curvature.
Based on the location and orientation of the waypoints, the processor 102 is configured to generate an operational path such that a tool mounted on the system 100 operates along the path on the surface, such as polishing or sanding a portion, as the system 100 processes the portion, at step 812. The path of operation of the tool is generated by sequentially moving the tool from one waypoint to the next. For example, the tool may move from one waypoint to the next in a straight line or circular arc order. In some examples, waypoints are connected alternately by straight line segments and smooth curves, as described above. The path may be a 3D path or a 2D path.
In some examples, with respect to a smooth curve, such as a U-shape or rounded corner, the radius of the connection curve may be determined based on user input of the rounded corner radius. To turn the sharp corner into a rounded corner, a circle of the user input radius on the radius of the rounded corner is placed on an inscribed line of two adjacent lines constituting the sharp corner. In this way sharp corners are removed and instead the intersection of a straight line and a circle, the outwardly extending portions of the curve connect the intersection, forming a smooth curve.
In some examples, a smooth curve, such as a u-shape or rounded corners, ensures continuous smoothness of line speed and acceleration. As shown in FIG. 12, line 1202 represents the actual path on the part surface, which may be a substantially elliptical or parabolic arc, and line 1204 represents arc 908 or 910 in FIG. 9B. The difference 1206 between the lines 1202 and 1204 represents a user-defined error margin, or error between the lines 1202 and 1204. If the user requires continuous smoothness of angular acceleration, the circular arc and the straight portions near the ends may be modified to be parabolic or elliptical depending on the error tolerance of the additional user input. In this case, the equation controlling the modification is parabolic in nature, with the amount of modification being dependent on the user-defined error margin.
In method 800, the geometric characteristics of the path may be analytically determined. Since the coefficients characterizing the point cloud or grid of the surface are accurate, the error can be made smaller than a threshold value, e.g. 0.2mm. Thus, the path generated with method 800 is also accurate. The accuracy of the generated path may be based on the noise level of the point cloud, as well as the desired accuracy of the user input. However, the accuracy of the method 200 is not dependent on grid or point cloud density or smoothness.
Based on the path generated by the processor 102 in the method 800, the processor 102 may generate instructions or commands to control a tool mounted on the system 100 to treat the part surface. For example, the processor 102 may transmit instructions or commands to the controller 108. In response, the controller 108 causes the motion unit 110 to drive a tool mounted on the system 100 according to the generated path. Based on the test results, with the path generated in method 800, system 100 processes surface parts faster than conventional path estimation methods and with better accuracy or quality in processing the part surfaces.
Also, method 800 is configured to automatically generate paths using user input and is much less labor intensive than is required using existing methods using CAD software.
In some examples, method 800 is only half as much force fluctuation as the existing path generation method based on force sensor measurements as compared to the results of the existing methods. This indicates that the path generated by the method 200 has a higher accuracy.
System 100 may be configured to implement method 1300. In method 1300, processor 102 is configured to process a part surface, as shown in FIG. 13.
Unlike conventional methods of adjusting the contact area, the present application provides for adjustment of the force applied to the part surface or the track width of the contact area between the tool head and the part surface. In the present application, the size of the contact area can be determined in a fast and accurate manner by surface equations or coefficients characterizing the surface.
The surface of the part may be characterized by a number of coefficients. For example, the processor 102 may receive a point cloud or grid through a CAD model of the surface; dividing the point cloud into a plurality of overlapping sub-blocks; determining a first Root Mean Square Error (RMSE) of the entire surface; taking the result that the first RMSE is smaller than or equal to the RMSE set by the user, and generating coefficients for representing the surface. Examples of using coefficients to characterize point clouds or grid data of a part surface are described above.
As described above, the processor 102 may control the movement of the tool head over the surface of the part while the part is being machined. In an example, the processor 102 may define a path shape over a working area of the surface; projecting the path shape to a surface representation characterizing a point cloud or surface mesh; selecting a plurality of waypoints for the tool to sequentially move along the waypoints based on the total curve length of the path defined by the plurality of waypoints; and generating the position and orientation of the waypoints for controlling movement of the tool along the waypoints to treat the surface. Examples of determining the position and orientation of the waypoints to control movement of the tool along the waypoints to treat the surface of the part are described above.
In method 1300, differential geometry theory and hertz contact theory, as well as surface features, may be used to accurately determine the contact area between the tool head and the surface.
According to hertz theory, when two objects are in contact, the contact area forms an ellipse. The size of the ellipse, i.e., the half-axis, the applied force, the material properties, and the shape of the part and tool head. However, the existing methods cannot accurately determine the size of the contact area, especially when the surface shape is complex. Using the method 1300, the size and orientation of the contact area between the tool head and the surface (including surfaces having complex shapes) at the waypoint can be accurately determined, for example, using differential geometry theory.
To use hertz theory for part surfaces having complex shapes, method 1300 determines a principal direction and a principal radius for each path point on the part surface based on a surface characterization generated from point cloud or grid data of the part surface. The main direction determines the direction of the contact area and the main radius is part of a set of parameters that determine the size and shape of the contact area.
In method 1300, to determine the primary direction and primary radius, processor 102 is configured to represent the part surface by using a continuous surface function of a plurality of coefficients. Let s=Is a part surface function, where x and y are two-dimensional coordinates in a Cartesian coordinate system.
In method 1300, to determine the primary radius, in step 1302 in FIG. 13, processor 102 is configured to determine two primary directions at each selected waypoint on the surface. For example, the number of the cells to be processed,AndThe waypoint P on the surface uses a differential geometry.AndRepresenting the principal direction of the surface at the waypoint. In this application the principal direction and the determination of the track width are based on surface fitting of cloud points or grid data characterizing the surface.
In some examples, the processor 102 is configured to generate two curves having two principal directions at each waypoint. In some examples, the tangent vectors of the two curves at the path point P are aligned. Both curves are projected onto the x-y plane, the tangent vector of the first curve beingThe tangent vector of the second curve is. For example, the two curves may be straight lines whose projection onto the x-y plane is in the principal directionAndAlignment. For example, the two curves may be.。AndProjected onto the surface of the part. The curve on the corresponding part surface can be expressed as:
Wherein the method comprises the steps of (X) AndIs a curve on the surface of the part.
After the two curves are generated, the processor 102 is configured to determine the principal curvatures of the two curves. In step 1306, the processor 102 is configured to generate a primary radius for each of the two curves. For example, the number of the cells to be processed,AndNamely two principal curvatures derived using differential geometry theory. According to principal curvatureAndA major radius of
i=1, 2
The major radius can be set asThe largest radius of the values, the small major radius, can be set toThe smallest radius of the values.
In robotic polishing applications, the tool head typically has a flat surface. In the example of fig. 14A and 14B, arrow 1402 indicates the direction of movement of the tool head. Even though the contact area between the tool head and the part surface may be the same, different directions may have different contact or track widths. In waypoint applications, the direction of movement of the tool path at the waypoint is determined. Thus, in the example of fig. 14A and 14B, the half-axes a, half-major axis and B of the contact ellipse 1404, the half-minor axis, and the track width half-major axis a and half-minor axis B on the orientation determination path P of the ellipse 1404 are determined by a set of parameters, including the major radius of the surface, as will be described in more detail below. The orientation of the ellipse 1404 is determined by the main direction of the surface.
In method 1300, a tool head having a particular shape, such as a hemispherical or cylindrical shape, may be used. In plan, both the primary and secondary primary radii are infinite. Thus, the function of the surface geometry used in hertz theory a and B may take the form of
Wherein the method comprises the steps ofAndIs the major radius of the surface.
After the A and B determinations, the half-axes a and B of the contact ellipse 1404 may be determined, for example, using Hertz theory. With half axes a and b, the contact ellipses 1404 and the orientation of the ellipses 1404 can also be determined based on the main direction. In the present application, half-axes a and b are determined by applying hertz' theory to the free-form surface of a part, with major radii and material property values having applied forces that can accurately characterize the free-form surface function. Traditionally, the major radius value of free-form surfaces is hardly available unless by some very computationally expensive procedures.
For example, according to Hertz theory, when two objects are in contact, the maximum stress is at the initial contact point, i.e., the center of the contact area, and the maximum stress or pressure at the surface of the part can be taken as the semi-minor axis b to the ellipse
Wherein the method comprises the steps ofFor the second type of complete elliptic integration,,,,
A is the semi-major axis of the axis,
Is the young's modulus of the contact body,Are their poisson's ratio, whereRefers to the tool headRefers to the surface of the part;
A and B are functions of the surface geometry, expressed as follows:
Wherein the method comprises the steps of Representing the major radii of the two contact bodies,Is the angle between the main directions of the contact bodies,Can be determined by solving the following formula
Where K (k+%) is the first type of complete elliptic integral and E (k+') is the second type of complete elliptic integral.
At step 1308, the processor 102 is configured to receive user input to select one of the options to treat the part surface. Options include constant track width input, constant force input, or allowed track overlap. Or the processor 102 may receive instructions from a user via the I/O interface 112. The instructions may include one of three options: constant track width input, constant force input, or allowing tracks to overlap. Any of the three options apply to all types of surfaces.
At step 1310, if the option is a constant track width, or if the option is an allowed track overlap, the processor 102 is configured to generate a force vector for application by the tool head at each waypoint on the surface. The vector of forces includes a set of force values. For example, the processor 102 may determine an applied force vector that includes a direction and an amount of force to use from the tool head to the part surface at each waypoint:
(3)
the direction of the force is determined by the direction of the waypoints.
Equation (3) above represents the relationship between force F and minor axis b. K. E (k'), is a function of the major radius of the surface to be machined and the material properties. The semi-major axis a is determined by k=b/a.
As shown in equation (3), b may be set as an input of a constant track width to determine the force. Or the force may be set to a constant force input to calculate b. Or equation (3) may be used to determine the optimal force and b together based on the path shape and the allowed track overlap.
Using the generated force vectors, processor 102 controls controller 108 to control the amount and direction of force applied to the part surface at each waypoint. In some examples, if the surface is a substantially planar surface, the direction of the force on the path from the first waypoint to the second waypoint is the same as the direction of the first waypoint.
In some examples, if the system 100 has force control capability, the processor 102 may adjust the force applied by the motion unit 110 to the tool head, and the user may generate an initial path with the contact track width requirement, as shown in fig. 15a, which illustrates the track path generated in the simulation when the option is a constant track width. Processor 102 may generate a force vector at step 1310. The processor 102 or a user may manually adjust the path spacing to control the amount of force applied to the part surface. For example, if the force is too great, such as when the force exceeds the maximum force that the system 100 can withstand, or the force may damage the component, the processor 102 or the user may manually adjust, such as by reducing, the path spacing so that the tool head can exert less force on the part surface. On the other hand, if the force is insufficient, for example, when the polishing track leaves a gap, the processor 102 may apply a greater force on the part surface.
The processor 102 may also be configured to determine a force profile of the tool head at the contact area using the force vector determined at step 1310. For example, if the required force exceeds the capabilities of the system 100, the processor 102 may adjust the path spacing, such as by adjusting the track width to be narrower. In some examples, the processor 102 is configured to determine an appropriate track width for a force vector determined at a waypoint. In some examples, processor 102 may generate appropriate track width suggestions to the user for the determined magnitude of force, e.g., by displaying a message on I/O112, the user may accept the track width and manually adjust the path spacing.
Fig. 15b illustrates the track path generated in the simulation when overlapping options are allowed. As shown in the example of fig. 15B, the user may set the allowed track overlap as a percentage of the track width of the previous track path for processing the part surface, e.g., from 5% to 30% or more. In response, the processor 102 may output a force vector for application at each waypoint. Force is applied from the current waypoint to the part surface at the next waypoint (excluding the next waypoint). With this option, the path has no gaps and the part surface is not over machined, e.g., over polished. In some examples, the portion has a small or near flat change in curvature. The system 100 does not have any risk that the part curvature changes very little or near flat and the forces do not exceed the maximum limit. If the surface curvature varies greatly and the force generated by the system 100 is insufficient to process the part surface, the processor 102 is configured to generate information, such as by a text message, an audible or visual signal warning, to indicate that the force exceeds the capabilities of the system 100.
At step 1312, if the option is a constant force input, processor 102 may be configured to generate a contact area and an orientation track width between the tool head and the surface. For example, the processor 102 is configured to generate a vector of track widths at each waypoint. As described above, the processor 102 may determine the track width using the value of the semi-minor axis b of the contact region at the waypoint.
The processor 102 may use the material and geometry of the component surface to determine the semi-major or semi-minor axis of the contact area. As shown in equation (1), k, E (k'), are functions of the major radius and material properties.
By selecting the constant force option, the processor 102 controls the controller 108 to control the magnitude of the force to be a constant force and the direction of the force applied to the part surface at each waypoint. In some examples, the direction of the force on the path from the first waypoint to the second waypoint is the same as the direction of the first waypoint.
Fig. 15C illustrates the track path generated when the option is a constant force. In fig. 15C, the contact area between the tool and the part is changed. This may result in uneven track width, resulting in unpolished gaps and reduced quality.
In some examples, the system 100 has only a constant force setting, but no ability to adjust the applied force. For example, where the processor 102 is configured to adjust the force applied to the tool head by the motion unit 110 during processing of the part surface, such as polishing, the processor 102 or a user manually may initially generate a maximum force safe for the part based on the maximum force allowed by the path based system 100 or a user-determined maximum force, and adjust the path spacing accordingly to ensure that the path has no gaps on the part surface.
The user may define a path shape or track width or input the path shape or track width to the processor 102, as described in step 1308. If the user-entered force is a constant force in a surface treatment application, the configuration of the processor 102 may be used to determine a track width vector at step 1312 at the constant force at each waypoint.
In the example of fig. 15B, the user inputs a constant force applied to the part surface. In response, the processor 102 outputs a vector of track widths at each waypoint. The track width is adapted to a section of the part surface from the current waypoint to the next waypoint. In the case of constant force, the processor 102 or user may adjust the contact width on the part surface when the system 100 does not have the ability to adjust the force. In this option, the user can adjust the path of the tool head to ensure complete coverage of the part surface.
In the example of fig. 15A, the user input is a constant track width. Processor 102 determines the force at each waypoint using equation (3). If the force on any waypoint is excessive, the processor 102 may generate a warning message to the user and may provide a recommended track width based on the maximum force determined by the processor 102 or the user. The user can adjust the track width accordingly. In the example of fig. 15C, the user input is a constant force and the processor 102 determines the track width at each waypoint using equation (3). If the user uses the maximum force and the gap still occurs on the track, the processor 102 generates a recommendation of the path spacing. The user may adjust the path accordingly. In the example of FIG. 15B, instead of the user entering a polished overlap value, the user may determine the force and the track width using equation (3) based on the overlap value, if the force is too great at any waypoint, the processor 102 may generate a recommended path spacing to the user, and the user may adjust the path accordingly.
Also, the stress distribution under the part surface contact area can be expressed as follows:
(4)
Representing a coordinate system with its origin at an initial point of contact, such as a waypoint. Using equation (4) above, the relationship between the applied force vector and pressure can be deduced as follows
The pressure can be used to determine the effective track width. The user may define the valid edge of the track. For example, the user may set the pressure to a predetermined percentage (%) of the maximum pressure at the center of the waypoint. If the pressure is less than a particular value, the system 100 may not have sufficient material removal rate to render the polishing of the part surface ineffective. At step 1314, the processor 102 is configured to control the force applied to the contact area on the surface path. For example, processor 102 is configured to process the surface of the part, for example by programming, to cause system 100 to use force vectors and/or track width vectors in the path sequentially from each waypoint to the next waypoint. The surface of the part is processed, and the surface of the part is processed, comprises polishing, grinding, polishing or engraving the surface of the part, and other applications where the tool head applies a force to the surface of the part. Processor 102 may control force vectors and vectors of track widths, including amounts of force, track widths, and/or widths of active tracks. The surface of the part is treated by controlling the contact force and/or the track width applied to each waypoint to the next waypoint on the part surface path.
When the system 100 processes the surface of a part, the trajectory path is created by the contact areas of all waypoints along the sequence. This trajectory path may be determined by the selected trajectory width, the amount of force, and the force or direction of the trajectory.
In some examples, the processor 102 is configured to generate a modified track width vector or a recommended force vector if the force or pressure to be generated exceeds the capabilities of the system 100. The user may accept or reject the recommendation.
In the example of fig. 15A and 15B, if the system 100 has force control capabilities, the processor 102 may automatically determine the force vector of the tool head to obtain the best part surface treatment quality.
With the method 1300, the contact area between the tool head and the part surface can be precisely determined by using hertz contact theory and differential geometry. The method 1300 determines the force vector required for the track width numerically faster and more accurate due to the precise surface fit described above than existing applications for controlling forces on the part surface.
Certain adaptations and modifications of the described embodiments are possible. Accordingly, the embodiments discussed above are illustrative and not restrictive.
Certain example algorithms and calculations are provided herein for implementing the disclosed methods and examples of operations. However, the present application is not limited by any particular algorithm or calculation. Although the present application describes methods and processes in a particular order of steps, one or more steps in the methods and processes may be omitted or altered as appropriate. As the case may be, one or more of the steps may occur in a different order than the order in which they are described.
Through the description of the above embodiment, the present invention may be implemented by only hardware, or by software plus a necessary general hardware platform, or by a combination of hardware and software. Based on such knowledge, the technical solution of the present invention may be embodied in the form of a software product. The software product may be stored in a non-volatile or non-transitory storage medium, which may be a compact disc read only memory (CD-ROM), a U-disk, or a hard disk. The software product comprises instructions that enable a computer device (personal computer, server or network device) to perform the method provided by the embodiments of the present invention.
Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the invention as defined by the appended claims.
Furthermore, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present application, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present application. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.

Claims (31)

1. A method of surface fitting a surface of an object, comprising:
Receiving, at a processor, a point cloud or surface grid; the processor divides the point cloud or grid into a plurality of overlapped sub-blocks; determining, by the processor, a first Root Mean Square Error (RMSE) for the entire surface; and generating, by the processor, coefficients for characterizing the surface in response to the first RMSE being less than or equal to the user-set RMSE.
2. The method as recited in claim 1, further comprising: responsive to the first RMSE of the entire surface being greater than the user-set RMSE, further partitioning, by the processor, the sub-block among a plurality of overlapping sub-blocks having RMSE greater than RMSE, the RMSE being set as smaller overlapping sub-blocks than the user; and determining, by the processor, a second RMSE for the entire surface; and generating, by the processor, coefficients for characterizing the surface in response to the second RMSE being less than or equal to the user-set RMSE.
3. The method of claim 1, further comprising instructing, by the processor, the scanner to generate a point cloud of the surface.
4. An object surface fitting system, comprising: the processor is configured to: receiving a point cloud or a surface grid; dividing a point cloud or grid into a plurality of overlapped sub-blocks; determining a first Root Mean Square Error (RMSE) of the entire surface; and generating coefficients for characterizing the surface in response to the first RMSE of the entire surface being less than or equal to the user-set RMSE.
5. The system as recited in claim 4, further comprising: in response to the first RMSE of the entire surface being greater than the user-set RMSE, further partitioning, by the processor, the sub-blocks among overlapping sub-blocks where the RMSE is greater than the user-set RMSE, to make the RMSE smaller; determining, by the processor, a second RMSE for the entire surface; in response to the second RMSE being less than or equal to the user-set RMSE, coefficients for characterizing the surface are generated by the processor.
6. A method for controlling movement of a tool over a surface of an object, comprising: defining, by the processor, a path shape over a working area of the surface; projecting, by the processor, the path shape to a surface representation of a point cloud or grid characterizing the surface; selecting, by the processor, a plurality of waypoints for movement of the tool along the waypoints in sequence based on a total curve length of the path defined by the plurality of waypoints; and generating, by the processor, a location and orientation of the waypoint for controlling movement of the tool along the waypoint to treat the surface.
7. The method of claim 6, wherein the path shape comprises one or more straight line segments alternating on one or more sides of the working area and a smooth curve.
8. The method of claim 6, wherein the smooth curve comprises an arc of a circle.
9. The method of claim 6, wherein the locations and directions of the plurality of waypoints are defined by tangents at the plurality of waypoints and normals to the surface.
10. The method of claim 8, further comprising modifying the circular arc to be a parabolic or elliptical arc for smoothing of angular acceleration.
11. The method of claim 6, further comprising controlling, by the processor, the tool to move at a smooth linear and angular velocity and/or at a smooth linear and angular acceleration along a path defined by a waypoint on the surface.
12. A system for controlling movement of a tool over a surface of an object, comprising: the processor is configured to: defining a path shape over a working area of the surface; projecting the path shape to a surface representation characterizing a point cloud or surface mesh; selecting a plurality of waypoints for the tool to sequentially move along the waypoints according to the total curve length of the path defined by the plurality of waypoints; and generating the position and orientation of the waypoints to control movement of the tool along the waypoints to treat the surface.
13. The system of claim 12, wherein the path shape comprises alternating one or more straight line segments and smooth curves on one or more sides of the working area.
14. The system of claim 12, wherein the smooth curve comprises an arc of a circle.
15. The system of claim 12, wherein the locations and directions of the plurality of waypoints are defined by tangents at the plurality of waypoints and normals to the surface.
16. The system of claim 14, wherein the arc is modified to be parabolic or elliptical for smoothing of angular acceleration.
17. The system of claim 12, wherein the processor is configured to control the tool to move at a continuous linear and angular velocity and/or at a continuous linear and angular acceleration along a path defined by a waypoint on the surface.
18. A method of treating a surface of an object, comprising: characterized in that two main directions are defined by the processor at each path point on the surface; generating, by the processor, a primary radius of the surface at each waypoint based on the two primary directions; generating, by the processor, at least one of a force vector comprising an array of force values at each waypoint or a track width vector at each waypoint; and causing, by the processor, the system to process the surface of the part using at least one of a force vector or a track width vector at each waypoint in a path on the surface from each waypoint to a next waypoint.
19. The method of claim 18, wherein the force vector is generated after the constant track width is selected.
20. The method of claim 18, wherein the force vector is generated after the allowed track overlap is selected.
21. The method of claim 18, wherein the track width vector is generated after selecting a constant force.
22. The method of any one of claims 18 to 21, further comprising: the value of the force vector applied at each waypoint is adjusted by the processor.
23. The method of any one of claims 18 to 22, further comprising: the values of the track width vectors at each waypoint are adjusted by the processor.
24. The method of any one of claims 18 to 21, further comprising: a message is generated by the processor to indicate that the system is unable to generate a value of a force vector at each waypoint.
25. A system for treating a surface of an object, comprising: the processor is configured to: defining two principal directions at each waypoint on the surface; generating a major radius of the surface at each waypoint; generating at least one of a force vector comprising an array of force values at each waypoint or a track width vector at each waypoint; and causing the system to process the surface of the part using at least one of the force vector or the track width vector at each waypoint in the path from each waypoint to a next waypoint on the surface.
26. The system of claim 25, wherein the vector of forces is generated after a constant track width is selected.
27. The system of claim 25, wherein the force vector is generated after the allowed track overlap is selected.
28. The system of claim 25, wherein the track width vector is generated after a constant force is selected.
29. The system of any one of claims 25 to 28, further comprising: the value of the force vector applied at each waypoint is adjusted by the processor.
30. The system of any one of claims 25 to 29, further comprising: the values of the track width vectors at each waypoint are adjusted by the processor.
31. The system of any one of claims 25 to 28, further comprising: a message is generated by the processor to indicate that the system is unable to generate a value of a force vector at each waypoint.
CN202280007200.2A 2022-05-13 2022-08-15 Surface fitting of a surface of a work object, path planning and system and method for processing a surface of a work object Pending CN118339426A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US63/341,656 2022-05-13
US63/344,311 2022-05-20
US63/351,578 2022-06-13

Publications (1)

Publication Number Publication Date
CN118339426A true CN118339426A (en) 2024-07-12

Family

ID=

Similar Documents

Publication Publication Date Title
EP1592536B1 (en) A method and a system for programming an industrial robot to move relative to defined positions on an object, including generation of a surface scanning program
Lasemi et al. Recent development in CNC machining of freeform surfaces: A state-of-the-art review
Lee et al. Surface interrogation and machining strip evaluation for 5-axis CNC die and mold machining
KR102445605B1 (en) Track calculation program, machining equipment, track calculation method, tools and workpieces
US6832128B2 (en) Method for rendering, evaluating and optimizing a surface quality based on CNC program data
US11865787B2 (en) Method and system for additive manufacturing
Xu et al. Tool-path generation for five-axis machining of free-form surfaces based on accessibility analysis
CN109343468B (en) Projection offset-based blade multi-axis track generation method
Kiswanto et al. Gouging elimination through tool lifting in tool path generation for five-axis milling based on faceted models
Pi et al. Grind-free tool path generation for five-axis surface machining
Lauwers et al. Development of a five-axis milling tool path generation algorithm based on faceted models
Wang et al. Five-axis NC machining of sculptured surfaces
You et al. Tool-path verification in five-axis machining of sculptured surfaces
Liang et al. Iso-scallop tool path planning for triangular mesh surfaces in multi-axis machining
Dhanda et al. Adaptive tool path planning strategy for freeform surface machining using point cloud
Fan et al. Real-time repairable interpolation scheme for CNC tool path processing
CA3173119A1 (en) Systems and methods for surface fitting, path planing, and surface processing of an object
Chu et al. Spline-constrained tool-path planning in five-axis flank machining of ruled surfaces
US5247451A (en) Method for establishing data defining a tool path for a numerically controlled machine without establishing offset plane data
CN118339426A (en) Surface fitting of a surface of a work object, path planning and system and method for processing a surface of a work object
Lu et al. Collision-free and smooth path generation method of five-axis ball-end milling considering effective tool diameter change
Lauwers et al. Five-axis rough milling strategies for complex shaped cavities based on morphing technology
Liu et al. Direct 5-axis tool posture local collision-free area generation for point clouds
Xu et al. Generating gouge-free tool paths for ball-end cutter CNC milling of cloud of point by projecting guide curves
US20230004140A1 (en) Tool path generation method, tool path generation device, and machine tool control device

Legal Events

Date Code Title Description
PB01 Publication