-
Notifications
You must be signed in to change notification settings - Fork 6
Why a Control Oriented Simulator
Here is a brief account of the rationale that led us to create acsl-chrono-simulator. Any constructive feedback on this discussion is quite welcome.
A simulator that supports both the testing and the tuning of control systems for UAVs should
- closely capture the dynamics of the vehicle and its payload;
- capture a variety of effects, ranging from contact forces and moments (as it occurs in sensor placement missions) to the deformability of components (as it occurs when transporting payloads connected by ropes) and the presence of fluid payloads with reasonably minimal effort on the user’s part;
- capture aerodynamic forces and torques from arbitrary surfaces with practical high fidelity, enabling accurate results while maintaining real-time performance;
- account for detailed geometric and inertial properties of the vehicle to be imported, for instance, from CAD models or other reliable sources; and
- be open-source to maximize transparency.
The MATLAB® UAV Toolbox® offers a compelling solution for less experienced users, since it seamlessly integrates sufficiently realistic computer graphics with the comfortable interface of Simulink and the vast array of MATLAB's functions. The realism of the underlying physics engines is relatively low because they are based on the direct implementation of Newton’s and Euler’s laws under rigid model assumptions. The underlying physics engine can be improved by the user. These ad-hoc modifications, however, are typically the result of direct implementations of analytical models, based on the application of fundamental physical principles to free rigid body models. Hence, the UAV Toolbox is very good to test control algorithms, but it appears unsuitable for advanced testing and tuning of control systems in challenging missions involving unknown payloads and interactions with the environment.
AirSim® is a Microsoft®-developed platform based on the PhysX® physics engine and Unreal Engine®. This software package demonstrates exceptional rendering capabilities, and its strength lies in the ability to generate highly reliable on-board camera data for use in deep learning, computer vision, and reinforcement learning algorithms. However, being based on PhysX, its dynamic model is unable to describe the UAV behavior accurately since, for example, it does not take into account the Coriolis force; see this reference. The underlying physics engine can be improved by ad-hoc modifications, which are usually the result of direct implementations of analytical models based on the direct application of first principles of physics on rigid bodies. Therefore, AirSim is an exceptional tool to rest guidance and vision-based navigation solutions, but it appears unsuitable for advanced testing and tuning of control systems in challenging missions involving unknown payloads and interactions with the environment.
FlightGear® is an advanced flight simulator developed mainly for fixed-wing aircraft. One of the underlying flight dynamics models is JSBSim®, which lays its foundations on data from look-up tables produced by means of experimental data. YASim® is another flight dynamics model that can be used in FlightGear, and, although it does not consider experimental data, it exploits the geometric and inertia characteristics of the aircraft to compute the forces and moments acting on it. Undoubtedly, FlightGear provides a good simulator for aircraft, but it lacks important features like the possibility to take contacts into account. Additionally, modeling deformable parts, such as ropes, is not yet possible.
RotorS is a micro-aerial vehicle simulation framework designed to test estimators and controllers for multi-rotor UAVs and produce results that are sufficiently close to those that could be obtained from actual experiments. RotorS relies on the Gazebo® physics engine, which is unable to simulate collisions with good accuracy and the dynamics of deformable objects and fluid-solid interactions.
Flightmare and FlightGoggles appear to be the two most advanced simulators developed specifically for multi-rotor UAVs. The high fidelity of these two simulators is ensured by the fact that they require the collection of data on the UAV using a motion capture system and the IMU aboard the aircraft to emulate. Thus, Flightmare and FlightGoggles are unsuitable for testing a controller’s performance before any experimental attempt.
A relevant simulator ecosystem to mention is the combination of JSBSim® with Gazebo®, which is widely used in software-in-the-loop workflows and open-source autopilot stacks. This combination is attractive because JSBSim provides a configurable flight-dynamics model, while Gazebo contributes 3D environments, sensors, and robotics-oriented integration capabilities. However, the aerodynamic modeling approach commonly used in Gazebo’s fixed-wing examples is relatively low-fidelity for the purposes considered here - Gazebo Classic aerodynamics tutorial represents the lift and drag coefficient curves using piecewise-linear approximations, typically with one linear segment before stall and another after stall. Although this is convenient computationally, it is too crude for accurate prediction over broad operating envelopes, especially near stall, during aggressive maneuvers, or for vehicles with unconventional geometries or strong aaerodynamic interactions.
Isaac Sim is an NVIDIA robotics simulation platform built on Omniverse, PhysX, and RTX rendering. It is especially attractive for perception-heavy robotics work because it combines physically based simulation with high-quality graphics, synthetic data generation, and ROS 2 integration. For UAV work, this makes it a strong environment for testing vision, navigation, and learning-based autonomy, but its main emphasis is still on robotics workflows rather than on detailed multibody aeromechanics, deformable payloads, or contact-rich vehicle-environment interactions. In that sense, Isaac Sim is a powerful general robotics simulator, but it does not directly target the kind of coupled UAV dynamics that Project Chrono is designed to handle.
Chrono is explicitly designed to accurately simulate the dynamics of multi-body systems, including multi-body interactions, the effect of elastic elements, and solid-fluid interactions. As shown on their website, there is a very tight concordance of results produced by Chrono and results produced by MSC Adams® and experiments. Furthermore, Project Chrono is considered state-of-the-art in the terrestrial robotics community.
acsl-chrono-simulator -- A Project Chrono-based high-fidelity simulator for UAVs Developed by Giri Mugundan Kumar and Andrea L'Afflitto
- How to Use the Simulator
- How to Set Up A New UAV
- Structure of the UAV Control System
- Fundementals of adaptive control