High-fidelity micro-Doppler effect simulator
The main and micro motion of objects are simulated by high-fidelity radar simulators, and the problem of inaccurate micro motion simulation of vulnerable road users in the prior art is solved, and the efficiency and accuracy of radar design and testing are improved.
Patent Information
- Application Number
- CN202411370785.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-09
- Filing Date
- 2024-09-29
- Publication Date
- 2025-07-11
AI Technical Summary
Existing radar simulators cannot accurately and efficiently simulate micromovement of vulnerable road users, such as pedestrians and cyclists, especially microDoppler effects and offsets, making radar design and testing processes time-consuming and expensive.
Using a high-fidelity radar simulator, the main and micro-motion of the object are simulated by receiving environmental description data, identifying object types, loading CAD models and motion files, performing ray tracing simulations, calculating Doppler and micro-Doppler offsets, and performing ray clustering and output display, simulating the main and micro-motions of the object.
Accurate simulation of vulnerable road users is achieved, the efficiency and accuracy of radar design and testing is improved, and the computing resource requirements are reduced.
Smart Images

Figure CN120294688A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to electromagnetic simulation, and more particularly to electromagnetic environment simulation for a radar in a wheeled vehicle. Background Art
[0002] A radar is a useful device that can detect and track objects. Compared with other types of sensors (e.g., cameras), radar provides improved performance under difficult environmental conditions such as low illumination, fog, and / or the presence of moving or overlapping objects. Thus, radar provides many advantages for driver assistance applications and / or autonomous driving applications, etc.
[0003] When designing and developing a radar, an engineer may perform field tests (e.g., real-time tests) to evaluate the performance of the radar. Field tests can be expensive and time-consuming and are typically performed after the design and implementation of the radar. Thus, there may be a significant amount of rework and additional costs associated with solving problems revealed by field tests. Thus, instead of field tests, radar simulation can be performed via a radar simulator to evaluate radar performance. Radar simulation can help to detect problems earlier in the development process of the radar and can be faster and cheaper compared to field tests. Summary of the Invention
[0004] A computer-implemented method includes: receiving environmental description data associated with a simulation environment, the simulation environment including an object; and identifying an object type of the object. The method includes: in response to the object type being a human object type, identifying a motion type associated with the object; loading a CAD model associated with the object; loading a motion file associated with the motion type; and mapping the CAD model to the motion file. The method includes performing a ray tracing simulation, including: emitting a set of rays from a ray source towards the object; and determining a set of propagation paths of the set of rays from the ray source to the object and a set of reflection paths of the set of rays from the object to a ray receiver. The method includes: performing a physical optics simulation to determine a set of scattered fields associated with the set of reflection paths of the set of rays; calculating at least one of a Doppler shift and a micro-Doppler shift for each ray in the set of rays; performing ray clustering, the ray clustering including combining rays in the set of rays that include one or more similar characteristics; and transforming the simulation output for display on a user device. The simulation output includes a motion simulation associated with the motion type of the object, and the motion simulation includes a primary motion of the object and a set of micro-motions of the object.
[0005] Among other features, the object type is at least one of the following: human object type, building object type, vehicle object type, animal object type, and tree object type. Among other features, the motion type is associated with the physical activity of the object. The physical activity is associated with one of the following: walking, running, dancing, jumping, and cycling. Among other features, loading a CAD model associated with the object includes selecting a CAD model from a CAD model database. Among other features, loading a motion file associated with the motion type includes selecting a motion file from a motion file database.
[0006] Among other features, identifying a motion type associated with the object includes determining the speed of the object. In response to the speed being greater than a determined threshold, the running motion type is selected as the motion type. In response to the speed being less than the determined threshold, the walking motion type is selected as the motion type. Among other features, the method includes: modifying the mesh of the object; calculating the speed of each facet of the object; generating an acceleration data structure; and copying the acceleration data structure to a graphics processing unit associated with performing a ray tracing simulation.
[0007] Among other features, the ray source and the ray receiver are associated with a reference point. The reference point is based on a radar system of a vehicle. Among other features, mapping the CAD model to the motion file includes: linking the vertices of the mesh of the object to a first set of bones of the CAD model; mapping a second set of bones of the motion file to the first set of bones; initializing a transformation matrix; and identifying a time period of one cycle of time and distance of the motion file.
[0008] Among other features, the method includes: in response to the ray receiver receiving a ray in the ray set that hits the object, querying an object tree data structure to identify the object type of the object. Among other features, in response to the object type being a human object type, performing a ray tracing simulation in association with a global coordinate system. In response to the object type not being a human object type, performing a ray tracing simulation in association with a local coordinate system.
[0009] A computer system includes: memory hardware configured to store computer-executable instructions; and processor hardware configured to execute the instructions. The instructions include: receiving environment description data associated with a simulation environment, the simulation environment including an object; and identifying an object type of the object. The instructions include: in response to the object type being a human object type, identifying a motion type associated with the object; loading a CAD model associated with the object; loading a motion file associated with the motion type; and mapping the CAD model to the motion file. The instructions include: performing a ray tracing simulation, the ray tracing simulation including: emitting a set of rays from a ray source towards the object and determining a set of propagation paths of the set of rays from the ray source to the object and a set of reflection paths of the set of rays from the object to a ray receiver; performing a physical optics simulation to determine a set of scattering fields associated with the set of reflection paths of the set of rays; calculating at least one of a Doppler shift and a micro-Doppler shift of each ray in the set of rays; performing ray clustering, the ray clustering including combining rays in the set of rays that include one or more similar characteristics; and transforming the simulation output for display on a user device. The simulation output includes a motion simulation associated with the motion type of the object, and the motion simulation includes a primary motion of the object and a set of micro-motions of the object.
[0010] Among other features, the object type is at least one of: a human object type, a building object type, a vehicle object type, an animal object type, and a tree object type. Among other features, the motion type is associated with a physical activity of the object. The physical activity is associated with one of: walking, running, dancing, jumping, and cycling. Among other features, loading a CAD model associated with the object includes selecting the CAD model from a CAD model database. Among other features, loading a motion file associated with the motion type includes selecting the motion file from a motion file database.
[0011] Among other features, identifying a motion type associated with the object includes determining a speed of the object. In response to the speed being greater than a determined threshold, selecting a running motion type as the motion type. In response to the speed being less than the determined threshold, selecting a walking motion type as the motion type. Among other features, the instructions further include: modifying a mesh of the object; calculating a speed of each patch of the object; generating an acceleration data structure; and copying the acceleration data structure to a graphics processing unit associated with performing the ray tracing simulation.
[0012] Among other features, a radiation source and a radiation receiver are associated with a reference point. The reference point is based on a radar system of a vehicle. Among other features, mapping a CAD model to a motion file includes: linking vertices of a mesh of an object to a first bone set of the CAD model; mapping a second bone set of the motion file to the first bone set; initializing a transformation matrix; and identifying a time period of a cycle of time and distance of the motion file.
[0013] Among other features, the instructions further include: in response to the radiation receiver receiving a ray in the ray set that hits an object, querying an object tree data structure to identify an object type of the object. Among other features, in response to the object type being a human object type, performing a ray tracing simulation in association with a global coordinate system. In response to the object type not being a human object type, performing a ray tracing simulation in association with a local coordinate system.
[0014] Further applicable fields of the present disclosure will become apparent from the specific embodiments, claims, and drawings. The specific embodiments and specific examples are only for illustrative purposes and are not intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] The present disclosure will be more fully understood through the specific embodiments and the accompanying drawings.
[0016] Figure 1 is a high-level block diagram of an example environment where a radar simulator models one or more features of a radar system.
[0017] Figure 2 is a functional block diagram of an example electromagnetic simulator module according to the principles of the present disclosure.
[0018] Figure 3 is a functional block diagram of an example radar simulator module according to the principles of the present disclosure.
[0019] Figure 4 is a flowchart depicting an example micro-Doppler simulation performed by a radar simulator according to the principles of the present disclosure.
[0020] Figure 5 is a flowchart depicting an example process of loading and initializing a CAD model and a motion file of an object by a radar simulator module according to the principles of the present disclosure.
[0021] Figure 6 is a flowchart depicting an example process of loading traffic scene information by a radar simulator module according to the principles of the present disclosure.
[0022] Figure 7 is a flowchart depicting an example ray tracing process performed by a ray tracing module according to the principles of the present disclosure.
[0023] Figure 8 is a flowchart depicting an example process for calculating the scattered field and micro-Doppler frequency shift of an electromagnetic ray in accordance with the principles of the present disclosure.
[0024] Figure 9A is a graphical representation of an example CAD model associated with an object in accordance with the principles of the present disclosure.
[0025] Figure 9B is a graphical representation of an example motion file associated with an object in accordance with the principles of the present disclosure.
[0026] Figure 10 is a graphical representation of an example Doppler frequency shift accumulation along a ray path in accordance with the principles of the present disclosure.
[0027] Figures 11A to 11X is a graphical representation of an example output generated by an output generation module in accordance with the principles of the present disclosure.
[0028] Figure 12A and Figure 12B is a graphical representation of an example output generated by an output generation module in accordance with the principles of the present disclosure.
[0029] Figure 13A and Figure 13B is a graphical representation of an example output generated by an output generation module in accordance with the principles of the present disclosure.
[0030] In the drawings, reference numerals may be reused to identify similar and / or identical elements. DETAILED DESCRIPTION INTRODUCTION
[0031] In various implementations, a radar simulator may be used by engineers to perform operations associated with the hardware and / or software of a radar system, and / or to improve development in aspects such as radar design, radar testing, and / or signal processing. Current radar simulators are unable to accurately and efficiently simulate the micro-motions (e.g., secondary motions) of target objects such as vulnerable road users (e.g., pedestrians and / or cyclists, etc.). For example, current radar simulators are unable to accurately calculate the micro-Doppler effect and / or shift of target objects. Current radar simulators may use thousands of CAD files per time frame to simulate the motion of pedestrians, but this has proven to be time-consuming and expensive, and requires a large amount of computing resources.
[0032] The high-fidelity radar simulator is configured to accurately and efficiently simulate the physical activities of a target object. The physical activities may be associated with the target object walking, running, jumping, dancing, and / or cycling, etc. The simulator is configured to simulate the primary motion and micro-motion of the target object to accurately simulate the physical activities. The micro-motion includes the secondary motion of the target object, and the secondary motion of the target object may be different from the primary motion of the target object.
[0033] In various implementations, the primary motion may be associated with the movement of the torso of the target object associated with a human. For example, the torso may move at a first speed. The secondary motion may be associated with the movement of one or more body parts (e.g., arms, hands, legs, feet, head, etc.) connected to the torso and / or the rotational movement of one or more body parts relative to the torso, etc. For example, the legs of the target object may move at a second speed different from the first speed.
[0034] The simulator simulates the micro-motion of the target object to identify vulnerable road users (e.g., pedestrians and / or cyclists, etc.) and distinguish these vulnerable road users from other target objects. The simulator is configured to calculate the micro-Doppler effect and / or shift of the target object to accurately simulate the micro-motion of the target object. The micro-Doppler effect and / or shift may be associated with the smaller changes in the Doppler frequency of the radar caused by the secondary motion. The micro-Doppler effect and / or shift may introduce minute changes in the frequency of the radar signal, which are different from the Doppler effect and / or shift of the primary motion of the target object. Advanced block diagram
[0035] Figure 1 is an advanced block diagram of an example environment 100 in which a radar simulator 104 (e.g., a high-fidelity radar simulator) models one or more features and / or components of a radar system 108. The radar system 108 may be mounted on a vehicle 112 and / or integrated within the vehicle 112. The radar system 108 is configured to detect one or more objects 116 near the vehicle 112.
[0036] In various implementations, the radar system 108 can be mounted on the top, bottom, front, rear, left, and / or right side of the vehicle 112. The vehicle 112 can include a collection of radar systems 108. For example, the vehicle 112 can include a first rear-mounted radar system 108 positioned near the left side of the vehicle 112 and a second rear-mounted radar system 108 positioned near the right side of the vehicle 112. In various implementations, the positions of the collection of radar systems 108 can be selected to provide a particular field of view that encompasses an area of interest in which one or more objects 116 may be present. For example, the field of view can include a 360-degree field of view, one or more 180-degree fields of view, and / or one or more 90-degree fields of view, etc.
[0037] In various implementations, the vehicle 112 can include a passenger car, an SUV, a truck, a van, a bus, a motorcycle, a tractor, a semi-trailer, a construction-related vehicle, a bicycle, a train, a tram, a boat, a ship, an airplane, a helicopter, and / or a satellite, etc. In various implementations, the radar system 108 can be mounted on any type of mobile platform, such as mobile machinery and / or robotic equipment, etc.
[0038] In various implementations, the vehicle 112 can include one or more systems that use the data provided by the radar system 108. For example, the vehicle 112 can include a driver assistance system and / or an autonomous driving system, etc. The driver assistance system can use the data provided by the radar system 108 to monitor one or more blind spots of the vehicle 112 and / or warn the driver of the vehicle 112 of a potential collision with an object 116. The autonomous driving system can use the data provided by the radar system 108 to move the vehicle 112, avoid collisions with objects 116, perform emergency braking, change lanes, and / or adjust the speed of the vehicle 112, etc.
[0039] In various implementations, the object 116 can be composed of one or more materials that reflect radar signals. The object 116 can include moving and / or stationary objects. For example, the object 116 can include vulnerable road users (e.g., pedestrians and / or cyclists, etc.), another vehicle, an animal, a road obstacle (e.g., traffic cones, concrete barriers, guardrails, and / or fences, etc.), a tree, a building, and / or a house, etc.
[0040] In various implementations, the radar system 108 can include continuous wave and / or pulsed radar, frequency modulation and / or phase modulation radar, multiple-input single-output (MISO) radar, multiple-input multiple-output (MIMO) radar, and / or combinations thereof, among others. In various implementations, the radar system 108 can use a code division multiple access (CDMA) scheme. The radar system 108 is configured to transmit at least one radar transmit signal 120 to detect an object 116. At least a portion of the radar transmit signal 120 is reflected by the object 116 and returns to the radar system 108 in the form of a radar receive signal 124. The radar system 108 is configured to receive the radar receive signal 124 and process the radar receive signal 124 to provide data to one or more systems of the vehicle 112.
[0041] In various implementations, the radar receive signal 124 can represent a delayed version of the radar transmit signal 120 at the radar system 108. The amount of delay can be proportional to the slant range (e.g., distance) from the radar system 108 to the object 116. The delay can include the time it takes for the radar transmit signal 120 to propagate from the radar system 108 to the object 116 and the time it takes for the radar receive signal 124 to propagate from the object 116 to the radar system 108. In response to the object 116 and / or the radar system 108 being in motion, the radar receive signal 124 may be frequency-shifted relative to the radar transmit signal 120 due to the Doppler effect. In various embodiments, the characteristics of the radar receive signal 124 can depend on the motion of the object 116 and / or the motion of the vehicle 112.
[0042] In various implementations, the radar transmit signal 120 and / or the radar receive signal 124 can include frequencies between one and four hundred gigahertz (GHz) and / or can include bandwidths between one and nine hundred megahertz (MHz).
[0043] In various implementations, the radar transmit signal 120 and / or the radar receive signal 124 can include multiple signals, each having a different waveform. For example, the radar transmit signal 120 can include radar transmit signals 120-1 …… 120-N, and / or the radar receive signal 124 can include multiple radar receive signals (not shown). Each radar transmit signal 120 and / or each radar receive signal 124 can include multiple pulses - in Figure 1 FIG., pulses 128-1, 128-2 …… 128-N of the radar transmit signal 120-1 are illustrated.
[0044] In various implementations, the single frequency of a pulse can increase or decrease over time. For example, radar system 108 can employ a single-slope period to linearly increase the single frequency over time. Radar system 108 can employ various other types of frequency modulation, including dual-slope periods and / or non-linear frequency modulation, etc. The number of pulses within time frame 132 and / or the transmission characteristics of the pulses (e.g., bandwidth, center frequency, transmit power, etc.) can be selected to achieve the desired detection range, range resolution, and / or Doppler resolution for detecting object 116.
[0045] In various implementations, radar system 108 can transmit pulses 128-1 to 128-N in a continuous sequence to implement a continuous-wave radar. In some examples, radar system 108 can transmit pulses 128-1 to 128-N in a time-separated sequence to implement a pulsed radar. In various implementations, the radar transmit signal 120 can include multiple time frames 132. Time frame 132 can include multiple chirps (i.e., pulses). For example, time frame 132 can include 32 chirps, 64 chirps, and / or 128 chirps, etc. Time frame 132 can have a duration of 8 ms, 15 ms, 30 ms, and / or 50 ms, etc. The pulses enable radar system 108 to make multiple observations of object 116 over the duration of time frame 132.
[0046] In various implementations, radar system 108 can employ multiple access techniques to support MIMO operation. For example, a time-division multiple access (TDMA) scheme, a code-division multiple access (CDMA) scheme, a Doppler division multiple access (DDMA) scheme, or any other method that ensures orthogonality between transmit signals in MIMO implementations. For TDMA, radar system 108 can delay the transmission of radar transmit signals 120-1 to 120-N by different amounts such that each signal can appear in a separate time slot. For CDMA, radar system 108 can encode radar transmit signals 120-1 to 120-N with corresponding coding sequences that are orthogonal to each other. For example, a first coding sequence can be used to generate a first radar transmit signal 120-1 and / or a second coding sequence can be used to generate a second radar transmit signal. The first coding sequence can offset the phase of the second pulse 128-2 by 180 degrees from the phase of the first pulse 128-1. The second coding sequence can offset the phase of the second pulse 128-2 by zero degrees from the phase of the first pulse 128-1.
[0047] In various implementations, radar system 108 may include at least one antenna array 136 and at least one transceiver 140 to transmit radar transmission signal 120 and receive radar reception signal 124. Antenna array 136 may include at least one transmit antenna element and at least one receive antenna element. In various implementations, to implement MIMO radar, antenna array 136 may include multiple subarrays of transmit antenna elements and receive antenna elements. The number of transmit subarrays and the number of receive subarrays may be the same or different. In various implementations, the antenna elements within antenna array 136 may be circularly polarized, horizontally polarized, vertically polarized, and / or may include combinations of these polarizations, and so on.
[0048] In various implementations, radar system 108 may form steered, unsteered, wide, and / or narrow beams, etc. via antenna array 136. The steering and shaping of the beams may be achieved via analog beamforming and / or digital beamforming. In various implementations, one or more transmit subarrays may have an unsteered omnidirectional radiation pattern, or may generate wide, steerable beams to illuminate a large spatial volume. The receive subarray may include multiple receive antenna elements, and the multiple receive antenna elements may generate hundreds of narrow steered beams via digital beamforming to achieve target angle accuracy and angle resolution. The above may enable radar system 108 to efficiently monitor the external environment and detect one or more objects 116 within the region of interest.
[0049] In various implementations, transceiver 140 may include circuitry and logic for transmitting and receiving radar signals via antenna array 136. Transceiver 140 may include one or more amplifiers, one or more mixers, one or more switches, one or more analog-to-digital converters, and / or one or more filters for conditioning the radar signals. The logic of transceiver 140 may perform in-phase / quadrature (I / Q) operations, such as modulation or demodulation. In some examples, transceiver 140 may include at least one transmitter and at least one receiver.
[0050] In various implementations, transceiver 140 may include multiple transmitters respectively coupled to the transmit subarrays of antenna array 136. Each transmitter among the transmitters may include multiple transmit chains respectively coupled to the transmit antenna elements of the transmit subarray. Each transmitter among the transmitters may be configured to generate radar transmission signal 120. The transmit chains may enable beamforming techniques to adjust the beam shape and / or direction associated with the transmitted radar transmission signal 120.
[0051] In various implementations, transceiver 140 may include multiple receivers. The receivers may be respectively coupled to the receive sub-arrays of antenna array 136. Each receiver among the receivers may include multiple receive chains respectively coupled to the receive elements of the receive sub-array. Each receiver among the receivers may be configured to receive one or more reflected versions of radar transmission signal 120. The receive chains may enable beamforming techniques to separately adjust the amplitude and / or phase of the signals processed by the receive chains.
[0052] In various implementations, each transmit sub-array in the transmit sub-arrays of antenna array 136 and the associated transmitter of transceiver 140 may form a transmit channel. Each receive sub-array in the receive sub-arrays of antenna array 136 and the associated receiver of transceiver 140 may form a receive channel. In various implementations, the transmit channels and the receive channels may be combined in different ways to form multiple transmit-receive channel pairs. For example, the first transmit channel and the first receive channel may form a first transmit-receive channel pair, the second transmit channel and the second receive channel may form a second transmit-receive channel pair, and so on.
[0053] In various implementations, radar system 108 may include processor hardware 144 and memory hardware 148. Memory hardware 148 may include radar software 152. In various implementations, radar software 152 may be configured to analyze radar receive signal 124, detect one or more objects 116, and / or determine one or more characteristics of object 116 (such as position and / or speed, etc.).
[0054] In various implementations, radar simulator 104 may be configured to model the hardware and / or software of radar system 108 to evaluate the performance of radar system 108 in a simulated environment. Radar simulator 104 may be used to evaluate different system designs (such as hardware configurations and / or operation models, etc.), test different versions of radar software 152, and / or verify the performance requirements of radar system 108. Radar simulator 104 enables its users to quickly discover problems within radar system 108, such as during the design, integration, and / or testing phases of radar system 108.
[0055] In various implementations, radar simulator 104 may perform operations to simulate the hardware of radar system 108 (such as antenna array 136 and / or transceiver 140, etc.), and / or radar software 152, etc. In various implementations, radar simulator 104 may be configured to consider the non-ideal characteristics of radar system 108 and environment 100. For example, radar simulator 104 may be configured to model phase noise, waveform non-linearity, and / or uncorrelated noise, etc. within transceiver 140. Radar simulator 104 may include a noise floor and / or dynamic range similar to that of radar system 108.
[0056] In various implementations, the radar simulator 104 may include processor hardware 156 and memory hardware 160. The memory hardware 160 may store, among other things, an electromagnetic simulator module 164, a radar simulator module 168, a hardware simulator module 172, and / or a software simulator module 176.
[0057] In various implementations, the electromagnetic simulator may be configured to generate environmental description data (see, for example Figure 2 ). The radar simulator module 168 may be configured to: process the environmental description data generated by the electromagnetic simulator module 164, transform the environmental description data into a form usable by the hardware simulator module 172, and / or adjust the environmental description data to account for the antenna response of the antenna array 136, among other things. In various implementations, the radar simulation module 168 may be configured to analyze the environmental description data to generate various reports and / or outputs (e.g., simulations) for display on one or more user devices 180. A user of the user device 180 may use the reports and / or outputs to evaluate the performance of the radar system 108. The user device 180 may include a desktop computer, a laptop computer, a tablet computer, and / or a smart phone, among other things.
[0058] In various implementations, the hardware simulator module 172 may be configured to model the transceiver 140. For example, the hardware simulator module 172 may be configured to perform operations such as analog waveform generation, modulation, demodulation, multiplexing, amplification, frequency conversion, filtering, and / or analog-to-digital conversion. The hardware simulator module 172 may be configured to verify different hardware configurations and / or operating modes of the radar system 108.
[0059] In various implementations, the software simulator module 176 may be configured to model the radar software 152 of the radar system 108. For example, the software simulator module 176 may be configured to perform digital baseband processing operations that simulate the operations performed by the processor hardware 144 of the radar system 108. In various implementations, the operations may include performing a Fourier transform (e.g., a fast Fourier transform), noise floor estimation, clutter map generation, constant false alarm rate thresholding, object detection, and object position estimation (e.g., digital beamforming), among other things. The software simulator module 176 may be configured to verify software operation requirements and / or evaluate various versions of the radar software 152, among other things.
[0060] In various implementations, the radar simulator 104 can include and / or be communicatively coupled to a collection of databases. The collection of databases can include, for example, a CAD model database 184 and / or a motion file database 188. In various implementations, the CAD model database 184 can store a plurality of CAD models (e.g., MakeHuman models, etc.) and / or CAD files that can be used to simulate and / or model an object. In response to the object being human or including a human, the CAD model can be associated with a mesh model that includes a plurality of vertices depicting the human and / or skeletal information. In various implementations, the motion file database 188 can store a plurality of motion files (e.g., biovision hierarchy (BVH) files). In various implementations, the motion files can be executed in conjunction with the CAD models to simulate the motion of the object. For example, in response to the object including a human, the motion file can be used to move at least some of the vertices and / or bones of the human to simulate the motion of the human. Block diagram
[0061] Figure 2 is a functional block diagram of an example electromagnetic simulator module 164 according to the principles of the present disclosure. In various implementations, the electromagnetic simulator module 164 can be configured to generate at least one simulated electromagnetic signal (e.g., a radio frequency signal) and / or evaluate the propagation and scattering effects of the simulated electromagnetic signal, etc. For example, the electromagnetic simulator module 164 can be configured to evaluate one or more propagation paths of the simulated electromagnetic signal within the simulated environment 212 that originate from and return to the reference point 208. In various implementations, the propagation paths can include a direct line-of-sight path (e.g., propagation path 204-1) and / or an indirect path associated with multipath propagation (e.g., propagation path 204-2), etc. In various implementations, the electromagnetic simulator module 164 can use ray tracing to determine various types of propagation paths.
[0062] In various implementations, the electromagnetic simulator module 164 can be configured to determine one or more characteristics of the propagation paths within the simulated environment 212. In various implementations, the electromagnetic simulator module 164 can be configured to select and / or receive environmental parameter data 216 that can specify one or more characteristics of one or more simulated objects (e.g., the location, velocity, and / or material composition of the simulated objects). In various implementations, at least some of the environmental parameter data 216 can be input into the radar simulator 104 via the user device 180.
[0063] In various implementations, the electromagnetic simulator module 164 can be configured to generate a simulated environment 212 based on environmental parameter data 216. In various implementations, the simulated environment 212 can include one or more simulated objects. In various implementations, the simulated objects can include humans (e.g., human object 220a), trees (e.g., tree object 220b), buildings (e.g., building object 220c), and / or vehicles (e.g., vehicle object 220d), etc. In various implementations, the simulated environment 212 can include various types of environmental conditions 224 (e.g., weather, terrain, road geometry, traffic rules, and / or traffic conditions, etc.).
[0064] In various implementations, the simulated environment 212 can include a simulated vehicle 228, and the reference point 208 can represent a position on the simulated vehicle 228 corresponding to the position of the radar system on the Figure 1 vehicle 112. In various implementations, the electromagnetic simulator module 164 can be configured to generate output data 232, which can be used in combination with additional simulator processing steps. In various implementations, the output data 232 can include environmental description data 236 and / or radar information data 240, etc. In various implementations, the environmental description data 236 can include propagation data 244, traffic scene data 246, and / or object information data 248, etc.
[0065] In various implementations, the electromagnetic simulator module 164 can generate environmental description data 236, which can be dynamic. For example, as the reference point 208 on the vehicle 228 and / or the objects within the simulated environment 212 may move, the environmental description data 236 can change over time. The environmental description data 236 can include complex data with amplitude, phase, and / or frequency information, etc.
[0066] In various implementations, the electromagnetic simulator module 164 can use radar parameter data 252 to generate environmental description data 236. The radar parameter data 252 can include information about the radar system 108 and / or the radar transmit signal 120, etc. In various implementations, the radar parameter data 252 includes radar antenna data 256 and / or radar frequency data 260, etc.
[0067] In various implementations, the radar antenna data 256 can include data associated with the maximum operating frequency of the radar system 108 and / or the pulse repetition frequency (PRF) of the radar system 108, etc. The maximum operating frequency can be used to determine the spatial resolution of the radar system 108, and / or the PRF can be used to determine the unambiguous range of the radar system 108.
[0068] In various implementations, the electromagnetic simulator module 164 can use ray tracing to generate the environment description data 236. To improve efficiency, rays can be emitted and received from a reference point 208, which can represent the center of the radar system 108. In various implementations, the electromagnetic simulator module 164 can assume that the antenna array 136 includes an omnidirectional pattern for both transmission and reception. Based on the above, ray tracing can be performed without considering individual transmit-receive channel pairs, and / or differences between individual sub-arrays of the antenna array 136.
[0069] In various implementations, the electromagnetic simulator module 164 can be configured to generate propagation data 244. In various implementations, the propagation data 244 can include a list of propagation paths (e.g., rays) and / or characteristics of electromagnetic signals propagating along the propagation paths. The characteristics can include relative amplitude, Doppler frequency, time of flight, and / or departure and arrival angles, etc. In various implementations, the electromagnetic simulator module 164 can be configured to generate the propagation data 244 without relying on information about the radar system 108.
[0070] In various implementations, the electromagnetic simulator module 164 can be configured to generate traffic scene data 264 and / or object information data 248. In various implementations, the traffic scene data 246 can include data associated with the simulated environment 212. For example, the traffic scene data 246 can include the number of simulated objects within the simulated environment 212 and / or environmental conditions 224, etc. In various implementations, the object information data 248 can include data associated with the simulated objects within the simulated environment 212. For example, the type of the simulated object, the geometry of the simulated object, and / or characteristics associated with the simulated object (e.g., the position, speed, and / or material composition of the simulated object), etc.
[0071] In various implementations, the radar simulator 104 (e.g., the electromagnetic simulator module 164 and / or the radar simulator module 168) can use the shooting and bouncing ray method based on image theory to simulate wave propagation and scattering from objects. In some instances, the method can be used to calculate the radar cross section (RCS) of an object. The RCS can be associated with a measure of the detectability of the object by the radar system 108. The radar simulator 104 can be configured to discretize the geometry of the object into small patches, generate an acceleration data structure to classify the patches, emit uniformly distributed rays towards the object, apply a ray tracing algorithm to determine the propagation of the rays and the intersection positions between the rays and the object, and / or calculate the scattered field of each ray and at each bounce point using physical optics, and combine the results to determine the RCS of the object, etc.
[0072] Figure 3is a functional block diagram of an example radar simulator module 168 according to the principles of the present disclosure. In various implementations, the radar simulator module 168 can be configured to simulate the movement of an object, including the micro-movement of the object. The object can be associated with Figure 1 the object 116. In response to the object including a human, the radar simulator module 168 can be configured to simulate the physical activities of the human. For example, the radar simulator module 168 can be configured to simulate a human performing: walking, running, jumping, dancing, and / or riding a bicycle, etc.
[0073] In various implementations, the input parameter module 304 can receive environmental description data 236 and / or radar information data 240 from the electromagnetic simulator module 164. The environmental description data 236 can include traffic scene data 246 and / or object information data 248, etc. In various implementations, the input parameter module 304 can receive one or more CAD models from the CAD model database 184 to model the object. In response to the object including a human, the CAD model can be associated with a mesh model that includes a plurality of vertices and / or skeletal information for modeling the human (e.g., the human object 220a).
[0074] In various implementations, the motion identification module 308 can identify the motion of the object at a specific time frame of the simulation. The motion identification module 308 can identify the position of each vertex in the vertices from the CAD model. Each vertex can include a position associated with a three-dimensional coordinate system. For example, the position of the vertex can be defined by coordinates (x, y, z). In various implementations, the motion transformation module 312 can transform all the positions of the vertices and can determine and / or calculate the velocity of each patch on the object. The patch can be associated with different aspects, features, and / or components of the object.
[0075] In various implementations, the ray tracing module 316 can be configured to perform a ray tracing simulation to simulate the wave propagation of a set of rays to the object and the reflection of the rays from the object (e.g., along the propagation path). For example, the ray tracing module 316 can emit the set of rays (e.g., electromagnetic rays) and can trace these rays to simulate the wave propagation and reflection in the simulation environment 212.
[0076] In various implementations, the ray tracing module 316 can be configured to determine the three-dimensional boundaries of an object and / or an image of the object, and calculate an angular occupancy grid relative to the ray source. In some examples, the resolution of the angular grid can be 0.1 degrees. The ray tracing module 316 can be configured to emit uniformly distributed and / or sparse rays towards the object and / or the angular grid occupied by the object, and / or the image of the object. The ray tracing module 316 can be configured to apply a ray tracing algorithm to determine the propagation of the rays, and the intersection positions between the rays and the object, and / or the length of each ray up to a determined number of ray bounces (e.g., 2). The ray tracing module 316 can be configured to calculate the angular ray density of the rays based on the lengths of the rays. Subsequently, the ray tracing module 316 can adaptively emit a set of rays with different angular ray densities towards the object and / or the image of the object. The ray density in a particular direction can be determined by the extent of the object that the rays are likely to hit. Then, a ray tracing process can be performed to determine where the rays hit and where they go.
[0077] In various implementations, the physical optics module 320 can perform physical optics (PO) simulations to simulate the wave scattering of rays. In various implementations, the Doppler frequency shift can be accumulated along the path of the rays (e.g., along the propagation path). In various implementations, the physical optics module 320 can apply the large element physical optics method for each bounce of the rays to calculate the scattered field in the direction returning to the reference point 208 (e.g., directly or indirectly). In various implementations, the Doppler effect module 324 can identify and / or calculate the Doppler shift and / or micro-Doppler shift of each ray. In some examples, the Doppler effect module 324 can accumulate the Doppler frequency shift at each step of the ray bounce.
[0078] In various implementations, the ray clustering module 328 can cluster similar rays. For example, to reduce the complexity of post-signal processing, the ray clustering module 328 can combine rays with similar characteristics based on a clustering algorithm. The characteristics can include the direction and / or angle of the ray, the distance and / or range of the ray, the Doppler shift of the ray, the amplitude and / or intensity of the ray, the polarization of the ray, the frequency of the ray, the time information of the ray, the multistatic information of the ray, the phase information of the ray, the spectral information of the ray, the texture or pattern of the ray, and / or the spatial distribution of the ray, and so on. In various implementations, the output of the ray clustering module 328 can be transmitted to at least one of the radar simulator module 168, the hardware simulator module 172, or the software simulator module 176, such that the output can be applied to a radar frame by simulating a single pulse. For example, the output of the ray clustering module 328 can be transmitted to a radar simulator module that includes a radar model. In various implementations, the output generation module 332 can generate and / or transform various outputs (e.g., motion simulation of an object) for display on the user device 180 (see, for example Figures 11A to 11D ).
[0079] In various implementations, simulating one frame of radar data only requires one simulation instance, and different rays do not have to have the same frequency offset. In the post-processing stage, the information of the rays will be converted into a radar signal with multiple frequencies, chirps (i.e., pulses), and channels. Since different rays can contain different frequency offsets, the final radar signal can exhibit the micro-Doppler effect. Flowchart
[0080] Figure 4 is a flowchart depicting an example micro-Doppler simulation performed by the radar simulator 104 in accordance with the principles of the present disclosure. Control begins at 404. At 404, environmental description data 236 and radar information data 240 from the electromagnetic simulator module 164 can be received at the radar simulator module 168. The environmental description data 236 can be associated with a simulation environment 212 that includes an object. At 408, in response to the object including a human (e.g., human object 220a), the motion of the object can be identified. At 412, in response to the object including a human, the CAD model and motion file of the object can be loaded and initialized. At 416, the position of each vertex of the object can be transformed, and / or the velocity of each patch of the object can be determined and / or calculated. Additional details of loading and initializing the CAD model and motion file, transforming the position, and determining the velocity will be described further in this specification with reference to Figure 5 and described further.
[0081] At 420, ray tracing simulations can be performed via the ray tracing module 316 to simulate wave propagation and reflection. In various implementations, performing the ray tracing simulations can include: emitting a set of rays from a ray source (e.g., from the reference point 208) towards an object; and determining a set of propagation paths of the set of rays from the source to the object (e.g., propagation paths 204-1 and 204-2) and a set of reflection paths of the set of rays from the object to a ray receiver (e.g., back to the reference point 208). At 424, physical optics (PO) simulations can be performed via the physical optics module 320 to simulate wave scattering. In various implementations, performing the physical optics simulations can include determining a set of scattering fields associated with the set of reflection paths of the set of rays. At 428, at least one of the Doppler shift and the micro-Doppler shift of each ray can be determined and / or calculated via the Doppler effect module 324. At 432, ray clustering can be performed via the ray clustering module 328 to reduce the complexity of post-signal processing. At 436, various outputs can be generated and transformed via the output generation module 332 for display on the user device 180. Then, the control ends. Additional details of the output will be described further in this specification with reference to Figures 11A to 11D be further described.
[0082] Figure 5 is a flowchart depicting an example process of loading and initializing a CAD model and a motion file via the radar simulator module 168 in accordance with the principles of the present disclosure. The control starts at 504. At 504, a CAD model can be loaded from the CAD model database 184. The CAD model can be associated with an object. At 508, the vertices of the mesh of the object can be linked to the bones defined in the CAD model. At 512, a motion file can be loaded from the motion file database 188. The motion file can specify the motion of all bones for all time frames in a period of time. At 516, the bones of the motion file can be mapped to the bones of the CAD model, for example, through a redirection function.
[0083] At 520, a transformation matrix can be initialized. The transformation matrix can be used to transform the position and orientation of all bones with given motion parameters, such as the rotation angles and positions of each joint of the skeleton of the object (e.g., defined by the bones). The position of each vertex can be determined by the following formula: where, v j ′ represents the position of the j-th vertex in the current pose, and v j is the position of the j-th vertex in the rest pose of the object. is the 4×4 inverse transformation matrix of the i-th bone in the rest pose, T i represents the transformation matrix of the i-th bone in the current pose of the object, and wij represents a weight, and ∑ i w ij = 1.
[0084] The operation will transfer the position of the j-th vertex from global coordinates to the local coordinates of the i-th bone in the resting pose, and if the rotation angles of all bones in the resting pose are 0 (which is the most common case), then the transformation matrix can be a translation matrix that moves the position of v j Thus: where O i represents the reference position of the i-th bone.
[0085] The overall transformation matrix T of the i-th bone in the current pose i is calculated by multiplying all the transformation matrices from the i-th bone and its parent node to the root bone (the root bone usually represents the hip of the object): where M i represents the transformation matrix of the i-th bone relative to its parent bone. In a transformation, M i can be described by: M i = M it M iz M ix M iy where M it represents a translation matrix, which is given by: where T x 、T y and T z are the positions of the reference point of the i-th bone in the resting pose relative to the reference point of its parent bone. M ix 、M iy and M iz are rotation matrices along the x, y, and z axes respectively.
[0086] Regarding the simulation of the walking motion and / or jogging motion of an object, the motion can be cyclic and thus only one motion cycle is required to simulate the motion. The control proceeds to 524.
[0087] At 524, identify the time period of one cycle of the motion in terms of both time and distance. In various implementations, the time period of one cycle can be identified from a motion file. For example, the number of frames N at which the motion starts to repeat fCounting is performed. In response to identifying a period of time, a distance can be identified. For example, the position between a reference point of a CAD model (e.g., the hip of an object) at frame j and frame j+N f can be considered as the distance of one period of an object with a given height. In various implementations, the default average speed of the movement is calculated by dividing the distance within one movement period by the time. Then, the control ends.
[0088] Figure 6 is a flowchart depicting an example process of a radar simulator module 168 loading environmental response data 236 (e.g., traffic scene data 246) at a given time frame according to the principles of the present disclosure. The control starts at 604. At 604, during the simulation for a specific time frame, information associated with an object can be received, including position, speed, orientation, object type, and movement type. At 608, the control determines whether the object is walking or running. If the object is neither walking nor running, the control proceeds to 612, where a specified motion file (e.g., a motion other than walking or running) is selected, and then the control proceeds to 616. If the object is walking or running, at 608, the control proceeds to 620.
[0089] At 620, the control determines whether the speed of the object is greater than a determined threshold (such as 1.8 m / s). If the speed of the object is not greater than the determined threshold, the control selects a walking motion file at 624 and then proceeds to 616. Otherwise, if at 620 the speed of the object is greater than the predetermined threshold, the control selects a running motion file at 628 and proceeds to 616.
[0090] At 616, the control modifies the mesh of the object and calculates the rate (i.e., speed) of each patch of the object. For example, after selecting a motion model, the control determines which frame of the motion should be used based on the timestamp at the start of the simulation and the initial frame index. The frame rate of the motion can be determined by both the set speed and the default speed of the object with the motion model and / or motion file. For example, for a 1.8-meter-tall person, the default speed of the walking motion can be 1.2 m / s, and the default frame rate of the motion can be 120 fps (frames per second). If the speed is set to 1.6 m / s, the control changes the frame rate of the motion to 160 fps, which means that at one radar frame, the frame index of the motion can be set to F i and the next radar frame can be set 100 ms later. The control can start from F i +16 frames instead of F i+12 frames start to apply motion. Next, the control can transform the positions of all vertices of the CAD model according to the motion file and estimate the velocities of all patches at this frame. The velocity estimation of the j-th patch at the i-th frame can be achieved through the following steps: 1) Since the positions of all vertices at the i-th frame are known, the control obtains the center position of the j-th patch as the average position of all vertices of this patch. 2) Similarly, the control can calculate the positions of the j-th patch at adjacent frames and 3) The velocity of the j-th patch at the i-th frame can then be evaluated by the following formula:
[0091] At 632, the control converts all geometric shape information and / or data of the object at a given frame into data compatible with further processing via the radar simulator 168. At 636, the control generates one or more acceleration data structures, which are used to perform ray tracing simulation via the ray tracing module 316. In various implementations, for objects without micro-Doppler characteristics, the acceleration data structure can be pre-computed before the simulation process because their geometries will not change during the simulation. However, since the geometries of the objects change between different frames, their acceleration data structures will be updated at each frame. At 640, the control can copy the data (e.g., the acceleration data structure) to the graphics processing unit (GPU) of the simulator 104 for performing ray tracing simulation. Then, the control ends.
[0092] Figure 7 is a flowchart depicting an example ray tracing process performed by the ray tracing module 316 according to the principles of the present disclosure. The control starts at 704. At 704, the control receives a ray. At 708, the control queries the object-level data structure tree (e.g., the K-dimensional (KD) tree) to identify the object hit by the ray. At 712, the control determines whether the hit object is a human. If the hit object is not a human, the control performs a ray tracing simulation associated with the local coordinate system at 716. If the hit object is a human at 712, the control performs a ray tracing simulation associated with the global coordinate system at 720. Then, the control ends.
[0093] Figure 8is a flowchart depicting an example process for computing the scattered field of a computational ray and Doppler frequency shift and / or micro-Doppler frequency shift in accordance with the principles of the present disclosure. Control begins at 804. At 804, control receives one or more ray hits of an object. At 808, control computes an equivalent surface current of the ray. For example, for a particular bounce of the ray, control may compute the equivalent surface current and the scattered field based on the scattering direction of the ray. At 812, control computes the scattered field (Es) for all return paths (e.g., returning to reference point 208) to the receiver. In various implementations, after a ray tracing process, each surface area (e.g., a face of the object) where a ray hits will generate an equivalent surface current based on boundary conditions, and the equivalent surface current will radiate the scattered field back to the receiver. Depending on the traffic scenario and / or simulation environment 212, there may be many paths for the scattered field to reach the receiver. In various implementations, according to Huygens' principle, the scattered field from a current source can be determined by the following equation: where and represent the electric surface current and the magnetic surface current, k is the wave number in free space, is the dyadic idempotent factor, and R is the length of the vector from the source point to the observation point :
[0094] If the distance R is much greater than the wavelength, i.e., kR >> 1, then the far-field approximation can be applied to:
[0095] The surface currents and are defined as: where and are the incident electric field and magnetic field, respectively, is the tangential vector on the surface, is defined as is the unit vector of the incident direction, is the normal vector of the surface, R TM and R TE are the Fresnel reflection coefficients of the surface.
[0096] The Fresnel reflection coefficients R TM and R TE are given by the following equations: R TE=(η2cosθ1 - η1cosθ2) / (η2cosθ1 + η1cosθ2), R TM =(η1cosθ1 - η2cosθ2) / (η1cosθ1 + η2cosθ2). Where η1 and η2 are the characteristic impedances of air and the target, and θ1 and θ2 are the incident angle and the refraction angle with respect to the target surface.
[0097] In various implementations, for a metallic material, ε2 is very large, η2 becomes negligible, and R TE ≈ -1, R TE ≈ 1. Then And The equation can be further simplified to:
[0098] If the radar is in the far - field of the polygon region s′, the large - element PO can be applied. The surface current can then be rewritten as: Where represents the position of the transmitter. The scattered field then becomes: Where is the component in the direction, And is the component on the surface of the patch, l represents the number of sides of the polygon. is the unit tangent vector perpendicular to on the surface, represents the side vector of the polygon.
[0099] In various implementations, the Doppler frequency shift and / or the micro - Doppler frequency shift can be related to the relative radial velocity of the strike point on the object. In various implementations, an object including the micro - Doppler effect can have different velocities for different points on the object. Thus, the patch velocity can be used as a parameter to calculate the Doppler frequency shift and / or the micro - Doppler shift. For an object that does not include the micro - Doppler effect, the group velocity of the object can be used as a parameter to calculate the Doppler frequency shift.
[0100] At 816, the control determines whether the hit object is human. If the hit object is not human, the control selects the target speed of the object at 820 to be used as the hit speed, and then the control proceeds to 828. If the hit object at 816 is human, the control selects the patch speed as the hit speed at 824, and then proceeds to 828. At 828, the control calculates the Doppler frequency shift and / or micro-Doppler frequency shift based on the path of the ray (e.g., along one of propagation paths 204-1 or 204-2). Additional details of calculating the Doppler frequency shift and / or micro-Doppler frequency shift will be described with reference to Figure 10 Further description. Example CAD model and motion file
[0101] Figure 9A is a graphical representation of an example CAD model 904 of an object according to the principles of the present disclosure. In this illustration, an example CAD model of a human object 220a is presented. The human object 220a is defined by a set of vertices 912 and a set of bones 916. In various implementations, the vertices 912 are connected via the bones 916.
[0102] Figure 9B is a graphical representation of an example motion file 920 associated with the human object 220a. The motion file 920 is associated with the walking motion of the object. Thus, the bones 916 of the human object 220a are moved via the motion file 920 to simulate the walking motion of the human object 220a. Example Doppler frequency shift
[0103] Figure 10 is a graphical representation of the accumulation of an example Doppler frequency shift and / or micro-Doppler frequency shift along the path of a ray (e.g., along one of propagation paths 204-1 or 204-2) according to the principles of the present disclosure. In various implementations, the Doppler frequency shift and / or micro-Doppler frequency shift can follow the chain rule based on the ray path. The Doppler frequency shift and / or micro-Doppler frequency shift can be represented by: Example output:
[0104] Figures 11A to 11XIt is a graphical representation of an example output generated by the output generation module 332 in accordance with the principles of the present disclosure. In various implementations, the output can include dynamically clustered electromagnetic rays. In some examples, the rays can vary for different time frames. At each frame, each ray can include unique time-of-flight, Doppler frequency shift, arrival detection, departure detection, and / or complex electromagnetic scattering response, etc. The electromagnetic scattering response can be related to the radar cross section of the surface of the target irradiated by the ray. In various implementations, the output can represent the relative radial velocity (m / s) of each ray with respect to the radar. The relative velocity can be proportional to the Doppler frequency shift of the corresponding ray.
[0105] Reference Figures 11A to 11C , shows outputs 1104A to 1104C (e.g., motion simulations) associated with a walking object (e.g., human object 220a). The output includes simulations of primary motion (e.g., movement of the object's torso) and secondary motion (e.g., movement of the object's head, arms, hands, legs, and feet) to simulate the walking motion of the object. The output can include radar cross section (RCS) data, and the output can include units in decibels per square meter (dBsm).
[0106] Now reference Figures 11D to 11F , shows outputs 1108A to 1108C (e.g., motion simulations) associated with a running object (e.g., human object 220a). The output includes simulations of primary motion (e.g., movement of the object's torso) and secondary motion (e.g., movement of the object's head, arms, hands, legs, and feet) to simulate the running motion of the object. The output can include radar cross section (RCS) data, and the output can include units in decibels per square meter (dBsm).
[0107] Reference Figures 11G to 11I , shows outputs 1112A to 1112C (e.g., motion simulations) associated with a dancing object (e.g., human object 220a). The output includes simulations of primary motion (e.g., movement of the object's torso) and secondary motion (e.g., movement of the object's head, arms, hands, legs, and feet) to simulate the dancing motion of the object. The output can include radar cross section (RCS) data, and the output can include units in decibels per square meter (dBsm).
[0108] Reference Figures 11J to 11L, shows outputs 1116A to 1116C (e.g., motion simulations) associated with a jumping object (e.g., human object 220a). The outputs include simulations of primary motion (e.g., movement of the object's torso) and secondary motion (e.g., movement of the object's head, arms, hands, legs, and feet) to simulate the jumping motion of the object. The outputs may include radar cross section (RCS) data, and the outputs may include units in decibels per square meter (dBsm).
[0109] Reference Figures 11M to 11O , shows outputs 1120A to 1120C (e.g., motion simulations) associated with a walking object (e.g., human object 220a). The outputs include simulations of primary motion (e.g., movement of the object's torso) and secondary motion (e.g., movement of the object's head, arms, hands, legs, and feet) to simulate the walking motion of the object. The outputs may include Doppler range rate results.
[0110] Reference Figures 11P to 11R , shows outputs 1124A to 1124C (e.g., motion simulations) associated with a running object (e.g., human object 220a). The outputs include simulations of primary motion (e.g., movement of the object's torso) and secondary motion (e.g., movement of the object's head, arms, hands, legs, and feet) to simulate the running motion of the object. The outputs may include Doppler range rate results.
[0111] Reference Figures 11S to 11U , shows outputs 1128A to 1128C (e.g., motion simulations) associated with a dancing object (e.g., human object 220a). The outputs include simulations of primary motion (e.g., movement of the object's torso) and secondary motion (e.g., movement of the object's head, arms, hands, legs, and feet) to simulate the dancing motion of the object. The outputs may include Doppler range rate results.
[0112] Reference Figures 11V to 11X , shows outputs 1132A to 1132C (e.g., motion simulations) associated with a jumping object (e.g., human object 220a). The outputs include simulations of primary motion (e.g., movement of the object's torso) and secondary motion (e.g., movement of the object's head, arms, hands, legs, and feet) to simulate the jumping motion of the object. The outputs may include Doppler range rate results.
[0113] Figure 12A and Figure 12Bis a graphical representation of an example simulated radar output generated by the output generation module 332 in accordance with the principles of the present disclosure. The example output may include compressed data cube (CDC) data and may use a stepped frequency waveform in a radar model. In some examples, the CDC data may represent radar detections in the range-Doppler domain after signal processing. The example output is associated with an object (e.g., a human) moving at the same rate (e.g., 1.2 m / s) and a radar, and the radar is observing the object from the back. Refer to Figure 12A , which shows an output 1204 without a micro-Doppler effect. Refer to Figure 12B , which shows an output 1208 with a micro-Doppler effect.
[0114] Figure 13A and Figure 13B is a graphical representation of an example simulated radar output generated by the output generation module 332 in accordance with the principles of the present disclosure. The example output may include compressed data cube (CDC) data and conventional waveform results (e.g., Doppler bin = 0.1394 m / s and range bin = 0.5762 m). The example output is associated with an object (e.g., a human) moving at an average rate (e.g., 1.2 m / s). Refer to Figure 13A , which shows an output 1204 without a micro-Doppler effect. Refer to Figure 13B , which shows an output 1208 with a micro-Doppler effect. Conclusion
[0115] The foregoing description is merely illustrative in nature and is in no way intended to limit the present disclosure, its application, or uses. The broad teachings of the present disclosure may be implemented in a variety of forms. Thus, while the present disclosure includes specific examples, the true scope of the present disclosure should not be so limited since other modifications will become apparent upon study of the drawings, the specification, and the following claims. In the written detailed description and the claims, one or more steps within a method may be executed in a different order (or simultaneously) without changing the principles of the present disclosure. Similarly, one or more instructions stored in a non-transitory computer-readable medium may be executed in a different order (or simultaneously) without changing the principles of the present disclosure. Unless otherwise specified, the numbering or other labeling of instructions or method steps is for convenience of reference and is not intended to indicate a fixed order.
[0116] In addition, while each of the embodiments above has been described as having certain features, any one or more of those features described with respect to any embodiment of the present disclosure may be implemented in and / or combined with the features of any of the other embodiments even if not explicitly described in that combination. In other words, the described embodiments are not mutually exclusive, and permutations of one or more of the embodiments with each other are still within the scope of the present disclosure.
[0117] A variety of terms are used to describe the spatial and functional relationships between elements (e.g., between modules, circuit elements, semiconductor layers, etc.), including terms such as "connected", "joined", "coupled", "adjacent", "next to", "on", "above", "below", and "disposed". Unless explicitly described as "direct", when the relationship between a first element and a second element is described in the above disclosure, the relationship encompasses both a direct relationship where no other intermediate element exists between the first element and the second element and an indirect relationship where one or more intermediate elements exist between the first element and the second element.
[0118] The term "set" does not necessarily exclude the empty set. In other words, in some cases, a "set" can have zero elements. The term "non - empty set" can be used to indicate the exclusion of the empty set - in other words, a non - empty set will always have one or more elements. The term "subset" does not necessarily require a proper subset. In other words, a "subset" of a first set can have the same scope as the first set (i.e., be equal to the first set). Further, the term "subset" does not necessarily exclude the empty set, and in some cases, a "subset" can have zero elements.
[0119] In the figures, the direction of an arrow as indicated by the arrowhead generally shows the flow of information of interest in the illustration (such as data or instructions). For example, when element A and element B exchange various information, but the information transmitted from element A to element B is relevant to the illustration, the arrow can point from element A to element B. This one - way arrow does not mean that no other information is transmitted from element B to element A. Additionally, for the information sent from element A to element B, element B can send a request for that information or receive an acknowledgment to element A.
[0120] In this application, including the following definitions, the term "module" can be replaced with the term "controller" or the term "circuit". In this application, the term "controller" can be replaced with the term "module". The term "module" can refer to the following, a part of the following, or include the following: application - specific integrated circuit (ASIC); digital, analog, or mixed analog / digital discrete circuit; digital, analog, or mixed analog / digital integrated circuit; combinational logic circuit; field - programmable gate array (FPGA); processor hardware that executes code (shared, dedicated, or a group); memory hardware that stores code executed by the processor hardware (shared, dedicated, or a group); other suitable hardware components that provide the said function; or a combination of some or all of the above, such as in a system - on - chip.
[0121] The module may include one or more interface circuits. In some examples, the (multiple) interface circuits may implement a wired or wireless interface for connecting to a local area network (LAN) or a wireless personal area network (WPAN). Examples of a LAN are Institute of Electrical and Electronics Engineers (IEEE) Standard 802.11-2020 (also known as the WIFI wireless network standard) and IEEE Standard 802.3-2018 (also known as the ETHERNET wired network standard). Examples of a WPAN are IEEE Standard 802.15.4 (including the ZIGBEE standard from the ZigBee Alliance) and the BLUETOOTH wireless network standard from the Bluetooth Special Interest Group (SIG) (including core specification versions 3.0, 4.0, 4.1, 4.2, 5.0, and 5.1 from the Bluetooth SIG).
[0122] The module may use the (multiple) interface circuits to communicate with other modules. Although the module may be depicted as logically communicating directly with other modules in this disclosure, in various implementations the module may actually communicate via a communication system. The communication system includes physical and / or virtual network equipment, such as hubs, switches, routers, and gateways. In some implementations, the communication system is connected to or traverses a wide area network (WAN), such as the Internet. For example, the communication system may include multiple LANs connected to each other via the Internet or point-to-point leased lines using technologies including Multiprotocol Label Switching (MPLS) and Virtual Private Network (VPN).
[0123] In various embodiments, the functions of the module may be distributed among multiple modules connected via a communication system. For example, multiple modules may implement the same function distributed by a load balancing system. In a further example, the functions of the module may be divided between a server (also known as remote or cloud) module and a client (or user) module. For example, the client module may include a native or network application that executes on a client device and communicates with the server module over a network.
[0124] Some or all of the hardware features of the module may be defined using a hardware description language, such as IEEE Standard 1364-2005 (commonly known as "Verilog") and IEEE Standard 1076-2008 (commonly known as "VHDL"). The hardware description language can be used to fabricate and / or program hardware circuits. In some implementations, some or all of the features of the module may be defined by a language, such as IEEE 1666-2005 (commonly known as "SystemC"), which covers both code (as described below) and hardware description.
[0125] As used above, the term code can include software, firmware, and / or microcode, and can refer to programs, routines, functions, classes, data structures, and / or objects. Shared processor hardware encompasses a single microprocessor that executes some or all of the code from multiple modules. Group processor hardware encompasses microprocessors that, in combination with additional microprocessors, execute some or all of the code from one or more modules. References to multiple microprocessors include multiple microprocessors on discrete chips, multiple microprocessors on a single chip, multiple cores of a single microprocessor, multiple threads of a single microprocessor, or combinations of the above.
[0126] Memory hardware can also store data either with or separate from the code. Shared memory hardware encompasses a single memory device that stores some or all of the code from multiple modules. An example of shared memory hardware can be a level 1 cache on or near a microprocessor die that can store code from multiple modules. Another example of shared memory hardware can be a persistent storage device, such as a solid state drive (SSD) or a magnetic hard disk drive (HDD), that can store code from multiple modules. Group memory hardware encompasses memory devices that, in combination with other memory devices, store some or all of the code from one or more modules. An example of group memory hardware is a storage area network (SAN) that can store the code of a particular module across multiple physical devices. Another example of group memory hardware is the random access memory of each server in a collection of servers that, when combined, store the code of a particular module. The term "memory hardware" is a subset of the term "computer-readable medium".
[0127] The devices and methods described in this application can be implemented in part or in whole by a special-purpose computer created by configuring a general-purpose computer to execute one or more specific functions embodied in a computer program. Such devices and methods can be described as computerized devices and computerized methods. The above functional blocks and flowchart elements serve as software specifications that can be converted into a computer program by the routine work of a skilled technician or programmer.
[0128] A computer program includes processor-executable instructions stored on at least one non-transitory computer-readable medium. A computer program can also include or rely on stored data. A computer program can include a basic input / output system (BIOS) that interacts with the hardware of a special-purpose computer, device drivers that interact with specific devices of a special-purpose computer, one or more operating systems, user applications, background services, background applications, etc.
[0129] A computer program can include: (i) descriptive text to be parsed, such as HTML (HyperText Markup Language), XML (eXtensible Markup Language), or JSON (JavaScript Object Notation), (ii) assembly code, (iii) object code generated from source code by a compiler, (iv) source code for execution by an interpreter, (v) source code for compilation and execution by a just-in-time compiler, etc. By way of example only, source code can be written in the syntax of languages including C, C++, C#, Objective-C, Swift, Haskell, Go, SQL, R, Lisp, Fortran, Perl, Pascal, Curl, OCaml, HTML5 (the fifth edition of the HyperText Markup Language), Ada, ASP (Active Server Pages), PHP (PHP: Hypertext Preprocessor), Scala, Eiffel, Smalltalk, Erlang, Ruby, Visual Lua, MATLAB, SIMULINK, and the like.
[0130] The term “non-transitory computer-readable medium” does not cover transitory electrical or electromagnetic signals propagated through a medium, such as on a carrier wave. Non-limiting examples of non-transitory computer-readable media are: non-volatile memory circuits (such as flash memory circuits, erasable programmable read-only memory circuits, or mask read-only memory circuits), volatile memory circuits (such as static random access memory circuits or dynamic random access memory circuits), magnetic storage media (such as analog or digital magnetic tape or hard disk drives), and optical storage media (such as CDs, DVDs, or Blu-ray discs).
[0131] The phrase “at least one of A, B, and C” should be construed to mean the logic (A or B or C) using the non-exclusive logical “or”, and should not be construed to mean “at least one of A, at least one of B, and at least one of C”. The phrase “at least one of A, B, or C” should be construed to mean the logic (A or B or C) using the non-exclusive logical “or”.
Claims
1. A computer-implemented method, the method comprising: Receiving environment description data associated with a simulation environment, the simulation environment including an object; Identifying an object type of the object; In response to the object type being a human object type, then: Identifying a motion type associated with the object; Loading a CAD model associated with the object; Loading a motion file associated with the motion type; And Mapping the CAD model to the motion file; Performing a ray tracing simulation, including: Emitting a set of rays from a ray source towards the object; and Determining a set of propagation paths of the set of rays from the ray source to the object, and a set of reflection paths of the set of rays from the object to a ray receiver; Performing a physical optics simulation to determine a set of scattering fields associated with the set of reflection paths of the set of rays; Calculating at least one of a Doppler shift and a micro-Doppler shift for each ray in the set of rays; Performing ray clustering, the ray clustering including combining rays in the set of rays that include one or more similar characteristics; and Transforming the simulation output for display on a user device, wherein: The simulation output includes dynamic clustered electromagnetic rays representing the motion type of the object, and The dynamic clustered electromagnetic rays represent the main motion of the object and a set of micro-motions of the object.
2. The computer-implemented method according to claim 1, wherein The object type is at least one of the following: human object type, building object type, vehicle object type, animal object type, and tree object type.
3. The computer-implemented method according to claim 1, wherein: The motion type is associated with a physical activity of the object; and The physical activity is associated with one of the following: walking, running, dancing, jumping, and cycling.
4. The computer-implemented method according to claim 1, wherein: Loading the CAD model associated with the object includes selecting the CAD model from a CAD model database; and Loading the motion file associated with the motion type includes selecting the motion file from a motion file database.
5. The computer-implemented method according to claim 1, wherein, Identifying the motion type associated with the object includes: Determining a speed of the object; In response to the speed being greater than a determined threshold, selecting a running motion type as the motion type; and In response to the speed being less than the determined threshold, selecting a walking motion type as the motion type.
6. The computer-implemented method according to claim 1, further comprising: Modifying a mesh of the object; Calculating a speed of each patch of the object; Generating an acceleration data structure; And Copying the acceleration data structure to a graphics processing unit associated with performing the ray tracing simulation.
7. The computer-implemented method according to claim 1, wherein: The ray source and the ray receiver are associated with a reference point; and The reference point is based on a radar system of a vehicle.
8. The computer-implemented method according to claim 1, wherein Mapping the CAD model to the motion file includes: Linking vertices of the mesh of the object to a first set of bones of the CAD model; Map the second bone set of the motion file to the first bone set; Initialize the transformation matrix; and Identify a period of time for the time and distance of the motion file.
9. The computer-implemented method according to claim 1, further comprising: In response to the ray receiver receiving a ray in the ray set that hits the object, query the object tree data structure to identify the object type of the object.
10. The computer-implemented method according to claim 1, wherein: In response to the object type being the human object type, perform the ray tracing simulation in association with the global coordinate system; and In response to the object type not being the human object type, perform the ray tracing simulation in association with the local coordinate system.
11. A computer system, the computer system comprising: Memory hardware configured to store instructions; And Processor hardware configured to execute the instructions, wherein the instructions include: Receive environment description data associated with a simulation environment, the simulation environment including an object; Identify the object type of the object; In response to the object type being the human object type, then: Identify the motion type associated with the object; Load the CAD model associated with the object; Load the motion file associated with the motion type; and Map the CAD model to the motion file; Perform a ray tracing simulation, the ray tracing simulation including: Emit a set of rays from a ray source towards the object; and Determine a set of propagation paths of the ray set from the ray source to the object, And a set of reflection paths of the ray set from the object to a ray receiver; Perform a physical optics simulation to determine a set of scattered fields associated with the set of reflection paths of the ray set; Calculate at least one of the Doppler shift and the micro-Doppler shift of each ray in the ray set; Perform ray clustering, the ray clustering including combining rays in the ray set that include one or more similar characteristics; and Transform the simulation output for display on a user device, wherein: The simulation output includes dynamic clustered electromagnetic rays representing the motion type of the object, and The dynamic clustered electromagnetic rays represent the main motion of the object and a set of micro-motions of the object.
12. The computer system according to claim 11, wherein The object type is at least one of the following: human object type, building object type, vehicle object type, animal object type, and tree object type.
13. The computer system according to claim 11, wherein: The motion type is associated with the physical activity of the object; and The physical activity is associated with one of the following: walking, running, dancing, jumping, and cycling.
14. The computer system according to claim 11, wherein: Loading the CAD model associated with the object includes selecting the CAD model from a CAD model database; and Loading the motion file associated with the motion type includes selecting the motion file from a motion file database.
15. The computer system according to claim 11, wherein Identifying the motion type associated with the object includes: Determine the speed of the object; In response to the speed being greater than a determined threshold, select a running exercise type as the exercise type; and In response to the speed being less than the determined threshold, select a walking exercise type as the exercise type.
16. The computer system according to claim 11, wherein The instructions include: Modify the mesh of the object; Calculate the speed of each patch of the object; Generate an acceleration data structure; and Copy the acceleration data structure to a graphics processing unit associated with performing the ray tracing simulation.
17. The computer system according to claim 11, wherein: The ray source and the ray receiver are associated with a reference point; and The reference point is based on a radar system of a vehicle.
18. The computer system according to claim 11, wherein, Mapping the CAD model to the motion file includes: Link the vertices of the mesh of the object to a first set of bones of the CAD model; Map a second set of bones of the motion file to the first set of bones; Initialize a transformation matrix; and Identify a time period of a cycle of time and distance of the motion file.
19. The computer system according to claim 11, wherein, The instructions include: In response to the ray receiver receiving a ray in the ray set that hits the object, query an object tree data structure to identify the object type of the object.
20. The computer system according to claim 11, wherein: In response to the object type being the human object type, perform the ray tracing simulation in association with a global coordinate system; and In response to the object type not being the human object type, perform the ray tracing simulation in association with a local coordinate system.