Systems and Methods for Surface Fitting, Path Planning, and Surface Treatment of an Object

JP2025518426A5Pending Publication Date: 2025-09-01MAPLE ADVANCED ROBOTICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023527031
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-06-13
Filing Date
2022-08-15
Publication Date
2025-09-01

AI Technical Summary

Technical Problem

Existing path planning techniques for robotic surface processing struggle with accurately handling large and complex surfaces, often relying on computationally intensive algorithms that are impractical for engineering applications, leading to inaccuracies and inefficiencies.

Method used

The system employs automatic surface fitting using a processor that receives a point cloud or mesh of a surface, divides it into overlapping sub-patches, and determines the root mean square error (RMSE) to generate coefficients for characterizing the surface, enabling more complex path design and accurate waypoint positioning.

Benefits of technology

This approach reduces manual programming, improves robot integration, saves operating costs, and significantly reduces force fluctuations and vibration during surface treatment, resulting in more accurate and efficient processing of complex surfaces.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Systems and methods for surface fitting, path planning, and surface treatment of components on the surface of an object are disclosed. The method includes receiving, by a processor, a point cloud or a mesh of a surface. The processor divides the point cloud into a plurality of overlapping sub-patches. The processor determines a first root mean square error (RMSE) of the entire surface. In response to the first RMSE being less than or equal to a user-set RMSE, the processor generates coefficients for characterizing the surface.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] [Cross - reference to Related Inventions] The present invention claims priority to the following three United States provisional inventions, the entire contents of which are incorporated herein by reference: (1) U.S. Provisional Patent Application No. 63 / 341,656, entitled "Systems and Methods for Surface Fitting for Component Processing," filed on May 13, 2022; (2) U.S. Provisional Patent Application No. 63 / 344,311, entitled "Systems and Methods for Path Planning for Surface Treatment of Components," filed on May 20, 2022; (3) U.S. Provisional Patent Application No. 63 / 351,578, entitled "Systems and Methods for Surface Treatment of Components," filed on June 13, 2022.

[0002] The present invention relates to the processing of workpieces, and in particular, to systems and methods for surface fitting, path planning, and surface treatment of objects for processing objects.

Background Art

[0003] To process components, a robotic platform needs to recognize the surface characteristics of the components and adapt to the surface characteristics when processing the components.

[0004] However, existing path planning techniques rarely utilize surface fitting and often suffer from the defects of existing surface fitting algorithms when dealing with large and complex surfaces. Also, existing methods often use computationally intensive iterative algorithms and are often not practical in actual engineering applications. Existing surface fitting methods such as the spline method are inaccurate or only partially smooth in characterizing the surface without causing stability problems.

[0005] Similarly, most existing path planning methods calculate surface normals using the orientation of triangles within a triangular mesh. In the case of particularly high-density point clouds, it takes time to construct the triangular mesh information.

[0006] Since mesh construction algorithms are very computationally intensive for high-density point cloud data, with existing methods, it is not possible to directly calculate waypoints and their trajectory characteristics from the point cloud.

[0007] The accuracy of existing methods using triangular meshes depends on the density of the mesh. When higher accuracy is required, this results in longer calculation times. Due to the extremely high computational cost, in many cases, waypoints are manually obtained by using 3D software to create intersection curves from the intersection of the CAD model of the part and the planes generated by the user. For example, in the conventional robot programming sanding path generation process, CAD software such as SolidEdge or RoboDK software is used to design the path, and the designed path is manually loaded into robot control to execute the processing application. The drawback of existing methods is that since the CAD model may be different from the actual working part, the accuracy of the result may be reduced. In subsequent path design, this difference cannot be completely corrected.

[0008] Also, in conventional path design, sharp angles are used at the corners. As a result, the robot arm often vibrates during rotation. In many cases, this is corrected by reducing the tool speed during turning. This increases the unnecessary workload and reduces efficiency.

[0009] Finally, a robot platform adaptable to the processing of working parts can be used, including surface treatment application robots for surface polishing and surface sanding. In such applications, the robot platform often applies force to the surface of the part.

[0010] For example, in the application of a robot for sanding the surface of a work piece, the contact area between the tool head of the robot platform and the part surface can directly affect the quality of the finished product. If the contact area between the tool head and the surface is not constant, non-uniform polishing trajectories may be generated along the path on the surface of the part, which may result in gaps or excessive polishing on the part surface.

[0011] Traditionally, to ensure a constant contact area, the robot platform is configured to change the path according to the surface shape. This is computationally intensive, may result in inaccurate results, and may have insufficient processing quality. SUMMARY OF THE INVENTION

[0012] The present invention provides a system and method configured to perform automatic surface fitting. The system and method can process the free-form surface of an object. In this way, the present invention reduces or eliminates manual robot programming by special skilled labor for surface fitting, improves robot integration, and saves operating costs.

[0013] In one aspect, a method for surface fitting of the surface of a part is provided. The method includes receiving, by a processor, a point cloud or mesh of a surface for which a CAD model can be generated. The processor divides the point cloud into a plurality of overlapping sub-patches. The processor determines the root mean square error (RMSE) of the whole surface. And in response to the first RMSE being less than or equal to a user-set RMSE, the processor generates coefficients for characterizing the surface.

[0014] On other aspects, in response to the first RMSE of the entire surface being greater than the user-set RMSE, the method further includes further dividing, by the processor, a sub-patch among a plurality of overlapping sub-patches having an RMSE greater than the user-set RMSE. Set the RMSE to smaller overlapping sub-patches. Determine, by the processor, a second RMSE of 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.

[0015] On other aspects, a system for surface fitting of a surface of a component is provided. The system includes a processor configured to receive a point cloud of the surface. Divide the point cloud into a plurality of overlapping sub-patches. Determine a first root mean square error (RMSE) of the entire surface. Generate coefficients for characterizing the surface in response to the first RMSE being less than or equal to the user-set RMSE.

[0016] The present invention provides an adaptive robot configured to execute a waypoint configuration. In the present invention, the path shape is projected onto a surface function to enable more complex path design and accurate waypoint positioning. Similarly, the present invention uses a surface equation for a point cloud of an object surface, whereby properties such as the tangent and normal vectors of the path can be accurately determined.

[0017] The present invention uses an arc or a smooth curve between two selected waypoints of two segments adjacent at a bend. This significantly reduces the vibration of the robot arm without increasing the workload or reducing the efficiency.

[0018] In one aspect, a method for controlling the movement of a tool on the surface of an object is disclosed. The method includes defining a path shape on a working area of the surface by a processor. Projecting the path shape onto a surface representation that characterizes a point cloud or mesh of the surface by the processor. Selecting a plurality of waypoints along which the tool moves sequentially based on the total curve length of the path defined by the plurality of waypoints by the processor. Generating the position and orientation of the waypoints for controlling the movement of the tool along the waypoints for processing the surface by the processor.

[0019] In another aspect, a system for controlling the movement of a tool on the surface of an object is provided. The system includes a processor configured as follows: (1) defining a path shape on a working area of the surface; (2) projecting the path shape onto a surface representation that characterizes a point cloud or mesh of the surface; (3) selecting a plurality of waypoints along which the tool moves sequentially based on the total curve length of the path defined by the plurality of waypoints; (4) generating the position and orientation of the waypoints for controlling the movement of the tool along the waypoints for processing the surface.

[0020] The present invention provides an adaptive robot system for processing a free-form surface of an object configured to perform automatic part surface treatment. The adaptive robot system can include a robotic arm used in part manufacturing such as parts used in the automotive industry, the aerospace industry, and other industries. The present invention significantly reduces the force fluctuations in part surface treatment, provides more accurate control of the force applied to the surface of the object, and thus improves the quality of part surface treatment.

[0021] In one aspect, a method for processing the surface of an object is provided. The method includes defining, by a processor, two principal directions at each waypoint on the surface. The processor generates a principal radius of the surface at each waypoint. The processor generates at least one of a force vector including an array of force values at each waypoint or a track width vector at each waypoint. The processor causes the system to process the surface of the component using at least one of the force vector or the track width vector at each waypoint within a path from each waypoint to the next waypoint in sequence.

[0022] In other aspects, a system for processing the surface of an object is provided. The system includes a processor configured as follows: (1) defining two principal directions at each waypoint; (2) generating a principal radius of the surface at each waypoint; (3) generating at least one of a force vector including an array of force values or a track width vector at each waypoint; (4) causing the system to process the surface of the component using at least one of the force vector or the track width vector at each waypoint within a path from each waypoint to the next waypoint on the surface in sequence.

Brief Description of the Drawings

[0023] Here, by way of example, reference is made to the accompanying drawings that illustrate exemplary embodiments of the present invention.

[0024]

Figure 1

[0025]

Figure 2

[0026]

Figure 3

[0027]

Figure 4

[0028]

Figure 5

[0029]

Figure 6A

Figure 6B

[0030]

Figure 7

[0031]

Figure 8

[0032]

Figure 9A

[0033]

Figure 9B

[0034]

Figure 10

[0035]

Figure 11

[0036]

Figure 12

[0037]

Figure 13

[0038]

Figure 14A

Figure 14B

[0039]

Figure 15A

[0040]

Figure 15B

[0041]

Figure 15C

[0042] Similar reference numerals may be used in different figures to indicate similar components.

Mode for Carrying Out the Invention

[0043] Figure 1 shows an example of the system 100 of the present invention. The system 100 can include an adaptable robotic system such as a robotic arm used to process workpieces. The adaptable robot platform can be used for workpiece processing such as a metal finishing robot, a white light inspection robot, a spray robot, etc. The robot surface treatment applications include the surface finishing of metals and composite materials. In the present invention, the term "part" includes a physical object, or a part of a product such as a vehicle, or the entire product such as a bathtub or a toilet.

[0044] The system 100 is configured to perform various functions by attaching different peripheral tools such as a scanner, a light curtain, a spray gun, a dispensing tool, and a sander or polisher to the robotic arm, enabling quick and convenient integration. Thus, the system 100 can be used to perform surface finishing of metals and composite metals, component quality inspection, laser processing, white light inspection, dispensing and spraying operations, and multi-purpose tasks such as labeling, masking, and marking by using different peripheral devices.

[0045] The system 100 can be used, for example, in automotive repair services, the automotive industry including automotive glass surface finishing, the aerospace industry such as aerospace maintenance services including gas turbine and aircraft engine blade surface finishing, boat, surface treatment applications such as composite material manufacturing. It can also be used in the manufacturing of furniture and wood, and the manufacturing of wind turbines including renewable energy maintenance services.

[0046] In the example of Figure 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. Figure 1 shows a single instance of each component, but multiple instances of each component within the system 100 can exist.

[0047] Processor 102 is configured to implement method 200, which will be described in more detail below. Processor 102 may be a central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), dedicated logic circuitry, or a combination thereof. Device 850 may also include one or more input / output (I / O) interfaces 854 that enable an interface 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 included as components of system 100 or may be external to system 100.

[0048] Sensor 103 is configured to detect position information of components relative to system 100, for example, by detecting the distance from a tool to the surface of a component or the degree of contact between the tool and the surface of the component. Sensor 103 may include one or more sensors for measuring the distance from the tool head to an object in the environment, such as an optical sensor, known triangulation or time-of-flight measurements (e.g., triangulation sensors, time-of-flight cameras, laser range finders, ultrasonic sensors, etc.), and may operate using an acoustic sensor. Other suitable sensors may include cameras (in relation to image processing techniques), tactile sensors, gyro sensors, etc.

[0049] Memory 104 is configured to store instructions, code, or statements that, when executed by processor 102, cause processor 102 to perform certain functions such as surface fitting of components and method 200. Memory 104 may include volatile or non-volatile memory (e.g., flash memory, random access memory (RAM), and / or read-only memory (ROM)). Non-transitory memory 104 can store instructions for execution by processor 102, such as to execute the present disclosure. Memory 104 can include other software instructions, such as for implementing an operating system and other applications / functions. In some examples, one or more data sets and / or modules may be provided by an external memory (e.g., an external drive that communicates with system 100 wired or wirelessly), or may be provided by a transitory or non-transitory 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 storage.

[0050] In some embodiments, memory 104 can store data used by processor 102 to perform the methods and operations described herein, such as point cloud or mesh data of a component surface, user input criteria including RMSE, and coefficients for characterizing the surface of a component.

[0051] Storage unit 106 is configured to store data over a relatively longer period of time. Storage unit 106 may include a mass storage unit such as a solid state drive, hard disk drive, magnetic disk drive, and / or optical disk drive.

[0052] A controller 108, such as a microcontroller unit (MCU), is configured to communicate with a processor 102. The processor 102 can send instructions or commands to the controller 108. In response to instructions or commands from the processor 102, the controller 108 can be configured to send control signals for controlling the motion of the system 100 via a motion unit 110. The motion unit 110 includes a motor that causes the system to perform selected operations, such as processing of parts.

[0053] A user can manually configure or control the system 100 via an I / O interface 112, such as a touch screen, keyboard, or mouse. The I / O interface 112 can also output the operating information of the system 100, for example, on the display screen of the system 100.

[0054] 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.

[0055] As shown in FIG. 2, the system 100 can be configured to implement a method 200 for surface fitting of parts. In some examples, the processor 102 can be configured to automatically perform surface fitting of parts for surface treatment applications. The surface of the part may be a dynamic and non-repeating surface, a free-form surface, or a surface of any shape. In the method 200, the processor 102 is configured to characterize the surface of the part using the scanned point cloud or mesh of the surface of the part.

[0056] In step 202, the processor 102 is configured to receive point cloud data of the surface 500. In some examples, the processor 102 can receive mesh data of the surface 500. The mesh data of the surface 500 can be generated by computer-aided design (CAD). Although point clouds are used in the following examples, mesh data can also be used interchangeably in these examples. The point cloud data of the surface 300 of the part (see FIG. 3) can be generated by scanning the surface of the part using a scanner. For example, the scanner may be attached to the system 100 as a tool for generating point clouds. The point cloud of the surface of the part can be obtained from a vision system using, for example, a 3D camera, an area scanner, or a laser scanner.

[0057] FIG. 3 shows an example of a point cloud of a plotted part surface. The example of 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. Point 32 is a point cloud scanned from a vision system. To generate the point cloud of the surface of the part, each point on the scanned surface is mapped to a selected coordinate system, and each point cloud data or point 32 on the surface includes unique (x, y, z) coordinates. The entire point cloud represents the overall scanned surface 300 of the part. Different from CAD model-based surface fitting, method 200 adapts the actual surface of the part by scanning the surface of the part, and thus is more accurate and faster for surface fitting than CAD model-based surface fitting.

[0058] In step 204, the processor 102 is configured to divide the scanned point cloud data of the surface into a plurality of overlapping sub-patches. The overlapping portions of the sub-patches ensure the stability and continuity of the surface fitting. As will be described below, by dividing the surface into smaller sub-patches and adapting the surface fitting mechanism to characterize the surface of each sub-patch, the accuracy of the surface and the values of the defined sub-patches are guaranteed.

[0059] A problem common to existing surface fitting techniques is that as the surface becomes complex, it becomes difficult to accurately describe the entire surface using a single equation. Characterizing the surface using a single equation can lead to significant inaccuracies in certain regions, and existing surface fitting methods cannot guarantee the continuity of the equation when crossing from one region to another.

[0060] In method 200, the overlapping sub-patch mechanism enables the stability and continuity of surface fitting. Stability leads to the consistency of each fitting, and continuity brings overall smoothness, thus improving accuracy. By overlapping sub-patches, the problem of discontinuity is solved. When the surface fitting algorithm is applied to each sub-patch by overlapping each sub-patch with an adjacent sub-patch, the adjacent sub-patch has a common region that conforms to the surface characteristics of both the sub-patch and the adjacent sub-patch. This ensures the continuity of the surface characteristics from one sub-patch to the adjacent sub-patch.

[0061] In the example of FIG. 3, the resulting point cloud is divided at an initially selected scale such as 12 along the length (x - coordinate direction) and at a selected scale such as 2 along the width (y - coordinate direction). Each sub - patch has an overlapping portion with an overlapping value determined by the total number of sub - patches and the surface complexity such as an overlap of 30% - 50% or more of the total area of the sub - patches. The first scale and the second scale can be the same. In some other examples, when the point cloud has a clearly defined length and width, the point cloud may be divided along the length and width of the point cloud. In some other examples, for example, when the point cloud includes a ring - shaped or substantially circular shape, the point cloud is divided into sections according to polar coordinates. In some examples, principal component analysis can be used to classify the shape of the point cloud regardless of whether the point cloud has a clearly defined length and width or is substantially circular. For example, the shape of the point cloud can be classified by analyzing the ratio of the lengths of the first and second components of the point cloud, or the ratio of the lengths of the principal and secondary components of the point cloud, the ratio of the lengths of the boundary points of the point cloud on both sides, the principal component axis, the mid - line of the boundary points related to the principal component axis, and the straightness of the mid - line. For example, the general aspect ratio of the point cloud can be determined using the length of the principal component axis. This helps to determine whether the point cloud is substantially rounded or elongated. The predetermined overlapping portion can be achieved by expanding each sub - patch outward to the overlapping value selected for adjacent sub - patches. Further, the sub - patches covering the boundary of the point cloud can be expanded outside the point cloud by extrapolation. Each sub - patch is applied with a function that uses QR decomposition to decompose the data matrix B of the sub - patch into the product B = QR of an orthogonal matrix Q and an upper triangular matrix R. The function is determined such that the values of the sub - patch satisfy a predetermined criterion such as RMSE. Next, the function of the sub - patch is fine - tuned so that the difference in the function values of adjacent sub - patches is similar to a predetermined criterion such as RMSE in the overlapping region.

[0062] Figure 4 shows an example where sub-patches of a point cloud overlap. The overlapping sub-patches are generated based on the definition of a manifold from differential topology. In the present invention, the point cloud is processed as a manifold. In the example of Figure 4, the manifold

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Mathematics

[0063]

Mathematics

Mathematics

Mathematics

Mathematics

Mathematics

Mathematics

[0064]

Mathematics

[0065] In some examples, a surface, such as a two-dimensional (2D) surface or a substantially flat surface or a three-dimensional (3D) surface, can be divided into a plurality of sub-patches, either evenly or unevenly, based on the overall length and width of the surface. In the example of FIG. 5, surface 500 is divided into a plurality of sub-patches such as sub-patch 502 and adjacent sub-patches 504, 506, 508, 510, 512, 514, 516, and 518. In the example of FIG. 5, sub-patch 502 overlaps with adjacent sub-patches 504, 506, 508, 510, 512, 514, 516, and 518 by an overlap extension 520, such as the overlap extension between sub-patch 502 and sub-patch 508. Surface edge 522 is extended outward, for example, by using a rough fit method to ensure the accuracy of surface edge 522. The rough fit method is used to rough fit a surface function from the entire point cloud 530 and generate points for extending the edge. By using iterations of the rough fit method, a smooth extension of surface edge 522 can be ensured.

[0066] In some examples, the number of sub-patches into which the surface is divided by the point cloud of the surface, and the length and width of the sub-patches, can be selected with a base number such as 2 or 3. The base number of the common shape curved surface can be determined experimentally. The number of sub-patches, and the length and width of the sub-patches, may change gradually by iteration. For example, the number of sub-patches may increase with each iteration at a selected step. The step may be a fixed step or a variable step. In each iteration, the overall root mean square error (RMSE) of the point cloud of the surface and the RMSE of each sub-patch are compared. In some examples, the RMSE of the entire surface and the sub-patches can be determined as follows. [Number] Here, [Number] is a point on the sub-patch.

[0067] The number of sub - patches to be segmented can be determined considering the geometry type of the surface 500. The overlapping size can be determined to ensure the stability and continuity of the surface fitting. For example, the sub - patches overlap with a size that provides sufficient overlap between the sub - patches to ensure a stable section connection. If the overlapping area is too large, the function may lose accuracy in the sub - patches. When the difference between the RMSE of each sub - patch and the adjacent function values of the overlapping area is small enough (such as below the RMSE input by the user), the approximate function guarantees accuracy and continuity across the entire surface. The surface fitting is optimized such that the optimal degree of the polynomial of the sub - patches is used for both accuracy and efficiency.

[0068] As shown in the examples of FIGS. 6A and 6B, the sub - patch 502 can be characterized by function 1, the adjacent sub - patch 504 can be characterized by function 2, and the overlapping area 602 of the sub - patches 502 and 504, when the overlapping area 602 is large enough, as described above, the connection between the sub - patches 502 and 504 including the sub - patches 502 and 504, 504, and its overlapping area 602 is stable with respect to functions 1 and 2. The coefficients of the functions or polynomials characterizing the sub - patches 502 and 504 can be fine - tuned to characterize the overlapping area 602. The patches adjacent to the sub - patches 502 and 504 are unstable. By overlapping with the adjacent sub - patches on the respective surfaces 500 of the sub - patches 502 and 504, the connection between the sub - patches 502 and 504 and the adjacent sub - patches also becomes stable.

[0069] When the difference between the RMSE of each sub - patch and the adjacent function values of the overlapping area is small enough (such as below the RMSE input by the user), the approximate function guarantees accuracy and continuity across the entire surface.

[0070] In step 207, the processor 102 determines whether the RMSE of the entire surface 500 is greater than the user - set RMSE.

[0071] In step 208, if the RMSE of the entire surface is greater than the RMSE of the user input, and a significant portion of the sub-patches, for example, more than 50% of the entire sub-patch, has an RMSE greater than the RMSE of the user input, the sub-patches with an RMSE greater than the user-set RMSE are divided into smaller sub-patches by reducing the area of the sub-patch, such as by reducing the length and width of the sub-patch. If the RMSE of the entire surface is greater than the RMSE of the user input, but the RMSE of most sub-patches, such as more than 50% of the sub-patches, is smaller than the RMSE of the user input, only the sub-patches with an RMSE greater than the user input RMSE are divided into smaller overlapping sub-patches. Next, in step 207, the RMSE of the further divided sub-patches is inspected by the processor 102.

[0072] As shown in the example of FIG. 7, when the sub-patch 502 has an RMSE greater than the user-set RMSE, the adjacent sub-patch 502 is divided into smaller sub-patches 502a, 502b, 502c, and 502d, and the difference between the RMSE of the sub-patches 502a, 502b, 502c, and 502d and the user-set RMSE can be reduced.

[0073] Steps 207 and 208 are completed when the RMSE of the entire surface is smaller than the RMSE of the user input.

[0074] Therefore, in method 200, the number of sub-patches divided on the surface is based on the user's desired accuracy requirement indicated by the user-set RMSE. When the sub-patch is divided into smaller sub-patches, the RMSE of the sub-patch decreases, so the accuracy of characterizing the surface represented by the point cloud improves. By dividing the sub-patches of the surface represented by the point cloud into the largest possible areas, the number of sub-patches to be processed decreases, and the efficiency of method 200 improves. Therefore, method 200 characterizes the surface 500 of the component with both higher accuracy and efficiency.

[0075] In step 210, when the RMSE of the entire surface is less than or equal to the RMSE of the user input, the processor 102 is configured to generate coefficients of a polynomial that characterizes each sub-patch of the surface 500. The coefficients can be in the form of a float or a matrix. The coefficients define the surface function of each sub-patch, and additional values are generated to define the boundaries of each sub-patch of the surface 500. One polynomial characterizes one sub-patch of the surface 500.

[0076] The processor 102 can adapt the surface characteristics when processing the part. For example, the processor 102 can use the coefficients generated in subsequent surface treatments of the part, such as polishing or sanding the surface of the part. Using the coefficients, the processor 102 is configured to control the controller 108 to generate instructions or commands for processing the surface of the part. Since the method 200 characterizes the surface 500 of the part with both high accuracy and efficiency, the method 200 also improves the surface treatment quality according to the surface characterization accuracy and improves the efficiency of the surface treatment with as few sub-patches as possible.

[0077] In the case of a complex 3D surface, for example, it is necessary to first convert the surface to a 2D surface using a conformal flattening algorithm. The division is performed in the new u, v coordinates. Complex 3D surfaces can usually be divided by the user into different working areas. The converted 2D surface can be characterized by the method 200 described above.

[0078] As described above, the method 200 in the present invention uses overlapping surface fitting. The surface accuracy and curve accuracy by the method 200 can be on the order of up to 0.1 mm. The user can specify a lower accuracy to increase the speed of the surface fitting by the processor 102. Similarly, the processor 102 can have a speed of 1 to 30 seconds in the most common cases and 1 to 2 seconds in surface fitting.

[0079] As described above, the method 800 in the present invention uses overlapping surface fitting. The surface accuracy and curve accuracy by the method 200 can be on the order of up to 0.1 mm. The user can specify a lower accuracy in order to increase the speed of surface fitting by the processor 102. Similarly, the processor 102 can have a speed of 1 to 30 seconds in the most common cases and 1 to 2 seconds in surface fitting.

[0080] In the present invention, a smooth curve is a curve that is a smooth function, and the term "curve" is interpreted in the context of analytic geometry. In particular, a smooth curve is a continuous mapping from a one-dimensional space to an n-dimensional space and has continuous derivatives up to a desired order such as at least the third order on its domain. A smooth surface is a surface that has no singularities and the surface has a unique tangent plane at all points.

[0081] As shown in FIG. 8, the system 100 can be configured to implement the method 800 for a waypoint configuration for processing the surface of a component. In the method 800, the processor 102 is configured to project a path shape onto the surface function of the point cloud of the component in order to enable a more complex path design and a more accurate waypoint position.

[0082] In step 802, the processor 102 is configured to select a working area on the three-dimensional (3D) scanned point cloud of the surface of the component. For example, the working area may be defined by the point cloud data at the edge of the surface of the component. The working area can also be manually defined by the user on the scanned point cloud. For example, the user can select points on the edge of the component. In the example of FIG. 9A, the user can define a working area 852 on the surface 850 of the component.

[0083] In step 804, the processor 102 is configured to receive a path shape definition of the part surface. The definition of the path shape includes points selected from the point cloud of the surface. The points are point cloud data. From the points indicating the boundary, the type of line is determined by the order of the points.

[0084] The shape of the path can be defined by the user. The user can define the shape of the path based on the processing requirements. The shape of the path is determined by the positions of the points indicating the boundary of the work area. The user can select the type of line connection such as U-shaped, rounded corners, or zigzag, and the number of lines filling the selected work area 852. The spacing between the lines is substantially uniform and completely covers the surface of the part either partially or by a tool attached to the system 100. In some examples, it is an automatic path generation application. The processor 102 may also be configured to define the path shape based on the shape and define the processing requirements based on the same or similar part surfaces processed previously.

[0085] In some examples, in a manual path generation application, the user designs the path shape on the 2D surface. The user can, for example, sequentially select multiple points of the point cloud by clicking with a mouse or manually enter the positions of the points sequentially. The points are connected in the selected shape of the line connecting the selected points. The user can select the type of line connection such as U-shaped, rounded corners, or zigzag to connect the selected points.

[0086] In the example of FIG. 9B, the designed path 900 includes smooth curves such as alternating straight segments and arcs. The designed path 900 is distributed over points 1, 2, 3, 4, 5, and 6 selected at different positions on the point cloud of the working area selected on the point cloud of the part surface. Points 1, 2, 3, 4, 5, and 6 can be arranged near the edge of the working area. This causes the arc or smooth curve portion of the path to approach but not cross the edge of the part. The straight segments 902, 904, and 906 connect points 5 and 6, 4 and 3, and 2 and 1 respectively. Two adjacent line segments are connected by a smooth curve including an arc. For example, segments 902 and 904 are connected by a smooth curve 908, and segments 904 and 906 are connected by a smooth curve 910.

[0087] The smooth curves reduce the vibration of the robotic arm during turning by ensuring the continuity of speed and acceleration. By using smooth curves such as 908 and 910 in FIG. 9B, method 800 significantly reduces the arm vibration of system 100 without increasing the workload of system 100 or decreasing its efficiency.

[0088] Similarly, system 100 can store in memory 104 or a storage device a set of default shape databases and a set of parameters such as tangents of waypoints and normals of surfaces for the processor 102 to adjust changes in the path. As will be described in detail below, the arc can be adjusted to be parabolic to further reduce the vibration of the arm during rotation.

[0089] As described above, based on the coefficient characterizing the point cloud of the part surface and the definition of the path shape from step 804, in step 806, processor 102 is configured to project the path shape onto the surface equation.

[0090] For example, the shape of a path can be represented by an equation. By projecting the equation of the path shape onto the surface equation, the equation of a space curve can be derived. The length of a curve or an arc of a curve can be determined by the equation of a space curve from differential geometry.

[0091] For example, a line can be represented by an equation in 2D space. For example, in the case of a straight line, the equation is y = kx + b. The equation can be projected onto the point cloud of the part surface or the surface equation of the working area of the part surface. The surface equation can be expressed as s=(x,y,z(x,y)), where z(x,y). This is the equation representing the scanned point cloud. The equation of a straight line projected onto a 3D surface is

Number

Number

[0092] In step 808, the processor 102 is configured to determine the number of waypoints based on the total curve or arc length of the path. The spacing between waypoints on an actual path such as path 900 can be determined based on the curve or arc length of smooth curves such as curves 908 and 910. In path 900, points 1 to 6 (shape points) determine the general shape of the entire path curve and are selected based on the user-defined working area and path density. The curve or arc length is determined when the shape points are selected. The user or the processor 102 can use the spacing between waypoints and the total curve or arc length to determine the total number of waypoints for generating path 900.

[0093] For example, when an equidistant (L) spacing of waypoints is used, the x i parameter of the waypoint can be obtained by numerically solving.

Number

[0094] In step 810, the processor 102 is configured to determine the position and orientation of the waypoint. For example, the tangent vector of the path at a waypoint such as path 300 can be determined from the equation of the space curve described above

Number

[0095] For example, the tangent of path T and the normal of surface N at a waypoint (x, y, z) can be determined using a straight line as follows, for example.

Number

[0096] As shown in FIG. 10, the line 1002 on the surface 1000 of the component indicates the contour of the path. As shown in FIG. 11, for an intermediate point on the 3D path, the line 1102 is the normal to the surface 400 at the intermediate point, and the line 1104 is the tangent to the 3D path at the intermediate point on the side surface.

[0097] As described above, the positions and orientations of the waypoints determined in step 810 provide a uniform spacing of the waypoints based on the tool path on the complex component shape.

[0098] To determine the velocity profile, the arc length can be expressed as a function of time. In some examples, the arc length is a polynomial function of time

Number

Number

Number

Number

Number

Number

[0099] In step 812, based on the position and orientation of the waypoints, the processor 102 is configured to generate an operation path for a tool attached to the system 100 to perform operations such as polishing or sanding along a path on the surface of the component. When the system 100 processes a component. The operation path of the tool is generated by moving the tool sequentially from one waypoint to the next. For example, the tool may move sequentially from one waypoint to the next either in a straight line or in an arc. In some examples, the 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.

[0100] In some examples, for smooth curves such as U-shaped or rounded corners, the radius of the connecting curve can be determined based on the user's input regarding the fillet radius. To change a sharp corner to a rounded corner, a circle with a radius input by the user with the fillet radius is placed tangent to the inside of two adjacent lines that form the sharp corner. In this way, the sharp corner is removed, replaced by the intersection of the straight line and the circle, and the extended outer curve portion connects the intersections to form a smooth curve.

[0101] In some examples, smooth curves such as U-shaped or rounded corners ensure the smoothness of the continuity of linear velocity and acceleration. As shown in FIG. 12, line 1202 represents the actual path on the surface of the component, which is substantially an elliptical or parabolic arc, and line 1204 represents the arc 908 or 910 of FIG. 9B. The difference 1206 between lines 1202 and 1204 indicates the user-defined tolerance or the error between lines 1202 and 1204. If the user requires the smoothness of the continuity of angular acceleration, the arc and the straight line portions near both endpoints are changed to a parabola or an ellipse based on an additional user input of the tolerance. In this case, the equation for managing the change is parabolic, and the amount of change depends on the user-defined tolerance.

[0102] In method 800, the geometric characteristics of the path can be analytically determined. Since the coefficients characterizing the point cloud or mesh of the surface are accurate, the error can be made less than a threshold value such as 0.2 mm. Therefore, the path generated by method 800 is also accurate. The accuracy of the generated path may be based on the noise level of the point cloud and user input regarding the desired accuracy. However, the accuracy of method 200 does not depend on the density or smoothness of the mesh or point cloud.

[0103] Based on the path generated by method 800, processor 102 can generate instructions or commands for controlling the tools installed in system 100 to process the part surface. For example, processor 102 can send the instructions or commands to controller 108. In response, controller 108 drives motion unit 110 to drive the tools installed in system 100 according to the generated path. Based on the test results, using the path generated by method 800, system 110 can process the surface parts faster than conventional path estimation methods, and the accuracy or quality of the processing of the part surface is improved.

[0104] Similarly, method 800 is configured to automatically generate a path with user input and is far less labor-intensive than using existing methods that use CAD software.

[0105] In some examples, based on the measurements of the force sensor, compared with the results of existing methods, method 800 has only half the force variation of the exit path generation method. This indicates that the path generated by method 200 is more accurate.

[0106] System 100 can be configured to implement method 1300. In method 1300, processor 102 is configured to process the surface of the part as shown in FIG. 13.

[0107] Unlike conventional approaches that adjust the contact area, the present invention adjusts 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 invention, the size of the contact area can be determined in a quick and accurate manner from the surface equation or the coefficients characterizing the surface.

[0108] The surface of a part can be characterized by a plurality of coefficients. For example, the processor 102 can receive a point cloud or mesh from a CAD model of the surface. The point cloud is divided into a plurality of overlapping sub-patches. The root mean square error (RMSE) of the first power of the entire surface is determined. And in response to the first RMSE being less than or equal to the user-set RMSE, coefficients characterizing the surface are generated. An example of using coefficients to characterize the point cloud or mesh data of the part surface has been described above.

[0109] As described above, in the processing of a part, the processor 102 can control the movement of the tool head on the surface of the part. In one example, the processor 102 can define a path shape on the working area of the surface. The path shape is projected onto the surface representation characterizing the point cloud or mesh of the surface. Based on the total curve length of the path defined by a plurality of waypoints, a plurality of waypoints are selected for the tool to move sequentially along the waypoints. The position and orientation of the intermediate points for controlling the movement of the tool along the intermediate points for processing the surface are generated. An example of determining the position and orientation of the waypoints for controlling the movement of the tool along the waypoints for processing the part surface has been described above.

[0110] In method 1300, the contact area between the tool head and the surface can be accurately determined using the theory of differential geometry, Hertz contact theory, and surface property evaluation.

[0111] According to Hertz theory, when two objects come into contact, the contact area becomes an ellipse. The size of the ellipse, that is, the semi-axes, can be determined from the applied force, material properties, and the shapes of the part and the tool head. However, with existing methods, it is not possible to accurately determine the size of the contact area, especially when the surface shape is complex. Using method 1300, for example, by using the theory of differential geometry, it is possible to accurately determine the size and orientation of the contact area between the tool head and the surface at an intermediate point including a surface with a complex shape.

[0112] To use Hertz theory for a part surface with a complex shape, method 1300 determines the principal directions and principal radii of each waypoint on the part surface based on the surface characteristics generated from the point cloud or mesh data of the part surface. The principal directions and principal radii are properties for determining the contact area between the tool and the freeform surface. The principal direction determines the orientation of the contact area, and the principal radius is part of a set of parameters that determine the size and shape of the contact area.

[0113] In method 1300, to determine the principal directions and principal radii, the processor 102 is configured to represent the part surface by a continuous surface function using a plurality of coefficients. Let s = f(x, y) be the part surface function. Here, x and y are the 2D coordinates of the Cartesian coordinate system.

[0114] In method 1300, to determine the principal radius, at step 1302 of FIG. 13, the processor 102 is configured to determine two principal directions at each waypoint on the surface. For example, at a waypoint P on the surface using differential geometry

Number

Number

[0115] 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 waypoint P are aligned. Both curves are projected onto the x-y plane, the first curve having a tangent vector D1 and the second curve having a tangent vector D2. For example, the two curves can be straight lines whose projections onto the x-y plane are aligned with the principal directions D1 and D2. For example, the two curves are of the form y1 = D1x + c1 and y2 = D2x + c2. y1 and y2 are projected onto the surface of the part. The corresponding curves on the molded part surface can be represented as follows.

Number

Number

Number

Number

[0116] 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 the principal radii of the two respective curves. For example,

Number

Number

Number

Mathematics

Mathematics

Mathematics

Mathematics

[0117] In robotic polishing applications, it is often the case that the surface of the tool head is flat. In the examples of FIGS. 14A and 14B, arrow 1402 indicates the direction of movement of the tool head. Even if the contact area between the tool head and the part surface is the same, if the directions are different, the contact width or track width may be different. In a waypoint application, it is the direction of movement of the tool path when the waypoint is determined. Therefore, in the examples of FIGS. 14A and 14B, the semi-major axis a, which is the semi-major axis of the contact ellipse 1404, and the semi-minor axis b, which is the semi-minor axis, and the orientation of the ellipse 1404 determine the track width on the path P. As will be described in more detail below, the semi-major axis a and the semi-minor axis b are determined by a set of parameters including the major radius of the surface. The orientation of the ellipse 1404 is determined by the main direction of the surface.

[0118] In method 1300, a tool head with a special shape such as a hemispherical or cylindrical shape can be used. On a plane, both the major radius and the minor major radius are infinite. Therefore, the functions of the geometric characteristics of the surface used in Hertz theories A and B may take the following form.

Mathematics

[0119] After A and B are determined, the semi-major axis a and semi-minor axis b of the contact ellipse 1404 can be determined, for example, using Hertz theory. Based on the semi-major axis a and semi-minor axis b, the contact ellipse 1404 and the orientation of the ellipse 1404 can also be determined based on the principal directions. In the present invention, by applying Hertz theory to the free-form surface of the component using a surface function that can accurately characterize the free form, the principal radii with values of the applied force and material properties determine the semi-major axis a and semi-minor axis b. Traditionally, the values of the principal radii of a free-form surface can hardly be obtained except by a very computationally expensive procedure.

[0120] For example, according to Hertz's theory, when two objects are in contact, the maximum stress is at the first contact point, that is, located at the center of the contact area, and the maximum stress or pressure on the surface of the component can be associated with the semi-minor axis b of the ellipse.

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

[0121] In step 1308, the processor 102 is configured to receive user input for selecting one of the options for processing the component surface. The options include input of a constant track width, input of a constant force, or permitted track overlap. Alternatively, the processor 102 can receive commands from the user via the I / O interface 112. The commands can include one of the three options, namely, input of a constant track width, input of a constant force, or permitted track overlap. Any of the three options is applicable to all types of surfaces.

[0122] In step 1310, when the option is a constant track width or the option is a permitted track overlap, the processor 102 is configured to generate a vector of the force that the tool head applies to each waypoint on the surface. The force vector includes an array of force values. For example, the processor 102 determines an applied force vector that includes both the direction and magnitude of the force from the tool head to the part surface. [Number] The direction of the force is determined by the orientation of the waypoint. The above formula (3) shows the relationship between the force F and the semi-minor axis b. k, E(k'), and Δ are functions of the principal radius and material properties of the surface to be machined. The semi-major axis a is determined from k = b / a.

[0123] As shown in formula (3), by setting b as the input of a constant track width, the force can be determined. Alternatively, the force can be set as a constant force input and b can be calculated. Alternatively, using formula (3), based on the path shape and the permitted track overlap, the optimal force and b can be determined together.

[0124] Once the force vector is generated, the processor 102 controls the controller 108 to control the amount and direction of the force applied to the part surface at each waypoint. In some examples, when the surface is a substantially flat surface, the direction of the force on the path from the first waypoint to the second waypoint is the same as the orientation of the first waypoint.

[0125] In some examples, when the system 100 has a force control function, the processor 102 can adjust the force applied to the tool head by the motion unit 110, and the user can generate an initial path with contact track width requirements as shown. FIG. 15A shows a track path generated in simulation when the option is a constant track width. The processor 102 can generate a force vector at step 1310. The processor 102 or the user can manually adjust the path interval to control the amount of force applied to the part surface. For example, if the force is excessive, for example, if the force exceeds the maximum force possible by the system 100, or if the force may damage the part, the processor 102 or the user can manually adjust it, for example, by decreasing it. Adjust the interval between the paths so that the force applied by the tool head to the part surface is reduced. On the other hand, if the force is insufficient, for example, if the policy sheet track leaves a gap, the processor 102 can apply a greater force to the part surface.

[0126] Using the force vector determined at step 1310, the processor 102 is also configured to determine the force distribution of the tool head in the contact area. For example, the processor 102 can adjust the path interval, such as by adjusting the track width to be narrower, if the required force exceeds the capabilities of the system 100. In some examples, the processor 102 is a force vector determined at a waypoint. In some examples, the processor 102 can generate appropriate track width recommendations for the user about the amount of force determined, for example, by displaying a message on the I / O 112, and the user can accept the track width and manually adjust the track width and path interval.

[0127] FIG. 15B shows a track path generated by simulation in the case of an allowed overlap with options. As shown in the example of FIG. 15B, the user can set an allowable track overlap as a percentage of the track width of the previous track path for processing the part surface, for example, from 5% to 30% or more. In response, the processor 102 can output a vector of the force applied at each waypoint. The force is applied to the part surface from the current waypoint to the next waypoint except for the next waypoint. Using this option, there are no gaps in the path and no excessive processing such as over-polishing the part surface. In some examples, the change in the curvature of the part is small or substantially flat. The system 100 has no risk that the force exceeds the maximum limit of the curvature variation of the part and is small or substantially flat. If the curvature of the surface changes 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 a warning by a text message, an audible or visible signal indicating that the force has exceeded the allowable range.

[0128] In step 1312, when the option is a constant force input, the processor 102 is configured to generate the contact area and direction / track width between the tool head and the surface. For example, the processor 102 is configured to generate a vector of the track width at each waypoint. The processor 102 can determine the track width using the value of the semi-minor axis b of the contact area at the waypoint as described above.

[0129] The processor 102 can determine the semi-major axis or semi-minor axis of the contact area using the material and geometric characteristics of the part surface. As shown in Equation (1), k, E(k'), and Δ are functions of the principal radii and material properties.

[0130] By selecting certain force options, the processor 102 controls the controller 108 to control the amount of force for a certain 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 orientation of the first waypoint.

[0131] Figure 15C shows the track path generated when the option is a certain force. In Figure 15C, the contact area between the tool and the part is changing. This results in a non-uniform track width, unpolished gaps occurring, and a potential decrease in quality.

[0132] In some examples, the system 100 has only a certain force setting and does not have the ability to adjust the applied force. For example, if the processor 102 is not configured to adjust the force applied to the tool head by the operating unit 110 during the processing of the part surface, such as a policy, the processor 102 or the user manually adjusts the path spacing based on the maximum force allowed by the path-based system 100 initially, or the maximum force determined by the user to be safe for the part, so that the path has no gaps on the surface of the part.

[0133] As described in step 1308, the user can define or input the path shape or track width to the processor 102. If the force input by the user is a certain force in a surface treatment application, the processor 102 is configured to determine the track width vector at step 1312 under a certain force at each waypoint.

[0134] In the example of FIG. 15B, the user inputs a constant force to be applied to the part surface. In response, the processor 102 outputs a vector of the track width at each waypoint. The track width is applied to the segment of the part surface from the current waypoint to the next waypoint. If the system 100 does not have the ability to adjust the force, the processor 102 or the user can adjust the contact width across the part surface with a constant force. In this option, the user can adjust the path of the tool head to completely cover the part surface.

[0135] In the example of FIG. 15A, the user input is a constant track width. The processor 102 uses Equation (3) to determine the force at each waypoint. If the force is excessive at any waypoint, the processor 102 generates a warning message for the user and provides a recommended track width based on the maximum force determined by the processor 102 or the user. The user can then adjust the track width accordingly. In the example of FIG. 15C, the user input is a constant force, and the processor 102 uses Equation (3) to determine the track width at each waypoint. If a gap still appears on the track even when the user uses the maximum force, the processor 102 generates a recommendation for the path spacing. The user can then adjust the path accordingly. In the example of FIG. 15B, the user can input neither a force nor a track width to the system 100. Instead, the user can input a policy overlap value, and the processor 102 uses Equation (3) to determine both the force and the track width based on the overlap value. If the force is excessive at any waypoint, the processor 102 can generate a recommended path spacing for the user, and the user can adjust the path accordingly.

[0136] Similarly, the stress distribution under the contact area of the part surface can be expressed as follows.

Equation

Equation

Number

[0137] Pressure can be used to determine the effective track width. The user can define the effective edge of the track. For example, the user can set the pressure at a predetermined percentage (%) of the maximum pressure at the center of the waypoint. If the pressure is less than a specific value, the material removal rate of the system 100 may be insufficient, and the policy of the part surface may become invalid. In step 1314, the processor 102 is configured to control the force applied to the contact area on the path on the surface. For example, the processor 102 is configured to cause the system 100 to process the surface of the part using the vector of the force and / or the vector of the track width in the path from each waypoint to the next waypoint in sequence on the surface, such as by programming. The processing of the part surface includes the policy of the part surface, sanding, grinding, or curving, and other applications involving the force of the tool head on the part surface. The processor 102 can control the vector of the force and the track width, including the amount of force, the track width, and / or the width of the track. By controlling the force and / or the track width applied to the contact area between the waypoints on the path on the surface, the surface of the part is processed.

[0138] When the system 100 processes the surface of the part, the tool head moves on the surface of the part as the contact area of all the waypoints on the path generated using the selected waypoints on the part surface in the selected track width, amount of force, and direction of the force or track. In this way, a track path is generated.

[0139] In some examples, if the generated force or pressure exceeds the capabilities of system 100, processor 102 is configured to generate a recommendation for a modified track width vector or force vector. The user can accept or reject the recommendation.

[0140] In the examples of FIGS. 15A and 15B, if system 100 has force control capabilities, processor 102 can automatically determine the force vector of the tool head for optimal part surface treatment quality.

[0141] Using method 1300, the contact area between the tool head and the surface of the part can be accurately determined using Hertz contact theory and differential geometry. Compared to existing applications for controlling the force on the part surface, method 1300 is numerically fast for determining the force vector of the track width vector and is more accurate due to the accurate surface fitting described above.

[0142] Specific adaptations and modifications of the described embodiments can be made. Accordingly, the above-described embodiments are considered to be illustrative and not restrictive.

[0143] The present invention provides specific exemplary algorithms and calculations for implementing the disclosed examples of methods and operations. However, the present invention is not restricted to any specific algorithm or calculation. The present invention describes methods and processes in a particular order of steps, but one or more steps of the methods and processes can be omitted or changed as needed. Optionally, one or more steps may be performed in an order other than the order described.

[0144] From the description of the foregoing embodiments, it can be seen that the present invention can be implemented by using only hardware, or by using software and the necessary general-purpose hardware platform, or by a combination of hardware and software. Based on such an understanding, the technical solution of the present invention can be embodied in the form of a software product. The software product can be stored in a non-volatile or non-transitory storage medium such as a compact disc read-only memory (CD-ROM), a USB flash drive, or a hard disk. The software product includes several instructions that enable a computer device (personal computer, server, or network device) to execute the method provided in the embodiments of the present invention.

[0145] Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions, and modifications can be made herein without departing from the present invention as defined by the appended claims.

[0146] Furthermore, the scope of the present invention is not intended to be limited to the specific embodiments of the processes, machines, manufactures, compositions of matter, means, methods, and steps described in the specification. As will be readily understood by those skilled in the art from the disclosure of the present invention, processes, machines, manufactures, compositions of matter, means, methods, or steps that perform substantially the same function, whether currently existing or later developed, can be understood. Or, the corresponding embodiments described herein can be used in accordance with the present invention to achieve substantially the same results. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufactures, compositions of matter, means, methods, or steps.

Claims

1. 1. A method of surface fitting of a surface of an object, comprising: receiving, at a processor, a point cloud or a surface mesh; dividing, by said processor, the point cloud or mesh into a plurality of overlapping sub-patches; determining, by the processor, a first root mean square error (RMSE) of the entire surface represented by the received point cloud or mesh; in response to the first RMSE across the surface being greater than a user-set RMSE, iteratively and automatically dividing, by the processor, any subpatch of the plurality of overlapping subpatches having an RMSE greater than the user-set RMSE into smaller overlapping subpatches until the RMSE across the surface meets or is less than the user-set RMSE; and generating, by the processor, coefficients characterizing the entire surface if the RMSE for the entire surface meets or falls below the user-set RMSE. A method for surface fitting of an object's surface.

2. controlling, by the processor, movement of a tool relative to the surface based on the generated coefficients. A method for surface fitting of a surface of an object according to claim 1.

3. The method of surface fitting of a surface of an object of claim 1 further comprising the step of instructing, by said processor, a scanner to generate a point cloud of said surface.

4. 1. A system for surface fitting of a surface of an object, comprising: Accepts point clouds or surface meshes; Divide a point cloud or mesh into multiple overlapping subpatches; determining a first root mean square error (RMSE) across the surface represented by the received point cloud or mesh; responsive to the first RMSE across the surface being greater than a user-set RMSE, iteratively and automatically divide subpatches of the plurality of overlapping subpatches having an RMSE greater than the user-set RMSE into smaller overlapping subpatches until the RMSE across the surface meets or falls below the user-set RMSE; and generating coefficients characterizing the entire surface if the RMSE for the entire surface meets or falls below the user-set RMSE; a processor configured to: A system for surface fitting of object surfaces.

5. The processor is further configured to control movement of a tool relative to the surface based on the generated coefficients. The system of claim 4.

6. 1. A method for controlling movement of a tool on a surface of an object, comprising: defining, by a processor, a path shape on a working area of ​​the surface; projecting, by said processor, the path shape onto a surface representation characterizing a point cloud or mesh of the surface; selecting, by the processor, a plurality of waypoints along which the tool will move in sequence based on a total curve length of a path defined by the plurality of waypoints; and generating, by the processor, waypoint positions and orientations for controlling movement of a tool along the waypoints to treat the surface; A method for controlling the movement of a tool over the surface of an object.

7. The method of claim 6 , wherein the path shape includes one or more alternating straight line segments and smooth curves on one or more sides of the working area.

8. The method of claim 7 , wherein the smooth curve comprises a circular arc.

9. The method of claim 6 , wherein the positions and orientations 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 the step of modifying the circular arc to a parabolic or elliptical arc for smoothness of angular acceleration.

11. The method of claim 6 , further comprising controlling movement of the tool at a smooth linear velocity and / or a smooth linear acceleration along a path defined by waypoints on the surface.

12. 1. A system for controlling movement of a tool over a surface of an object, comprising: Define the path shape on the surface working area; Projecting the path shape onto a surface representation that characterizes the point cloud or mesh of the surface; selecting a plurality of waypoints along which the tool will move in sequence based on a total curve length of a path defined by the plurality of waypoints; and generating waypoint positions and orientations for controlling movement of a tool along the waypoints for processing the surface; A system for controlling movement of a tool over a surface of an object, comprising: a processor configured to:

13. The system of claim 12 , wherein the path shape includes one or more alternating straight line segments and smooth curves on one or more sides of the working area.

14. The system of claim 13 , wherein the smooth curve comprises a circular arc.

15. The system of claim 12 , wherein the positions and orientations 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 circular arc is changed to a parabolic or elliptical arc for smoothness of angular acceleration.

17. The system of claim 12 , wherein the processor is configured to control movement of the tool at a continuous linear velocity and / or a continuous linear acceleration along a path defined by the waypoints on the surface.

18. 1. A method for treating a surface of an object, comprising: defining, by a processor, two primary directions at each waypoint on the surface; generating, by the processor, a major radius of the surface at each waypoint based on two major directions; generating, by the processor, at least one of a force vector including an array of force values ​​at each waypoint or a vector of track widths at each waypoint; and causing the processor to cause the system to treat the surface of the part using at least one of a force vector or a track width vector at each waypoint on a path from each waypoint to a next waypoint on the surface; A method for treating the surface of an object.

19. The method of claim 18 , wherein the force vectors are generated after a constant track width is selected.

20. 20. The method of claim 18, wherein the force vectors are generated after the allowed track overlap is selected.

21. The method of claim 18, wherein the track width vector is generated after a constant force is selected.

22. 22. The method of any one of claims 18 to 21, further comprising adjusting, by the processor, a value of a force vector applied to each waypoint.

23. 22. The method of any one of claims 18 to 21, further comprising adjusting, by the processor, a value of a track width vector at each waypoint.

24. 22. The method of any one of claims 18 to 21, further comprising generating, by the processor, a message indicating that the system is unable to generate force vector values ​​at each waypoint.

25. 1. A system for treating a surface of an object, comprising: Define two main directions at each waypoint on the surface; Generate the major radius of the surface at each waypoint; generating at least one of a force vector including an array of force values ​​at each waypoint or a vector of track widths at each waypoint; and causing the system to manipulate the surface of the part using at least one of a force vector or a track width vector at each waypoint in a path from each waypoint to the next waypoint on the surface; 1. A system for processing a surface of an object, comprising: a processor configured to:

26. 26. The system of claim 25, wherein the force vector is generated after a constant track width is selected.

27. 26. The system of claim 25, wherein the force vector is generated after an allowed track overlap is selected.

28. 26. The system of claim 25, wherein the track width vector is generated after a constant force is selected.

29. 29. The system of any one of claims 25 to 28, further comprising adjusting, by the processor, a value of a force vector applied to each waypoint.

30. 29. The system of any one of claims 25 to 28, further comprising adjusting, by the processor, a value of a track width vector at each waypoint.

31. 29. The system of any one of claims 25 to 28, further comprising generating, by the processor, a message indicating that the system is unable to generate values ​​for force vectors at each of the waypoints.

32. Projecting the path shape onto the surface representation characterizing the point cloud or mesh of the surface comprises generating an equation of a space curve; the plurality of waypoints are selected at equal intervals along the path; The method comprises: The method of claim 6 , further comprising, prior to the step of selecting a plurality of waypoints, determining, by the processor, a total curve length of the path based on the equation of the space curve.

33. The plurality of waypoints are selected at equal intervals along the path; The processor: projecting the path shape onto the surface representation that characterizes the point cloud or mesh of the surface by generating an equation of a space curve; and determining a total curve length of the path based on the equation of the space curve before selecting the plurality of waypoints; The system of claim 12 configured to: