WO2023149952A1 - Générateur d'état de corps d'objet en temps réel, à haute fidélité et à modélisation commandée par des données - Google Patents

Générateur d'état de corps d'objet en temps réel, à haute fidélité et à modélisation commandée par des données Download PDF

Info

Publication number
WO2023149952A1
WO2023149952A1 PCT/US2022/052488 US2022052488W WO2023149952A1 WO 2023149952 A1 WO2023149952 A1 WO 2023149952A1 US 2022052488 W US2022052488 W US 2022052488W WO 2023149952 A1 WO2023149952 A1 WO 2023149952A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
tick
commands
data
rigid body
Prior art date
Application number
PCT/US2022/052488
Other languages
English (en)
Inventor
Fabio Raffaele Croce
Daniel Forrest Higgins
Original Assignee
Microsoft Technology Licensing, Llc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/852,935 external-priority patent/US20230245584A1/en
Application filed by Microsoft Technology Licensing, Llc. filed Critical Microsoft Technology Licensing, Llc.
Publication of WO2023149952A1 publication Critical patent/WO2023149952A1/fr

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes
    • G09B9/02Simulators for teaching or training purposes for teaching control of vehicles or other craft
    • G09B9/08Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
    • G09B9/24Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer including display or recording of simulated flight path
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes
    • G09B9/02Simulators for teaching or training purposes for teaching control of vehicles or other craft
    • G09B9/08Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer

Definitions

  • determining and updating movement (e.g., positioning and directions) of an object is a critical task in simulating motion of the object. Accordingly there has been a need to improve accuracy while also enabling real-time processing of movement of objects. It is with respect to these and other general considerations that the aspects disclosed herein have been made. Also, although relatively specific problems may be discussed, it should be understood that the examples should not be limited to solving the specific problems identified in the background or elsewhere in this disclosure. SUMMARY As described further herein, there are several challenges for simulating movement of objects. Definition of rigid body, local and global positioning, incorporating impacts of external force into the movement, and errors caused by estimating a trajectory based on interpolation.
  • the present disclosure relates to simulating movement of an object (e.g., a rigid body) along a trajectory as specified by input.
  • the object includes an aircraft, a car, and the like.
  • the disclosed technology receives customer data that is associated with an object.
  • the customer data includes a mass, an inertia tensor, and force/moment co-efficient associated with a particular model of an aircraft.
  • the disclosed technology generates a rigid body model based on the customer data.
  • the rigid body model includes a combination of three rotational data based on Euler angles (e.g., 312 Intrinsic Euler) and three translational data (e.g., x, y, and z) which together compose a Six Degrees of Freedom dynamics system with inertial properties.
  • the rigid body includes customizable external force (e.g., Newton-Euler Body Equations of Motion).
  • the rigid body further indicates a constant inertial tensor for constant inversion calculation.
  • the present disclosure receives input command (e.g., a velocity of an object, an altitude, heading, and time tick at a particular time (e.g., i-th time tick).
  • the disclosed technology determines position, velocity, and acceleration of the object (e.g., the aircraft) at the time-tick.
  • a tracking controller based on nonlinear inversion dynamics (NDI) formulation, generates an angle of attack (AoA), sideslip, roll data, and the body forces (thrust, lift, drag, and local weight) of a rigid body based on a set of input velocity, altitude, and heading of the rigid body.
  • a “slow rotational dynamics” NDI controller generates angular rate commands (e.g., Angular velocities P, R, Q) based on the AoA, the sideslip, and roll data.
  • a “fast rotation dynamics” NDI controller generates moment commands (e.g., Roll, Pitch, and Yaw) based on the angular rate commands.
  • the disclosed technology determines a body state at the time-tick.
  • the body state includes a position, a velocity, and acceleration of the object (e.g., an aircraft) at the specified time.
  • the disclosed technology includes a real-time strategy (RTS) for formulating rotation using the 312 Intrinsic Euler as the present disclosure converts traditional reference systems and angles into the 312 Intrinsic Euler.
  • RTS real-time strategy
  • the disclosed technology uses an Equations of Motion (EOM) expressed for a body frame, defining forces and inertia and quaternion orientation.
  • EOM Equations of Motion
  • coordinates associated with RTS may be based on, but not limited to, a Y forward, Z up coordinate system.
  • physics refers to physical aspects of the object including motion dynamics of the object and effects of external forces (e.g., wind) upon the object.
  • Physical aspects of an object may include but not limited to position, velocity, acceleration, altitude information, angular rate, moment, and object body forces.
  • FIG.1 illustrates an overview of an example system implementing a physics simulator accordance with aspects of the present disclosure.
  • FIG.2 illustrates an overview of an example rigid body data model in accordance with aspects of the present disclosure.
  • FIG.3 illustrates an overview of an example body data model including rotation and rigid body data in accordance with aspects of the present disclosure.
  • FIG. 4 illustrates an example method for iterative methods for approximating body data in accordance with aspects of the present disclosure.
  • FIG.5 illustrates an example customer data in accordance with aspects of the present disclosure.
  • FIG. 6 illustrates an example method for simulating physics of an object in accordance with aspects of the present disclosure.
  • FIG.7 is a block diagram illustrating example physical components of a computing device with which aspects of the disclosure may be practiced.
  • FIG.8A is a simplified diagram of a mobile computing device with which aspects of the present disclosure may be practiced.
  • FIG.8B is another simplified block diagram of a mobile computing device with which aspects of the present disclosure may be practiced.
  • DETAILED DESCRIPTION Various aspects of the disclosure are described more fully below with reference to the accompanying drawings, which form a part hereof, and which show specific example aspects.
  • aspects of the disclosure may be implemented in many different ways and should not be construed as limited to the aspects set forth herein; rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the aspects to those skilled in the art.
  • Practicing aspects may be as methods, systems, or devices. Accordingly, aspects may take the form of a hardware implementation, an entirely software implementation or an implementation combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
  • This Detailed Description section of Specification references the following document as an Appendix: “Mathematics of the Physics Engine.”
  • the present disclosure relates to simulating movement of an object (e.g., a rigid body) along a trajectory as specified by input.
  • the object includes an aircraft, a car, and the like.
  • the disclosed technology generates a rigid body model based on sets of customer data that represent the object.
  • the customer data may include a set of exemplary data associated with a type of an object, including a mass, an inertia tensor, and force/moment co-efficient associated with the type of the object.
  • a type object as represented by the customer data may be a particular model of an aircraft (e.g., Airbus A320).
  • the rigid body model includes a combination of three rotational data of the object expressed in Euler angles (e.g., 312 Intrinsic Euler) and three translational data of the object (e.g., x, y, z) composing a Six Degrees of Freedom dynamics system with inertial properties associated with the object.
  • the rigid body data accommodate data that represent customizable external force (e.g., Newton-Euler Body Equations of Motion).
  • the rigid body model further indicates a constant inertial tensor for constant inversion calculation.
  • FIG.1 illustrates an overview of an example physics simulation system 100 in which a motion of a three-dimensional object may be implemented in accordance with the aspects of the present disclosure.
  • the example physics simulation system 100 includes input 101, an input receiver 102, an NDI tracking controller 104, an NDI slow rotational dynamics controller 106, an NDI fast rotational dynamics controller 108, a rigid body model 110, and a display/transmitter 114.
  • input 101 includes global position of the object, global linear velocity of the object, and orientation of the object.
  • the input receiver 102 receives input data associated with simulating physical aspects of an object.
  • the input receiver 102 (ControlLawD) may receive input data from an artificial intelligence processor that generates a trajectory data based on a predefined and/or a predicted set of data for simulating a motion of the object.
  • the input receiver 102 may receive input data as a command for generating a body state at a specific time-tick.
  • the input receiver 102 provides data including a velocity 120, an altitude 122, a heading 124 of the object, and a time-tick 126.
  • the velocity may represent a linear velocity of the object (e.g., an aircraft flying at Mach 2.0).
  • the altitude 122 may indicate an altitude of the flying object at a particular time (e.g., at 10,000 meters).
  • the heading 124 may indicate a heading direction of the object (e.g., North).
  • the time-tick 126 specifies a time tick (e.g., a time instance and/or i-th time) of the physical aspects (e.g., physics) of the object in motion.
  • a time tick e.g., a time instance and/or i-th time
  • an interval of the time- tick may be 1/30 second (e.g., thirty time ticks per second).
  • the example physics simulation system 100 may generate a body state of an object for a given time-tick based on a given set of the velocity 120, the altitude 122, the heading 124 and the current state of the rigid body model 110.
  • the NDI tracking controller 104 (AirplaneControllerD) determines attitude commands associated with the object based on a combination of input, the velocity 120, the altitude, the heading 124, and the time-tick 125.
  • the attitude commands as output includes an angle of attack (AoA), a sideslip 132, a roll 134, and object body forces (including thrust, lift, drag and local weight) 128 of the object (e.g., the aircraft).
  • the object body forces may be in a vector expression.
  • the NDI tracking controller 104 is based on a non-linear dynamic inversion (NDI) of data.
  • NDI non-linear dynamic inversion
  • the NDI slow rotational dynamics controller 106 AirplaneControllerD determines a set of angular rate commands (e.g., P 140, Q 142, and R 144) based on the given angle of attack, sideslip and roll commands.
  • Processing by the NDI slow rotational dynamics controller 106 includes a non-linear dynamic inversion (NDI) of data.
  • the NDI fast rotational dynamics controller 108 AirplaneControllerD determines moment commands of the object in motion based on the received angular rate commands (e.g., P 140, Q 142, R 144). The moment commands may include a roll torque 152, a pitch torque 154, and a yaw torque 156 applied to the flying object.
  • Processing by the NDI fast rotational dynamics controller 108 includes a non-linear dynamic inversion (NDI) of data.
  • the rigid body model 110 (RigidBodyD) represents physical characteristics of the object and its instantaneous dynamics conditions (e.g., states).
  • the rigid body model 110 includes a mass of the object, an inertia tensor of the object, force / moment vectors associated with the object.
  • a combination of the NDI tracking controller 104, the NDI slow rotational dynamics controller 106, and the NDI fast rotational dynamics controller 108 determines forces applied to the object for determining an updated body date of the object.
  • a controller system that determines external forces may be distinct from a system that models a rigid body of the object.
  • the present disclosure integrates the combination of three controllers (e.g., the NDI tracking controller 104, the NDI slow rotational dynamics controller 106, and the NDI fast rotational dynamics controller 108) with the rigid body model 110 for determining a body state at a specified time based on the time-tick.
  • the body state 112 represents output physics data associated with the object at a time as specified as the i-th time tick.
  • the body state 112 indicates a position of the object, a velocity of the object, and an acceleration of the object at the specified time.
  • an interval between two time ticks may be 1/30 seconds.
  • the display/transmitter 114 displays and/or transmits the body state 112 of the object.
  • the display/transmitter 114 displays and/or transmits the body state 112 in numerical expressions and/or graphs. In some other aspects, the display/transmitter 114 displays and/or transmits the object (e.g., the aircraft) in a three-dimensional graphics that represents the body state. In aspects, the display/transmitter 114 transmits the body state 112 to another display (not shown) or a database over a network (not shown) for storage.
  • the system 100 may be implemented as in-core, real time simulator, without relying upon data from external computational resources in iteratively determining body states of the object according to the rigid body model.
  • the system 100 may iteratively determine body states based on a time-tick that is incremented as input without interpolating data. Some traditional systems interpolated body states based on a trajectory, which often result in accumulating error in body states as time lapses and the object moves. The present disclosure determines a particular body state that is associated with a time-tick as specified, thereby minimizing errors caused by interpolation in the traditional systems.
  • the various methods, devices, applications, features, etc., described with respect to FIG. 1 are not intended to limit the system 100 to being performed by the particular hardware and/or software described.
  • FIG. 2 illustrates an overview of an example rigid data model in accordance with the present disclosure.
  • a system 200 includes a rigid body data model 206.
  • the rigid body data model 206 receives a command to initialize 202 and a time-tick 204. Receiving the command to initialize causes the rigid body data model 206 to initialize itself by resetting data in the rigid body data model 206.
  • the rigid body data model 206 (RigidBodyD) is a numerical solver including a rotation formation data 212 and translation formation data 214.
  • the rotation formation data 212 use the 312-intrinsic Euler for determining rotational data of the object using unity quatrain Euler angles.
  • the translation formation data 214 is represented based on three linear states. The combination of the rotation formation data 212 and the translation formation data 214 form the six-degrees of freedom system.
  • the rigid body data model 206 works in co-simulation with the AirplaneControllerD (e.g., a combination of the NDI tracking Controller 104, the NDI slow rotational dynamics controller 106, and the NDI fast rotational dynamics controller 108 as shown in FIG.1) to determine at each tick the proper forces and moments which need to be applied to the rigid body to follow the trajectory from input received by the input receiver 102.
  • the AirplaneControllerD e.g., a combination of the NDI tracking Controller 104, the NDI slow rotational dynamics controller 106, and the NDI fast rotational dynamics controller 108 as shown in FIG.1
  • these forces and moments include a lag response filter for dynamic response of control interfaces, thereby improving process performance and generalizing modelling of the controller from object data that are specific to a particular type of object (e.g., generalizing from a rigid body model that is specific to aircraft).
  • the rigid body data model 206 determines a body state of the object at a specified time-tick (e.g., at i-th time tick).
  • the body state 210 may include a position of the object, a velocity of the object, and an acceleration of the object.
  • the disclosed technology receives an object data 208 for generating the rigid body data model 206.
  • the object data 208 (e.g., customer data) includes a set of configuration data that describes physical characteristics of the object.
  • the set of configuration data may include a mass information associated with the object (e.g., the aircraft), an inertia tensor of the object, and one or more coefficients associated with an external force and/or moment upon the object.
  • the configuration data may be expressed using Java Script Object Notation.
  • the rigid body data model 206 includes a set of inertia properties of the object.
  • the rigid body data model 206 may further includes the Newton-Euler Body Equations of Motion (EOM) with additional parameters that represent a customizable external force onto the object.
  • the rigid body data model 206 may include conversion of data between the Newtonian reference system and the Euler reference system.
  • the rigid body data model 206 maintains a value of inertia tensor at a predetermined constant value for maintaining constant inversion to reduce computational steps needed to determine an updated body state as affected by forces.
  • the object data 208 includes data that represent the integral total effect of the moment used for rotating the object, without data that are specific to a particular type of object (e.g., surface deflection data of an aircraft).
  • the various methods, devices, applications, features, etc., described with respect to FIG. 2 are not intended to limit the system 200 to being performed by the particular hardware and/or software described. Accordingly, additional controller configurations may be used to practice the methods and systems herein and/or features and applications described may be excluded without departing from the methods and systems disclosed herein.
  • FIG. 3 illustrates an overview of an example process containers in accordance with the present disclosure.
  • a list of process containers 300 includes a plurality of containers for processing data for collectively determining a body state of an object based on a set of specific conditions at a specific time.
  • EulerAngleD 304 converts rotational data into Euler angles in a reference system.
  • Containers Vec3D 306, Mat3D 308, and QuatD 310 collectively generate vectors and transform data between the Cartesian and unitary quaternion reference systems.
  • RigidBodyD 314 e.g., the rigid body model 110 as shown in FIG. 1 represents a rigid body associated with the object (e.g., an aircraft) in six degrees of freedom and rotational information in quaternion.
  • ControllerBaseD 316 executes as a base controller framework for interfacing the rigid body model 110 with the three NDI controllers (e.g., the NDI tracking Controller 104, the NDI slow rotational dynamics controller 106, and the NDI fast rotational dynamics controller 108 as shown in FIG.1) for generating motion data associated with the object.
  • AirplaneControllerD 318 e.g., the three NDI controllers: the NDI tracking Controller 104, the NDI slow rotational dynamics controller 106, and the NDI fast rotational dynamics controller 108 as shown in FIG.1 processes motion data that are specific to an airplane as an object.
  • ControlLawD 320 processes control laws.
  • the control laws may specify how to follow a trajectory and specifies forces applied to the object during its motion.
  • program instruction codes used in the respective process containers 302 may be optimized for execution using specific compilers for a particular programming language (e.g., C++ programming language). The optimization may include but not limited to matrix multiplication, quaternion multiplication, exponential multiplication, and the like.
  • the optimized programming instruction codes helps determining forces and body states of the object at a specific time-tick in real-time.
  • Both the linear and the angular velocity are related to the linear and angular momentum of the dynamic equations.
  • the disclosed technology uses the local body reference system with a local linear and angular velocity data.
  • the disclosed technology determines the global position of the body using rotational orientation based on quaternion.
  • the integration processing data using the local referencing system and the translation into the global referencing system enables the disclosed technology to efficiently determine the global positions of the object.
  • the various methods, devices, applications, features, etc., described with respect to FIG.3 are not intended to limit the list of process containers 300 to being performed by the particular hardware and/or software described.
  • FIG. 4 illustrates an overview of an example computational processing in accordance with the present disclosure.
  • a system 400 includes a set of processors for determining derivative values associated with state data of an object for determining a body state of an object based on a set of specific conditions at a specific time.
  • the system 400 includes a current body state 402 of an object (e.g., an aircraft) for simulating physics of the object at a specific time.
  • the current body state 402 includes a RK4 state 404 and a RKMK4 state 406 of the object.
  • the RK4 state 404 includes a combination of a global position 410, a local body linear velocity 412, and a local body angular velocity 414.
  • the RK4 state 404 (Euler integration) collects three states of the rigid body.
  • the global position 410 indicates a position of the body in a reference system in a global frame of reference which is inertial.
  • the local body linear velocity 412 indicates a velocity of the body in a linear reference system attached to the body in motion (e.g., lateral x, horizontal y, vertical z).
  • the local body angular velocity 414 indicates a velocity of the body in an angular reference system attached with the body in motion (e.g., pitch along x-axis, roll along y-axis, and yaw along z-axis).
  • the RKMK4 state 406 indicates the orientation of the local body reference system with respect to the global inertial reference system.
  • Rotational data that indicate the RKMK4 state 406 include a quaternion orientation 416.
  • the quaternion orientation 416 indicates a rotational state of the body of the object in unit quaternions, representing spatial orientation and rotation of the body in a three-dimensional space.
  • the present disclosure uses a combination of a first order Euler 420 and an exponential integration 422 for determining numerical results of a body state at a specified time (e.g., an i-th time tick).
  • the combined operation that processes linear data and exponential data in parallel in distinct methods improves the overall performance of determining a body state in simulating physics of the object.
  • the disclosed technology processes the RK4 state 404 of the body based on the first order Euler 420.
  • the disclosed technology uses the 4th-order Runge-Kutta (RK4) for processing the RK4 state 404 (e.g., the combination of the global position 410, the local body linear velocity 412, and the local body angular velocity 414) of the body.
  • RK4 4th-order Runge-Kutta
  • the disclosed technology processes the RKMK4 state 406 of the body based on the exponential integration 422.
  • the exponential integration 422 includes the 4th-order Runge-Kutta Munthe-Kaas (RKMK4) for processing the quaternion orientation 416 of the body.
  • RKMK4 is more process intensive than an operation using RK4 because of computing exponential data.
  • the disclosed technology limits use of RKMK4 to the RKMK4 state 406 and use RK4 for processing the RK4 state 404, thereby optimizing computing resources needed to determine numerical results of the body state at a specific time.
  • the disclosed technology maintains unitary of quaternion vector for representing a rotation of the object.
  • the disclosed technology may use the Hamiltonian quaternion algebraic operations for processing vectors and quaternion.
  • a Lie group algebraic operation may be used for computing exponential updates for RKMK4.
  • the disclosed technology may determine forces in the local reference frame, not in the global reference frame and avoid needs for computing inversion of data matrices and reduce a burden in computational resources.
  • the various methods, devices, applications, features, etc., described with respect to FIG.4 are not intended to limit the list of process containers 300 to being performed by the particular hardware and/or software described. Accordingly, additional controller configurations may be used to practice the methods and systems herein and/or features and applications described may be excluded without departing from the methods and systems disclosed herein.
  • FIG.5 illustrates an example object data (e.g., customer data) in accordance with aspects of the present disclosure.
  • the object data 500 includes an exemplary data associated with a particular type of an aircraft (e.g., A-320 aircraft).
  • the object data includes data that represents a mass of the object (e.g., 73500 kg), an altitude (e.g., 10972.8 meters), a speed (e.g., 231.4998 meters per second), a wing area (e.g., 318.2421852 square meters), a density (e.g., 0.371845818 kg per square meter), a speed sound (e.g., 295.9081888 meters/second), Mach (e.g., 0.782336579), a gravity (e.g., 9.81 meters per second squared), CL (e.g., 0.227386383), and an Angle of Attack (1.000001091 degrees).
  • a mass of the object e.g., 73500 kg
  • the object data 500 may further include data that represent a lift-draft curve with retracted and un-retracted landing gear (flaps not deflected).
  • the object data may exclude data associated with surface deflection.
  • the lift-draft curve of the object may be expressed in a two-dimensional mapping between lift coefficient values and drag coefficient values.
  • the lift-drag curve data may further indicate an angle of attack for zero lift, an optimum angle of attack, and a critical angle of attack.
  • the object data 500 may be specific to a particular type of an object (e.g., IL-14 aircraft, A320 aircraft, and the like).
  • the disclosed technology in the present disclosure generates a rigid body model based on the object data and determine a body state at a specified time based on the input parameters (e.g., a velocity, an altitude, a heading, and a time-tick) by minimizing errors and computational resources needed for processing in a real time.
  • the object data 500 includes data that represent three linear momentum (e.g., a set of thrust, lift, and draft, and/or a set of yaw, roll, and pitch), without data associated with surface deflection.
  • the present disclosure enables simulating motion of an object without processing actuator and engine dynamics logics. Accordingly, the disclosed technology determines the integral total effect of the moment associated with the object, which rotates the object.
  • the lack of needs for processing logics associated with the actuator and engine dynamics enables generalizing the rigid body model from models that are specific to particular objects (e.g., a model that is specific to an A320 aircraft).
  • the disclosed technology receives and use variations of the object data 500 that represents an object for simulating physical aspects of the object.
  • the various methods, devices, applications, features, etc., described with respect to FIG.5 are not intended to limit the list of process containers 300 to being performed by the particular hardware and/or software described. Accordingly, additional controller configurations may be used to practice the methods and systems herein and/or features and applications described may be excluded without departing from the methods and systems disclosed herein.
  • FIG.6 illustrates an example method for simulating physics of a body of an object in accordance with aspects of the present disclosure.
  • a general order of the operations for the method 600 is shown in FIG. 6.
  • the method 600 begins with start operation 602 and ends with end operation 622.
  • the method 600 may include more or fewer steps or may arrange the order of the steps differently than those shown in FIG.6.
  • the method 600 can be executed as a set of computer- executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method 600 can be performed by gates or circuits associated with a processor, an ASIC, an FPGA, a SOC or other hardware device.
  • a generate rigid body model operation 604 generates a rigid body model.
  • the generate rigid body model operation 604 generates the rigid body model based on an object model that represents physical characteristics of an object.
  • a rigid body model e.g., the rigid body model 110 as shown in FIG.1
  • the object data e.g., the object data 116 as shown in FIG.1 and/or the object data 500 as shown in FIG.5
  • the generate rigid body model operation 604 may include vectorization and/or transformation of parameter values from the object data from one reference system to another reference system to reduce needs for the overall computational resources to determine a body state of the object at a specified time.
  • the generate operation further includes initializing the rigid body model. Initializing the rigid body model may include setting an initial position and, if any, an initial movement of the object.
  • determining and updating a body state of the object may be based on the initial position and movement of the object.
  • a receive operation 606 receives a set of input commands including time-tick.
  • the input commands include a velocity, an altitude, a heading, and a time as conditions for determining a body state of the object.
  • the time may be expressed as a time-tick. For example, an interval of the time-tick may be 1/30 of a second.
  • a generate attitude commands operation 608 generates attitude commands based on the received set of input commands for determining a body state of the object.
  • the attitude commands include a combination of an angle of attack, a sideslip, and a roll associated with tracking the object in motion.
  • an NDI tracking controller e.g., the NDI tracking controller 104 as shown in FIG.1
  • the generated attitude commands operation 608 further determines a thrust (e.g., the object body forces 128) associated with the body of the object.
  • the tracking controller determines forces needed to perform movement of the object from one position to another position according to a trajectory.
  • a generated angular rate commands operation 610 generates angular rate commands based on the altitude commands.
  • the angular rate commands include a combination of a P value, a Q value, and an R value (e.g., the P 140, the Q 142, and the R 144 as shown in FIG. 1). Additionally, or alternatively, the angular rate commands may include a roll rate, a pitch rate, and a yaw rate). In aspects, the angular rates represent the Euler angular velocity. In aspects, the generate angular rate commands operation 610 may include a non-linear dynamic inversion (NDI) operation. A generate moment commands operation 612 generates moment commands based on the angular rate commands.
  • NDI non-linear dynamic inversion
  • the moment commands include roll, pitch, and yaw (e.g., the roll torque 152, the pitch torque 154, and the yaw torque 156 as shown in FIG. 1) of the object.
  • the generate moment commands operation 612 may include an NDI operation.
  • a determine body state operation 614 determines a body state of the body of the object. In particular, the determine body state operation 614 uses the received body forces data (e.g., the object body forces 128 as shown in FIG. 1; the object body forces 128 may include thrust, lift, drag and weight local) and the generated moment commands on the rigid body model (e.g., the rigid body model 110 as shown in FIG.1) of the object.
  • the rigid body model may include a mass, an inertial tensor, and force/moment coefficient data for determining a body state at a specified time.
  • the body state may include a position, a velocity, and an acceleration of the body of the object.
  • An update parameters operation 616 updates parameters associated with the rigid body model based on the determined body state.
  • the rigid body model with the updated parameters may be used for the next iteration of determining a body state by feeding back the values to one or more controllers (e.g., the NDI tracking controller 104, the NDI slow rotational dynamics controller 106, and the NDI fast rotational dynamics controller 108 as shown in FIG.1).
  • a display operation 618 displays the body state of the object at the time-tick as specified by the input.
  • the display operation 618 may display the body state in a list of numerical values and/or a graph, which depict the body state. In some other aspects, the display operation 618 may display the body state of the object by rendering the object (e.g., an aircraft) in a three-dimensional graphics based on the body state. Additionally, or alternatively, the display operation 618 may transmit the determined body state of the object by storing in a database and/or other devices for rendering via a network. A decision operation 620 decides whether this is the last time-tick (and/or whether there a subsequent time-tick) for simulating physics of the object.
  • the operational step proceeds to the receive operation 606 and executes the next iteration of determining a body state of the object.
  • the disclosed technology completes an iteration of determining and updating a body state in 1/30 of a second with a time-tick interval of the 1/30 of a second.
  • the disclosed technology determines a body state for a specified time without interpolating a trajectory based on a previous computation of a body state. Rather, the disclosed technology determines values associated with a body state associated with a specified time-tick through the iteration of the method 600 as detailed above.
  • FIG.7 is a block diagram illustrating physical components (e.g., hardware) of a computing device 700 with which aspects of the disclosure may be practiced.
  • the computing device components described below may have computer executable instructions for implementing a rigid body model 726 on a computing device (e.g., a physics simulation system 100), including computer executable instructions for a trajectory tracking controller 720 (e.g., the NDI tracking controller 104 as shown in FIG.1), a slow rotational controller (e.g., the NDI slow rotational dynamics controller 106 as shown in FIG. 1), a fast rotational dynamics controller (e.g., the NDI fast rotational dynamics controller 108 as shown in FIG.1), and the rigid body model 726 (the rigid body model 110 as shown in FIG.1), and the like, that can be executed to implement the methods disclosed herein.
  • a trajectory tracking controller 720 e.g., the NDI tracking controller 104 as shown in FIG.1
  • a slow rotational controller e.g., the NDI slow rotational dynamics controller 106 as shown in FIG.
  • a fast rotational dynamics controller e.g., the NDI fast rotational dynamics
  • the computing device 700 may include at least one processing unit 702 and a system memory 704.
  • the system memory 704 may comprise, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories.
  • the system memory 704 may include an operating system 705 and one or more program modules 706 suitable for running the physics simulator.
  • the operating system 705, for example, may be suitable for controlling the operation of the computing device 700.
  • embodiments of the disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated in FIG.
  • the computing device 700 may have additional features or functionality.
  • the computing device 700 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape.
  • additional storage is illustrated in FIG.7 by a removable storage device 709 and a non-removable storage device 710.
  • a number of program modules and data files may be stored in the system memory 704. While executing on the processing unit 702, the program modules 706 (e.g., the trajectory tracking controller 720, the slow rotational dynamics controller 722, the fast rotational dynamics controller724, and a rigid body model 726) may perform processes including, but not limited to, the aspects, as described herein.
  • embodiments of the disclosure may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors.
  • an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors.
  • embodiments of the disclosure may be practiced via a system-on- a-chip (SOC) where each or many of the components illustrated in FIG.7 may be integrated onto a single integrated circuit.
  • SOC device may include one or more processing units, graphics units, communications units, system virtualization units and various application functionality all of which are integrated (or “burned”) onto the chip substrate as a single integrated circuit.
  • the functionality, described herein, with respect to the capability of client to switch protocols may be operated via application-specific logic integrated with other components of the computing device 700 on the single integrated circuit (chip).
  • Embodiments of the disclosure may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies.
  • embodiments of the disclosure may be practiced within a general-purpose computer or in any other circuits or systems.
  • the computing device 700 may also have one or more input device(s) 712 such as a keyboard, a mouse, a pen, a sound or voice input device, a touch or swipe input device, etc.
  • the output device(s) 714 such as a display, speakers, a printer, etc. may also be included.
  • the aforementioned devices are examples and others may be used.
  • the computing device 700 may include one or more communication connections 716 allowing communications with other computing devices 750. Examples of suitable communication connections 716 include, but are not limited to, radio frequency (RF) transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.
  • RF radio frequency
  • USB universal serial bus
  • the term computer readable media as used herein may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, or program modules.
  • the system memory 704, the removable storage device 709, and the non-removable storage device 710 are all computer storage media examples (e.g., memory storage).
  • Computer storage media may include RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other article of manufacture which can be used to store information and which can be accessed by the computing device 700. Any such computer storage media may be part of the computing device 700.
  • Computer storage media does not include a carrier wave or other propagated or modulated data signal.
  • Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media.
  • modulated data signal may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal.
  • communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
  • RF radio frequency
  • FIG. 8A and 8B illustrate a mobile computing device 800, for example, a mobile telephone, a smart phone, wearable computer (such as a smart watch), a tablet computer, a laptop computer, and the like, with which embodiments of the disclosure may be practiced.
  • the client may be a mobile computing device.
  • FIG. 8A one aspect of a mobile computing device 800 for implementing the aspects is illustrated.
  • the mobile computing device 800 is a handheld computer having both input elements and output elements.
  • the mobile computing device 800 typically includes a display 805 and one or more input buttons 810 that allow the user to enter information into the mobile computing device 800.
  • the display 805 of the mobile computing device 800 may also function as an input device (e.g., a touch screen display).
  • an optional side input element 815 allows further user input.
  • the side input element 815 may be a rotary switch, a button, or any other type of manual input element.
  • mobile computing device 800 may incorporate more or less input elements.
  • the display 805 may not be a touch screen in some embodiments.
  • the mobile computing device 800 is a portable phone system, such as a cellular phone.
  • the mobile computing device 800 may also include an optional keypad 835.
  • Optional keypad 835 may be a physical keypad or a “soft” keypad generated on the touch screen display.
  • the output elements include the display 805 for showing a graphical user interface (GUI), a visual indicator 820 (e.g., a light emitting diode), and/or an audio transducer 825 (e.g., a speaker).
  • GUI graphical user interface
  • the mobile computing device 800 incorporates a vibration transducer for providing the user with tactile feedback.
  • the mobile computing device 800 incorporates input and/or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., a HDMI port) for sending signals to or receiving signals from an external device.
  • an audio input e.g., a microphone jack
  • an audio output e.g., a headphone jack
  • video output e.g., a HDMI port
  • the mobile computing device 800 can incorporate a system (e.g., an architecture) 802 to implement some aspects.
  • the system 802 is implemented as a “smart phone” capable of running one or more applications.
  • the system 802 is integrated as a computing device, such as an integrated personal digital assistant (PDA) and wireless phone.
  • PDA personal digital assistant
  • One or more application programs 866 may be loaded into the memory 862 and run on or in association with the operating system 864.
  • the system 802 also includes a non-volatile storage area 868 within the memory 862. The non-volatile storage area 868 may be used to store persistent information that should not be lost if the system 802 is powered down.
  • the application programs 866 may use and store information in the non-volatile storage area 868, such as email or other messages used by an email application, and the like.
  • a synchronization application (not shown) also resides on the system 802 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non- volatile storage area 868 synchronized with corresponding information stored at the host computer.
  • other applications may be loaded into the memory 862 and run on the mobile computing device 800, including the instructions for implementing the physics simulator.
  • the system 802 has a power supply 870, which may be implemented as one or more batteries.
  • the power supply 870 may further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.
  • the system 802 may also include a radio interface layer 872 that performs the function of transmitting and receiving radio frequency communications.
  • the radio interface layer 872 facilitates wireless connectivity between the system 802 and the “outside world,” via a communications carrier or service provider. Transmissions to and from the radio interface layer 872 are conducted under control of the operating system 864. In other words, communications received by the radio interface layer 872 may be disseminated to the application programs 866 via the operating system 864, and vice versa.
  • the visual indicator 820 may be used to provide visual notifications, and/or an audio interface 874 may be used for producing audible notifications via an audio transducer 825 (e.g., audio transducer 825 illustrated in FIG.8A).
  • the visual indicator 820 is a light emitting diode (LED) and the audio transducer 825 may be a speaker.
  • LED light emitting diode
  • the LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device.
  • the audio interface 874 is used to provide audible signals to and receive audible signals from the user.
  • the audio interface 874 may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation.
  • the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below.
  • the system 802 may further include a video interface 876 that enables an operation of peripheral device 830 (e.g., on-board camera) to record still images, video stream, and the like.
  • a mobile computing device 800 implementing the system 802 may have additional features or functionality.
  • the mobile computing device 800 may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated in FIG.8B by the non-volatile storage area 868.
  • Data/information generated or captured by the mobile computing device 800 and stored via the system 802 may be stored locally on the mobile computing device 800, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio interface layer 872 or via a wired connection between the mobile computing device 800 and a separate computing device associated with the mobile computing device 800, for example, a server computer in a distributed computing network, such as the Internet.
  • FIGS.8A and 8B are described for purposes of illustrating the present methods and systems and is not intended to limit the disclosure to a particular sequence of steps or a particular combination of hardware or software components.
  • the description and illustration of one or more aspects provided in this application are not intended to limit or restrict the scope of the disclosure as claimed in any way.
  • the claimed disclosure should not be construed as being limited to any aspect, for example, or detail provided in this application.
  • the system comprises a processor; and a memory storing instructions that, when executed by the processor, cause the system for simulating motion of an object to execute a method comprising: generating, based on object data of the object, a rigid body model associated with the object; receiving a set of input commands over time, wherein an input commands in the set of input commands is associated with a time-tick, the time-tick increments over time; generating, based on the set of input commands, a set of moment commands over time; determining, based on a combination of the rigid body model and the set of moment commands, a body state of the object at the time-tick; and causing an iterative display of the body state of the object at the time-tick incrementing over time.
  • the set of input commands further comprises a velocity of the object at the time-tick; an altitude of the object at the time-tick; and a heading of the object at the time-tick.
  • the rigid body model further comprises rigid body data based on six degrees of freedom; and rotation formulation data based on 312-intrinsic Euler.
  • the determined body state further comprises a position of the object at the time-tick; a velocity of the object at the time-tick; and an acceleration of the object at the time- tick.
  • the determining the set of moment commands uses a combination of a first order Euler based on 4th-order Runge-Kutta on linear state data and an exponential integration based on the 4th- order Runge-Kutta Munthe-Kaas for rotational state data, the linear state data includes at least a global position, a local body linear velocity, and a local body angular velocity of the object, and the rotational state data indicates a quaternion orientation of the object.
  • the processor further causes the system to execute a method comprising determining, based on the received set of input commands including the incremented time-tick, a set of attitude commands; determining, based on the set of attitude commands, a set of angular rate commands; and determining, based on the set of angular rate commands, the set of moment commands.
  • the object data includes at least a type of the object, a mass of the object, an inertia tensor of the object, or a moment co-efficient associated with the type of the object.
  • the processor further causes the system to execute a method comprising iteratively updating, based on the determined body state, a parameter associated with the rigid body model.
  • the processor further causes the system to execute a method comprising: transmitting the body state of the object at the incremented time-tick.
  • Another aspect of the technology relates to a computer-implemented method for simulating motion of an object.
  • the method comprises receiving a set of input commands over time, wherein an input commands in the set of input commands is associated with a time-tick, the time-tick increments over time; generating, based on the set of input commands, a set of moment commands over time; determining, based on a combination of a rigid body model and the set of moment commands, a body state of the object at the time-tick; and causing an iterative display of the body state of the object at the time-tick incrementing over time.
  • the set of input commands further comprises a velocity of the object at the time-tick; an altitude of the object at the time-tick; and a heading of the object at the time-tick.
  • the method further comprises generating, based on object data of the object, the rigid body model associated with the object, wherein the rigid body model includes rigid body data based on six degrees of freedom, and rotation formulation data based on 312-intrinsic Euler, and the object data includes at least: a type of the object, a mass of the object, an inertia tensor of the object, or a moment co-efficient associated with the type of the object.
  • the determined body state includes a position of the object at the time-tick, a velocity of the object at the time-tick, and an acceleration of the object at the time-tick.
  • the determining the set of moment commands uses a combination of a first order Euler based on 4th-order Runge-Kutta on linear state data and an exponential integration based on the 4th-order Runge-Kutta Munthe-Kaas for rotational state data, the linear state data include at least a global position, a local body linear velocity, and a local body angular velocity of the object, and the rotational state data indicate a quaternion orientation of the object.
  • the method further comprises determining, based on the received set of input commands including the incremented time-tick, a set of attitude commands; determining, based on the set of attitude commands, a set of angular rate commands; and determining, based on the set of angular rate commands, the set of moment commands.
  • the technology relates to a device for simulating motion of an object.
  • the device comprises a processor configured to execute a method comprising: generating, based on object data of the object, a rigid body model associated with the object, wherein the object includes an aircraft; receiving a set of input commands over time, wherein an input commands in the set of input commands is associated with a time-tick, the time-tick increments over time; determining, based on the received set of input commands including the incremented time-tick, a set of attitude commands; determining, based on the set of attitude commands, a set of angular rate commands; determining, based on the set of angular rate commands, a set of moment commands; determining, based on a combination of the rigid body model and the set of moment commands, a body state of the object at the time-tick; and causing an iterative display of the body state of the object at the time-tick incrementing over time.
  • the set of input commands further comprises a velocity of the object at the time-tick; an altitude of the object at the time-tick; and a heading of the object at the time-tick.
  • the rigid body model further comprises rigid body data based on six degrees of freedom; and rotation formulation data based on 312-intrinsic Euler.
  • the determined body state comprises a position of the object at the time-tick; a velocity of the object at the time-tick; and an acceleration of the object at the time-tick.
  • the determining the set of moment commands uses a combination of a first order Euler based on 4th-order Runge-Kutta on linear state data and an exponential integration based on the 4th-order Runge-Kutta Munthe-Kaas for rotational state data, the linear state data include at least a global position, a local body linear velocity, and a local body angular velocity of the object, and the rotational state data indicate a quaternion orientation of the object. Any of the one or more above aspects in combination with any other of the one or more aspect. Any of the one or more aspects as described herein.
  • This paper describes the mathematical derivation used in the physics engine, producing the novel formulation of a six- degrees- of- freedom (6DOFs) rigid body in the real-time strategy (RTS) reference system.
  • the body receives input forces from a nonlinear inverse dynamics (NDI) controller to follow a trajectory imposed by an external user, either artificial intelligence (Al) or a real user.
  • NDI nonlinear inverse dynamics
  • Al artificial intelligence
  • ODE ordinary differential equations
  • the rigid body Aircraft
  • Autopilot Autopilot
  • the rigid body has been parameterized using the commercial aircraft Airbus A320.
  • the input trajectory to follow is designed with a climb from 5,000 m to 10,000 m, a coordinate turn of 120° heading direction, and a subsequent descent back to 5,000 m.
  • Simulink® Aerospace BlocksetTM with MATLAB® FunctionsTM are used to numerically validate the dynamics of this system by carrying out a comparative simulation between the physics engine and Simulink. This results in a confirmed optimal accuracy of the Aircraft/ Autopilot modeling for provided inertial, geometric, and aerodynamics properties of military and commercial aircraft.
  • Figure 1 Global and local reference systems.
  • Formula (1.2) will be used to translate local states into global states within the solver solution process. Note that the nomenclature indicates an over bar for vector/matrix quantities expressed in the local reference system, e.g. u indicates the position of a point P of the body in local coordinates. Thus, equation (1.2) combines the translation and rotation of the rigid body, providing the coordinates of the point P depicted in figure 1 in global coordinates.
  • G matrices expressed in terms of the Euler angles. These matrices depend upon the sequence that has been chosen for representing the global-to-local body orientation, thus existing [1] cannot be applied. Since infinitesimal rotations are vector quantities, we can reconstruct the angular velocity vector by using the three infinitesimal yaw, pitch, and roll rotations to compute the relationship between Euler angles time derivatives and the global/local angular velocity vector. These equations will be used in the nonlinear dynamics inversion controller formulation:
  • the rigid body solver utilizes the traditional Euler parameters, known as quaternion, as orientation states, while, as mentioned before, the aircraft controller utilizes Euler angles to describe the body orientation. Note that there is a subtle nomenclature difference between three Euler angles and four Euler parameters - the two sets are mathematically very different quantities, thus refer to [1] to clarify the relationship between them. The reason for this different choice in body orientation description will be evident after reading the controller and numerical integration sections of this paper.
  • Figure 2 provides the relative orientation between the two reference systems TB and RTS. It also shows how Euler angles map to different axes depending on which sequence we are adopting.
  • FIG. 1 Real-time strategy (RTS) and Tait-Bryan (TB) reference systems.
  • the vector, matrix and orientation need to be properly translated from one reference system to the other.
  • Equation (1.21) has a very important application to the inertia tensor. Because customer data are usually provided in TB reference system, we will be using this same transformation to retrieve the RTS inertia tensor which is necessary for the equations of motion (EOM). Hence, we can generalize the above as follows:
  • the second aspect of this derivation is the choice of writing the equations in the global or local reference system. We chose the latter for multiple reasons. First, the expression of forces (especially in the case of the aerodynamics thrust, lift, drag and rotation moments of an aircraft) have a more natural formulation in the body reference system. This aspect will be described at length in the controller portion of this paper. Second, the inertial tensor has a constant expression within the body reference system, equal to the value provided by customers. If the equations were to be written in the global reference system, a re-evaluation of the inertia tensor (and therefore its inverse) should be carried out at each time step integration, according to the following where A is the rotation matrix representing the instantaneous orientation of the body. Finally, the effect of fictitious inertia forces F» due to the fact we are using a rotating frame, can be taken into account as follows - see [1] “Analytic Techniques” and the references therein:
  • the dynamic equations of motion produce second order ordinary differential equations (ODEs) which need to be integrated numerically.
  • ODEs ordinary differential equations
  • the state vector is defined using a statebased approach, where we lower a degree of differentiation by duplicating the number of states, that is, we introduce the global position x (t) as integration of body linear velocity and the quaternion orientation ⁇ (t) as integration of body angular velocity - note the mixed approach global/local states, where we differentiate the vectors expressed in local reference system by using the over bar.
  • the “3 4 3 3” state vector is therefore defined as follows: and the derivatives with respect to time of equation (1.24) provide the following first order differential equations, whose expression is based on the linear momentum (for linear states) and angular momentum (for angular states):
  • the first equation provides the derivatives with respect to time of the global position:
  • the second equation provides the derivatives with respect to time of the quaternion orientation:
  • the third equation provides the derivatives with respect to time of the local linear velocity:
  • the fourth equation provides the derivatives with respect to time of the local angular velocity:
  • the F/ oea / and T/,,,,,,/ are also functions of time, and depending on the scenario simulated may have simple or complex expressions.
  • the constant expression of gravity force in global RTS frame needs to be transposed to the local body coordinate system by using the instantaneous body orientation, e.g.:
  • a third most important application is the one where the rigid body needs to follow a prescribed trajectory.
  • a controller needs to compute the forces needed to properly drive the body in the desired trajectory and most likely will work with a co-simulation approach with the rigid body, since the computation of such forces depends upon the current state of the body. This is the use case addressed later on in this paper by implementing an NDI controller trajectory tracking.
  • the derivation developed in this section is modular enough that if forces are known a priori or prescribed according a predefined law, the rigid body solver can be simulated in a standalone fashion. Most importantly, this derivation can be applied to a variety of rigid bodies of physics. For example, by properly customizing the expressions of Fi ocai and Ti OC ai , effects of weather conditions, fluid interaction, and electromagnetism can be taken into account in the rigid body solution process.
  • the above developed solver provides the dynamic conditions of a body, e.g. its position, velocity and acceleration, which undergoes applied external forces at a certain time.
  • the update state routine receives as input a time step increment to compute the dynamic evolution of states starting from the values at current time.
  • ICs initial conditions
  • ODE requires a number of initial conditions equal to the number of states which need to be integrated. Therefore, the following set of ICs are provided at the beginning of the simulation:
  • CAE online standalone simulation
  • this solver instead allows for satisfying the above requirements.
  • a current 10 frame-per-second simulation has been conducted with an externally driven time step. This means that the physics engine works on demand with a provided time step from the game engine tick. At a 10 frame per second tick rate, the solver was able to run faster than real time, avoiding any lagging in the simulation output.
  • the NDI controller computed the forces per tick in co-simulation with the current state of the rigid body, by evaluating the forces necessary for trajectory tracking with respect to the previous time step state values.
  • Figure 3 Externally driven time step synchronization.
  • Figure 3 depicts a schematic of the physics engine interaction with external tick. Based on this schematic, the flow of operations and time step synchronization work as follows:
  • a rigid body is created based on the .ISON file configuration which specifies the geometric, inert ial and physical properties of the body, e.g. aerodynamics coefficients for a known aircraft type.
  • the game engine provides initialization for the four set of states previously specified, e.g. global position, body orientation, local linear velocity, and local angular velocity.
  • the game engine requests a step update providing the delta time step (function of its tick rate).
  • the rigid body integrates the internal states based on the previous converged step (or ICs if first step).
  • the rigid body sets the relevant dynamic states to the owning body, e.g. position, velocity. both linear and angular.
  • the numerical integration scheme will be chosen according to this time step synchronization.
  • an explicit is preferred for several reasons.
  • the time execution of an update has a constant wall-time execution because it is not based on a Newton-Raphson integration scheme, but more traditional Euler schemes, where the first derivatives are used to compute the next step.
  • NDI nonlinear dynamics inversion
  • Figure 4 RTS point mass aircraft model with linear dynamics.
  • control variables CV see [12] which will be the input of our controller. This is an arbitrary choice of the controller designer, and since typically an external Al module or user would want to control an aircraft in terms of speed, an altitude and a heading angle, we will select the following control variables:
  • the next step is writing a Jacobian matrix able to transform time derivative of the state variables (2.4) into time derivative of the control variables (2.3). By doing so, we will be able to express equations (2.1) and (2.2) in terms of the control variables, which is our ultimate goal.
  • the order of derivation of this Jacobian matrix needs to be sufficient to show an order of derivation equal to desired control variable derivatives
  • the drag D can now be computed as function of lift L, using customer provided polar aerody- namics coefficients (for their expression, refer to the next section of this paper):
  • the remaining quantities from this first controller will then be passed in the rotation dynamics section comprised of other two controllers, whose output will provide the three remaining moments in body local RTS reference system.
  • the first, step is mapping the output from first controller to equation 12,111, We notice that a kinematic coordinate turn requires maintaining a slip angle null.
  • the angle of attack can be obtained again from the customer data characteristic airfoil as in figure 5 - this can be obtained by either linear interpolation or look up table of the linear region from this plot (m and n coefficients), limiting its validity from —2° to 18°:
  • Figure 5 Relationship between lift coeflicieut and angle of attack.
  • Figure 6 Schematic of the three NDI controllers in cascade.
  • the controller receives feedback from the previous iteration states of the rigid body (global position, linear global and local velocity, orientation, angular veloc- ity), to compute current iteration step forces which allow the integration of current iteration state within the rigid body. This is known as co-simulation approach, because of the tight interaction between the history of the two components. Suffice it to say that the time histories of rigid body and controller need to be carefully tied together as described in this paragraph.
  • a step command is not realistically achievable by any mechanical devices since inertia plays a fundamental role in the dynamic evolution of the system.
  • the CV1 needs to be translated into smooth and continuous control laws to the controller.
  • the derivation of NDI shows that at least a second order differentiation needs to be achieved by the altitude.
  • an analytical polynomial piecewise expression which should at least support C2 requirements (continuous and derivable up to the second order). This will guarantee one can obtain from a given command the first and second derivative over time.
  • the time execution of the whole command is a characteristic of the aircraft and therefore must be provided as input data, e.g. a commercial aircraft has a turning and climb rate much lower than that of a fighter jet.
  • the knowledge of this rate allows us to compute the maneuver time, e.g. the time from the initial state when the external command started and the final time needed to reach the external command.
  • the first and second derivative will be both smooth polynomial during this phase.
  • CV1 first controller
  • second controller second controller
  • third controller CV3
  • the control laws already provide the derivatives of control variables as analytical functions - see equations (2.22), (2.21), and (2.23), so we will be adding only the contribution of the feedback loop for closing the error. That is, with reference to (2.6), CV1 is expressed as: where the subscript cmd indicates the signal command values from (2.22) and the subscript cur indicates the value from the previous converged i-th states from RTS rigid body.
  • the subscript cmd indicates the signal command values from (2.22)
  • the subscript cur indicates the value from the previous converged i-th states from RTS rigid body.
  • CV3 for equation (2.20) will be computed with a bandwidth gain of 10 rad/s to differentiate the fast dynamics of the body angular velocity vector from the slow
  • this co-simulation package provides a complete way for aircraft autopilots both to maintain a route under effect of random external excitations, such as wind force applied, or to change the relevant flying conditions, e.g. altitude, speed, and/or heading.
  • Figure 13 Explicit coefficients from Butcher table for 4 th order Runge-Kutta.
  • Equation (3.1) is well known in literature, thus we leave to the reader its expansion for the stages 1,
  • the corresponding equation set for RKMK4 - Runge-K utta-M unth ⁇ Kaas is detailed as follows, using the exponential mapping (3.3) and the inverse right Jacobian (3.4):
  • Compiler-based vectorization from Visual Studio 2019 provides about 10% speed improvement in a standard N 2 loop needed for 3x3 matrix multiplication with respect to the open source Eigen library for the standard RK4 algorithm.
  • Figure 14 Operators for Hamiltonian and Lie Group algebras.
  • Figure 15 Class declarations for physics engine components.
  • an Airbus A320 has wings with six ailerons, one rudder and one stabilizer.
  • a Lockheed Martin F-117 Nighthawk has a completely different wing profile. Therefore, a control mixer developed for the Airbus would need to be re-written for the Nighthawk, providing a “model-driven” design.
  • Figure 16 Implemented “data-driven” approach in NDI controller.
  • Equation (2.8) uses this parameter within the lift and drag coefficients and the dynamic pressure
  • the density of the air must be computed according to the geopotential altitude of the aircraft along with the speed of sound to compute the Mach number (speed) of the aircraft, according to the following look up table in figure 17:
  • Figure 17 Density and speed of sound as function of the geopotential altitude.
  • the polar diagram lift versus drag coefficient is another key parameter which ties together the lift and drag depending on the profile of the airfoil. These coefficients are necessary for computing equation (2.8) and a typical customer example can be seen in figure 18.
  • Figure 18 Lift versus Drag polar coefficients as function of multiple angles of attack.
  • Climb rate 2000 feet per minute for A320
  • heading rates 120° in 600 s for A320
  • Their contribution is used in equations (2.21), (2.22), and (2.23) and their examples are used in figures 11 and 12.
  • For the velocity control lave we tune a change in velocity with the same maneuver time of the climb rate in order to maintain an angle of attack of 1° which enables a steady flight at the beginning and ending of maneuver - the relevant control law can be seen in figure 10.
  • Simulink® Aerospace BlocksetTM along with other MathWorks products, are the gold standard in the aerospace industry for validating real aircraft dynamics - see Lockheed Martin testimonial in figure 21.
  • Simulink® Aerospace BlocksetTM we confirm the quality of the results of our physics engine.
  • Figure 21 Lockheed Martin uses MathWorks products to predict F-35 fleet performance.
  • the mixed algorithm RK4/RKMK4 differs from the standard ode4 implemented in Simulink, which is similar to a fixed time step RK4.
  • Figure 22 Simulink® Aerospace BlocksetTM with MATLAB® FunctionsTM.
  • the block masks “Al Controller Laws” and “NDI Controller” contain a set of MATLAB Func- tions used to implement in m-code the control laws and the NDI controller logic implemented in C++ classes to allow a one-to-one comparison between an offline simulation over Simulink model and an in-core simulation of the physics engine.
  • FIG 23 and figure 24 show the MATLAB function blocks containing the source code for the NDI controller and the control laws. It should be clear why we need a conversion in/out to the NDI RTS controller block. Simulink 6DOFs rigid body accepts only states conditions in Tait-Bryan formulation, hence for the sake of this comparison, a conversion TB ⁇ RTS must be the input of this RTS controller, and a conversion RTS ⁇ TB must be the output of this RTS controller. This guarantees state consistency within the Simulink platform - see equations (1.14) through (1.22) for details.
  • Figure 23 NDI controller implemented with MATLAB Functions.
  • This model setup can now be used for an accurate comparison against the C++ physics engine.
  • Figure 25 2,500 s comparative simulation with Simulink Aerospace Blockset.
  • Figure 26 Details of second order dynamics response.
  • Figure 27 Parallel traces between Simulink and Rigid Body, differing at l.e-6.
  • Figure 28 Trajectory summary for 2,500 s simulation on Airbus A320.
  • Figure 29 Global position - C++ physics engine transformed into NED.
  • Figure 30 Global linear velocity - C++ physics engine transformed into NED.
  • Figure 31 Body linear velocity - C++ physics engine transformed into NED.
  • Figure 32 Body angular velocity - C++ physics engine transformed into NED.
  • Figure 33 Euler angles orientation - C++ physics engine transformed into NED.
  • Figure 34 Forces computed by controller - C++ physics engine transformed into NED.
  • Figure 36 Angle of attack and side-slip - C++ physics engine transformed into NED.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Pour satisfaire les exigences strictes concernant la simulation du mouvement d'un objet, un état corporel de l'objet doit être traité en temps réel tout en réduisant au minimum une erreur de déviation de la trajectoire et du temps tels que spécifiés, et ce à l'aide de ressources informatiques limitées. La présente invention simule des aspects physiques d'un objet en mouvement en générant un modèle de corps rigide qui comprend des données de force externe et des données représentant l'objet. Le simulateur détermine un état corporel de l'objet avec une vitesse, une altitude et un cap spécifiques à un moment spécifique en temps réel. Le simulateur détermine des forces appliquées à l'objet pour déplacer l'objet et mettre à jour le modèle rigide dans les itérations de processus en temps réel. La technologie décrite par l'invention utilise des dispositifs de commande de dynamique d'inversion non linéaire pour calculer les forces corporelles nécessaires pour suivre une trajectoire prescrite ainsi qu'un résolveur de modèle de corps rigide à techniques d'intégration avancées permettant d'obtenir des états de corps linéaires et rotatifs qui présentent peu de latence et qui sont précis et complets.
PCT/US2022/052488 2022-02-01 2022-12-12 Générateur d'état de corps d'objet en temps réel, à haute fidélité et à modélisation commandée par des données WO2023149952A1 (fr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263305529P 2022-02-01 2022-02-01
US63/305,529 2022-02-01
US17/852,935 US20230245584A1 (en) 2022-02-01 2022-06-29 High fidelity, real-time object body state generator with data-driven modeling
US17/852,935 2022-06-29

Publications (1)

Publication Number Publication Date
WO2023149952A1 true WO2023149952A1 (fr) 2023-08-10

Family

ID=85225008

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2022/052488 WO2023149952A1 (fr) 2022-02-01 2022-12-12 Générateur d'état de corps d'objet en temps réel, à haute fidélité et à modélisation commandée par des données

Country Status (1)

Country Link
WO (1) WO2023149952A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110143319A1 (en) * 2009-12-16 2011-06-16 Bennett John O Aerodynamic simulation system and method for objects dispensed from an aircraft
US20120095621A1 (en) * 2009-03-26 2012-04-19 Ohio University Trajectory tracking flight controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120095621A1 (en) * 2009-03-26 2012-04-19 Ohio University Trajectory tracking flight controller
US20110143319A1 (en) * 2009-12-16 2011-06-16 Bennett John O Aerodynamic simulation system and method for objects dispensed from an aircraft

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEONARD BAUERSFELD ET AL: "NeuroBEM: Hybrid Aerodynamic Quadrotor Model", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 15 June 2021 (2021-06-15), XP081989942 *
WINTER GUERRA ET AL: "FlightGoggles: Photorealistic Sensor Simulation for Perception-driven Robotics using Photogrammetry and Virtual Reality", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 27 May 2019 (2019-05-27), XP081616295, DOI: 10.1109/IROS40897.2019.8968116 *

Similar Documents

Publication Publication Date Title
Adams et al. Robust multivariable flight control
Frazzoli et al. Maneuver-based motion planning for nonlinear systems with symmetries
US9659397B2 (en) Rig-based physics simulation
Lu et al. Real-time simulation system for UAV based on Matlab/Simulink
Naets et al. Real-time flexible multibody simulation with global modal parameterization
Önol et al. Contact-implicit trajectory optimization based on a variable smooth contact model and successive convexification
Omran et al. Optimal task space control design of a Stewart manipulator for aircraft stall recovery
Kumar et al. Unified meta-modeling framework using bond graph grammars for conceptual modeling
Hiller et al. Dynamic simulation of soft heterogeneous objects
Bhat et al. Real-Time Flight Simulation of Hydrobatic AUVs Over the Full 0$^{\circ} $–360$^{\circ} $ Envelope
Zhao et al. A differential-flatness-based approach for autonomous helicopter shipboard landing
Antal et al. Backflipping With Miniature Quadcopters by Gaussian-Process-Based Control and Planning
Bals Nonlinear inverse models for the control of satellites with flexible structures
WO2023149952A1 (fr) Générateur d'état de corps d'objet en temps réel, à haute fidélité et à modélisation commandée par des données
Omran et al. Nonlinearity index theory for aircraft dynamic assessment
US20230245584A1 (en) High fidelity, real-time object body state generator with data-driven modeling
Tarkian et al. Design automation of modular industrial robots
Kaya et al. Momentum Preserving Simulation of Cooperative Multirotors With Flexible-Cable Suspended Payload
Nguyen et al. Trajectory tracking for a multicopter under a quaternion representation
Barnard Graphical techniques for aircraft dynamic model development
Sheng et al. CFD/CSD Coupled Simulations for a Helicopter Rotor in Forward and Maneuvering Flight
Schaanning Maximum hands-off control for attitude control of a spacecraft
Gruner et al. Recursively feasible model predictive control using latent force models applied to disturbed quadcopters
Drücker et al. Analysis of servo-constraints solution approaches for underactuated multibody systems
CN114035594B (zh) 对受到类间隙滞后和输出约束的飞行器的控制方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22856995

Country of ref document: EP

Kind code of ref document: A1