Reaching out to any developers interested in helping improve support running ArduPilot SITL with Ignition.
The ignition-edifice branch of ardupilot_gazebo is compatible with Ignition Edifice and uses the JSON interface to SITL. It is working for a variety of vehicle types (copter, plane, rover) but would definitely benefit from further testing.
- Plugin supplies flight dynamics to SITL
Still to do:
- Range finder sensors
- GPS sensor
- IR lock
- Camera integration
The documentation on the main page still refers to the legacy Gazebo / SITL-Gazebo plugin. For details on installing and running with Ignition see this wiki entry: ArduPilot Ignition Gazebo
Models and environments
The ardupilot_gazebo repo includes a couple of vehicle models and worlds to help get started.
Good for testing the installation and configuration is working. Can be run in an empty world.
Zephyr delta wing
The zephyr delta wing has been tested with ArduPilot plane4.1. The model has been configured differently to the example provided in SwiftGust’s fork and needs the
gazebo-zephyr parameters to be modified (disable SERVO reversing for the elevons).
Feature rich environments
The Ignition team have published a number of feature rich environments that can be adapted for use with ArduPilot controlled models. This example shows the iris quadcopter interacting with the Ignition Edifice depot demo world.
And here we see that getting stuck in trees is not limited to RL.
Ignition is a good option for simulating rovers, and this environment is being used to develop the sensor support for the plugin.
This ArduPilot Issue: SITL Improvements #16531 includes a feature request for a 3D front end to native SITL models. The Ignition framework may provide a mechanism for this by using the ignition-physics library and plugin support. The idea is that ArduPilot would provide a physics plugin that adapts existing SITL models to ignition-gazebo. This approach should also allow collision logic to be added in the plugin. The ignition-physics TPE example contains most of the elements that would be required.
I’m currently putting together a POC to demonstrate this if anyone is interested in discussing.