/PegasusArduPilot

A fork of PegasusSimulator, adding ArduPilot backend support

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

PegasusArduPilot

IsaacSim 4.1.0 ArduPilot 4.3.3 Ubuntu 22.04

PegasusArduPilot is a fork of the PegasusSimulator project, built on top of NVIDIA Omniverse and IsaacSim.

This project bridges between the ArduPilot project and IsaacSim, allowing the ArduPilot community to leverage IsaacSim's physics simulation and photorealistic rendering capabilities!

Notice: A pull request of the features included in this fork was submitted into the PegasusSimulator, and hopefully intended to be merged into the main project.

Backend Selection

ArduPilot drone spawn

ArduPilot drone takeoff

ArduPilot Camera Demo

Setup

  1. Follow PegasusSimulator installation steps: https://pegasussimulator.github.io/PegasusSimulator/source/setup/installation.html
  2. Follow ArduPilot SITL installation steps:

You may install ArduPilot at ~/ardupilot, or change the path in the UI inside Pegasus backend selection menu.

To get PegasusSimulator and ArduPilot SITL talking, I created a Python implementation of the custom protocol used between ArduPilot SITL and the simulator - called PyArduPilotPlugin. This project allows developers to create a custom simulator and integrate it with ArduPilot SITL control using Python!

Changes to main Project

Since the code of PegasusSimulator is currently tightly coupled with PX4, I had to change the backend class hierarchy to become more generic and extendable.

Pegasus Backends

Citation

If you find PegasusArduPilot Simulator useful in your academic work, please cite the paper below. It is also available here.

@INPROCEEDINGS{10556959,
  author={Jacinto, Marcelo and Pinto, João and Patrikar, Jay and Keller, John and Cunha, Rita and Scherer, Sebastian and Pascoal, António},
  booktitle={2024 International Conference on Unmanned Aircraft Systems (ICUAS)}, 
  title={Pegasus Simulator: An Isaac Sim Framework for Multiple Aerial Vehicles Simulation}, 
  year={2024},
  volume={},
  number={},
  pages={917-922},
  keywords={Simulation;Robot sensing systems;Real-time systems;Sensor systems;Sensors;Task analysis},
  doi={10.1109/ICUAS60882.2024.10556959}}

Licenses

PegasusSimulator is released under BSD-3 License. The license files of its dependencies and assets are present in the docs/licenses directory.

NVIDIA Isaac Sim is available freely under individual license.

ArduPilot is available as an open-source project under GPL-3 License.