Systems and methods for autonomously scanning and processing parts

The described system addresses the challenge of machining complex parts by using a robotic manipulator with real-time force adjustment capabilities, ensuring accurate and efficient processing of parts with varying surface contours and material properties.

JP2025514453AInactive Publication Date: 2025-05-02GRAYMATTER ROBOTICS INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024564650
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-02-17
Filing Date
2023-05-26
Publication Date
2025-05-02
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Existing automatic finishing systems struggle to efficiently and accurately machine parts with complex surface contours and varying material properties, as they lack the capability to autonomously adapt the polishing force in real-time to match the target force values.

Method used

A system comprising a robotic manipulator with an optical sensor and a polishing head, controlled by a controller that uses optical images to create a part model, access tool properties, and generate tool paths. The system autonomously scans parts, adjusts the polishing force in real-time to match target values, and deviates from the tool path to maintain the desired force, ensuring accurate machining of complex parts.

Benefits of technology

The system achieves high-resolution surface processing and accurate force control, allowing for efficient machining of parts with complex contours and varying material properties, thereby improving system throughput and reducing errors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025514453000001_ABST
    Figure 2025514453000001_ABST
Patent Text Reader

Abstract

A variation of method S100 for autonomously scanning and machining a part includes collecting a series of images depicting the part located within a work zone adjacent to a robotic system and assembling the series of images into a part model representative of the part. The method includes partitioning an area of ​​the part model bounded by a local radius of curvature, edge, or color boundary into a target zone for machining by the robotic system and an exclusion zone to be avoided by the robotic system. The method includes projecting a set of key points onto the target zone of the part model to define a position, orientation, and target force of the polishing head to be applied to a location on the part model, assembling the set of key points into a tool path, projecting the tool path onto the target zone of the part model, and transmitting the tool path to the robotic system and executing the tool path on the part within the work zone.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. patent application Ser. No. 17 / 826,840, filed May 27, 2022, U.S. patent application Ser. No. 17 / 826,867, filed May 27, 2022, U.S. patent application Ser. No. 17 / 829,193, filed May 31, 2022, U.S. patent application Ser. No. 17 / 829,205, filed May 31, 2022, U.S. patent application Ser. No. 18 / 087,725, filed December 22, 2022, and U.S. patent application Ser. No. 18 / 111,470, filed February 17, 2023, each of which is incorporated by reference in its entirety.

[0002] Technical Field The present invention relates generally to the field of automated finishing, and more specifically to a novel and useful method for autonomously machining parts in the field of automated finishing. [Brief description of the drawings]

[0003] [Figure 1] FIG. 1 is a schematic diagram of the first method. [Diagram 2] FIG. 2 is a schematic diagram of a variant of the first method. [Diagram 3] FIG. 3 is a schematic diagram of a variant of the first method. [Figure 4] FIG. 4 is a flowchart of a variation of the first method. [Diagram 5] FIG. 5 is a flowchart of a variation of the first method. [Figure 6] FIG. 6 is a flowchart of a variation of the first method. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0004] The following description of preferred embodiments of the present invention is not intended to limit the present invention to these preferred embodiments, but rather to enable those skilled in the art to make and use the present invention. The variations, configurations, implementations, example implementations, and examples described herein are optional and are not limited to the variations, configurations, implementations, example implementations, and examples described therein. The invention described herein may encompass any permutation of these variations, configurations, implementations, example implementations, and examples.

[0005] 1. System As shown in Figures 1-6, a system 100 for autonomously scanning and machining a part includes a robotic manipulator 110 disposed adjacent a work zone, the robotic manipulator 110 including an end effector 112 defining a polishing head 120 and an optical sensor 114. The robotic manipulator 110 is configured to autonomously translate the optical sensor 114 across a part disposed within the work zone during a scanning period to acquire a series of optical images. The robotic manipulator 110 is further configured to move the polishing head 120 along a tool path during machining, monitor a force value of the polishing head 120 on the part, and deviate from the tool path to match the force value to a target polishing force for the part.

[0006] The system 100 further includes a controller 115 configured to receive, during the scanning period, the set of optical images, assemble the set of optical images into a part model representative of the part, access a set of tool characteristics of a polishing head 120 attached to the robotic manipulator 110, generate a tool path defining a series of positions along the part model, and define a target polishing force based on the set of tool characteristics.

[0007] 2. Method 1-6, a method S100 for autonomously scanning and machining a part includes autonomously operating a robotic system to move an optical sensor 114 over a part loaded in a work zone during a scanning cycle and capturing a series of optical images depicting the part with the optical sensor 114. The method S100 also includes, in block S110, assembling the set of optical images (e.g., two-dimensional images, three-dimensional images) into a part model representative of the part, accessing a set of tool properties of a polishing head 120 attached to the robotic system, characterizing surface contours within the part model, and, in blocks S120, S112, detecting a first region within the part model exhibiting a first surface contour accessible to the polishing head 120 based on the set of tool properties, and detecting a second region within the part model exhibiting a second surface contour inaccessible to the polishing head 120 based on the set of tool properties. Method S100 further includes, in block S140, defining a set of key points on a first region in the part model; for each key point in the set of key points, defining a position of the polishing head 120 relative to the part; defining an orientation of the polishing head 120 relative to the part; defining a target force value for the polishing head 120 relative to the part; and assembling the set of key points into a tool path for execution by the robotic system.

[0008] One variation of method S100 includes, in block S120, accessing a part model representing the part and accessing a shape 123 of the polishing pad 121.

[0009] A variation of this method S100 also includes characterizing a surface contour in the part model by detecting a local contour radius of the surface contour in block S112, detecting a first area in the part model exhibiting a first surface contour accessible to the polishing head 120 based on the shape 123 of the polishing pad 121 in block S120, and detecting a second area in the part model exhibiting a second surface contour inaccessible to the polishing head 120 based on the shape 123 of the polishing pad 121 in block S120.

[0010] This variation of method S100 further includes generating a tool path by defining a set of position and pose sets in a first region of the part model in block S140, calculating a contact area of ​​the polishing head 120 against the part in the set of position and pose sets based on a ratio of the shape 123 of the polishing pad 121 to a local contour radius in the set of position and pose sets in block S130, and annotating a target force to the set of position and pose sets based on the contact area in block S142.

[0011] Another variation of method S100 includes, at block S140, accessing a part model representing a surface contour of a part loaded in a proximal work zone of a robotic system, accessing a set of tool characteristics of a polishing head 120 operated by the robotic system, the set of tool characteristics including a shape 123 of a polishing pad 121 and a compliance 126 of a backing 125 supporting the polishing pad 121, obtaining a tool path pattern, and obtaining a set of nominal process parameters. This variation of method S100 also includes, at block S140, projecting the tool path pattern onto the part model to define a tool path, and defining a set of regions along the tool path. This variation of method S100 further includes, for each region in the series of regions of the tool path, detecting a local radius of curvature of a surface contour represented in the part model in the vicinity of the region of the tool path in block S112, calculating a contact area between the polishing head 120 and the part in the vicinity of the region based on the shape 123 of the polishing pad 121, the compliance 126 of the backing 125, and the local radius of curvature in block S130, and defining a target performance value of one of a set of target performance values ​​of the polishing head 120 for the part based on the contact area and a set of nominal processing parameters in block S142. This variation of method S100 also includes, during a processing cycle, navigating the polishing head 120 along the tool path in block S150 with a robotic system, reading a series of performance values ​​from a sensor in the robotic system in block S152, and deviating from the tool path in block S154 to maintain the series of performance values ​​within a threshold difference of the set of target performance values.

[0012] Another variation of method S100 includes, in block S140, accessing a part model representing a surface contour of a part loaded in a work zone adjacent to the robotic system, accessing a shape 123 of a polishing head 120 operated by the robotic system, obtaining a toolpath pattern, projecting the toolpath pattern onto the part model to define a toolpath, and defining a series of regions along the toolpath. This variation of method S100 also includes, for each region of the series of regions of the toolpath, block S112 detecting a local radius of curvature of the surface contour represented in the part model proximate the region of the toolpath, block S130 calculating a contact area and local radius of curvature between the polishing head 120 and the part surface proximate the region, and block S142 defining a target force value in the series of target force values ​​for the polishing head 120 against the region of the part based on the contact area. This variation of method S100 further includes a block S150 of navigating the polishing head 120 in a robotic system along a tool path during a processing cycle, a block S152 of reading a series of force values ​​from a force sensor 116 coupled to the polishing head 120, and a block S154 of deviating from the tool path to maintain the series of force values ​​within a threshold difference of a series of target force values.

[0013] 3. Application Examples Generally, the blocks of method S100 are executed or controlled by a controller 115 (or other computer system) in conjunction with the robotic system to complete a work cycle that includes autonomously scanning parts loaded into a work zone near the robotic system and executing a processing protocol on the parts.

[0014] The controller 115 can perform a rapid initial scan (e.g., less than one minute to complete image capture and less than one minute to process the images into a part model) of a part loaded into the work zone to identify part dimensions and characteristics such as contour and color, and detect edges that indicate features and boundaries of the part. The robotic system performs an initial scan by scanning an optical sensor 114 (e.g., an RGB color camera, a LIDAR sensor, a stereo camera) over an area of ​​the work zone to capture a set of optical images representative of the part, detect the part in the set of images, and assemble the set of images into a three-dimensional model of the part. The controller 115 can define tool paths in machine coordinates that can be executed by the robotic system and project the tool paths onto the three-dimensional model.

[0015] The robotic system can then move the polishing head 120 to execute the tool path for the part with low precision (i.e., tolerances better than 1 inch) and cause the polishing head 120 to deviate from the tool path to achieve a target force between the polishing head 120 and the part surface. In particular, the robotic system can orient the polishing head 120 so that the axis of rotation of the polishing head 120 is coaxial with a vector normal to the part and move the polishing head 120 along the axis toward or away from the part to achieve the target force.

[0016] The robotic system can compensate for errors in the first scan because the robotic system precisely controls the force of the polishing head 120 on the part by precisely controlling the force that the polishing head 120 exerts on the part. Utilizing the first scan reduces the overall run time required to scan and process the part (i.e., complete a work cycle), increasing the throughput of the system as opposed to longer scans.

[0017] Typically, the controller 115 defines a target force to be exerted on the part. The target force may be constant across the part or may be adjusted based on part characteristics and processing protocol parameters. The target force is typically defined based on the grit size 122 of the polishing pad 121 attached to the polishing head 120, the shape 123 of the polishing pad 121, the material composition of the part or coating on the part, the speed of movement of the polishing head 120 across the part, the local profile radius of the part surface along the tool path that determines the contact area of ​​the polishing head 120 on the part surface, the shape of the profile (i.e., concave or convex), and the pad compliance 126 of the backing 125 that supports the polishing pad 121.

[0018] The controller 115 can access a part processing profile to define a target force for a particular part. The part processing profile includes processing protocol parameters and part attributes. The processing protocol parameters define a set of characteristics (e.g., grit size 122 of the polishing pad 121) and actions (e.g., travel speed) of the robotic system during a particular process, such as stripping paint, preparing the surface, and buffing the final paint. The part attributes describe the specific characteristics of a part type, such as material type, part geometry 123, maximum pressure, etc. The robotic system retrieves the parameters of the specific processing protocol for a particular part type to execute the specific processing protocol on the individual part.

[0019] By selecting the correct profile or profile attributes, a robotic system may perform the same operation on different types of parts (e.g., paint stripping on car doors and furniture) or perform different operations on the same type of part (e.g., stripping, priming, and final paint buffing on a single car hood).

[0020] A collection of part machining profiles may be preloaded into the robotic system or an operator may manually input the part machining profiles. Additionally or alternatively, the robotic system may have access to operator profiles that define operator settings for a machining cycle, such as the movement speed of the polishing head 120, a general tool path pattern, or default applied force values.

[0021] Thus, the controller 115 can create a low tolerance tool path (e.g., ±1 inch) for the part surface in near real time based on an initial scan of the part. The robotic system can achieve high resolution surface processing by sensing the applied force at the polishing head 120 in real time and achieving the target applied force for the polishing head 120 by selectively deviating from the low resolution tool path to maintain the target applied force along the length of the tool path. In this manner, the robotic system achieves high resolution accuracy and high repeatability of the processing protocol by combining low resolution scanning with high precision execution of target forces derived from other processing parameters.

[0022] 4. System As shown in Figures 1, 3, and 4, in one embodiment, the system includes a robotic system positioned adjacent to a work zone defining a robotic manipulator 110 configured to move an end effector 112 attached to the robotic manipulator 110 with six degrees of freedom to the spatial limits of the work zone during a work cycle.

[0023] An optical sensor 114 is attached to the end effector 112 and configured to capture color and depth maps (i.e., RGB color camera, LIDAR sensor, stereo camera).

[0024] A random orbital polishing head 120 (hereafter referred to as "polishing head 120") is attached to the end effector 112 and configured to rotate a polishing pad 121 (e.g., abrasive disc, abrasive sheet, polishing wheel) affixed to a flexible backing 125. A force sensor 116 is disposed on the polishing head 120 and configured to detect a force applied to the polishing head 120 perpendicular to the surface of the polishing pad 121 at the center of the polishing pad 121. In one variation of the embodiment, the polishing head 120 is another type of sanding device, such as an orbital sander, a vibratory or "mouse" sander, a rotary tool, a wire brush wheel, or the like.

[0025] In one embodiment, the robotic system includes a linear actuator 118 attached to the end effector 112 coaxially with the axis of rotation of the polishing head 120 and configured to extend and retract the polishing head 120 from the end effector 112. In one variation, the linear actuator 118 is an electromechanical actuator configured to detect resistance to extension and retraction of the polishing head 120 in real time. In another variation, the linear actuator 118 is a pneumatic cylinder including a pressure sensor configured to detect air pressure within the cylinder in real time.

[0026] In one embodiment, the robotic manipulator 110 includes a force sensor 116 coupled to the polishing head 120 and configured to output a signal representative of a force value normal to the polishing head 120 on a localized area of ​​the part in contact with the polishing head 120. The controller 115 then defines a target polishing force that is normal to the localized area represented by the part model and inversely proportional to the radius of the localized area represented by the part model.

[0027] In another embodiment, the polishing head 120 comprises a flexible backing 125 configured to position and support the polishing pad 121, configured to elastically deform in response to the polishing pad 121 being applied to the part, and characterized by a compliance 126 coefficient. The robotic manipulator 110 further includes a force sensor 116 coupled to the polishing head 120 and configured to output a signal representative of a force value of the polishing head 120 perpendicular to a localized area of ​​the part in contact with the polishing head 120, and the controller 115 defines a target polishing force perpendicular to the localized area of ​​the part model and proportional to the compliance 126 coefficient.

[0028] The robotic system further includes a controller 115 configured to control components of the robotic system, store an operator profile and a part machining profile, assemble a series of color images (e.g., color images, stereo images, depth maps) into a part model, annotate the part model with additional data, define key points to assemble tool paths in machine coordinates, calculate force values ​​based on attributes of the polishing head 120, detected part attributes, the operator profile, and / or the part machining profile, and present data to a user via a user interface and receive data from a user.

[0029] In one embodiment, the robotic system includes additional sensors including a force sensor 116 at the actuation joint of the robotic manipulator 110, a torque sensor disposed on the polishing head 120 and configured to detect a torque value at the axis of rotation of the polishing head 120, and a position sensor disposed on the polishing head 120 and configured to detect the rotation of the polishing head 120.

[0030] In one embodiment, the robotic system includes multiple optical sensors 114 positioned around the periphery of the work zone, with the fields of view of the optical sensors 114 directed toward the interior of the work zone and configured to capture optical color and depth maps. In another embodiment, the robotic manipulator 110 defines a six-axis gantry positioned above the work zone.

[0031] In another embodiment, the robotic manipulator 110 defines a multi-link robotic arm attached to a linear conveyor 130 configured to translate the length of a work zone.

[0032] In one example, the robotic manipulator 110 defines a multi-link robotic arm configured to manipulate the end effector 112 via six degrees of freedom proximate a part positioned in the work zone, and a linear conveyor 130 configured to translate the multi-link robotic arm the length of the work zone.

[0033] 4.1 Tool Profile In one embodiment, the controller 115 stores a tool profile that defines the dimensions of the end effector 112, including the dimensions of the attached optical sensor 114, and attributes of the polishing head 120, including the dimensions of the polishing head 120, the shape 123 (e.g., area, diameter, planar profile, concave profile, convex profile) of the currently attached polishing pad 121, the grain size 122 of the currently attached polishing pad 121, the compliance 126 of the backing 125, and a polishing pad wear model that defines the pad wear 127.

[0034] In variations in which the robotic system includes a linear actuator 118 , the tool profile further includes the dimensions of the linear actuator 118 and the extension range of the linear actuator 118 .

[0035] The controller 115 can access the tool profile to obtain attributes of the tool head, such as the shape 123 of the polishing pad 121 or the grit size 122 of the polishing pad 121, to calculate the contact area and / or target force when defining key points or tool paths. Additionally, the robotic system accesses the tool profile to obtain dimensions of the end effector 112 and connected components to model potential collisions between the end effector 112 and surfaces or elements of the part.

[0036] 5. Part loading, operator profile, part machining profile In one embodiment, prior to beginning a work cycle, an operator loads a first component into a first component carrier, positions the first component carrier supporting the first component in the work zone, and engages a set of locking casters on the first component carrier to secure the first component carrier in place within the work zone.

[0037] After the surface preparation procedure is complete, the operator disengages a set of locking casters on the part carrier and removes the part carrier and finished part from the work area.

[0038] 5.1 Operator Profiles In one embodiment, the robotic system includes an operator profile that defines an operator's default settings for the robotic system, including a nominal travel speed (e.g., feet per second, inches per second), a nominal tool path pattern, a nominal dwell time for the polishing head 120, and / or a nominal material removal depth. Typically, the operator profile is preloaded into the robotic system prior to a scanning session. In one variation, an operator can manually enter data into the robotic system via a user terminal to generate the operator profile.

[0039] In another variation, the operator profile specifies a nominal travel speed range defined by a maximum travel speed and a minimum travel speed.

[0040] In another variation, the operator can select one or more settings in the operator profile to override parameters in the part machining profile.

[0041] For example, the controller 115 can apply different operator settings in a subsequent work cycle. The controller 115 obtains a boustrophedonic raster pattern from a first operator profile associated with a first operator operating the robotic system during a first scan cycle.

[0042] The robotic system can then receive a second part within the work zone and apply a second set of operator settings for the second operator by accessing a second operator profile associated with the second operator. The robotic system can then autonomously operate the robotic system during a scan cycle of a second work cycle corresponding to the second part to move the optical sensor 114 across the second part and capture a second set of optical images depicting the second part with the optical sensor 114. The controller 115 then assembles the second set of optical images into a second part model representative of the second part.

[0043] The controller 115 then characterizes the surface contours in the second part model, detects a first region in the second part model that exhibits a surface contour that is accessible to the polishing head 120 based on the set of tool characteristics, and detects a second region in the second part model that exhibits a surface contour that is inaccessible to the polishing head 120 based on the set of tool characteristics.

[0044] The robotic system then obtains a vertical double-pass bustrophedonic raster pattern from the second operator profile, the pattern defining a first sequence of raster legs in a first orientation offset by a pitch distance less than the width of the polishing head 120, a second sequence of raster legs in a second orientation connecting the third sequence of raster legs, a third sequence of raster legs in a third orientation perpendicular to the first orientation offset by a pitch distance less than the width of the polishing head 120, and a fourth sequence of raster legs in a fourth orientation connecting the third sequence of raster legs. The robotic system then projects the vertical double-pass bustrophedonic raster pattern onto a second part model.

[0045] The robotic system then defines, for each keypoint in the second set of keypoints, a position of the polishing head 120 relative to the second part, defines a second orientation of the polishing head 120 relative to the second part, defines a target force value for the polishing head 120 relative to the second part, and assembles the second set of keypoints into a toolpath that follows a vertical double-pass Bustrophedonic raster pattern with a local density proportional to a local radius of the surface contour in the first region in the second part model for execution by the robotic system.

[0046] In this manner, the robotic system can obtain default settings such as toolpath patterns and nominal travel speeds from the operator profile to inform the machining protocol to be applied to the part. The operator profile can override other parameter inputs to limit the operation of the robotic system, for example, by assigning a default travel speed for the polishing head 120 to limit the maximum travel speed of the robotic system or by setting a default toolpath pattern rather than calculating a custom toolpath during each work cycle.

[0047] 5.2 Part Machining Profile In one embodiment, the controller 115 stores a part processing profile that defines the parameters of a particular surface treatment for a particular part constructed of a particular material. The part processing profile is divided into two sub-profiles: a processing protocol sub-profile that defines the parameters of the processing protocol executable by the robotic system, and a part sub-profile that defines the properties of the part and the properties of the material that comprises the part.

[0048] In this implementation, the part machining profile is assembled from various sub-profiles to generate a part machining profile that defines a machining protocol specific to a particular part constructed from a particular material. In one variation, the part machining profile includes only the machining protocol sub-profiles that define the machining protocol for a given part.

[0049] Part machining profiles may be preloaded into the robotic system and selected for use by an operator. Additionally or alternatively, part machining profiles or sub-profiles may be generated from data manually entered by an operator.

[0050] 5.2.1 Processing Protocol Subprofile A processing protocol sub-profile defines a set of robotic system or system component characteristics (e.g., grit size 122 of polishing pad 121, shape 123 of polishing pad 121, and compliance 126 of backing 125) required to execute a particular processing protocol and / or a set of execution parameters (tool path pattern, travel speed of polishing head 120, and nominal target force exerted by polishing head 120 on the part) that control actions performed by the robotic system during execution of the processing protocol. The processing protocol profile may further include effect values ​​(e.g., material removal depth, material removal rate) associated with the set of characteristics or execution parameters that are derived from the set of characteristics and execution parameters. Alternatively, the effect values ​​may be set by an operator. In response, the controller 115 automatically adjusts the set of characteristics and execution parameters to produce the effect value set by the operator.

[0051] A particular surface preparation may define a paint stripping step, a primer coat preparation step for the application of paint, and / or a step for buffing the final paint.

[0052] For example, a processing protocol profile may define a surface process corresponding to paint stripping, including a coarse grain 122, a high target force, a fast travel speed, and a high material removal depth.

[0053] In another example, a processing protocol profile may define a surface process corresponding to a primer coat preparation for applying paint, including a medium roughness grain size 122, a medium target force, a medium travel speed, and a low material removal depth.

[0054] In yet another example, a processing protocol profile may define a surface process corresponding to buffing paint, including a very fine granularity 122, low target force, low travel speed, and zero material removal depth.

[0055] A machining protocol profile defines the robotic system characteristics and execution parameters required to execute a specific machining protocol to obtain a surface machining result on a part.

[0056] 5.2.2 Component Subprofiles The part sub-profile includes attributes for a specific part type that are necessary to identify the maximum force that can be applied to a specific area of ​​the part without damaging the part or the robotic system, such as the nominal curvature of the part, material thickness, coating type (e.g., paint to strip, primer, bare, paint to buff, clear coat to polish), coating thickness, coating hardness, part material type (e.g., steel, aluminum, fiberglass), part material hardness, and edge preparation preference (i.e., avoid edges, lightly prepare edges).

[0057] The part profile may further include a force model accessible by the controller 115 to calculate a nominal maximum force that can be exerted by the robotic system on the part surface without damaging the part or the robotic system based on curvature, material thickness, coating thickness, and / or coating hardness.

[0058] For example, the controller 115 can access the part coating hardness from the part sub-profile of the part loaded in the work zone and define a set of target force values ​​along the tool path that are proportional to the part coating hardness.

[0059] In another example, the controller 115 can apply different part machining profiles to parts loaded into the work zone. The controller 115 can apply the first part machining profile to the first part by accessing a part peel profile assigned to the first part and specifying a material removal depth and a grit size 122 specification for the polishing pad 121 to be applied to the polishing head 120. The controller 115 then defines a set of first target force values ​​that are proportional to the first material removal depth and inversely proportional to the first grit size 122 specification.

[0060] The controller 115 can accept a second part within the work zone, access a paint preparation profile assigned to the second part, and apply a second part machining profile to the second part by specifying a second material removal depth and a second grit size 122 specification for a second polishing pad 121 applied to the polishing head 120 that is smaller than the first grit size 122 specification.

[0061] The controller 115 then operates the robotic system to move the optical sensor 114 across the second portion during a second scanning cycle to capture a second set of optical images representative of the second portion with the optical sensor 114.

[0062] The controller 115 then assembles the second set of optical images into a second part model representative of the second part, characterizes a surface contour in the second part model, detects a first region in the second part model that exhibits a surface contour accessible to the polishing head 120 based on the set of tool properties, detects a second region in the first part model that exhibits a surface contour inaccessible to the polishing head 120 based on the set of tool properties, and defines a set of key points in the first region in the second part model. For each key point in the second set of key points, the controller 115 defines a position of the polishing head 120 relative to the second part and defines an orientation of the polishing head 120 relative to the second part.

[0063] The controller 115 then defines a second target force value for the polishing head 120 on the second part, which is proportional to the second material removal depth and inversely proportional to the second grit size 122 specification. The controller 115 finally assembles the second set of key points into a tool path for execution by the robotic system.

[0064] In another example, an operator loads a part into a work zone that defines a steel automobile hood with a nominal thickness of 1 / 16 inch. The operator selects a part machining profile that corresponds to paint stripping of the steel automobile hood, the profile including a coarse grit size 122 of the polishing pad 121, a tool path pattern that defines a single bastrophe-donic pass on the part surface, a slow travel speed of the polishing head 120 that allows for long dwell times and a large material removal depth, a nominal part curvature with a contour radius greater than 12 feet, a nominal part shape 123 that represents a quadrilateral, a nominal part thickness greater than 1 / 16 inch, and a nominal maximum force for 1 / 2 inch thick steel.

[0065] The controller 115 obtains parameters from the part machining profile and calculates a target force along the tool path to achieve a desired finish on the bare steel (i.e., paint stripped) based on the parameters of the part machining profile for stripping paint from a steel automobile hood.

[0066] In another example, an operator loads a part defining a painted steel automobile hood into the work zone. The operator selects a part machining profile corresponding to paint buffing, which includes a set of process parameters defining a very fine grit 122, a tool path pattern defining a vertical double pass bustrophedonic raster pattern, a slow travel speed of the polishing head 120 with a long dwell time, a small material removal depth, a coating type (i.e., the final paint to be buffed), and a coating hardness.

[0067] The controller 115 obtains a set of parameters from the part machining profile and calculates a target force along the tool path that is less than the maximum finish paint force defined in the part sub-profile to achieve a desired finish of the buffing paint along the tool path.

[0068] In yet another example, an operator loads a part defining a fiberglass wind turbine blade having a wall thickness of ½ millimeter into the work zone. The operator selects a part processing profile corresponding to preparing a surface of the fiberglass wind turbine blade for receiving a primer coat. The profile includes a medium roughness grit size 122, a tool path pattern defining a single raster path over the part surface, a fast polishing head 120 travel speed resulting in a short dwell time, a small material removal depth, a nominal part curvature having a profile radius greater than 2 feet, a nominal part shape 123 representing an airfoil profile, a nominal part wall thickness greater than ½ millimeter, and a nominal maximum force for the ½ millimeter thick fiberglass.

[0069] The robotic system takes parameters from the part machining profile and calculates a target force, less than the nominal maximum force for 1 / 8 inch thick fiberglass, to achieve the desired primer finish prepared along the tool path.

[0070] Thus, a part processing profile contains the part parameters and processing parameters to prepare the surface of a particular part, such as stripping paint, preparing a primer coating to receive paint, and / or buffing off paint.

[0071] Part machining profiles are stored locally on the robotic system and can be easily selected by an operator to process multiple instances of a similar part. Additionally, a set of pre-loaded part machining profiles allows a single operator to select from an array of part machining profiles to perform different surface treatments on different parts exhibiting different material properties on the same robotic system. Additionally, a set of pre-loaded part machining profiles allows a single operator to process a single part with a sequence of surface treatments on the same robotic system.

[0072] Operator profiles allow an operator to set default parameters or preferences for an individual process or all processes run on the robotic system, such as a uniform tool path pattern across all processes, or a uniform movement speed of the polishing head 120.

[0073] 6. Parts Scan In one embodiment shown in Figures 1, 2 and 4, the robotic system performs a first rapid low-resolution scan of the work zone of a part loaded into the work zone by scanning the optical sensor 114 across the work zone at a first distance from the floor of the work zone to collect a series of images depicting the work zone and the part loaded therein. In particular, the robotic manipulator 110 translates the optical sensor 114 attached to the end effector 112 at a maximum dimension and / or to a maximum dimension of the work zone. The controller 115 then assembles the series of images into a low-resolution model of the part to determine the nominal shape 123 and dimensions of the part. In one variation, the robotic system moves the optical sensor 114 to a maximum height above the center of the work zone to obtain a single depth map depicting the part. The robotic system then assembles a low-resolution model of the part from the single image to detect the part shape 123 and dimensions.

[0074] The robotic system then performs a second high resolution scan of the part to identify part features such as the part contour, coatings, internal edges and features, boundary edges of the part, etc. The robotic system assembles a scan pattern from the first scan by segmenting the low resolution part model in the field of view of the optical sensor 114 at a nominal scan distance from the part (i.e., 12 inches), projecting a series of scan points onto the surface of the first scan, and defining the orientation of the focal axis of the optical sensor 114 to be approximately perpendicular to the part surface.

[0075] The robotic system performs a second scan by positioning the focal axis of the optical sensor 114 approximately perpendicular to the part while maintaining the optical sensor 114 at the nominal scan distance and collecting a series of images depicting the part. The controller 115 then assembles the series of images into a higher resolution model of the part.

[0076] For example, the robotic system may perform a first scan during a setup period prior to a first scan period to quickly identify the boundaries of the part and generate a nominal scan path, including positioning the optical sensor 114 over the work zone at a first distance from the first part, capturing a first optical image of the work zone that depicts the first part at a first resolution, detecting a first shape 123 of the first part in the work zone based on a first set of features extracted from the first optical image, and defining a scan path at a second distance from the first part that is smaller than the first distance based on the first shape 123 of the first part in the work zone. The robotic system may then perform a second scan to capture a higher resolution representation of the part by autonomously executing a scan path that moves the optical sensor 114 over the first part at a second distance from the first part, and capturing a set of first optical images that depict the first part at a second resolution that is higher than the first resolution.

[0077] Thus, the robotic system can effectively perform a first low-resolution scan to detect the part's shape 123 and dimensions with low dimensional accuracy, assemble a low-resolution part model, and segment this low-resolution part model into multiple regions that can be scanned by the optical sensor 114 located at a closer nominal distance during a second high-resolution scan. The robotic system can then perform a high-resolution scan to detect features of the part, such as the part's surface contours, coatings, internal edges and features, boundary edges, etc., with sufficient dimensional accuracy to define a tool path within a spatial tolerance of the part surface (e.g., ±0.25 inches), and define target force values ​​along the tool path that are predicted to result in consistent material removal and / or surface quality when executed by the robotic system.

[0078] 7. Part Model In one embodiment shown in Figures 1, 2, and 4-6, the controller 115 assembles the two-dimensional images, depth maps, stereoscopic images, and / or other optical data collected by the robotic system via the set of optical sensors 114 during scanning into a three-dimensional part model that represents the surface of the part within a spatial tolerance of, for example, ±0.25 inches.

[0079] The controller 115 can derive a surface contour from the three-dimensional part model, such as by calculating a local radius of curvature at each pixel in the three-dimensional part model. Additionally, the controller 115 can characterize a surface contour having a negative local radius as a convex contour (e.g., if the center of a sphere tangent to the part model at a pixel falls below the part surface) and can characterize a surface contour having a positive local radius as a convex contour (e.g., if the center of a sphere tangent to the part model at a pixel falls above the part surface). Additionally, the controller 115 can implement edge detection techniques to detect boundary edges of parts in the three-dimensional part model.

[0080] In one variation, the controller 115 detects color characteristics (e.g., color intensity, reflectance) of the surface of the part model, predicts the surface type of the part (e.g., primer, paint, metal, fiberglass) based on these color characteristics, selects a part processing profile based on the surface type, and / or defines segments of the part model between areas exhibiting different color characteristics (e.g., high reflectance indicative of paint and low reflectance indicative of primer or filler).

[0081] Thus, the controller 115 can assemble a part model from the set of images collected by the robotic system during a scan cycle, define the part boundary and part contour, and thereby generate a virtual representation of the part. The controller 115 then calculates tool paths and parameters for autonomously machining the part based on this part model.

[0082] 7.1 Segmenting part models Typically, the controller 115 segments the part model into a set of target zones that the robotic manipulator 110 will process with the polishing head 120 and a set of excluded zones that are inaccessible or unsuitable for the robotic manipulator 110 to process with the polishing head 120 based on the capabilities of the robotic system and the desired surface finish.

[0083] 7.1.1 Target Zone 1 and 5, in one implementation, controller 115 partitions the part model into target zones by identifying a pixel within an edge of the part. Controller 115 then identifies the local radius of curvature at that pixel as a concave curvature that exceeds a first threshold radius and / or identifies the local radius of curvature at that pixel as a convex curvature that exceeds a second threshold radius. In response, controller 115 assigns the pixel to one of the target zones in the part model.

[0084] In another implementation, the controller 115 can access the tool characteristics to obtain the shape 123 of the polishing pad 121 and the compliance 126 of the backing 125 of the polishing head 120. The controller 115 calculates a first minimum contour radius of the surface contour based on the shape 123 of the polishing pad 121 and the compliance 126 of the backing 125 of the polishing head 120 such that a threshold percentage of the area of ​​the polishing pad 121 can contact the surface contour when a nominal target force is applied. This target force is obtained from the operator profile and / or the part machining profile.

[0085] In another embodiment, the controller 115 segments the part model into target zones by identifying pixels that exhibit a contour radius smaller than the first minimum contour radius and assigning the pixels to the target zone.

[0086] For example, the controller 115 accesses the tool characteristics to obtain that the first shape 123 of the polishing pad 121 is 6 inches, the compliance 126 of the backing 125 is 25% (i.e., semi-rigid backing 125), and obtains the nominal target force from the operator profile. The controller 115 calculates a threshold percentage of the area of ​​the polishing pad 121 in contact with the part as 50% based on the compliance 126 of the backing 125 and the nominal target force. The controller 115 calculates a first minimum contour radius as 10 feet based on the shape 123 of the polishing pad 121, the compliance 126 of the backing 125 of the polishing head 120, and the nominal target force. The controller 115 classifies pixels in the first target zone that have a local radius of curvature equal to or greater than 10 feet. The controller 115 then projects the first tool path onto the target zone in the part model.

[0087] Next, the controller 115 accesses the tool characteristics to obtain that the second shape 123 of the polishing pad 121 is 4 inches and the compliance 126 of the backing 125 is 50% (i.e., semi-flexible backing 125), and obtains the nominal target force from the operator profile. The controller 115 calculates a threshold percentage of the area of ​​the polishing pad 121 in contact with the part as 75% based on the compliance 126 of the backing 125 and the nominal target force. The controller 115 calculates a first minimum contour radius as 1 foot based on the shape 123 of the polishing pad 121 and the compliance 126 of the backing 125. The controller 115 classifies pixels in the second target zone that have a local radius of curvature equal to or greater than 1 foot. The controller 115 projects the second tool path onto the second target zone in the part model.

[0088] Next, the controller 115 accesses the tool characteristics to obtain that the third shape 123 of the polishing pad 121 is 2 inches, the compliance 126 of the backing 125 is 25% (i.e., semi-rigid backing 125), and obtains the nominal target force from the operator profile. The controller 115 calculates a threshold percentage of the area of ​​the polishing pad 121 in contact with the part as 25% based on the compliance 126 of the backing 125 and the nominal target force. The controller 115 calculates a first minimum contour radius as 1 inch based on the shape 123 of the polishing pad 121 and the compliance 126 of the backing 125. The controller 115 classifies pixels in the third target zone that have a local radius of curvature equal to or greater than 1 inch. The controller 115 projects the third tool path onto the third target zone in the part model.

[0089] The controller 115 then sequences the first tool path, the second tool path, and the third tool path into a single machining cycle for machining all target zones of the part, including tool change events between the end of the first tool path and the start of the second tool path, and between the end of the second tool path and the start of the third tool path.

[0090] In one variation of this embodiment, the robotic system includes an automated tool changer configured to receive the first polishing head 120 from the end effector 112 and mount the second polishing head 120 to the end effector 112, which is configured to selectively disengage the first polishing head 120 and selectively engage the second polishing head 120. The robotic system operates the automated tool changer to exchange different sized polishing heads 120 when transitioning from the first tool path to the second tool path and from the second tool path to a third tool path.

[0091] In another variation of this embodiment, in response to completing the first tool path, the controller 115 generates and sends a prompt to the operator to manually replace the first polishing head 120. After manually replacing the first polishing head 120 with the second polishing head 120, the robotic system continues along the second tool path.

[0092] In this way, the robotic system can process all target zones on the part in the shortest time by sequencing a first tool path, a second tool path, and a third tool path to cover the largest area of ​​the part with the polishing head 120 of the largest geometry 123, and then gradually decreasing the geometry 123 of the polishing pad 121 to process contours with smaller radii.

[0093] Thus, the robotic system can segment the part model into multiple target zones that the robotic system can machine the part. The robotic system can detect local contour radii at multiple locations on the part, compare the local contour radii to the size of the polishing head 120 and the compliance 126 of the polishing head 120 to identify zones of the part where the polishing head 120 has access to the part surface, and autonomously segment the target zones from the remainder of the part.

[0094] 7.1.2 Exclusion Zones 1 and 5, the controller 115 partitions the part model into exclusion zones by identifying a pixel within an edge of the part and identifying a local radius of curvature at the pixel that is a concave curvature less than a first threshold radius and / or identifying a local radius of curvature at the pixel that is a convex curvature less than a second threshold radius, and in response, the controller 115 assigns the pixel to the exclusion zone in the part model.

[0095] In another embodiment, the controller 115 can access the tool characteristics to obtain the shape 123 of the polishing pad 121 and / or the compliance 126 of the backing 125 of the polishing head 120, and based on the shape 123 of the polishing pad 121 and / or the compliance 126 of the backing 125 of the polishing head 120, calculate a first minimum contour radius of the surface contour such that a threshold percentage of the area of ​​the polishing pad 121 can contact the surface contour when a nominal target force obtained from the operator profile and / or part processing profile is applied.

[0096] The controller 115 partitions the part model into exclusion zones by identifying pixels that exhibit a contour radius greater than the first minimum contour radius and assigning the pixels to the exclusion zones.

[0097] In one embodiment, the controller 115 can define an exclusion zone that is inaccessible to the polishing head 120 based on the characteristics of the polishing head 120 by accessing a size of the polishing pad 121, detecting a second region defining a concave contour, detecting a radius of curvature of the concave contour, and calculating a ratio of the size of the polishing pad 121 to the radius of curvature of the concave contour. In response to the ratio exceeding a threshold value, the controller 115 characterizes the second region as an exclusion zone. Additionally, the controller 115 can access a compliance 126 factor of the compliant backing 125 and calculate the threshold value based on the compliance 126 factor.

[0098] In another embodiment, the controller 115 can partition the part model into exclusion zones by identifying different minimum radii of curvature for different curvature types. For example, the controller 115 can identify a pixel within a boundary edge of the part and identify the local curvature at that pixel as a concave curvature. The controller 115 can identify the concave radius of curvature as being less than a first threshold radius and in response assign the pixel to the exclusion zone. Alternatively, the controller 115 can identify a pixel within a boundary edge of the part and identify the local curvature at that pixel as a convex curvature. The controller 115 can identify the convex radius of curvature as being less than a second threshold radius that is different from the first threshold radius and in response assign the pixel to the exclusion zone.

[0099] In yet another embodiment, the controller 115 can detect various edges within the part model. The controller 115 can implement edge detection techniques to detect boundary part edges that define the limits of the part, and internal part edges that define feature edges such as surface bosses, reliefs, and hole edges.

[0100] Additionally, the controller 115 can analyze the set of images to detect edges of the masking tape on the part. The controller 115 can segment the part model into exclusion zones by identifying pixels within an area bounded by a set of part edges and assigning the pixels to exclusion zones in the part model.

[0101] In another embodiment, the controller 115 detects areas in the part model that are inaccessible to the polishing head 120 by detecting a set of edges on a first part model, defining an area on the part model bounded by the set of edges as an exclusion zone in the part model, and defining a set of key points on the part model outside the exclusion zone.

[0102] In another example, the controller 115 can detect a series of edges on the part model to demarcate the exclusion zone by detecting masking tape on the surface contour of the part, detecting a first edge of the masking tape as delineating a target zone of a first region from the exclusion zone, and defining the area on the part model enclosed by the first edge of the masking tape as the exclusion zone.

[0103] In yet another example, the controller 115 may detect a first region representing a target zone in the part model by detecting a region of a first color on the part in the part model, defining the first region on the first part model as a target zone in the first part model, detecting a region of a second color in the part model (wherein the first color and the second color are different), and defining a set of keypoints in the first region of the part model that represents the target zone.

[0104] In one variation of this embodiment, the controller 115 further partitions the part model into exclusion zones by identifying pixels within a minimum distance of an edge of the part and assigning the pixels to exclusion zones in the part model.

[0105] In another variation of this embodiment, the controller 115 may annotate the three-dimensional model with the exclusion zones and present the three-dimensional model to an operator prior to the start of a processing cycle to allow the operator to review the exclusion zones.

[0106] For example, the controller 115 can represent the target zone and the execution zone in the three-dimensional model and prompt the operator for confirmation by detecting a set of edges in the three-dimensional model, defining an area on the part model within the set of edges as an exclusion zone in the part model, annotating the three-dimensional model with a virtual representation of the exclusion zone, presenting the three-dimensional model annotated with the virtual representation of the exclusion zone to an operator, and prompting the operator to confirm the exclusion zone on the three-dimensional model.

[0107] In another embodiment, the controller 115 can access tool characteristics to obtain dimensions of the polishing head 120 and the end effector 112. Based on the dimensions of the polishing head 120 and the end effector 112, the controller 115 generates an end effector 112 simulator to predict collisions between the end effector 112 (and / or other elements of the robot manipulator 110) and elements of the part.

[0108] For example, the controller 115 identifies an overhang at a first keypoint along the tool path and accesses the end effector 112 simulator to calculate a target position and orientation of the end effector 112 at the first keypoint near the overhang. The end effector 112 simulator indicates a collision between the end effector 112 and the overhang based on the dimensions of the polishing head 120 and the end effector 112 and the calculated target position and orientation of the end effector 112. In response, the controller 115 assigns the first keypoint to an exclusion zone.

[0109] In this manner, the robotic system can autonomously partition the part model into exclusion zones that are inaccessible to the robotic manipulator 110 or undesirable to be machined with the polishing head 120 based on the capabilities of the robotic system and the desired surface finish. The robotic system can also partition areas of the part that may be damaged by the polishing head 120 or by the parameters of the particular process (e.g., concave or convex contours with small radii may be damaged or chipped away during an aggressive paint stripping cycle using a coarse grit 122). The robotic system can also model the path of the end effector 112, predict where potential collisions may occur, and partition the areas as exclusion zones that are inaccessible to the polishing head 120.

[0110] 8. Tool Path Typically, for each target zone in the part model, the controller 115 projects a tool path that includes a set of key points onto the target zone using a tool path pattern obtained from the operator profile.

[0111] In the implementation shown in Figures 2 and 3, the controller 115 generates a tool path by projecting a bustrophedonic raster pattern defined by an operator profile onto the target zone and projects a set of keypoints onto the bustrophedonic raster pattern at regular intervals.

[0112] For example, the controller 115 may define a first set of keypoints on a first region in the first part model by acquiring a bustrophedonic raster pattern that defines a first sequence of raster legs in a first orientation offset by a pitch distance less than a width of the polishing head 120 and a second sequence of raster legs in a second orientation connecting the first sequence of raster legs. The controller 115 then projects the bustrophedonic raster pattern onto the first region in the first part model and defines a first set of keypoints along the bustrophedonic raster pattern with a local density proportional to a local radius of a surface contour in the first region in the first part model.

[0113] In one variation of the embodiment, the controller 115 projects a set of keypoints on a bustropheedonic raster pattern defined in the operator profile onto the target zone with spacing that is inversely proportional to the local radius of curvature at each keypoint (i.e., the smaller the local radius of curvature, the higher the density of keypoints in the tool path).

[0114] For example, the controller 115 may characterize a surface contour in a first part model by detecting a local radius of curvature of the surface contour in a discrete region of the part model, and define a first set of keypoints on a first region in the first part model by projecting the keypoints onto the part model with a density inversely proportional to the local radius of curvature. By increasing the density of the keypoints inversely proportional to the local radius of curvature, the controller 115 generates more detailed segments of the tool path for tighter control of the polishing head 120 through narrow contours.

[0115] 8.1 Target force value according to curvature Typically, the controller 115 inputs for each keypoint a translational (e.g., (x,y,z)) position and rotational (e.g., pitch, yaw, roll) orientation, such as in the robotic system's machine coordinates. The controller 115 also derives a target force (or pressure) value for each keypoint and annotates each keypoint with that target force value. (Alternatively, the controller 115 may divide the toolpath into regions and implement the methods and techniques described herein to assign target force values ​​to individual regions of the toolpath. Additionally or alternatively, the controller 115 may divide the toolpath into groups of keypoints and implement the methods and techniques described herein to assign target force values ​​to individual groups of keypoints along the toolpath.)

[0116] In one embodiment shown in FIG. 5, for a first keypoint, the controller 115 obtains (e.g., reads, extracts) a local radius of curvature of the part at the first keypoint from the part model, accesses the set of tool properties to obtain the shape 123 of the polishing pad 121 and the compliance 126 of the backing 125, projects the area of ​​the polishing pad 121 onto the part, calculates the contact area between the polishing pad 121 and the part surface based on the area of ​​the polishing pad 121, the compliance 126 of the backing 125, and the local radius of curvature when (a) the polishing head 120 is positioned such that the polishing pad 121 is centered at the first keypoint, (b) the axis of the polishing head 120 is oriented normal to the part surface at the first keypoint, and (c) the polishing pad 121 is in contact with the part surface, and calculates a target force value at the first keypoint that is proportional to the contact area between the polishing pad 121 and the part surface. Thus, the controller 115 can assign a low target force to the first key point when the estimated contact area of ​​the polishing pad 121 around the first key point is small and assign a high target force to the first key point when the estimated contact area of ​​the polishing pad 121 around the first key point is large, thereby achieving a consistent or target polishing pressure between the polishing pad 121 and the entire surface of the part, thereby achieving consistent material removal and high surface quality uniformity.

[0117] In one variation, the controller 115 directly calculates the target force at the first keypoint from the local part curvature by extracting the local radius of curvature of the part at the first keypoint, obtaining predefined grit 122 specifications of the polishing pad 121 of the part, travel speed, and / or part machining profile, inserting the local radius of curvature and machining values ​​into a predefined model, and converting the local radius of curvature to a target force at the first keypoint.

[0118] 8.2 Target force value according to edge proximity In another embodiment, in which the first key point is located near the edge of the target zone, as shown in FIG. 5, the controller 115 projects the area of ​​the polishing pad 121 onto the part, calculates the contact area between the polishing pad 121 and the part surface based on the area of ​​the polishing pad 121 and the location of the key point when the polishing head 120 is positioned such that (a) a first area of ​​the polishing pad 121 contacts the part surface within the target zone, (b) a second area of ​​the polishing pad 121 extends beyond the part boundary edge when the polishing head 120 is centered on the first key point, and (c) the axis of the polishing head 120 is oriented normal to the part surface at the first key point, and defines a target force proportional to the first area of ​​the polishing pad 121 that contacts the part surface within the boundary of the target zone. For example, the controller 115 can calculate the first contact area of ​​each region of the first tool path by calculating, for each region of the first tool path, the intersection between the shape 123 of the polishing head 120 projected onto the region in the part model and the part model, and calculating the first contact area of ​​the region based on the intersection.

[0119] 8.3 Target force value according to contact area In the embodiment shown in FIGS. 2-3 and 5-6, to calculate the target force at a first keypoint in the tool path, the controller 115 obtains the nominal travel speed (i.e., 1 ft / sec) from the operator profile, obtains the shape 123 of the polishing pad 121 and the compliance 126 of the backing 125, projects the area of ​​the polishing pad 121 onto the part, calculates the contact area between the polishing pad 121 and the part surface based on the area of ​​the polishing pad 121, the compliance 126 of the backing 125, and the local radius of curvature when the polishing pad 121 is centered at the first keypoint and the axis of the polishing head 120 is oriented normal to the part surface at the first keypoint, and calculates a target force value at the first keypoint that is proportional to the contact area between the polishing pad 121 and the part surface and proportional to the nominal travel speed (i.e., the faster the travel speed, the higher the target force).

[0120] For example, the controller 115 can obtain a nominal movement speed of the polishing head 120 in a region of the tool path and define a target force value for the polishing head 120 for the part near the region that is proportional to a first contact area between the polishing head 120 and the part surface and proportional to the nominal movement speed. The controller 115 can read a set of force values ​​from sensors, including the force sensor 116 coupled to the polishing head, and deviate from the tool path to maintain the set of force values ​​within a threshold difference of the set of target force values.

[0121] 8.4 Target force value according to pressure In another example, the robotic system accesses an operator profile to obtain a nominal travel speed of 1 ft / sec and a part processing profile to obtain a maximum pressure on the part. Typically, as the polishing head 120 moves along the tool path at the nominal travel speed and encounters a convex region of the surface exhibiting a decreasing radius of curvature, the contact area of ​​the polishing head 120 against the part decreases in proportion to the decrease in the radius of curvature of the part. As the robotic system continues to apply a consistent force to the part across this region of the part, the pressure that the polishing head 120 applies to the part increases, thereby increasing material removal from the part. Thus, to maintain a constant pressure on the part and / or to maintain this pressure below the maximum pressure, the controller 115 can characterize the contact area between the polishing pad and the part across this region of the part and assign a target force value that decreases along this segment of the tool path.

[0122] Similarly, as the polishing head 120 moves across a part region characterized by an increasing radius of curvature, the contact area of ​​the polishing pad 121 increases and the pressure applied by the polishing head 120 decreases. Thus, the controller 115 can assign an increasing target force value along this segment of the tool path.

[0123] In another embodiment, the controller 115 calculates a target pressure on the part surface that is inversely proportional to the contact area of ​​the polishing head 120 on the part and proportional to the target force. The robotic system adjusts the target force based on the local surface contour radius, and therefore the contact area of ​​the polishing head 120, to achieve the target pressure across the part.

[0124] In one variation, the controller 115 obtains the maximum pressure on the part from the part processing profile, accesses the size of the polishing pad 121, and sets the target force such that the pressure exerted by the polishing pad 121 on the part does not exceed the maximum pressure on the part.

[0125] In one embodiment, the controller 115 accesses the maximum applied pressure of the part, and for each region of the first tool path, calculates the maximum force for that region based on the maximum applied pressure and a first contact area between the first polishing head 120 and the part surface near that region, and defines a target force value for the polishing head 120 on the part to be less than this maximum force.

[0126] 8.5 Target force value according to shape In another embodiment, the controller 115 calculates the target movement speed at the first keypoint by obtaining the target force of the polishing head 120 against the part and the maximum nominal force of the part from the part processing profile, calculating the contact area between the polishing pad 121 and the part based on the shape 123 of the polishing pad 121 and the compliance 126 of the backing 125, and calculating a target movement speed at the first keypoint that is proportional to the contact area between the polishing pad 121 and the part surface and proportional to the target force (i.e., a smaller radius of curvature at the keypoint results in a smaller contact area and a faster movement speed so as not to exceed the maximum nominal force on the part surface).

[0127] In one example, the controller 115 can obtain a set of nominal processing parameters by obtaining a nominal polishing head 120 force and assigning a nominal polishing head 120 force to each region of the tool path. The controller 115 can then assign a target polishing head 120 movement speed relative to the part for each region of the tool path that is inversely proportional to the contact area between the polishing head 120 and the part surface proximate to that region and proportional to the nominal polishing head 120 force applied. The controller 115 can then move the polishing head 120 along the tool path according to the target polishing head 120 movement speed assigned to each region of the tool path. The controller 115 reads a series of force values ​​from sensors including the force sensor 116 coupled to the polishing hand and deviates from the tool path to maintain the series of force values ​​within a threshold difference of a set of target force values.

[0128] 8.6 Target force value according to grain size In another embodiment, the controller 115 defines a target force proportional to the grit size 122 specifications of the polishing head 120 to achieve a target material removal depth for the part.

[0129] For example, the controller 115 can access a set of tool characteristics for the polishing head 120 by accessing a specification of a first grit size 122 of a first polishing pad 121 to be applied to the polishing head 120. The controller 115 then accesses a first material removal depth range for the first part and accesses a first tool travel speed setting. The controller 115 can then define a set of first target force values ​​that are proportional to the material removal depth range, proportional to the first tool travel speed setting, and inversely proportional to the specification of the first grit size 122. The controller 115 then controls the robotic system to move the polishing head 120 through a first sequence of positions and orientations according to the first tool travel speed setting.

[0130] The controller 115 may then access a specification of a second grit 122 of the polishing pad 121 to be applied to the polishing head 120, and access a second finishing profile that defines a second tool travel speed setting and a second polishing force setting. The controller 115 then defines a second travel speed along the tool path based on the second tool travel speed setting and the specification of the second grit 122, and defines a second set of set force values ​​based on the second polishing force setting and the specification of the second grit 122.

[0131] The robotic system then moves the polishing head 120 at a second velocity of travel along a sequence of positions and orientations defined by the set of key points relative to the first part, reads a second sequence of force values ​​from a force sensor 116 in the robotic system, interpolates a second set of target force values ​​along the tool path based on the second set of preset force values, and selectively adjusts the position of the end effector 112 relative to the part to maintain the sequence of force values ​​within a threshold difference of the second set of preset force values.

[0132] In a similar variation, the controller 115 calculates a target force that the polishing head 120 exerts on the part during execution of the tool path based on the material properties of the part (e.g., hardness), the tool properties of the polishing head 120 (e.g., grit size 122 of the polishing pad 121), and the operating parameters of the robotic system (e.g., the movement speed of the polishing head 120) to affect material removal from the part surface.

[0133] 8.7 Processing parameters based on grinding torque In another embodiment, to calculate the target torque on the axis of the polishing head 120 at the first key point, the controller 115 obtains a nominal movement speed (i.e., 1 ft / sec) from the operator profile, calculates the contact area between the polishing pad 121 and the part based on the shape 123 of the polishing pad 121 and the compliance 126 of the backing 125, and calculates a target torque at the first key point that is proportional to the contact area between the polishing pad 121 and the part surface and proportional to the nominal movement speed (i.e., the faster the movement speed, the higher the target torque).

[0134] For example, the robotic manipulator 110 includes a torque sensor coupled to the polishing head 120 and configured to output a signal representative of a torque value between a polishing pad 121 on the polishing head 120 and a localized area of ​​the part in contact with the polishing pad 121. The controller 115 defines a target polishing torque for the entire part proportional to a radius of a local surface contour represented in the part model. The robotic manipulator 110 is configured to adjust the speed of the polishing pad 121 of the polishing head 120 while moving the polishing head 120 along the tool path to match the torque value between the polishing pad 121 and the localized area of ​​the part to the target polishing torque.

[0135] In this manner, the robotic system can calculate a target force of the polishing head 120 on the part based on one or more of a plurality of part and / or system parameters to achieve the target force with high accuracy for a variety of different part geometries, materials, and / or processing protocols. The robotic system can also vary a system parameter, such as the travel speed of the polishing head 120, in real time during execution of the tool path in response to variations in the detected applied force to achieve the target force.

[0136] 8.8 Movement speed adjustment In another embodiment, the robotic system adjusts the force applied by the polishing head 120 and the speed of movement of the polishing head 120 for each key point in the series of key points.

[0137] For the first keypoint, the robot system calculates a combination of force and travel speed at the first keypoint based on the part machining profile, the local contour radius of the part at the keypoint, the contact area of ​​the polishing pad 121, and / or the grit size 122 specifications to nominally achieve a target force exerted by the polishing head 120 on the part surface as defined in the part machining profile. The controller 115 interpolates the force and travel speed combination between the first and second keypoints in the tool path. The controller 115 repeats the above process for each keypoint in the series of keypoints and assembles these keypoints into a tool path with a minimum duration that keeps the force exerted on the part below the maximum force of the part defined in the part machining profile.

[0138] For example, the controller 115 accesses the set of tool characteristics for the polishing head 120 to access the specifications for the grit size 122 of the polishing pad 121 to obtain the minimum material removal depth and maximum tool path execution time for the part. The controller 115 then defines a target execution value for each region of the first tool path by assigning to the region a target travel speed that is inversely proportional to the maximum tool path execution time. The controller 115 further assigns a target force value to the region, the target force value being proportional to the contact area of ​​the polishing head 120 on the portion proximate the region, inversely proportional to the specifications for the grit size 122 of the polishing pad 121, proportional to the minimum material removal depth, and proportional to the target travel speed.

[0139] The robotic system then moves the polishing head 120 along the tool path according to a target polishing head 120 movement speed assigned to the region of the tool path, reads a series of force values ​​from sensors including the force sensor 116 coupled to the polishing head, and deviates from the tool path to maintain the series of force values ​​within a threshold difference of the set of target force values.

[0140] Alternatively, the controller 115 can assemble a set of key points defined by a set of force and travel rate combinations into a tool path that maintains the most consistent travel rate to maintain uniformity of the final pattern. Alternatively, the controller 115 can assemble a set of key points into a tool path that most consistently achieves a target force acting on the part below what is defined in the part processing profile. Alternatively, the controller 115 can assemble a set of key points into a tool path that applies the least amount of force to complete the surface finishing process within a set time (e.g., one hour). Alternatively, the controller 115 can assemble a set of key points into a tool path that optimizes the consistency of the finish across the part surface.

[0141] In this manner, the robotic system can coordinate both the speed of movement of the polishing head 120 and the force exerted by the polishing head 120 on the component surface to construct a specific tool path to achieve a particular goal within the surface process.

[0142] In another example, an operator loads a truck tailgate that has an area of ​​truck bedliner spilled on it and selects a paint stripping protocol with a maximum duration of one hour. The robotic system segments a zone of the part indicative of the truck bedliner in the tool path and assigns a higher target force and lower travel speed to that zone, increasing the dwell time and increasing the material removal depth of the hard truck bedliner. In other parts of the tool path, the robotic system assigns a lower target force and higher travel speed to reduce the dwell time and material removal depth, decreasing the overall process run time.

[0143] In this manner, the robotic system can adjust the target force and travel speed of the polishing head 120 to achieve a machining result, rather than fixing the target force and adjusting the travel speed, or fixing the travel speed and adjusting the force, thereby enabling the robotic system to efficiently machine parts that exhibit highly varying surface topography 123 or configurations.

[0144] 8.9 Other Key Points The robotic system can repeat the above process to calculate target execution values ​​(target forces, target travel speeds, target pressures, etc.) for each other key point, group of key points, or region defined on the part model. The controller 115 then assembles the positions, orientations, and target execution values ​​of these key points into a tool path, such as in the form of a software code file (e.g., machine-specific programming language or G-code equivalent), that defines the travel positions and rotation directions, target forces, feed rates for the polishing head 120, and / or rotation speeds for the polishing pad 121.

[0145] 8.10 Keypoint Order In one variation, the controller 115 orders the key points in the tool path based on the characteristics of the corresponding regions of the part.

[0146] For example, the controller 115 can divide the part model or tool path into a set of zones characterized by coating thickness, including a first zone characterized by a first coating thickness and a second zone characterized by a second coating thickness that is less than the first coating thickness. The controller 115 then defines a machining sequence for the group of tool path regions by causing the first region of the tool path to precede the second region of the tool path based on the first coating thickness being greater than the second coating thickness, and assigning a second target force value based on the second coating thickness to the first region of the tool path (e.g., a first group of key points) located within the first zone and a second target force value less than the first force value based on the second coating thickness to the second region of the tool path (e.g., a second group of key points) located within the second zone, such that the polishing pad 121 strips more material from the thick coating in the first region when it is new and less material from the thin coating in the second region when it is worn.

[0147] In this manner, the controller 115 can generate a tool path executable by the robotic system, which includes a sequence of key points annotated with processing protocol parameters that define the position and orientation of the polishing head 120 and control the operation of the robotic system while processing the part, to achieve a target result of a selected processing protocol for the part.

[0148] 8.11 Tool Path Visualization and Verification In one variation, the controller 115 further projects the tool path onto a part model (e.g., a 3D model of the part), presents the annotated 3D model to an operator, animates the tool path projected onto the annotated 3D model, prompts the operator to confirm (or modify) the tool path, and, once confirmed by the operator, executes the tool path as described below.

[0149] In this manner, the robotic system may capture a series of images, depth maps, etc. during a scan cycle, assemble the series of images into a three-dimensional model of the part, generate a toolpath based on the three-dimensional model of the part, render the three-dimensional model, project the toolpath onto the three-dimensional model, present the three-dimensional model including the projected toolpath to an operator, and prompt the operator to confirm the projected toolpath. In response to the operator's confirmation of the toolpath, the robotic system may execute the toolpath during a subsequent machining cycle.

[0150] 9. Execution of machining cycles and tool paths In one implementation shown in Figures 3-5, the robotic system autonomously executes the tool path by accessing an operator profile to obtain a nominal travel speed, accessing a part machining profile to obtain a target force on the part, nominally moving the polishing head 120 to a travel position and rotational direction defined by a first keypoint, detecting an applied force value at the polishing head 120 via a force sensor 116 configured to detect a force between the polishing pad 121 and the part surface, and selectively deviating from the tool path at the first keypoint by adjusting the position of the polishing head 120 at the keypoint in a direction parallel to a normal vector extending perpendicular to the surface from the keypoint to achieve the target force on the part. The robotic system continues executing the tool path by interpolating a tool path between the first and second keypoints by interpolating a set of movement positions and rotational orientations between the first and second keypoints, interpolating a normal vector (target force) between the first and second keypoints, and selectively deviating from the interpolated tool path by adjusting the position of the polishing head 120 (in a direction parallel to the normal vector) to achieve the target force on the part.

[0151] The controller 115 may repeat the above process for each key point in the series of key points to complete the tool path.

[0152] 9.1 Polishing head fixed to the end effector In another embodiment, when the polishing head 120 is fixed to the end effector 112, the robotic system executes the nominal tool path by accessing the operator profile to obtain the nominal movement speed, and moving (by moving the end effector 112) the polishing head 120 to a first key point defined by a first movement position and rotation direction, with the polishing pad 121 centered on the first key point and the axis of the polishing head 120 coaxially aligned with a vector extending normal to the surface at the key point stored in the tool path. The robotic system reads the force applied to the polishing head 120 and calculates whether the difference between the applied force and the target force is greater than a threshold difference, and accordingly, the robotic manipulator 110 translates the polishing head 120 toward or away from the first key point along the normal vector to reduce the difference between the applied force and the target force below the threshold difference, thereby continuing the execution of the tool path to achieve the target force at the first key point. The robotic system interpolates the tool path, translational position, rotational direction, vector normal to the surface, and target force between the first and second keypoints.

[0153] The robotic system implements closed-loop control to reduce the difference between the applied force of the polishing head 120 on the part surface and the interpolated target force to less than a threshold difference along the interpolated path segment and adjust the applied force by translating the polishing head 120 along the interpolated normal vector toward or away from the part surface, thereby deviating from the tool path, while simultaneously moving the polishing head 120 along the interpolated path between the first keypoint and the second keypoint at a nominal movement speed.

[0154] The robotic system can repeat the above operations for all remaining key points along the tool path.

[0155] For example, the robotic system moves the polishing head 120 along a first sequence of positions and orientations relative to the first part defined by a first set of key points, reads a first sequence of force values ​​from a force sensor 116 in the robotic system, interpolates a first set of target force values ​​along a first tool path based on the target force values ​​stored in the first set of key points, and selectively adjusts the position of the end effector 112 relative to the first part to maintain the first sequence of force values ​​within a threshold difference of the first set of target force values.

[0156] In another embodiment, the controller 115 defines an orientation of the polishing head 120 relative to the first part for each keypoint in the set of first keypoints by defining a first vector perpendicular to a surface contour of the first part model at a first location on the first part defined by the first keypoint, navigates the end effector 112 with the robotic system to the first location on the first part, and executes the tool path by orienting the polishing head 120 such that the axis of the polishing head 120 is coaxial with the first vector.

[0157] 9.2 Polishing head mounted on a linear actuator In one embodiment shown in Fig. 4, the robot manipulator 110 includes a linear actuator 118 configured to extend and retract the polishing head 120 from the end effector 112 in a direction parallel to the axis of the polishing head 120 and configured to detect a force value. The robot manipulator 110 accesses an operator profile to obtain a nominal movement speed, nominally moves the polishing head 120 to a first key point defined by the movement positions and rotation directions defined by the first key point, interpolates a set of movement positions and rotation directions between the first key point and a second key point in the tool path, interpolates a normal vector (target force) between the first key point and the second key point, detects a force value applied by the linear actuator 118 via the load cell, and selectively extends and retracts the linear actuator 118 to achieve the target force on the part, thereby moving the end effector 112 without deviating from the tool path.

[0158] In one embodiment, the robotic manipulator 110 includes a force sensor 116 coupled to the polishing head 120 and configured to output a signal representative of a force value normal to the polishing head 120 on a localized area of ​​the component in contact with the polishing head 120, and a linear actuator 118 configured to extend and retract the polishing head 120 on the end effector 112 parallel to the axis of the polishing head 120.

[0159] The robotic manipulator 110 is configured to selectively extend or retract the linear actuator 118 based on the force readings from the force sensor 116 to deviate from the tool path to match the force to a target polishing force for the part.

[0160] In one variation of this embodiment, the linear actuator 118 is a pneumatic cylinder having a pressure sensor configured to detect air pressure within the cylinder. The robotic system implements a pressure model that converts the detected pressure into an applied force value and calculates the difference between a target force value and the applied force value. If the difference between the applied force and the target force value is greater than a threshold, the robotic system adjusts the air pressure within the pneumatic cylinder to reduce the difference between the applied force and the target force value below the threshold, thereby achieving the target force on the part.

[0161] In one embodiment, the robotic system includes a pneumatic linear actuator 118 configured to extend and retract the polishing head 120 relative to the end effector 112 parallel to an axis of the polishing head 120. The robotic system includes a pressure sensor coupled to the pneumatic linear actuator 118 and configured to output a signal representative of the pressure in a pneumatic cylinder, and a robotic manipulator 110 configured to read a series of pressure values ​​in the pneumatic linear actuator 118 from the pressure sensor and adjust the pressure in the pneumatic linear actuator 118 to maintain a target force of the polishing head 120 on the component.

[0162] In another variation of this embodiment, the linear actuator 118 is an electromechanical linear actuator 118 configured to detect extension and contraction resistance in an extension member of the linear actuator 118. The robotic system implements a resistance model that converts the detected resistance into an applied force value and calculates the difference between a target force value and the detected force value.

[0163] If the calculated difference is greater than the threshold difference between the applied and target force values, the robotic system adjusts the extension resistance of the electromechanical linear actuator 118 to reduce the difference between the applied and target forces to less than the threshold difference, thereby achieving the target force on the part. In another example, the robotic system includes an electromechanical linear actuator 118 configured to extend or retract a polishing head 120 on the end effector 112 parallel to an axis of the polishing head 120 and detect resistance to extension or retraction. During processing, the robotic manipulator 110 is configured to adjust the extension or retraction of the electromechanical linear actuator 118 based on the detected resistance to extension or retraction to maintain a target force of the polishing head 120 on the part.

[0164] 9.3 Polishing Pad Wear Model 3, the controller 115 calculates the pad wear 127 at the first key point and adjusts the target force based on the pad wear 127 of the polishing pad 121 by obtaining the length of the tool path traveled before arriving at the first key point, accessing the polishing pad wear model to derive the pad wear 127 of the polishing pad 121 at the first key point based on the grit size 122 of the polishing pad 121, and increasing the target force based on the pad wear 127 in block S156.

[0165] For example, the controller 115 executes block S156 to access a polishing pad wear model that defines pad wear 127 based on the grit size 122 of the polishing pad 121. The robotic manipulator 110 tracks the length of a tool path traveled by the polishing pad 121 attached to the polishing head 120 and increases the target force value in proportion to the tool path length based on the polishing pad wear model.

[0166] In one variation of this example, the robotic system includes a position sensor configured to detect the rotational speed of the polishing pad 121. The controller 115 accesses the grit 122 of the polishing pad 121, and the robotic system is configured to apply a pad wear model to calculate a current material removal rate of the polishing pad 121 based on the pad wear 127, the grit 122 of the polishing pad 121, the rotational speed of the polishing head 120, the length of the tool path traversed, and the target polishing force, and to calculate the difference between the current material removal rate and the target material removal rate. If the difference between the current material removal rate and the target material removal rate exceeds a threshold, the robotic system adjusts the polishing force applied to reduce the difference below the threshold to achieve the target material removal rate.

[0167] In this manner, the robotic system can autonomously move the polishing head 120 along a tool path, sense the force applied by the polishing head 120 to the part surface, and selectively deviate from the tool path to match the applied force to a target force defined in the part machining profile, thereby achieving the target force across the part surface with high precision. Thus, the robotic system can implement a low precision tool path and achieve consistent application of the target force across a target zone on the part surface with high precision and repeatability across multiple parts.

[0168] 10. Post-processing and projection of results In one embodiment, the controller 115 obtains a record of the position and orientation of the polishing head 120 during a processing cycle and generates a process history for the processing cycle that defines the machined segments of the part model that were processed by the robotic system during the processing cycle and the unmachined segments of the part model that were not processed by the robotic system during the processing cycle.

[0169] The controller 115 annotates the 3D model by projecting the process history onto the 3D model and presents the annotated 3D model to the operator at the end of the processing cycle.

[0170] An operator can review the annotated 3D model to identify areas of the part that need to be reprocessed, either manually or with a different polishing head 120 or processing protocol. The operator can refer to the annotated 3D model to determine the next action to take on the part.

[0171] For example, the controller 115 can present an annotated three-dimensional model of an automobile bonnet having a ram air scoop, showing a processed zone that includes the area of ​​the bonnet within a threshold distance from the edge of the bonnet excluding the ram air opening of the ram air scoop, and showing an unprocessed zone that includes the ram air opening of the bonnet and the area extending to a threshold distance from the edge of the bonnet.

[0172] In another embodiment, the robotic system (i.e., controller 115) can present an annotated three-dimensional model representing the part areas to be machined but remaining unmachined while a machining cycle is in progress. An operator can review the annotated three-dimensional model and, if necessary, adjust the robotic system for the upcoming machining cycle.

[0173] In one example, the controller 115 accesses the three-dimensional model, renders the three-dimensional model during a scan cycle prior to the first machining cycle, projects the toolpath onto the three-dimensional model, presents the three-dimensional model to an operator, and prompts the operator to confirm the toolpath. The controller 115 then accesses, after the first machining cycle, a record of the positions of the polishing head 120 during execution of the first toolpath, identifies a set of machined areas of the part based on the record of the positions of the polishing head 120, identifies unmachined areas within the set of areas of the toolpath based on differences between the toolpath and the set of machined areas, annotates the three-dimensional model with the set of machined areas and the unmachined areas of the toolpath, and presents the three-dimensional model annotated with the set of machined areas and the unmachined areas to the operator.

[0174] Thus, at the end of the process, the robotic system separates the machined, unmachined and to-be-machined parts and outputs a final analysis in the form of a visual 3D model of the part, which can be presented to the operator for review. The operator can then see an accurate record of what has been machined, minimizing the need for manual finishing of the part.

[0175] The systems and methods described herein may be implemented at least in part as a machine configured to receive a computer readable medium storing computer readable instructions. These instructions are executed by a computer executable component integrated with an application, applet, host, server, network, website, communication service, communication interface, hardware / firmware / software element of a user computer or mobile device, wristband, smartphone, or any suitable combination thereof. Other systems and methods of the embodiments may be implemented at least in part as a machine configured to receive a computer readable medium storing computer readable instructions. The instructions are executed by a computer executable component integrated with an apparatus or network of the above-mentioned types. The computer readable medium may be stored in any suitable computer readable medium, such as RAM, ROM, flash memory, EEPROM, optical device (CD or DVD), hard drive, floppy drive, or any suitable device. The computer executable component may be a processor, although any suitable dedicated hardware device may (alternatively or additionally) execute the instructions.

[0176] As those skilled in the art will recognize from the foregoing detailed description and drawings, and the appended claims, modifications and variations can be made to the embodiments of the invention without departing from the scope of the invention, which is defined in the appended claims.

Claims

1. 1. A method comprising: Receiving a first part within a work zone; During the first scan cycle, autonomously operating a robotic system to move an optical sensor across the first part; capturing with an optical sensor a first set of optical images depicting the first part; assembling the first set of optical images into a first part model representative of the first part; accessing a tool characteristic of a polishing head attached to the robotic system; characterizing a surface contour within the first part model; detecting a first region in the first part model exhibiting a first surface contour accessible to the polishing head based on the set of tool characteristics; detecting a second region in the first part model exhibiting a second surface contour that is inaccessible to the polishing head based on the set of tool characteristics; defining a first set of key points on a first region in the first part model; For each keypoint in the first set of keypoints: defining a first position of the polishing head relative to the first component; defining a first orientation of the polishing head relative to the first component; defining a first target force value for the polishing head on the first component; and assembling the first set of key points into a first tool path for execution by the robotic system.

2. 10. The method of claim 1, wherein during a first processing cycle, the robotic system further comprises: moving the polishing head through a first sequence of positions and orientations relative to the first part, the first sequence being defined by the first set of key points; reading a first sequence of force values ​​from a force sensor of the robotic system; Interpolating a first set of target force values ​​along the first tool path based on the target force values ​​stored at the first keypoints; and selectively adjusting a position of the end effector relative to the first part to maintain the first sequence of force values ​​within a threshold difference of the first set of target force values.

3. 3. The method of claim 2, For each key point in the first set of key points, defining an orientation of the polishing head relative to the first part includes defining a first vector perpendicular to a surface contour of the first part model at a first location on the first part defined by the first key point; Further comprising the step of executing the tool path with the robotic system, the step comprising: moving the end effector to a first position on the first part; and orienting the polishing head such that an axis of the polishing head is coaxial with the first vector.

4. 3. The method of claim 2, the step of accessing a set of tool characteristics for the polishing head includes accessing a first grit specification for a first polishing pad to be applied to the polishing head; moreover, accessing a first material removal depth range of the first component; accessing a first tool travel speed setting; The step of defining a first set of target force values ​​for the polishing head on the first component includes defining the first set of target force values, the first set of target force values ​​comprising: proportional to the material removal depth range; proportional to the first tool travel speed setting; and is inversely proportional to said first granularity specification; The method, wherein moving the polishing head through a sequence of positions and orientations defined by the first set of key points comprises moving the polishing head through a first sequence of positions and orientations in accordance with the first tool movement speed setting.

5. The method of claim 4 further comprising: accessing a second granularity specification for a polishing pad applied to the polishing head; Accessing a second finishing profile, the second finishing profile comprising: a second tool movement speed setting; defining a second abrasive force; and defining a second speed of movement along the tool path based on the second tool speed setting and the second granularity specification; defining a second set of preset force values ​​based on the second abrasive force setting and the second grain size specification; In the robot system, moving the polishing head relative to a first part through a sequence of positions and orientations defined by the set of key points at the second movement speed; reading a second sequence of force values ​​from a force sensor of the robotic system; interpolating a second set of target force values ​​along the tool path based on the second set of preset force values; and selectively adjusting a position of the end effector relative to the part to maintain the sequence of force values ​​within a threshold difference of the second set of preset force values.

6. 5. The method of claim 4, further comprising accessing a first hardness of a first coating on the first component; The method, wherein defining a first set of target force values ​​for the polishing head on the first part further comprises defining the first set of target force values ​​proportional to the first hardness.

7. 10. The method of claim 1 , Further, accessing a part peel profile assigned to the first part, the part peel profile comprising: a first material removal depth; and and a first grit specification for a first polishing pad to be applied to the polishing head; The step of defining a first set of target force values ​​for the polishing head on the first component includes defining the first set of target force values, the first target force values ​​being: proportional to the first material removal depth; and inversely proportional to said first granularity specification; moreover, receiving a second part within the work zone; Accessing a paint preparation profile assigned to the second part, the paint preparation profile comprising: a second material removal depth; and specifying a second grit specification for a second polishing pad applied to the polishing head, the second grit specification being smaller than the first grit specification; During the second scan cycle, autonomously operating the robotic system to move the optical sensor across the second part; capturing with the optical sensor a second set of optical images depicting the second part; assembling the second set of optical images into a second part model representative of the second part; characterizing a surface contour in the second part model; detecting a third region in the second part model that exhibits a third surface contour accessible to the polishing head based on the set of tool characteristics; detecting a fourth region in the second part model exhibiting a fourth surface contour that is inaccessible to the polishing head based on the set of tool characteristics; defining a second set of key points on a third region in the second part model; For each keypoint in the second set of keypoints, defining a second position of the polishing head relative to the second component; defining a second orientation of the polishing head relative to the second component; defining a second target force value for the polishing head on the second component, the second target force value comprising: proportional to the second material removal depth; and inversely proportional to said second granularity specification; and assembling the second set of key points into a second tool path for execution by the robotic system.

8. 10. The method of claim 1 , During a setup period preceding the first scan period, further positioning an optical sensor over a work zone at a first distance from the first part; capturing a first optical image of the work zone at a first resolution depicting the first part; detecting a first shape of the first part within the work zone based on a first set of features extracted from the first optical image; and defining a scan path based on a first shape of a first part within the work zone at a second distance from the first part that is less than the first distance; autonomously operating the robotic system during the first scanning period to capture the first set of optical images, autonomously performing a scan path such that the optical sensor moves over the first part at a second distance from the first part; capturing a first optical image depicting the first part at a second resolution greater than the first resolution.

9. 10. The method of claim 1 , detecting a second area in the first part model that is inaccessible to the polishing head; detecting a set of edges on the first part model; defining a second region on the first part model that is bounded by the series of edges as an exclusion region in the first part model; 22. The method of claim 21, wherein defining a first set of key points on a first region in the first part model comprises defining the first set of key points on the first region of the first part model outside the exclusion zone.

10. 10. The method of claim 9, Detecting a set of edges on the first part model comprises: detecting masking tape on a surface contour of the first part; detecting a first edge of a masking tape that separates a target zone of the first region from an exclusion zone of the second region; the step of defining the second region on the first part model comprises defining the second region on the first part model bounded by a first edge of the masking tape.

11. 10. The method of claim 9, detecting a first region in the first part includes detecting a region of a first color on the part in the part model; further comprising defining the first region on the first part model as a target zone within the first part model; detecting the second region in the first part model comprises detecting a region of a second color in the part model, the first color being different from the second color; 20. The method of claim 19, wherein defining a first set of key points on a first region in the first part model comprises defining the first set of key points on the first region of the first part model within the target zone.

12. 10. The method of claim 1 , the step of accessing a set of tool characteristics includes accessing a size of the polishing pad; detecting a second area exhibiting a second surface contour inaccessible to the polishing head; detecting a second region defining a concave contour; detecting a radius of curvature of the concave contour; calculating a ratio of a size of the polishing pad to a radius of curvature of the concave contour; and characterizing the second region as an exclusion zone if the ratio exceeds a threshold.

13. 13. The method of claim 12, the step of accessing a set of tool characteristics includes accessing a compliance coefficient of a compliant backing; The method further comprising calculating the threshold value based on the compliance factor.

14. 2. The method of claim 1, wherein the step of defining a first set of key points on a first region in the first part model comprises: Obtaining a bustrophedonic raster pattern, the bustrophedonic raster pattern comprising: a first sequence of raster legs in a first orientation and offset by a pitch distance less than a width of the polishing head; defining a second sequence of raster legs in a second orientation connecting the first sequence of raster legs; projecting the bustrophedonic raster pattern onto a first region within the first part model; defining a first set of keypoints along the bastrophedonic raster pattern at a local density proportional to a local radius of a surface contour in a first region in the first part model.

15. 15. The method of claim 14, the step of obtaining the bustrophedonic raster pattern includes obtaining the bustrophedonic raster pattern from a first operator profile associated with a first operator operating the robotic system during the first scan cycle; moreover, receiving a second part within the work zone; accessing a second operator profile associated with a second operator; During the second scan cycle, autonomously operating the robotic system to move the optical sensor across the second part; capturing with the optical sensor a second set of optical images depicting the second part; assembling the second set of optical images into a second part model representative of the second part; characterizing a surface contour in the second part model; detecting a third region in the second part model that exhibits a third surface contour accessible to the polishing head based on the set of tool characteristics; detecting a fourth region in the second part model exhibiting a fourth surface contour that is inaccessible to the polishing head based on the set of tool characteristics; Obtaining a vertical double-pass bustrophedonic raster pattern from the second operator profile, the vertical double-pass bustrophedonic raster pattern comprising: a third sequence of raster legs in a third orientation and offset by a pitch distance less than a width of the polishing head; a fourth sequence in a fourth orientation connecting the third sequence of raster legs; a fifth sequence of raster legs in a fifth orientation perpendicular to the third orientation and offset by a pitch distance less than a width of the polishing head; defining a sixth sequence of raster legs in a sixth orientation connecting the fifth sequence of raster legs; projecting the vertical double-pass bustrophedonic raster pattern onto a third region within the second part model; For each keypoint in the second set of keypoints, defining a second position of the polishing head relative to the second component; defining a second orientation of the polishing head relative to the second component; defining a second target force value for the polishing head on the second component; and assembling the second set of keypoints into a second tool path that follows the perpendicular double-pass bastrophedonic raster pattern with a local density proportional to a local radius of a surface contour in a third region in the second part model for execution by the robotic system.

16. 10. The method of claim 1 , characterizing a surface contour in the first part model includes detecting a local radius of curvature of a surface contour in a discrete region of the part model; 11. The method of claim 10, wherein defining a first set of keypoints on a first region in the first part model comprises projecting keypoints onto the part model at a density inversely proportional to the local radius of curvature.

17. 10. The method of claim 1 , characterizing a surface contour in the first part model includes detecting a local radius of curvature of the surface contour at a first keypoint; The method of claim 1, wherein defining the target force comprises defining a target force at the first keypoint proportional to a local radius of curvature at the first keypoint.

18. 10. The method of claim 1 , capturing a first set of optical images depicting the first portion includes capturing a first set of color images and a first set of depth images; assembling the first set of optical images into the first part model includes assembling the first set of color images and the first set of depth images into a color three-dimensional model of the first part; Additionally, during the first scan cycle: rendering the color three-dimensional model; projecting a tool path onto the color three-dimensional model; presenting a color three-dimensional model onto which the tool path is projected to an operator; and prompting an operator to confirm the projected tool path; The method further includes executing, at the robotic system, the tool path during a machining cycle subsequent to the first scan cycle, in response to confirmation of the tool path by an operator.

19. 20. The method of claim 19 further comprising: detecting a set of edges in the color three-dimensional model; defining a second region within the set of edges on the first part model as an exclusion zone in the first part model; annotating the color three-dimensional model with a virtual representation of the exclusion zone; presenting to an operator a color three-dimensional model annotated with a virtual representation of the exclusion zone; and prompting an operator to identify an exclusion zone on the color three-dimensional model.

20. 1. A method comprising: accessing a part model representing the part; accessing a size of the polishing head; characterizing a surface contour in the part model by detecting a local contour radius of the surface contour; detecting a first area within a part model that indicates a first surface contour accessible to the polishing head based on a size of the polishing head; detecting a second region within the part model exhibiting a second surface contour inaccessible to the polishing head based on a size of the polishing head; Generating a tool path, comprising: defining a set of position and orientation pairs located in a first region of the part model; calculating a contact area of ​​the polishing head against the part at the set of positions and orientations based on a ratio of a size of the polishing head to a local contour radius at the set of positions and orientations; and annotating a target force to the set of position and orientation pairs based on the contact area.

21. 1. A system comprising: a robotic system disposed adjacent to the work zone, the robotic system including an end effector defining a polishing head and an optical sensor; During the scan period, autonomously moving the optical sensor across a part located within the work zone; Capture a set of optical images; During the processing period, moving the polishing head along a tool path; monitoring a force value of the polishing head against the component; a robotic system configured to deviate from the tool path to match the force value to a target polishing force for the part; a controller, during the scanning period, receiving said set of optical images; assembling the set of optical images into a part model representative of the part; accessing a set of tool characteristics for the polishing head provided to the robotic system; generating a tool path defining a series of positions along the part model; a controller that defines a target abrasive force based on a set of tool characteristics.

22. 22. The system of claim 21, the robotic system further comprises a force sensor coupled to the polishing head and configured to output a signal representative of a force value normal to the polishing head on a localized area of ​​the component in contact with the polishing head; The system wherein the controller defines a target polishing force that is perpendicular to the localized region represented by the part model and inversely proportional to a radius of the localized region represented by the part model.

23. 22. The system of claim 21, The polishing head has a compliant backing, configured to position and support the polishing pad; the polishing pad is configured to elastically deform in response to application to the component; a compliant backing characterized by a compliance coefficient; the robotic system further comprises a force sensor coupled to the polishing head and configured to output a signal representative of a force value normal to the polishing head on a localized area of ​​the component in contact with the polishing head; The controller defines a target polishing force normal to a local region of the part model and proportional to the compliance coefficient.

24. 22. The system of claim 21, The robot system further comprises: a force sensor coupled to the polishing head and configured to output a signal representative of a force value normal to the polishing head on a localized area of ​​the component in contact with the polishing head; a pneumatic linear actuator configured to extend and retract the polishing head relative to the end effector parallel to an axis of the polishing head; The robotic system is configured to selectively extend or retract the linear actuator based on force values ​​read from the force sensor to deviate from the tool path to match the force values ​​to a target polishing force for the part.

25. 25. The system of claim 24, The linear actuator is an electromechanical linear actuator, telescopically extending the polishing head relative to the end effector parallel to an axis of the polishing head; an electromechanical linear actuator configured to detect stretch resistance; The system, wherein during the processing, the robotic system is configured to adjust extension and retraction of the electromechanical linear actuator based on the detected extension and retraction resistance to maintain a target force of the polishing head on the part.

26. 25. The system of claim 24, the linear actuator comprises a pneumatic linear actuator configured to extend and retract the polishing head relative to the end effector parallel to an axis of the polishing head; and a pressure sensor coupled to the pneumatic linear actuator and configured to output a signal representative of a pressure within the pneumatic cylinder; The robot system includes: reading a series of pressure values ​​at the pneumatic linear actuator from the pressure sensor; The system is configured to adjust pressure in the pneumatic linear actuator to maintain a target force on the polishing head.

27. 22. The system of claim 21, the robotic system includes a torque sensor coupled to the polishing head and configured to output a signal representative of a torque value between a polishing pad on the polishing head and a localized area of ​​a component in contact with the polishing pad; the controller defines a target polishing torque across the part that is proportional to a radius of a local surface contour represented by the part model; The system, wherein the robotic system is configured to vary a polishing pad speed of the polishing head while moving the polishing head along the tool path to match a torque value between the polishing pad and a localized region of a component to a target polishing torque.

28. 22. The system of claim 21, wherein the robotic system comprises: a multi-link robotic arm configured to manipulate the end effector via six degrees of freedom proximate a part located in the work zone; a linear conveyor configured to translate the multi-link robotic arm a length of the work zone.

29. 1. A method comprising: accessing a part model representing a surface contour of a part loaded into a proximal work zone of the robotic system; accessing a set of tool characteristics of a polishing head operated by the robotic system, the set of tool characteristics including a shape of the polishing head and a compliance of a backing; obtaining a tool path pattern; obtaining a set of nominal processing parameters; projecting the toolpath pattern onto the part model to define a toolpath; defining a set of regions along the tool path; For each region of the set of tool path regions: detecting a local radius of curvature of a surface contour represented by a part model proximate to the area of ​​the tool path; calculating a contact area between the polishing head and the component proximate the region based on the shape, compliance of the backing, and the local radius of curvature; defining a target performance value in a set of target performance values ​​for the polishing head on the part based on the contact area and the set of nominal processing parameters; During a processing cycle, the robot system moving the polishing head along the tool path; reading a sequence of performance values ​​from a sensor of the robotic system; and deviating from the tool path to maintain the sequence of performance values ​​within a threshold difference of the set of target performance values.

30. 30. The method of claim 29, obtaining the nominal processing parameter set includes obtaining a nominal movement speed of the polishing head; Defining a target performance value for each region of the tool path includes defining a target force value for the polishing head against the part for each region of the tool path, the target force values ​​being: proportional to the contact area between the polishing head and the area proximate the region; and proportional to the nominal travel speed, reading a sequence of performance values ​​from a sensor in the robotic system includes reading a sequence of force values ​​from a sensor including a force sensor coupled to a polishing head; The method, wherein deviating from the tool path comprises deviating from the tool path to maintain the sequence of force values ​​within a threshold difference of a set of target force values.

31. 31. The method of claim 30, further comprising accessing a maximum applied pressure for the part; The step of defining a target force value for the polishing head against the part for each region of the tool path comprises: calculating a maximum force for that region based on the maximum applied pressure and a contact area between the polishing head and the component proximate that region; and defining a target force value for the polishing head on the part that is less than the maximum force.

32. 32. The method of claim 31, wherein the step of calculating the contact area for each region of the tool path comprises, for each region of the tool path: calculating an intersection of the shape of the polishing head projected onto the area of ​​the part model with the part model; and calculating a contact area of ​​the region based on the intersection.

33. 30. The method of claim 29, obtaining the nominal processing parameter set includes obtaining a nominal polishing head applied force; defining a target performance value for each region of the tool path includes assigning a target performance value for each region of the tool path that includes the nominal polishing head applied force; Further comprising the step of assigning a target travel speed of the polishing head relative to the part for each region of the tool path, the target travel speed comprising: is inversely proportional to the contact area between the polishing head and the part proximate the region; and proportional to the nominal polishing head applied force; moving the polishing head along the tool path includes moving the polishing head along the tool path according to a target movement speed of the polishing head assigned to a region of the tool path; reading a sequence of performance values ​​from a sensor in the robotic system includes reading a sequence of force values ​​from a sensor including a force sensor coupled to a polishing head; The method, wherein deviating from the tool path comprises deviating from the tool path to maintain the sequence of force values ​​within a threshold difference of a set of target force values.

34. 30. The method of claim 29, accessing a set of tool characteristics for the polishing head includes accessing a set of tool characteristics including a polishing pad grit specification; obtaining the set of nominal processing parameters includes obtaining a minimum material removal depth and a maximum tool path execution time for the part; The step of defining a target performance value for each region of the tool path comprises: assigning a target travel speed to the region that is inversely proportional to the maximum tool path execution time; and assigning a target force value to the region, the target force value being: proportional to the contact area of ​​the polishing head with the component proximate the region; inversely proportional to the polishing pad grit size specification, proportional to the minimum material removal depth; and Proportional to the target moving speed, moving the polishing head along the tool path includes moving the polishing head along the tool path according to a target movement speed of the polishing head assigned to a region of the tool path; reading a sequence of performance values ​​from a sensor in the robotic system includes reading a sequence of force values ​​from a sensor including a force sensor coupled to the polishing head; The method, wherein deviating from the tool path comprises deviating from the tool path to maintain the sequence of force values ​​within a threshold difference of a set of target force values.

35. 30. The method of claim 29, further comprising accessing a polishing pad wear model that defines wear of the polishing pad based on an abrasive grain size of the polishing pad; The step of defining a target performance value for each region of the tool path comprises: tracking a tool path traveled by a polishing pad attached to the polishing head; and assigning a target force value proportional to the length of the tool path traversed based on the polishing pad wear model.

36. 36. The method of claim 35, moreover, accessing a grain size of a polishing pad; detecting a rotational speed of the polishing pad; The step of defining a target performance value for each region of the tool path comprises: calculating a current material removal rate of the polishing pad based on the polishing pad wear model, the polishing pad grit size, the polishing head rotational speed, and the tool path length traveled; calculating a difference between a current material removal rate and a target material removal rate; and if a difference between the current material removal rate and the target material removal rate exceeds a threshold, assigning a target force value to reduce the difference below the threshold in order to achieve the target material removal rate.

37. 30. The method of claim 29, defining a target performance value for each region of the tool path; assigning target performance values ​​to regions of the tool path within the first zone, the target performance values ​​including a first target force value based on the first coating thickness; and assigning a target performance value for a second region of the first tool path within the second zone based on the second coating thickness, the target performance value including a second target force value less than the first force value; reading a sequence of performance values ​​from a sensor in the robotic system includes reading a sequence of force values ​​from a sensor including a force sensor coupled to a polishing head; The method, wherein deviating from the tool path comprises deviating from the tool path to maintain the sequence of force values ​​within a threshold difference of a set of target force values.

38. 38. The method of claim 37, further comprising defining a machining order for the set of tool path regions, the first region being before the second region in the machining order based on the first coating thickness being greater than the second coating thickness.

39. 30. The method of claim 29, accessing the part model includes accessing a part model including a color three-dimensional model; Furthermore, during a scan cycle prior to said processing cycle, rendering the color three-dimensional model; projecting a tool path onto the color three-dimensional model; presenting the color three-dimensional model to an operator; and prompting an operator to confirm the tool path; Furthermore, after the processing cycle, accessing a record of the position of the polishing head during execution of the tool path; identifying a set of machined areas of the component based on the record of polishing head positions; identifying unmachined areas in the set of tool path regions based on differences between the tool path and the set of machined areas; annotating the color three-dimensional model with a series of machined and unmachined regions of a tool path; and presenting to an operator a color three-dimensional model annotated with the processed and unprocessed areas.

40. 1. A method comprising: accessing a part model representing a surface contour of a part loaded into a work zone proximate to the robotic system; accessing a shape of a polishing head manipulated by the robotic system; obtaining a tool path pattern; projecting the toolpath pattern onto the part model to define a toolpath; defining a set of regions along the tool path; For each region of the set of tool path regions: detecting a local radius of curvature of a surface contour represented by a part model proximate to the area of ​​the tool path; calculating a contact area between the polishing head and the component proximate the region based on the local radius of curvature; defining a target force value in a set of target force values ​​for the polishing head against the region of the component based on the contact area; During a processing cycle, the robot system moving the polishing head along the tool path; reading a sequence of force values ​​from a force sensor coupled to the polishing head; and deviating from the tool path to maintain the sequence of force values ​​within a threshold difference of a sequence of target force values.

41. In the system, 1. A robot system comprising: Located adjacent to the work zone, an end effector defining a polishing head and an optical sensor, the polishing head having a compliant backing; configured to position and support the polishing pad; configured to elastically deform in response to application of the polishing pad to a component disposed within the work zone; a compliant backing characterized by a compliance coefficient; a force sensor coupled to the polishing head and configured to output a signal representative of a force value normal to the polishing head on a localized area of ​​the component in contact with the polishing head; A controller, accessing a part model representing the part; accessing a set of tool characteristics for the polishing head provided to the robotic system; generating a tool path defining a series of positions of the end effector along the part model; a controller that defines a set of target polishing forces that are positioned normal to a local region of the part model and along a tool path based on a set of tool characteristics and proportional to the compliance coefficients; The robot system includes: Sweeping an end effector along the tool path; The system is configured to apply the polishing head to a part according to the target polishing force and a signal output from the force sensor.

42. 42. The system of claim 41, wherein the controller further comprises: Access a set of optical images, assembling the set of optical images into a part model representative of the part; accessing the set of tool characteristics including dimensions of the polishing head, a shape of the polishing pad, and the compliance factor; detecting an area within a part model exhibiting a surface contour accessible to the polishing head based on the set of tool characteristics; The method is configured to assign a set of target abrasive forces to the region.

43. 42. The system of claim 41, The robot system includes: During the scan period, Autonomously move optical sensors across the part, Capture a set of optical images; During the processing period, moving the polishing head along the tool path; monitoring a force value applied by the polishing head to the component via a force sensor; configured to deviate from the tool path to maintain the force value within a threshold difference from a set of target polishing forces; The controller further comprises: Access a set of optical images, The method is configured to assemble the set of optical images into a part model representative of the part.

44. 42. The system of claim 41, wherein the controller defines a set of target abrasive forces that are normal to and inversely proportional to a radius of the localized region represented in the part model.

45. 42. The system of claim 41, the robotic system further comprises a pneumatic linear actuator configured to extend and retract the polishing head relative to the end effector parallel to an axis of the polishing head; The system is configured such that the robotic system selectively extends and retracts the polishing head via the linear actuator to deviate from the tool path in a direction normal to a particular surface of the part predicted by a particular local region of the part model in order to reduce a difference between a force value read from the force sensor and a particular target polishing force within the set of target polishing forces assigned to the particular local region of the part model.

46. 46. ​​The system of claim 45, The robot system includes: triggering the linear actuator to extend the polishing head toward a particular surface of the component in response to the force value output by the force sensor falling below a particular polishing target force; and configured to trigger a linear actuator to retract the polishing head from a particular surface of the part in response to the force value output by the force sensor exceeding a particular target polishing force.

47. 42. The system of claim 41, the robotic system includes a torque sensor coupled to the polishing head and configured to output signals representative of a range of torque values ​​between a polishing pad on the polishing head and a localized area of ​​a component in contact with the polishing pad; the controller defines a target polishing torque across the part that is proportional to a radius of a local surface contour represented by the part model; The system, wherein the robotic system is configured to vary a polishing pad speed of the polishing head while moving the polishing head along the tool path to match the series of torque values ​​to a target polishing torque.

48. 42. The system of claim 41, wherein the robotic system comprises: a multi-link robotic arm configured to manipulate the end effector via six degrees of freedom proximate a part located in the work zone; a linear conveyor configured to translate the multi-link robotic arm along a length of the work zone.

49. 1. A method comprising: accessing a part model representing a set of surface contours of a part loaded into a work zone proximate to the robotic system; Accessing a shape of a polishing head manipulated by the robotic system, the polishing head having a compliant backing, the compliant backing comprising: configured to position and support the polishing pad; configured to elastically deform in response to application of the polishing pad to a component disposed within the work zone; A step characterized by back compliance; obtaining a tool path pattern; obtaining a set of nominal processing parameters; projecting the toolpath pattern onto the part model to define a toolpath; defining a set of regions along the tool path; and defining, for each region in a series of regions along the tool path, one target abrasive force of a set of target abrasive forces.

50. 50. The method of claim 49, For each region of the set of tool path regions: detecting a local radius of curvature of one of a set of surface contours represented in a part model proximate to the area of ​​the tool path; calculating a contact area between the polishing head and the component proximate the region based on the local radius of curvature; defining a target polishing force of a set of target polishing forces for the polishing head on and perpendicular to the area of ​​the part, the target polishing force being proportional to the backing compliance based on the contact area; During a processing cycle, the robot system moving the polishing head along the tool path; reading a sequence of force values ​​from a force sensor coupled to the polishing head; and deviating from a tool path to maintain a series of force values ​​within a threshold difference of corresponding ones of a set of target polishing forces by adjusting a position of the polishing head in a direction parallel to a normal vector extending from a corresponding surface of the part model.

51. 50. The method of claim 49, further comprising accessing a maximum applied pressure for the part; The step of defining, for each region of the set of tool path regions, the target polishing force of the set of target polishing forces of the polishing head on the part includes, for each region: calculating a maximum force for that region based on the maximum applied pressure and a contact area between the polishing head and the component proximate that region; and defining a target abrasive force among the set of target abrasive forces that is less than the maximum force.

52. 52. The method of claim 51, wherein calculating the contact area for each region of the set of tool path regions comprises, for each region: calculating an intersection of the polishing head and a feature of the part by projecting the feature onto the part model and an area of ​​the part model; and calculating a contact area of ​​the region based on the intersection.

53. 50. The method of claim 49, obtaining the set of nominal processing parameters includes obtaining a minimum material removal depth and a maximum tool path execution time for the part; The step of defining the target abrasive forces of the set of target abrasive forces for each region of the set of tool path regions includes, for each region: assigning target travel speeds to the regions, the target travel speeds being inversely proportional to a maximum tool path execution time; assigning the target abrasive forces of the set of target abrasive forces to the regions, the target abrasive forces comprising: proportional to the contact area of ​​the polishing head with the component proximate the region; inversely proportional to the polishing pad grit size specification, is proportional to the compliance of the backing of the polishing head; proportional to the minimum material removal depth; and a step proportional to the target moving speed; The method, wherein moving the polishing head along a region of the tool path comprises moving the polishing head along the tool path according to a movement speed assigned to the region of the tool path.

54. 50. The method of claim 49, further comprising accessing a polishing pad wear model that defines wear of the polishing pad based on an abrasive grain size of the polishing pad; The step of defining the target abrasive forces of the set of target abrasive forces for each region of the set of tool path regions includes, for each region: tracking a tool path traveled by a polishing pad attached to the polishing head; and assigning a target polishing force based on the polishing pad wear model in proportion to the length of the tool path traveled.

55. 45. The method of claim 44, moreover, accessing the abrasive grit size; detecting a rotational speed of the polishing pad; The step of defining the target abrasive forces of the set of target abrasive forces for each region of the set of tool path regions includes, for each region: calculating a current material removal rate of the polishing pad based on the polishing pad wear model, the abrasive grain size, a rotational speed of the polishing head, and a length of a tool path traveled by the polishing head; calculating a difference between a current material removal rate and a target material removal rate; and if a difference between the current material removal rate and the target material removal rate exceeds a threshold, assigning a target polishing force to reduce the difference below the threshold in order to achieve the target material removal rate.

56. 51. The method of claim 50, defining a target abrasive force of the set of target abrasive forces for each region of the set of regions of the tool path, assigning a first target polishing force to a first region of the tool path within a first zone of the tool path based on a first coating thickness on the part within the first zone; assigning a second target abrasion force to a second region of the tool path within a second zone of the tool path, the second target abrasion force being less than the first target abrasion force based on a second coating thickness on the part within the second zone; reading a sequence of force values ​​from a force sensor in the robotic system includes reading a sequence of force values ​​from a force sensor coupled to the polishing head; The method, wherein deviating from the tool path comprises deviating from the tool path to maintain the sequence of force values ​​within a threshold difference of a set of target polishing forces.

57. 57. The method of claim 56, further comprising defining a machining order for the set of tool path regions, the first region being before the second region in the machining order based on the first coating thickness being greater than the second coating thickness.

58. 50. The method of claim 49, accessing the part model includes accessing a part model including a color three-dimensional model; Furthermore, during a scan cycle prior to said processing cycle, rendering the color three-dimensional model; projecting a tool path onto the color three-dimensional model; presenting the color three-dimensional model to an operator; and prompting an operator to confirm the tool path; Furthermore, after the processing cycle, accessing a record of the position of the polishing head during execution of the tool path; identifying a set of machined areas of the component based on the record of polishing head positions; identifying unmachined areas in the set of tool path regions based on differences between the tool path and the set of machined areas; annotating the color three-dimensional model with a series of machined and unmachined regions of a tool path; and presenting to an operator a color three-dimensional model annotated with the processed and unprocessed areas.

59. 1. A method comprising: accessing a part model representing a part located in a work zone proximate to the robotic system; Accessing a shape of a polishing head manipulated by the robotic system, the polishing head having a compliant backing, the compliant backing comprising: configured to position and support the polishing pad; configured to elastically deform in response to application of the polishing pad to a component disposed within the work zone; A step characterized by a backing compliance; accessing a tool characteristic of a polishing head attached to the end effector; generating a tool path defining a series of positions of the end effector along the part model; defining a set of target polishing forces defined normal to a local region of the part model and along a tool path based on a set of tool characteristics and a compliance characteristic; and accessing a signal output by a force sensor coupled to the polishing head and configured to output a signal representative of a sequence of force values ​​normal to the polishing head relative to a localized area of ​​the component in contact with the polishing head.

60. 60. The method of claim 59 further comprising: deviating from the tool path in a direction normal to a particular surface of the part predicted by a particular local region of the part model to reduce a difference between a sequence of force values ​​accessed from the force sensor and a particular target polishing force within the set of target polishing forces assigned to the particular local region of the part model by selectively extending and retracting the polishing head via a linear actuator; triggering a linear actuator to extend the polishing head toward a particular surface of the component in response to the force value output by the force sensor falling below a particular polishing force target; responsive to a force value output by the force sensor exceeding a particular target polishing force, triggering the linear actuator to retract the polishing head from a particular surface of the component.

61. 1. A method comprising: Receiving a first part within a work zone; During the first scan cycle, autonomously operating a robotic system to move an optical sensor across the first part; capturing with an optical sensor a first set of optical images depicting the first part; assembling the first set of optical images into a first part model representative of the first part; accessing a tool characteristic of a polishing head attached to the robotic system; characterizing a surface contour within the first part model; detecting a first region in the first part model exhibiting a first surface contour accessible to the polishing head based on the set of tool characteristics; detecting a second region in the first part model exhibiting a second surface contour that is inaccessible to the polishing head based on the set of tool characteristics; defining a first set of key points on a first region in the first part model; For each keypoint in the first set of keypoints: defining a first position of the polishing head relative to the first component; defining a first orientation of the polishing head relative to the first component; defining a first target force value for the polishing head on the first component; and assembling the first set of key points into a first tool path for execution by the robotic system.

62. 62. The method of claim 61, wherein during a first processing cycle, the robotic system further comprises: moving the polishing head through a first sequence of positions and orientations relative to the first part, the first sequence being defined by the first set of key points; reading a first sequence of force values ​​from a force sensor of the robotic system; Interpolating a first set of target force values ​​along the first tool path based on the target force values ​​stored at the first keypoints; and selectively adjusting a position of the end effector relative to the first part to maintain the first sequence of force values ​​within a threshold difference of the first set of target force values.

63. 63. The method of claim 62, For each key point in the first set of key points, defining an orientation of the polishing head relative to the first part includes defining a first vector perpendicular to a surface contour of the first part model at a first location on the first part defined by the first key point; Further, executing the tool path with the robotic system, moving the end effector to a first position on the first part; and orienting the polishing head such that an axis of the polishing head is coaxial with the first vector.

64. 63. The method of claim 62, the step of accessing a set of tool characteristics for the polishing head includes accessing a first grit specification for a first polishing pad to be applied to the polishing head; moreover, accessing a first material removal depth range of the first component; accessing a first tool travel speed setting; The step of defining a first set of target force values ​​for the polishing head on the first component includes defining a first set of target force values, the first set of target force values ​​comprising: proportional to the material removal depth range; proportional to the first tool travel speed setting; and is inversely proportional to said first granularity specification; The method, wherein moving the polishing head through a sequence of positions and orientations defined by the first set of key points comprises moving the polishing head through a first sequence of positions and orientations in accordance with the first tool movement speed setting.

65. 65. The method of claim 64 further comprising: accessing a second granularity specification for a polishing pad applied to the polishing head; Accessing a second finishing profile, the second finishing profile comprising: a second tool movement speed setting; defining a second abrasive force; and defining a second speed of movement along the tool path based on the second tool speed setting and the second granularity specification; defining a second set of preset force values ​​based on the second abrasive force setting and the second grain size specification; In the robot system, moving the polishing head relative to a first part through a sequence of positions and orientations defined by the set of key points at the second movement speed; reading a second sequence of force values ​​from a force sensor of the robotic system; interpolating a second set of target force values ​​along the tool path based on the second set of preset force values; and selectively adjusting a position of the end effector relative to the part to maintain the sequence of force values ​​within a threshold difference of the second set of predetermined force values.

66. 65. The method of claim 64, further comprising accessing a first hardness of a first coating on the first component; The method, wherein defining the first set of target force values ​​for the polishing head on the first part further comprises defining the first set of target force values ​​proportional to the first hardness.

67. 62. The method of claim 61 , Further, accessing a part peel profile assigned to the first part, the part peel profile comprising: a first material removal depth; and and a first grit specification for a first polishing pad to be applied to the polishing head; The step of defining a first set of target force values ​​for the polishing head on the first component includes defining a first set of target force values, the first set of target force values ​​comprising: proportional to the first material removal depth; and inversely proportional to said first granularity specification; moreover, receiving a second part within the work zone; Accessing a paint preparation profile assigned to the second part, the paint preparation profile comprising: a second material removal depth; and specifying a second grit specification for a second polishing pad applied to the polishing head, the second grit specification being smaller than the first grit specification; During the second scan cycle, autonomously operating the robotic system to move the optical sensor across the second part; capturing with the optical sensor a second set of optical images depicting the second part; assembling the second set of optical images into a second part model representative of the second part; characterizing a surface contour in the second part model; detecting a third region in the second part model that exhibits a third surface contour accessible to the polishing head based on the set of tool characteristics; detecting a fourth region in the second part model exhibiting a fourth surface contour that is inaccessible to the polishing head based on the set of tool characteristics; defining a second set of key points on a third region in the second part model; For each keypoint in the second set of keypoints, defining a second position of the polishing head relative to the second component; defining a second orientation of the polishing head relative to the second component; defining a second target force value for the polishing head on the second component, the second target force value comprising: proportional to the second material removal depth; and inversely proportional to said second granularity specification; and assembling the second set of key points into a second tool path for execution by the robotic system.

68. 62. The method of claim 61 , During a setup period preceding the first scan period, further positioning an optical sensor over a work zone at a first distance from the first part; capturing a first optical image of the work zone at a first resolution depicting the first part; detecting a first shape of the first part within the work zone based on a first set of features extracted from the first optical image; defining a scan path based on a first shape of a first part within the work zone at a second distance from the first part that is less than the first distance; autonomously operating the robotic system during the first scanning period to capture the first set of optical images, autonomously performing a scan path such that the optical sensor moves over the first part at a second distance from the first part; capturing a first optical image depicting the first part at a second resolution greater than the first resolution.

69. 62. The method of claim 61 , detecting a second area in the first part model that is inaccessible to the polishing head; detecting a set of edges on the first part model; defining a second region on the first part model that is bounded by the series of edges as an exclusion region in the first part model; 22. The method of claim 21, wherein defining a first set of key points on a first region in the first part model comprises defining the first set of key points on the first region of the first part model outside the exclusion zone.

70. 70. The method of claim 69, Detecting a set of edges on the first part model comprises: detecting masking tape on a surface contour of the first part; detecting a first edge of a masking tape that separates a target zone of the first region from an exclusion zone of the second region; the step of defining the second region on the first part model comprises defining the second region on the first part model bounded by a first edge of the masking tape.

71. 70. The method of claim 69, detecting a first region in the first part includes detecting a region of a first color on the part in the part model; further comprising defining the first region on the first part model as a target zone within the first part model; detecting the second region in the first part model comprises detecting a region of a second color in the part model, the first color being different from the second color; 20. The method of claim 19, wherein defining a first set of key points on a first region in the first part model comprises defining the first set of key points on the first region of the first part model within the target zone.

72. 62. The method of claim 61 , the step of accessing a set of tool characteristics includes accessing a size of the polishing pad; detecting a second area exhibiting a second surface contour inaccessible to the polishing head; detecting a second region defining a concave contour; detecting a radius of curvature of the concave contour; calculating a ratio of a size of the polishing pad to a radius of curvature of the concave contour; and characterizing the second region as an exclusion zone if the ratio exceeds a threshold.

73. 73. The method of claim 72, the step of accessing a set of tool characteristics includes accessing a compliance coefficient of a compliant backing; The method further comprising calculating the threshold value based on the compliance factor.

74. 62. The method of claim 61, wherein the step of defining a first set of key points on a first region in the first part model comprises: Obtaining a bustrophedonic raster pattern, the bustrophedonic raster pattern comprising: a first sequence of raster legs in a first orientation and offset by a pitch distance less than a width of the polishing head; defining a second sequence of raster legs in a second orientation connecting the first sequence of raster legs; projecting the bustrophedonic raster pattern onto a first region within the first part model; defining a first set of keypoints along the bastrophedonic raster pattern at a local density proportional to a local radius of a surface contour in a first region in the first part model.

75. 75. The method of claim 74, the step of obtaining the bustrophedonic raster pattern includes obtaining the bustrophedonic raster pattern from a first operator profile associated with a first operator operating the robotic system during the first scan cycle; moreover, receiving a second part within the work zone; accessing a second operator profile associated with a second operator; During the second scan cycle, autonomously operating the robotic system to move the optical sensor across the second part; capturing with the optical sensor a second set of optical images depicting the second part; assembling the second set of optical images into a second part model representative of the second part; characterizing a surface contour in the second part model; detecting a third region in the second part model that exhibits a third surface contour accessible to the polishing head based on the set of tool characteristics; detecting a fourth region in the second part model exhibiting a fourth surface contour that is inaccessible to the polishing head based on the set of tool characteristics; Obtaining a vertical double-pass bustrophedonic raster pattern from the second operator profile, the vertical double-pass bustrophedonic raster pattern comprising: a third sequence of raster legs in a third orientation and offset by a pitch distance less than a width of the polishing head; a fourth sequence in a fourth orientation connecting the third sequence of raster legs; a fifth sequence of raster legs in a fifth orientation perpendicular to the third orientation and offset by a pitch distance less than a width of the polishing head; defining a sixth sequence of raster legs in a sixth orientation connecting the fifth sequence of raster legs; projecting the vertical double-pass bustrophedonic raster pattern onto a third region within the second part model; For each keypoint in the second set of keypoints, defining a second position of the polishing head relative to the second component; defining a second orientation of the polishing head relative to the second component; defining a second target force value for the polishing head on the second component; and assembling the second set of keypoints into a second tool path that follows the perpendicular double-pass bastrophedonic raster pattern with a local density proportional to a local radius of a surface contour in a third region in the second part model for execution by the robotic system.

76. 62. The method of claim 61 , characterizing a surface contour in the first part model includes detecting a local radius of curvature of a surface contour in a discrete region of the part model; 11. The method of claim 10, wherein defining a first set of keypoints on a first region in the first part model comprises projecting keypoints onto the part model at a density inversely proportional to the local radius of curvature.

77. 62. The method of claim 61 , characterizing a surface contour in the first part model includes detecting a local radius of curvature of the surface contour at a first keypoint; The method of claim 1, wherein defining the target force comprises defining a target force at the first keypoint proportional to a local radius of curvature at the first keypoint.

78. 62. The method of claim 61 , capturing a first set of optical images depicting the first portion includes capturing a first set of color images and a first set of depth images; assembling the first set of optical images into the first part model includes assembling the first set of color images and the first set of depth images into a color three-dimensional model of the first part; Additionally, during the first scan cycle: rendering the color three-dimensional model; projecting a tool path onto the color three-dimensional model; presenting a color three-dimensional model onto which the tool path is projected to an operator; and prompting an operator to confirm the projected tool path; The method further includes executing, at the robotic system, the tool path during a machining cycle subsequent to the first scan cycle, in response to confirmation of the tool path by an operator.

79. 62. The method of claim 61 further comprising: detecting a set of edges in the color three-dimensional model; defining a second region within the set of edges on the first part model as an exclusion zone in the first part model; annotating the color three-dimensional model with a virtual representation of the exclusion zone; presenting to an operator a color three-dimensional model annotated with a virtual representation of the exclusion zone; and prompting an operator to identify an exclusion zone on the color three-dimensional model.

80. 1. A method comprising: accessing a part model representing the part; accessing a size of the polishing head; characterizing a surface contour in the part model by detecting a local contour radius of the surface contour; detecting a first area within a part model that indicates a first surface contour accessible to the polishing head based on a size of the polishing head; detecting a second region within the part model exhibiting a second surface contour inaccessible to the polishing head based on a size of the polishing head; Generating a tool path, comprising: defining a set of position and orientation pairs located in a first region of the part model; calculating a contact area of ​​the polishing head with respect to the component at the set of positions and orientations based on a ratio of a size of the polishing head to a local contour radius at the set of positions and orientations; and annotating a target force to the set of position and orientation pairs based on the contact area.

Citation Information

Patent Citations

  • Grinding tool abrasion correcting device for grinding robot

    JP1994335857A

  • Method, apparatus, and system for automatically surface-machining large molded components of a wind turbine.

    JP2015532217A