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 .
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
Claim limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action.
This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitation(s) is/are: Claims 1 and 11 recite “simulator, “ simulation engine”, “rendering module”, “emulation module”, “ calculation module” and “ interlocking module”.
Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof.
A review of the specification shows that the following appears to be the corresponding structure described in the specification for the 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph limitation: [0030-0031] Fig. 1.
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-10 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 1 recite “DB” and “NPC” without definition. It is unclear what are those terms referring to. Similar issue for claim 10.
Claim 6 recites “vehicle really travels to verify function”. It is unclear what “really travel” means. Is this limitation referring to “physically travel on the road”? or “traveling during simulation to verify function”?
Therefore, the claims have an indefinite scope. Since dependent claims are dependent on the independent claims and included all the limitations of the independent claims, the dependent claims recite the indefinite scope in the independent claims.
Claim Rejections - 35 USC § 102
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 the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1-11 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Nassar et al (US 2021/0294944 A1), hereinafter Nassar.
1. An autonomous driving simulator comprising:
a road environment DB configured to store information on a road environment;
Nassar: [0046-0047] “FIG. 2C depicts an example road network ontology 200C. The road network ontology 200C can comprise path structure information. … FIG. 2D depicts an example environment ontology 200D. The environment ontology 200D can comprise information related to the environment. …”
a simulation engine configured to create a simulation scenario for verifying autonomous driving performance, by creating a virtual road environment by using the information stored in the road environment DB, specifying a position and posture of a virtual autonomous vehicle, and generating a virtual NPC object;
Nassar: [0084] “As another example, the vehicle simulator component(s) 620 may receive (e.g., retrieve, obtain, etc.), from the global simulation hosted by the simulator component(s) 602, data that corresponds to, is associated with, and/or is required by the vehicle simulator component(s) 620 to perform one or more operations by the vehicle simulator component(s) 620 for the SIL object. In such an example, data (e.g., virtual sensor data corresponding to a field(s) of view of virtual camera(s) of the virtual vehicle, virtual LIDAR data, virtual RADAR data, virtual location data, virtual IMU data, etc.) corresponding to each sensor of the SIL object may be received from the simulator component(s) 602. This data may be used to generate an instance of the simulated environment for each sensor (e.g., a first instance from a field of view of a first virtual camera of the virtual vehicle, a second instance from a field of view of a second virtual camera, a third instance from a field of view of a virtual LIDAR sensor, etc.). … In any example, the sensor data and/or encoded sensor data may be used by an autonomous driving software stack to perform one or more operations (e.g., object detection, path planning, control determinations, actuation types, etc.). For example, the sensor data and/or encoded data may be used as inputs to one or more DNNs of the autonomous driving software stack, and the outputs of the one or more DNNs may be used for updating a state of the virtual vehicle within the simulated environment 610. As such, the reliability and efficacy of the autonomous driving software stack, including one or more DNNs, may be tested, fine-tuned, verified, and/or validated within the simulated environment.”
[0056] “The method 400, at block B406, includes generating the plurality of scenarios. For example, the scenario generator 126 may be used to generate the variations of the defined scenario. For instance, the scenario generator 126 can generate a plurality of scenarios that are related to the defined scenario using information from the domain ontology 130.”
a rendering module configured to render a virtual road environment according to the scenario created by the simulation engine;
Nassar: [0088] “The simulation component(s) 602 may include any number of CPU(s) 632 (e.g., X86 boxes), GPU(s), and/or a combination thereof. The CPU(s) 632 may host the simulation software for maintaining the global simulation, and the GPU(s) 634 may be used for rendering, physics, and/or other functionality for generating the simulated environment 610.”
an emulation module to generate virtual sensor data by emulating sensors mounted in the virtual autonomous vehicle in the virtual road environment rendered by the rendering module;
Nassar: [0084] “As another example, the vehicle simulator component(s) 620 may receive (e.g., retrieve, obtain, etc.), from the global simulation hosted by the simulator component(s) 602, data that corresponds to, is associated with, and/or is required by the vehicle simulator component(s) 620 to perform one or more operations by the vehicle simulator component(s) 620 for the SIL object. In such an example, data (e.g., virtual sensor data corresponding to a field(s) of view of virtual camera(s) of the virtual vehicle, virtual LIDAR data, virtual RADAR data, virtual location data, virtual IMU data, etc.) corresponding to each sensor of the SIL object may be received from the simulator component(s) 602. This data may be used to generate an instance of the simulated environment for each sensor (e.g., a first instance from a field of view of a first virtual camera of the virtual vehicle, a second instance from a field of view of a second virtual camera, a third instance from a field of view of a virtual LIDAR sensor, etc.). The instances of the simulated environment may thus be used to generate sensor data for each sensor by the vehicle simulator component(s) 620. In some examples, the sensor data may be encoded using one or more codecs (e.g., each sensor may use its own codec, or each sensor type may use its own codec) in order to generate encoded sensor data that may be understood or familiar to an autonomous driving software stack simulated or emulated by the vehicle simulator component(s) 620.”
a calculation module configured to convert a real position and posture of an autonomous vehicle into a position and posture of the virtual autonomous vehicle in the virtual road environment, and to transmit the converted position and posture to the simulation engine; and
Nassar: [0111] “The plugin APIs 706 may include an ego-dynamics component(s) (not shown) that may receive information from the simulator component(s) 602 including position, velocity, car state, and/or other information, and may provide information to the simulator component(s) 602 including performance timings, suspension dynamics, tire dynamics, and/or other information. …”
Nassar: [0159]” In some examples, the SoC(s) 804 may include a real-time ray-tracing hardware accelerator, such as described in U.S. patent application Ser. No. 16/101,232, filed on Aug. 10, 2018. The real-time ray-tracing hardware accelerator may be used to quickly and efficiently determine the positions and extents of objects (e.g., within a world model), to generate real-time visualization simulations, for RADAR signal interpretation, for sound propagation synthesis and/or analysis, for simulation of SONAR systems, for general wave propagation simulation, for comparison to LIDAR data for purposes of localization and/or other functions, and/or for other uses. …”
an interlocking module configured to transmit the virtual sensor data generated by the emulation module to the autonomous vehicle, to receive a real position and posture of the autonomous vehicle from the autonomous vehicle, and to transmit the real position and posture to the calculation module.
Nassar: [0075] In some examples, the simulated environment may be rendered, at least in part, using one or more DNNs, such as generative adversarial neural networks (GANs). For example, real-world data may be collected, such as real-world data captured by autonomous vehicles (e.g., camera(s), LIDAR sensor(s), RADAR sensor(s), etc.), robots, and/or other objects, as well as real-world data that may be captured by any sensors (e.g., images or video pulled from data stores, online resources such as search engines, etc.). The real-world data may then be segmented, classified, and/or categorized, such as by labeling differing portions of the real-world data based on class (e.g., for an image of a landscape, portions of the image—such as pixels or groups of pixels may be labeled as car, sky, tree, road, building, water, waterfall, vehicle, bus, truck, sedan, etc.). A GAN (or other DNN) may then be trained using the segmented, classified, and/or categorized data to generate new versions of the different types of objects, landscapes, and/or other features as graphics within the simulated environment.” See [0080] [0109] for additional detail.
2. The autonomous driving simulator of claim 1, wherein the real position and posture of the autonomous vehicle is different from a virtual position and posture of the virtual autonomous vehicle.
Nassar: [0072-0073] “The simulation system 600A may generate a simulated environment 610 that may include AI objects 612 (e.g., AI objects 612A and 612B), HIL objects 614, SIL objects 616, PIL, objects 618, and/or other object types. The simulated environment 610 may include features of a driving environment, such as roads, bridges, tunnels, street signs, stop lights, crosswalks, buildings, trees and foliage, the sun, the moon, reflections, shadows, etc., in an effort to simulate a real-world environment accurately within the simulated environment 610. In some examples, the features of the driving environment within the simulated environment 610 may be more true-to-life by including chips, paint, graffiti, wear and tear, damage, etc. …The simulated environment 610 may be generated using virtual data, real-world data, or a combination thereof. For example, the simulated environment may include real-world data augmented or changed using virtual data to generate combined data that may be used to simulate certain scenarios or situations with different and/or added elements (e.g., additional AI objects, environmental features, weather conditions, etc.). For example, pre-recorded video may be augmented or changed to include additional pedestrians, obstacles, and/or the like, such that the virtual objects (e.g., executing the software stack(s) 642 as HIL objects and/or SIL objects) may be tested against variations in the real-world data.”
3. The autonomous driving simulator of claim 2, wherein a road on which the autonomous vehicle travels is different from a road information of which is stored in the road environment DB.
Nassar: [0072-0073] “The simulation system 600A may generate a simulated environment 610 that may include AI objects 612 (e.g., AI objects 612A and 612B), HIL objects 614, SIL objects 616, PIL, objects 618, and/or other object types. The simulated environment 610 may include features of a driving environment, such as roads, bridges, tunnels, street signs, stop lights, crosswalks, buildings, trees and foliage, the sun, the moon, reflections, shadows, etc., in an effort to simulate a real-world environment accurately within the simulated environment 610. In some examples, the features of the driving environment within the simulated environment 610 may be more true-to-life by including chips, paint, graffiti, wear and tear, damage, etc. …The simulated environment 610 may be generated using virtual data, real-world data, or a combination thereof. For example, the simulated environment may include real-world data augmented or changed using virtual data to generate combined data that may be used to simulate certain scenarios or situations with different and/or added elements (e.g., additional AI objects, environmental features, weather conditions, etc.). For example, pre-recorded video may be augmented or changed to include additional pedestrians, obstacles, and/or the like, such that the virtual objects (e.g., executing the software stack(s) 642 as HIL objects and/or SIL objects) may be tested against variations in the real-world data.”
4. The autonomous driving simulator of claim 3, wherein, when the road on which the autonomous vehicle travels is not changed, the road the information of which is stored in the road environment DB is changeable.
Nassar: [0072-0073] “The simulation system 600A may generate a simulated environment 610 that may include AI objects 612 (e.g., AI objects 612A and 612B), HIL objects 614, SIL objects 616, PIL, objects 618, and/or other object types. The simulated environment 610 may include features of a driving environment, such as roads, bridges, tunnels, street signs, stop lights, crosswalks, buildings, trees and foliage, the sun, the moon, reflections, shadows, etc., in an effort to simulate a real-world environment accurately within the simulated environment 610. In some examples, the features of the driving environment within the simulated environment 610 may be more true-to-life by including chips, paint, graffiti, wear and tear, damage, etc. …The simulated environment 610 may be generated using virtual data, real-world data, or a combination thereof. For example, the simulated environment may include real-world data augmented or changed using virtual data to generate combined data that may be used to simulate certain scenarios or situations with different and/or added elements (e.g., additional AI objects, environmental features, weather conditions, etc.). For example, pre-recorded video may be augmented or changed to include additional pedestrians, obstacles, and/or the like, such that the virtual objects (e.g., executing the software stack(s) 642 as HIL objects and/or SIL objects) may be tested against variations in the real-world data.”
5. The autonomous driving simulator of claim 1, wherein the road the information of which is stored in the road environment DB comprises a virtual road and an existent road.
Nassar: [0045] Referring to FIGS. 2B-2E, FIG. 2B-2E depict specific example domain ontologies. FIG. 2B depicts an example actor ontology 200B. The actor ontology 200B can include static and/or dynamic actors. Static actors can include objects on a map (e.g., of a simulated environment) that do not change or move, such as the infrastructure, barriers, buildings, dividers, lanes, intersections, traffic signals, road signs, etc. Dynamic actors can include objects on the map that change and/or move. This change and/or movement can be spontaneous or based on the influence of an external force or scenario command. Examples of dynamic actors can include portions of the ego car (e.g., sensors, mechanical parts, compute parts), other objects in the environment (e.g., people, animals, different types of vehicles), and so on.” See [0164] for additional detail.
6. The autonomous driving simulator of claim 5, wherein the existent road is a road on which the autonomous vehicle really travels to verify a function,
Nassar: [0093] “Using HIL objects in the simulator system 600 may provide for a scalable solution that may simulate or emulate various driving conditions for autonomous software and hardware systems (e.g., NVIDIA's DRIVE AGX Pegasus™ compute platform and/or DRIVE PX Xavier™ compute platform). Some benefits of HIL objects may include the ability to test DNNs faster than real-time, the ability to scale verification with computing resources (e.g., rather than vehicles or test tracks), the ability to perform deterministic regression testing (e.g., the real-world environment is never the same twice, but a simulated environment can be), optimal ground truth labeling (e.g., no hand-labeling required), the ability to test scenarios difficult to produce in the real-world, rapid generation of test permutations, and the ability to test a larger space of permutations in simulation as compared to real-world.”
and comprises a proving ground (PG), a normal road, and a highway.
Nassar: [0219] “The server(s) 878 may receive, over the network(s) 890 and from the vehicles, image data representative of images showing unexpected or changed road conditions, such as recently commenced road-work. The server(s) 878 may transmit, over the network(s) 890 and to the vehicles, neural networks 892, updated neural networks 892, and/or map information 894, including information regarding traffic and road conditions. The updates to the map information 894 may include updates for the HD map 822, such as information regarding construction sites, potholes, detours, flooding, and/or other obstructions. …”
[0075] “… For example, real-world data may be collected, such as real-world data captured by autonomous vehicles (e.g., camera(s), LIDAR sensor(s), RADAR sensor(s), etc.), robots, and/or other objects, as well as real-world data that may be captured by any sensors (e.g., images or video pulled from data stores, online resources such as search engines, etc.). The real-world data may then be segmented, classified, and/or categorized, such as by labeling differing portions of the real-world data based on class (e.g., for an image of a landscape, portions of the image—such as pixels or groups of pixels may be labeled as car, sky, tree, road, building, water, waterfall, vehicle, bus, truck, sedan, etc.).”
7. The autonomous driving simulator of claim 1, wherein the calculation module is configured to convert a real position and direction of the autonomous vehicle into a virtual position and direction of the virtual autonomous vehicle in the virtual road environment.
Nassar: [0123] “… The outputs may include information such as vehicle velocity, speed, time, map data (e.g., the HD map 822 of FIG. 8C), location data (e.g., the vehicle's 102 location, such as on a map), direction, location of other vehicles (e.g., an occupancy grid), information about objects and status of objects as perceived by the controller(s) 836, etc. For example, the HMI display 834 may display information about the presence of one or more objects (e.g., a street sign, caution sign, traffic light changing, etc.), and/or information about driving maneuvers the vehicle has made, is making, or will make (e.g., changing lanes now, taking exit 34B in two miles, etc.).”
Nassar: [0159]” In some examples, the SoC(s) 804 may include a real-time ray-tracing hardware accelerator, such as described in U.S. patent application Ser. No. 16/101,232, filed on Aug. 10, 2018. The real-time ray-tracing hardware accelerator may be used to quickly and efficiently determine the positions and extents of objects (e.g., within a world model), to generate real-time visualization simulations, for RADAR signal interpretation, for sound propagation synthesis and/or analysis, for simulation of SONAR systems, for general wave propagation simulation, for comparison to LIDAR data for purposes of localization and/or other functions, and/or for other uses. …”
8. The autonomous driving simulator of claim 7, wherein the calculation module is configured to calculate a virtual posture of the virtual autonomous vehicle, based on the virtual position and direction, with reference to information on a road shape which is stored in the road environment DB.
Nassar: [0123] “… The outputs may include information such as vehicle velocity, speed, time, map data (e.g., the HD map 822 of FIG. 8C), location data (e.g., the vehicle's 102 location, such as on a map), direction, location of other vehicles (e.g., an occupancy grid), information about objects and status of objects as perceived by the controller(s) 836, etc. For example, the HMI display 834 may display information about the presence of one or more objects (e.g., a street sign, caution sign, traffic light changing, etc.), and/or information about driving maneuvers the vehicle has made, is making, or will make (e.g., changing lanes now, taking exit 34B in two miles, etc.).”
Nassar: [0159]” In some examples, the SoC(s) 804 may include a real-time ray-tracing hardware accelerator, such as described in U.S. patent application Ser. No. 16/101,232, filed on Aug. 10, 2018. The real-time ray-tracing hardware accelerator may be used to quickly and efficiently determine the positions and extents of objects (e.g., within a world model), to generate real-time visualization simulations, for RADAR signal interpretation, for sound propagation synthesis and/or analysis, for simulation of SONAR systems, for general wave propagation simulation, for comparison to LIDAR data for purposes of localization and/or other functions, and/or for other uses. …”
9. The autonomous driving simulator of claim 1, wherein the calculation module is configured to, when there is an initialization command, initialize the real position and posture of the autonomous vehicle and the position and posture of the virtual autonomous vehicle, and to initiate conversion.
Nassar: [0115] “The one or more operations or commands may be transmitted to the simulation engine 730 which may update the behavior of one or more of the virtual objects based on the operations and/or commands. For example, the simulation engine 730 may use the AI engine 732 to update the behavior of the AI agents as well as the virtual objects in the simulated environment 728. The simulation engine 730 may then update the object data and characteristics (e.g., within the asset data store(s) 736), may update the GI (and/or other aspects such as reflections, shadows, etc.), and then may generate and provide updated sensor inputs to the GPU platform 724. This process may repeat until a simulation is completed.”
Regarding Claim 10-11, the same ground of rejection is made as discussed above for substantially similar rationale of claim 1.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CHUEN-MEEI GAN whose telephone number is (469)295-9127. The examiner can normally be reached Monday-Friday 9:00 am to 4:00 pm EST.
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, Rehana Perveen can be reached at 571-272-3676. 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.
/CHUEN-MEEI GAN/Primary Examiner, Art Unit 2189