Skip to content

Latest commit

 

History

History
118 lines (80 loc) · 9.82 KB

simulation.md

File metadata and controls

118 lines (80 loc) · 9.82 KB

Simulation of Aerial Robotics

Simulation is crucial when working with Unmanned Aerial Vehicles (UAVs). Testing different trajectories and control paradigms in a simulator before implementing them on the real platform ensures not only safety but also facilitates development.

This page presents several simulator options for aerial robotics enthusiasts.

Comparison

The following simulators have their own integrated physics simulation and basic rendering capabilities. They are capable of simulating the aerodynamic forces necessary to keep UAVs airborne:

For the following comparison, we have refered this article

Cora A. Dimmig et al. "Survey of Simulators for Aerial Robots" arXiv preprint arXiv:2311.02296v2 (2024)

Features

List migh not be complete. If you see any error or missing components, feel free to open a PR or issue.

Name Physics Engine Rendering Linux1 Windows1 MacOS1 Interface (S/H)ITL2 Active3 Hardware requirement4 Licence Open source5 Interest 6
Gazebo (
RotorS,
CrazyS,
PX4 SITL)
ODE/ Bullet/ DART/ Simbody OGRE
( ✓

✓ )

( ✗

✗)

( ✗

✗ )
ROS 1/2, C++, RL PX4, ArduPilot, CF7
( ✗

✗ )
minimal/decent Apache 2.0 High
Gazebo Bullet/ DART/ TPE OGRE ROS 1/2, C++, Python, RL PX4, ArduPilot, CF minimal/decent Apache 2.0 High
Isaac (
Pegasus,
Aerial Gym)
NVIDIA PhysX/ Flex Vulkan ROS 1/2, Python, RL Pegasus: PX4 high/demanding NVIDIA OMNIVERSE
(BSD 3)

(✓
✓)
User specific
Webots ODE OpenGL ROS 1/2, C/C++, Python, MATLAB, Java ArduPilot, CF decent/high Apache 2.0 Developing
CoppeliaSim Bullet/ODE/Vortex/Newton/MuJoCo OpenGL ROS 1/2, C/C++, Python, MATLAB, Java,Lua,Octave -- decent/high GNU GPL/Commercial Decent
AIRsim NVIDIA PhysX Unreal,Unity ROS 1, C++, Python, C#, Java,RL PX4, ArduPilot medium/high MIT Low
Flightmare Ad hoc, Gazebo classic Unity ROS 1, C++, RL -- -- MIT Low
FlightGoggles Ad hoc Unity ROS 1, C++ Motion capture -- MIT Unknown
Gym-pybullet-drones Pybullet OpenGL Python, RL Betaflight, CF minimal/decent/high MIT (Pybullet: zlib) High
RotorTM Ad hoc OpenGL ROS 1, Python, MATLAB -- -- GNU GPL Unknown
MATLAB UAV Toolbox MATLAB Unreal ROS 2, MATLAB PX4 -- Proprietary, Commercial Unknown
O3de NVIDIA PhysX/ NVIDIA Cloth/ AMD TressFX Atom ROS 28 , C++ unknown decent/high Apache-2.0/MIT Developing
Drake ad hoc unknown C++, Python, ROS 2 unknown unknown BSD 3 Developing
Flightgear unknown unknown C++ unknown minimal/decent GNU-GPL Low
RealFlight unknown unknown -- unknown minimal/decent non-public Low
RotorPy ad hoc unknown Python -- minimal/decent MIT Developing

Vehicle types

Simulator Multirotor (Basic) Multirotor (Drag) Multirotor (Wind) Fixed-wings Aerial Manipulators Swarms Cars Other vehicles
Gazebo (Classic & New)
Isaac (Pegasus, Aerial Gym) ✗(✓,✗) ✓(✗,✗) ✓(✗,✗)
Webots
CoppeliaSim
AirSim
Flightmare
FlightGoggles
gym-pybullet-drones
RotorTM
MATLAB UAV Toolbox
O3de* ~ ? ? ? ? ? ~ ~
Drake* ? ? ? ? ? ? ? ?
RotorPy* ~ ~ ~ ~
  • [ * ] : Unknown data. If you have information on specific topic, please comment bellow with the referance link.
    • [ ~ ] : Yes according to my knowledge but it needs development.
    • [ ? ] : Unknown
    • [ ✗ ] : No according to my research.
  • [ ✓ ] : Yes
  • [ ✱ ] : Yes. But not specifically designed for it
  • [ ✗ ] : No

Sensor support

TODO

Flight dynamics models

Some simulators mostly focus on creating accurate dynamics for aerial vehicles. Here are some options:

Available UAV Models

Each simulator typically offers a range of ready-to-use aerial vehicle models:

Autopilot Suites

Several autopilot suites provide instructions for using simulators, often with Software-in-the-Loop (SITL) or Hardware-in-the-Loop (HITL) options:

--8<-- "docs/goatcounter.html"

Footnotes

  1. ✓: Full support, ✱: Partial support, ✗: No support 2 3

  2. (Software/Hardware) In The Loop

  3. ✓: Active and maintained, ✱: Inactive but responding to issues/ PR, ✗: Inactive for 2+ years

  4. For a referance, a laptop running Intel i5 10th gen (or similar) with 8gb ddr4 ram and NVIDIA T100 4gb (or similar) are considered as minimal requirement.

  5. ✓: Yes, ✱: Yes for non commercial use-case , ✗: No

  6. Usage in Aerial ROS/Robotics community according to several survey on Discourse and during the meetings.

  7. Crazyflie

  8. It seem under development and there is some docs out there.