Prosecution Insights
Last updated: April 19, 2026
Application No. 18/775,307

HEIGHT MAP COLLISION AVOIDANCE

Final Rejection §103§DP
Filed
Jul 17, 2024
Examiner
EVANS, KARSTON G
Art Unit
3657
Tech Center
3600 — Transportation & Electronic Commerce
Assignee
Fanuc Corporation
OA Round
2 (Final)
70%
Grant Probability
Favorable
3-4
OA Rounds
2y 10m
To Grant
91%
With Interview

Examiner Intelligence

Grants 70% — above average
70%
Career Allow Rate
100 granted / 143 resolved
+17.9% vs TC avg
Strong +21% interview lift
Without
With
+21.3%
Interview Lift
resolved cases with interview
Typical timeline
2y 10m
Avg Prosecution
31 currently pending
Career history
174
Total Applications
across all art units

Statute-Specific Performance

§101
9.8%
-30.2% vs TC avg
§103
48.4%
+8.4% vs TC avg
§102
13.8%
-26.2% vs TC avg
§112
21.2%
-18.8% vs TC avg
Black line = Tech Center average estimate • Based on career data from 143 resolved cases

Office Action

§103 §DP
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Response to Arguments The amendment filed 2/12/2026 has been entered. Claims 1-11 and 14-23 are amended. Claims 12-13 and 24-25 are cancelled. Claims 1-11 and 14-23 remain pending in the application. Applicant’s amendments to claims have overcome each and every objection, 112(b) rejection, 101 rejection, and double patenting rejection set forth in the Non-Final Office Action mailed 12/10/2025. Applicant’s arguments, see pages 10-15, with respect to the cited prior art not teaching the amended subject matter have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Nelaturi (US 20140163720 A1) and Lin (US 20220063099 A1) for claim 1. A new ground(s) of rejection is made in view of and Nelaturi (US 20140163720 A1) in view of Lin (US 20220063099 A1) and Messer Cutting Systems (NPL: “Compressed Air cutting Benefits and Limitations”) for claims 14-15. Claim Rejections - 35 USC § 103 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows: 1. Determining the scope and contents of the prior art. 2. Ascertaining the differences between the prior art and the claims at issue. 3. Resolving the level of ordinary skill in the pertinent art. 4. Considering objective evidence present in the application indicating obviousness or nonobviousness. Claim(s) 1-2, 4-6, and 8-10 is/are rejected under 35 U.S.C. 103 as being unpatentable over Nelaturi (US 20140163720 A1) in view of Lin (US 20220063099 A1). Regarding Claim 1, Nelaturi teaches A method for object-to-object interference checking, said method comprising: (“a computer-implemented system and method for analyzing machined part manufacturability through dimensional reduction and visibility analysis. … Upon identifying a collision between the taking an intersection of the tool with the surfaces of the part for each point in the heightmap of the tool, a translation of the tool by a penetration depth of the tool in the direction moving away from the surfaces of the part is generated.” See at least [0012]) creating, on a computing device having a processor and memory, (“Both the server 22 and personal computer 27 include components conventionally found in general purpose programmable computing devices, such as a central processing unit, memory,” See at least [0027]; “The method is performed as a series of process or method steps performed by, for instance, a general purpose programmed computer, such as server.” See at least [0039]) a workspace height map defining heights of workspace obstacles above a reference plane for a grid of cells in the reference plane; (“the heightmap computed with the z-buffer algorithm maps directly to the state space and allowable transformations of the tool. For any (X, Y) pair, the corresponding heightmap value is an upper bound on the distance that the tool can translate in the +Z direction without colliding with the interior of the part.” See at least [0056]; See at least Fig. 10 steps 84-89; “A heightmap for the removal volume RHmap, which is the volume remaining after the tool T is swept over the part without collision, is created and all points are initialized to zero (step 84). Each (X, Y) point in the heightmap of the part PHmap is processed (steps 85-91) as follows. First, the maximum Z displacement of the tool, Zmax, is initialized (step 86) as Zmax(X, Y)=PHmap(X, Y). Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0058]) defining a plurality of check points of an object along a path (See at least Fig. 10, step 85 “For each point (X,Y) in heightmap Phmap of part P, Do” and step 88 “Collision with interior of part P?”) performing an interference check, for each of the check points, by comparing a height of the object above the reference plane to the workspace height map; calculating a collision avoidance waypoint for any of the check points which yield a collision in the interference check, (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]; “First, the part P is centered at the origin (step 81). Given a tool approach direction Z, the z-buffer heightmap P.sub.Hmap of the part P is computed (step 82) by rendering the part orthographically from a distant point along -Z. This point is the tool's origin. Next, the heightmap of the tool THmap is computed (step 83) using the same method as above, but with a virtual camera centered at the tool's origin and looking towards -Z. A heightmap for the removal volume RHmap, which is the volume remaining after the tool T is swept over the part without collision, is created and all points are initialized to zero (step 84). Each (X, Y) point in the heightmap of the part PHmap is processed (steps 85-91) as follows. First, the maximum Z displacement of the tool, Zmax, is initialized (step 86) as Zmax(X, Y)=PHmap(X, Y). Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0057-0058], wherein the tool is the object.) and computing a new path using the collision avoidance waypoints (See at least Fig. 6 step 45 “Produce process plans”; “search algorithms that generate plans defined in terms of sequences of removal volumes (step 45), provided that the part is manufacturable (step 44). The removal volume is the volume created by sweeping the tool over the surface of the designed part.” See at least [0040]; “Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89). … Z.sub.max(X, Y) is translated in the -Z direction by the maximum penetration depth of the tool T, so that there is no collision with the part P.” See at least [0058-0059]; Examiner Interpretation: The translated Z values corresponding to each point (X', Y') to avoid collision with the part are the collision avoidance waypoints. The new path is computed by the translations for the tool to move.) Nelaturi does not explicitly teach, but Lin teaches defining a plurality of check points of an object along a path which includes a start point and an end point; (“identifying start and goal points (positions and orientations) of workpieces. … One intermediate point 164 is illustrated in FIG. 1, partway between the start point 160 and the goal point 162. In actual robot motion planning computations, multiple intermediate path points are calculated in order to satisfy all path constraints, and a smooth tool path is computed which passes through the plurality of path points.” See at least [0019-0020]) and computing a new path using the collision avoidance waypoints and the start and end points, (“Both the optimization module 410 and the sampling module 420 receive the start and goal points and obstacle data, and the modules 410 and 420 may operate independently. The optimization method calculation module 410 starts with an initial reference path, which may be a straight line from the start to goal point or some other initial reference (discussed below), and runs an optimization routine including an objective function and constraint functions. The optimization routine continues iterative calculations until the constraints are met and the objective function is minimized—resulting in a collision-free path of minimum length and maximum path quality (smoothness, curvature, etc.).” See at least [0034] and fig. 4 (provided below)) PNG media_image1.png 472 458 media_image1.png Greyscale where the new path includes non-linear path segments fitted through the collision avoidance waypoints; (“The first calculation in the path function fitting module 440, shown at 442, is to compute a spline function s based on the planned path points (q.sub.0, . . . , q.sub.T). The spline function s may be computed using any suitable technique, such as fitting the planned path points with a series of piecewise cubic polynomials. The spline function s is represented as a continuous entity having an arc length parameter a representing the distance along the spline s. That is, a=0 at the start point q.sub.0, and a=1 at the goal point q.sub.T.” See at least [0059]) defining a plurality of new check points of the object along the new path, and performing the interference check using the new check points, until no collision is detected in the interference check; (“The optimization routine continues iterative calculations until the constraints are met and the objective function is minimized—resulting in a collision-free path” See at least [0034]) and sending motion commands to a machine tool, by the computing device, causing the machine tool to move the object according to the new path. (“quickly converge on an optimized path and provide that planned path to the box 520. The process continues in this manner, with each planned path output on the line 530 and executed by the robot” See at least [0047]) It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of Nelaturi to further include the teachings of Lin with a reasonable expectation of success to “improve the speed and quality of robot path planning.” (See at least [0063]) Regarding Claim 2, Nelaturi further teaches wherein the workspace obstacles include a workpiece about which the object moves during an operation. (“Given a tool approach direction Z, the z-buffer heightmap P.sub.Hmap of the part P is computed (step 82) by rendering the part orthographically from a distant point along -Z.” See at least [0057]) Regarding Claim 4, Nelaturi further teaches wherein the reference plane is a principal plane of a reference coordinate frame having a defined position and orientation relative to a workspace world coordinate frame. (“the origin of the absolute coordinate system coincides with the reference point on the tool T.” See at least [0045]; “the part P is centered at the origin (step 81).” See at least [0057]; “the workspace W also describes positions and orientations of the tool with respect to the absolute frame of reference.” See at least [0060]) Regarding Claim 5, Nelaturi further teaches wherein the defined position and orientation relative to the workspace world coordinate frame includes any combination of relative positions and orientations. (“the origin of the absolute coordinate system coincides with the reference point on the tool T.” See at least [0045]; “the part P is centered at the origin (step 81).” See at least [0057]; “the workspace W also describes positions and orientations of the tool with respect to the absolute frame of reference.” See at least [0060]) Regarding Claim 6, Nelaturi further teaches wherein performing the interference check includes representing the object as a single point and comparing a height of the single point to a height value in a corresponding grid cell of the workspace height map, where the corresponding grid cell is found by a normal projection of the check point onto the grid of cells in the reference plane. (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]; “First, the part P is centered at the origin (step 81). Given a tool approach direction Z, the z-buffer heightmap P.sub.Hmap of the part P is computed (step 82) by rendering the part orthographically from a distant point along -Z. This point is the tool's origin. … Each (X, Y) point in the heightmap of the part PHmap is processed (steps 85-91) as follows. First, the maximum Z displacement of the tool, Zmax, is initialized (step 86) as Zmax(X, Y)=PHmap(X, Y). Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0057-0058], wherein each (X', Y') point in the heightmap of the tool THmap is a single point representing the object.) Regarding Claim 8, Nelaturi further teaches wherein performing the interference check includes representing the object as an object height map defined by a grid having a plurality of pixels, each pixel having a height value, and comparing the height value of each of the pixels in the object height map to a height value in a corresponding grid cell of the workspace height map. (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]; “the z-buffer heightmap P.sub.Hmap of the part P is computed (step 82) … Next, the heightmap of the tool THmap is computed (step 83) … Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0057-0058]; Examiner Interpretation: The heightmap of the tool is the object height map and each (X', Y') point is a pixel in the object height map.) Regarding Claim 9, Nelaturi does not specifically recite, wherein the object height map is defined with a lowest object point having a height value of zero and all other pixels of the object height map having height values greater than zero. However, Nelaturi teaches, “FIG. 9 is a diagram showing, by way of example, the heightmap of the contact surface of a ball-end mill, expressed as a height map in voxels or similar volumetric units. As the tool approaches the part, the tool is said to be moving in the +Z direction, so the contact surface is the surface of the tool with the largest Z-axis value.” See at least [0056] and fig. 9 (provided below); Examiner Interpretation: The lowest point of the ball-end mill (object) in the heightmap is illustrated at the highest point in the graph and appears to have a Z-axis value of 0 wherein the rest of the voxels have a negative Z-value indicating a greater height (greater than zero) with respect to the object because as the tool approaches the part, the tool is said to be moving in the +Z direction. PNG media_image2.png 468 532 media_image2.png Greyscale Though Nelaturi is not explicit that “the object height map is defined with a lowest object point having a height value of zero,” it would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of Nelaturi such that the lowest object point does have a height value of zero because it would simplify analysis of the contact point of the tool with the workpiece with initial contact being made at a tool tip with a Z-axis value of zero rather an arbitrary number near zero. Regarding Claim 10, Nelaturi further teaches wherein the height values in the object height map are measured in a direction parallel to the heights contained in the workspace height map. (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]; Examiner Interpretation: The heights are measurements in the z direction for both the tool and part. Since both the z direction of the tool and the part are coincident, measurements are made in a direction parallel relative to eachother.) Claim(s) 3 is/are rejected under 35 U.S.C. 103 as being unpatentable over Nelaturi (US 20140163720 A1) in view of Lin (US 20220063099 A1) and Holson (US 20200171653 A1). Regarding Claim 3, Modified Nelature does not explicitly teach, but Holson teaches wherein the workspace obstacles also include one or more fixtures, tables or other objects. (“When two objects fall within the first and second height thresholds, the height map may represent, for example, the one having the greater height (e.g., pattern 513, representing cup 503, is shown in the middle of pattern 512 representing table 502).” See at least [0098] and fig. 5B) It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of modified Nelature to further include the teachings of Holson with a reasonable expectation of success to improve safety by avoiding collisions with additional objects within reach in the environment of the robot. (See at least [0097]) Claim(s) 7 and 11 is/are rejected under 35 U.S.C. 103 as being unpatentable over Nelaturi (US 20140163720 A1) in view of Lin (US 20220063099 A1) and Niikura (US 20200306910 A1). Regarding Claim 7, Nelaturi further teaches wherein an interference is detected when the height of the single point is less than or equal to the height value in the corresponding grid cell of the workspace height map (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]) Nelaturi does not explicitly teach, minus a safety margin, However, Niikura teaches “the region setting unit 12 sets the interference checking region A including an entire portion disposed on the outside of the spindle 3 in the tool 20 on the basis of the tool data 11d of the tool 20 that is currently held by the spindle 3. … The region setting unit 12 sets the height Ha on the basis of the tool length offset … the height Ha is a value obtained by adding a predetermined margin width to the tool length L calculated from the tool length offset.” See at least [0025], wherein the margin width added to the tool length for the interference checking region of the tool is a safety margin. Though a subtraction is not specifically taught, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to subtract a safety margin from the height of the object when checking for collision with respect to the workspace height map using the combination of modified Nelaturi and Niikura because the margin distance added to the interference check to the tool length in Niikura would decrease the height of the interference check point of the tool in Nelaturi. It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of Nelaturi to further include the teachings of Niikura with a reasonable expectation of success to incorporate the vertical clearance margin (See at least [0025]) because adding a margin to the dimensions of a simplified model of a tool when checking for interference maintains a margin of safety to account for imprecise positioning or measurements. Regarding Claim 11, Modified Nelaturi does not explicitly teach, but Niikura teaches wherein representing the object as an object height map includes adding a radial offset margin to each point on downward-facing surfaces of the object which are used to create the plurality of pixels in the object height map. (“the region setting unit 12 sets the interference checking region A including an entire portion disposed on the outside of the spindle 3 in the tool 20 on the basis of the tool data 11d of the tool 20 that is currently held by the spindle 3. … The region setting unit 12 sets the height Ha on the basis of the tool length offset and sets the diameter Da on the basis of the tool maximum diameter. For example, the diameter Da is a value obtained by adding a predetermined margin width to the tool maximum diameter, and the height Ha is a value obtained by adding a predetermined margin width to the tool length L calculated from the tool length offset.” See at least [0025], wherein the margin width added to the interference checking region of the tool is a radial offset margin.) It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of modified Nelaturi to further include the teachings of Niikura with a reasonable expectation of success to incorporate the clearance margin (See at least [0025]) because adding a margin to the dimensions of a simplified model of a tool when checking for interference maintains a margin of safety to account for imprecise positioning or measurements. Claim(s) 14-18 and 20-22 is/are rejected under 35 U.S.C. 103 as being unpatentable over Nelaturi (US 20140163720 A1) in view of Lin (US 20220063099 A1) and Messer Cutting Systems (NPL: “Compressed Air cutting Benefits and Limitations”). Regarding Claim 14, Nelaturi teaches A method for object-to-object interference checking, said method comprising: (“a computer-implemented system and method for analyzing machined part manufacturability through dimensional reduction and visibility analysis. … Upon identifying a collision between the taking an intersection of the tool with the surfaces of the part for each point in the heightmap of the tool, a translation of the tool by a penetration depth of the tool in the direction moving away from the surfaces of the part is generated.” See at least [0012]) creating, on a computing device having a processor and memory (“Both the server 22 and personal computer 27 include components conventionally found in general purpose programmable computing devices, such as a central processing unit, memory,” See at least [0027]; “The method is performed as a series of process or method steps performed by, for instance, a general purpose programmed computer, such as server.” See at least [0039]), a workspace height map defining heights of workspace obstacles above a reference plane for a grid of cells in the reference plane; (“the heightmap computed with the z-buffer algorithm maps directly to the state space and allowable transformations of the tool. For any (X, Y) pair, the corresponding heightmap value is an upper bound on the distance that the tool can translate in the +Z direction without colliding with the interior of the part.” See at least [0056]; See at least Fig. 10 steps 84-89; “A heightmap for the removal volume RHmap, which is the volume remaining after the tool T is swept over the part without collision, is created and all points are initialized to zero (step 84). Each (X, Y) point in the heightmap of the part PHmap is processed (steps 85-91) as follows. First, the maximum Z displacement of the tool, Zmax, is initialized (step 86) as Zmax(X, Y)=PHmap(X, Y). Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0058]) defining a plurality of check points of a tool along an (See at least Fig. 10, step 85 “For each point (X,Y) in heightmap Phmap of part P, Do” and step 88 “Collision with interior of part P?”) performing an interference check, for each of the check points, by comparing a height of the tool above the reference plane to a height value in a corresponding grid cell of the workspace height map, where the corresponding grid cell is found by a normal projection of the check point onto the grid of cells in the reference plane; (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]; “First, the part P is centered at the origin (step 81). Given a tool approach direction Z, the z-buffer heightmap P.sub.Hmap of the part P is computed (step 82) by rendering the part orthographically from a distant point along -Z. This point is the tool's origin. … Each (X, Y) point in the heightmap of the part PHmap is processed (steps 85-91) as follows. First, the maximum Z displacement of the tool, Zmax, is initialized (step 86) as Zmax(X, Y)=PHmap(X, Y). Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0057-0058]) calculating a collision avoidance waypoint for any of the check points which yield a collision in the interference check, and computing a new (See at least Fig. 6 step 45 “Produce process plans”; “search algorithms that generate plans defined in terms of sequences of removal volumes (step 45), provided that the part is manufacturable (step 44). The removal volume is the volume created by sweeping the tool over the surface of the designed part.” See at least [0040]; “Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89). … Z.sub.max(X, Y) is translated in the -Z direction by the maximum penetration depth of the tool T, so that there is no collision with the part P.” See at least [0058-0059]; Examiner Interpretation: The translated Z values corresponding to each point (X', Y') to avoid collision with the part are the collision avoidance waypoints. The new path is computed by the translations for the tool to move.) Nelaturi does not explicitly teach, but Lin teaches defining a plurality of check points of a tool along an which includes a start point and an end point; (“identifying start and goal points (positions and orientations) of workpieces. … One intermediate point 164 is illustrated in FIG. 1, partway between the start point 160 and the goal point 162. In actual robot motion planning computations, multiple intermediate path points are calculated in order to satisfy all path constraints, and a smooth tool path is computed which passes through the plurality of path points.” See at least [0019-0020]) computing a new and the start and end points, (“Both the optimization module 410 and the sampling module 420 receive the start and goal points and obstacle data, and the modules 410 and 420 may operate independently. The optimization method calculation module 410 starts with an initial reference path, which may be a straight line from the start to goal point or some other initial reference (discussed below), and runs an optimization routine including an objective function and constraint functions. The optimization routine continues iterative calculations until the constraints are met and the objective function is minimized—resulting in a collision-free path of minimum length and maximum path quality (smoothness, curvature, etc.).” See at least [0034] and fig. 4 (provided below)) PNG media_image1.png 472 458 media_image1.png Greyscale where the new (“The first calculation in the path function fitting module 440, shown at 442, is to compute a spline function s based on the planned path points (q.sub.0, . . . , q.sub.T). The spline function s may be computed using any suitable technique, such as fitting the planned path points with a series of piecewise cubic polynomials. The spline function s is represented as a continuous entity having an arc length parameter a representing the distance along the spline s. That is, a=0 at the start point q.sub.0, and a=1 at the goal point q.sub.T.” See at least [0059]) defining a plurality of new check points of the tool along the new (“The optimization routine continues iterative calculations until the constraints are met and the objective function is minimized—resulting in a collision-free path” See at least [0034]) and sending motion commands to a machine tool, by the computing device, causing the machine tool to move the tool according to the new (“quickly converge on an optimized path and provide that planned path to the box 520. The process continues in this manner, with each planned path output on the line 530 and executed by the robot” See at least [0047]) It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of Nelaturi to further include the teachings of Lin with a reasonable expectation of success to “improve the speed and quality of robot path planning.” (See at least [0063]) Lin also does not explicitly teach, but Messer Cutting Systems teaches air cut (See at least “Purpose of Compressed Air cutting” on pg. 1) It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of Nelaturi and Lin to further include the teachings of Messer Cutting Systems with a reasonable expectation of success to perform the cutting instead with air because it at least provides a more economical solution. (See at least “Benefits of compressed air cutting” on pg. 2) Regarding Claim 15, Nelaturi teaches An object-to-object interference checking system comprising: one or more obstacles in a workspace; a machine moving a tool in the workspace; (“a computer-implemented system and method for analyzing machined part manufacturability through dimensional reduction and visibility analysis. … Upon identifying a collision between the taking an intersection of the tool with the surfaces of the part for each point in the heightmap of the tool, a translation of the tool by a penetration depth of the tool in the direction moving away from the surfaces of the part is generated.” See at least [0012]) and a computing device having a processor and memory, said computing device being in communication with the machine and configured to perform steps including: (“Both the server 22 and personal computer 27 include components conventionally found in general purpose programmable computing devices, such as a central processing unit, memory,” See at least [0027]; “The method is performed as a series of process or method steps performed by, for instance, a general purpose programmed computer, such as server.” See at least [0039]) creating a workspace height map defining heights of the obstacles above a reference plane for a grid of cells in the reference plane; (“the heightmap computed with the z-buffer algorithm maps directly to the state space and allowable transformations of the tool. For any (X, Y) pair, the corresponding heightmap value is an upper bound on the distance that the tool can translate in the +Z direction without colliding with the interior of the part.” See at least [0056]; See at least Fig. 10 steps 84-89; “A heightmap for the removal volume RHmap, which is the volume remaining after the tool T is swept over the part without collision, is created and all points are initialized to zero (step 84). Each (X, Y) point in the heightmap of the part PHmap is processed (steps 85-91) as follows. First, the maximum Z displacement of the tool, Zmax, is initialized (step 86) as Zmax(X, Y)=PHmap(X, Y). Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0058]) defining a plurality of check points of the tool along an (See at least Fig. 10, step 85 “For each point (X,Y) in heightmap Phmap of part P, Do” and step 88 “Collision with interior of part P?”) performing an interference check, for each of the check points, by comparing a height of the tool above the reference plane to the workspace height map; calculating a collision avoidance waypoint for any of the check points which yield a collision in the interference check, (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]; “First, the part P is centered at the origin (step 81). Given a tool approach direction Z, the z-buffer heightmap P.sub.Hmap of the part P is computed (step 82) by rendering the part orthographically from a distant point along -Z. This point is the tool's origin. Next, the heightmap of the tool THmap is computed (step 83) using the same method as above, but with a virtual camera centered at the tool's origin and looking towards -Z. A heightmap for the removal volume RHmap, which is the volume remaining after the tool T is swept over the part without collision, is created and all points are initialized to zero (step 84). Each (X, Y) point in the heightmap of the part PHmap is processed (steps 85-91) as follows. First, the maximum Z displacement of the tool, Zmax, is initialized (step 86) as Zmax(X, Y)=PHmap(X, Y). Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0057-0058], wherein the tool is the object.) and computing a new (See at least Fig. 6 step 45 “Produce process plans”; “search algorithms that generate plans defined in terms of sequences of removal volumes (step 45), provided that the part is manufacturable (step 44). The removal volume is the volume created by sweeping the tool over the surface of the designed part.” See at least [0040]; “Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89). … Z.sub.max(X, Y) is translated in the -Z direction by the maximum penetration depth of the tool T, so that there is no collision with the part P.” See at least [0058-0059]; Examiner Interpretation: The translated Z values corresponding to each point (X', Y') to avoid collision with the part are the collision avoidance waypoints. The new path is computed by the translations for the tool to move.) Nelaturi does not explicitly teach, but Lin teaches defining a plurality of check points of the tool along an which includes a start point and an end point; (“identifying start and goal points (positions and orientations) of workpieces. … One intermediate point 164 is illustrated in FIG. 1, partway between the start point 160 and the goal point 162. In actual robot motion planning computations, multiple intermediate path points are calculated in order to satisfy all path constraints, and a smooth tool path is computed which passes through the plurality of path points.” See at least [0019-0020]) and computing a new and the start and end points, (“Both the optimization module 410 and the sampling module 420 receive the start and goal points and obstacle data, and the modules 410 and 420 may operate independently. The optimization method calculation module 410 starts with an initial reference path, which may be a straight line from the start to goal point or some other initial reference (discussed below), and runs an optimization routine including an objective function and constraint functions. The optimization routine continues iterative calculations until the constraints are met and the objective function is minimized—resulting in a collision-free path of minimum length and maximum path quality (smoothness, curvature, etc.).” See at least [0034] and fig. 4 (provided below)) PNG media_image1.png 472 458 media_image1.png Greyscale where the new (“The first calculation in the path function fitting module 440, shown at 442, is to compute a spline function s based on the planned path points (q.sub.0, . . . , q.sub.T). The spline function s may be computed using any suitable technique, such as fitting the planned path points with a series of piecewise cubic polynomials. The spline function s is represented as a continuous entity having an arc length parameter a representing the distance along the spline s. That is, a=0 at the start point q.sub.0, and a=1 at the goal point q.sub.T.” See at least [0059]) defining a plurality of new check points of the tool along the new (“The optimization routine continues iterative calculations until the constraints are met and the objective function is minimized—resulting in a collision-free path” See at least [0034]) and sending motion commands to the machine causing the machine to move the tool according to the new (“quickly converge on an optimized path and provide that planned path to the box 520. The process continues in this manner, with each planned path output on the line 530 and executed by the robot” See at least [0047]) It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of Nelaturi to further include the teachings of Lin with a reasonable expectation of success to “improve the speed and quality of robot path planning.” (See at least [0063]) Lin also does not explicitly teach, but Messer Cutting Systems teaches air cut (See at least “Purpose of Compressed Air cutting” on pg. 1) It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of Nelaturi and Lin to further include the teachings of Messer Cutting Systems with a reasonable expectation of success to perform the cutting instead with air because it at least provides a more economical solution. (See at least “Benefits of compressed air cutting” on pg. 2) Regarding Claim 16, Nelaturi further teaches wherein the obstacles include one or more of a workpiece upon which the tool performs an operation, fixtures, tables or other objects. (“Given a tool approach direction Z, the z-buffer heightmap P.sub.Hmap of the part P is computed (step 82) by rendering the part orthographically from a distant point along -Z.” See at least [0057]) Regarding Claim 17, Nelaturi further teaches wherein the reference plane is a principal plane of a reference coordinate frame having a defined position and orientation relative to a workspace world coordinate frame, and the defined position and orientation includes any combination of relative positions and orientations. (“the origin of the absolute coordinate system coincides with the reference point on the tool T.” See at least [0045]; “the part P is centered at the origin (step 81).” See at least [0057]; “the workspace W also describes positions and orientations of the tool with respect to the absolute frame of reference.” See at least [0060]) Regarding Claim 18, Nelaturi further teaches wherein performing the interference check includes representing the tool as a tool center point and comparing a height of the tool center point to a height value in a corresponding grid cell of the workspace height map, where the corresponding grid cell is found by a normal projection of the check point onto the grid of cells in the reference plane. (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]; “First, the part P is centered at the origin (step 81). Given a tool approach direction Z, the z-buffer heightmap P.sub.Hmap of the part P is computed (step 82) by rendering the part orthographically from a distant point along -Z. This point is the tool's origin. … Each (X, Y) point in the heightmap of the part PHmap is processed (steps 85-91) as follows. First, the maximum Z displacement of the tool, Zmax, is initialized (step 86) as Zmax(X, Y)=PHmap(X, Y). Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0057-0058], wherein the origin or the middle (X', Y') point in the heightmap of the tool THmap (see at least the tip in fig. 9) is a tool center point representing the tool.) Regarding Claim 20, Nelaturi further teaches wherein performing the interference check includes representing the tool as a tool height map defined by a grid having a plurality of pixels, each pixel having a height value, and comparing the height value of each of the pixels in the tool height map to a height value in a corresponding grid cell of the workspace height map. (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]; “the z-buffer heightmap P.sub.Hmap of the part P is computed (step 82) … Next, the heightmap of the tool THmap is computed (step 83) … Each (X', Y') point in the heightmap of the tool THmap is checked for collisions (steps 87-90), that is, MinX(THmap)≤X'≤maxX(THmap) and minY(THmap) ≤Y'≤maxY(THmap), as follows. If, given the current value for Zmax, a given (X', Y') point of THmap would be colliding with the interior of the part P (step 88), translate Zmax in the -Z direction by the penetration depth (step 89).” See at least [0057-0058]; Examiner Interpretation: The heightmap of the tool is the object height map and each (X', Y') point is a pixel in the object height map.) Regarding Claim 21, Nelaturi does not specifically recite, wherein the tool height map is defined with a tool center point having a height value of zero and all other pixels of the tool height map having height values greater than zero. However, Nelaturi teaches, “FIG. 9 is a diagram showing, by way of example, the heightmap of the contact surface of a ball-end mill, expressed as a height map in voxels or similar volumetric units. As the tool approaches the part, the tool is said to be moving in the +Z direction, so the contact surface is the surface of the tool with the largest Z-axis value.” See at least [0056] and fig. 9 (provided below); Examiner Interpretation: The lowest point of the ball-end mill (object) in the heightmap is illustrated at the highest point in the graph and appears to have a Z-axis value of 0 wherein the rest of the voxels have a negative Z-value indicating a greater height (greater than zero) with respect to the object because as the tool approaches the part, the tool is said to be moving in the +Z direction. PNG media_image2.png 468 532 media_image2.png Greyscale Though Nelaturi is not explicit that “the tool height map is defined with a tool center point having a height value of zero,” it would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of Nelaturi such that the lowest object point does have a height value of zero because it would simplify analysis of the contact point of the tool with the workpiece with initial contact being made at a tool tip with a Z-axis value of zero rather an arbitrary number near zero. Regarding Claim 22, Nelaturi further teaches wherein the height values in the tool height map are measured in a direction parallel to the heights contained in the workspace height map. (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]; Examiner Interpretation: The heights are measurements in the z direction for both the tool and part. Since both the z direction of the tool and the part are coincident, measurements are made in a direction parallel relative to eachother.) Claim(s) 19 and 23 is/are rejected under 35 U.S.C. 103 as being unpatentable over Nelaturi (US 20140163720 A1) in view of Lin (US 20220063099 A1), Messer Cutting Systems (NPL: “Compressed Air cutting Benefits and Limitations”), and Niikura (US 20200306910 A1). Regarding Claim 19, Nelaturi further teaches wherein an interference is detected when the height of the tool center point is less than or equal to the height value in the corresponding grid cell of the workspace height map (“the removal volume is computed from a removal heightmap R.sub.Hmap by projecting each point (x, y, z) in a three-dimensional planning space (X, Y, Z) into the tool's (X', Y', Z') coordinate system and determining whether a point (x', y', z') in that space is above or below R.sub.Hmap (x', y'). More precisely, the point (x', y', z') is in the removal volume if z'<R.sub.Hmap (x', y').” See at least [0054]) Nelaturi does not explicitly teach, minus a safety margin, However, Niikura teaches “the region setting unit 12 sets the interference checking region A including an entire portion disposed on the outside of the spindle 3 in the tool 20 on the basis of the tool data 11d of the tool 20 that is currently held by the spindle 3. … The region setting unit 12 sets the height Ha on the basis of the tool length offset … the height Ha is a value obtained by adding a predetermined margin width to the tool length L calculated from the tool length offset.” See at least [0025], wherein the margin width added to the tool length for the interference checking region of the tool is a safety margin. Though a subtraction is not specifically taught, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to subtract a safety margin from the height of the object when checking for collision with respect to the workspace height map using the combination of modified Nelaturi and Niikura because the margin distance added to the interference check to the tool length in Niikura would decrease the height of the interference check point of the tool in Nelaturi. It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of Nelaturi to further include the teachings of Niikura with a reasonable expectation of success to incorporate the vertical clearance margin (See at least [0025]) because adding a margin to the dimensions of a simplified model of a tool when checking for interference maintains a margin of safety to account for imprecise positioning or measurements. Regarding Claim 23, Modified Nelaturi does not explicitly teach, but Niikura teaches wherein representing the tool as a tool height map includes adding a radial offset margin to each point on downward-facing surfaces of the tool which are used to create the plurality of pixels in the tool height map. (“the region setting unit 12 sets the interference checking region A including an entire portion disposed on the outside of the spindle 3 in the tool 20 on the basis of the tool data 11d of the tool 20 that is currently held by the spindle 3. … The region setting unit 12 sets the height Ha on the basis of the tool length offset and sets the diameter Da on the basis of the tool maximum diameter. For example, the diameter Da is a value obtained by adding a predetermined margin width to the tool maximum diameter, and the height Ha is a value obtained by adding a predetermined margin width to the tool length L calculated from the tool length offset.” See at least [0025], wherein the margin width added to the interference checking region of the tool is a radial offset margin.) It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to modify the teachings of modified Nelaturi to further include the teachings of Niikura with a reasonable expectation of success to incorporate the clearance margin (See at least [0025]) because adding a margin to the dimensions of a simplified model of a tool when checking for interference maintains a margin of safety to account for imprecise positioning or measurements. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Watanabe (US 20210154846 A1) is pertinent because it discusses shifting a teaching point of an air cutting path if an interference is determined and wherein the path is non-linear. Nobuhara (US 20230125071 A1) is pertinent because it discusses employing a 3D model to perform interference checks. Maekawa (US 20250100142 A1) is pertinent because it discusses that when there is an interference with a passing point, a new passing point is generated that leads to avoidance of the interference. THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to Karston G Evans whose telephone number is (571)272-8480. The examiner can normally be reached Mon-Fri 9:00-5:00. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Abby Lin can be reached at (571)270-3976. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /K.G.E./Examiner, Art Unit 3657 /ABBY LIN/Supervisory Patent Examiner, Art Unit 3657
Read full office action

Prosecution Timeline

Jul 17, 2024
Application Filed
Dec 05, 2025
Non-Final Rejection — §103, §DP
Feb 12, 2026
Response Filed
Mar 17, 2026
Final Rejection — §103, §DP (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12602054
CONTROL DEVICE FOR MOBILE OBJECT, CONTROL METHOD FOR MOBILE OBJECT, AND STORAGE MEDIUM
2y 5m to grant Granted Apr 14, 2026
Patent 12600037
REMOTE CONTROL ROBOT, REMOTE CONTROL ROBOT CONTROL SYSTEM, AND REMOTE CONTROL ROBOT CONTROL METHOD
2y 5m to grant Granted Apr 14, 2026
Patent 12589493
INFORMATION PROCESSING APPARATUS AND STORAGE MEDIUM
2y 5m to grant Granted Mar 31, 2026
Patent 12566457
BULK STORE SLOPE ADJUSTMENT VIA TRAVERSAL INCITED SEDIMENT GRAVITY FLOW
2y 5m to grant Granted Mar 03, 2026
Patent 12552023
METHOD FOR CONTROLLING A ROBOT, AND SYSTEM
2y 5m to grant Granted Feb 17, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
70%
Grant Probability
91%
With Interview (+21.3%)
2y 10m
Median Time to Grant
Moderate
PTA Risk
Based on 143 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month