Gazebo: Helicopter: add models for rotor head and helicopter
Add a Gazebo model for a traditional helicopter with functioning swash plate and rotor head.
The model is a slightly scaled up version of a T-Rex 450 (1.75x). This is mainly because the CAD model for the rotor head is slightly oversize for the to-scale T-Rex 450, and as it is the most complex mechanical component it is simpler to scale the frame up than the rotor-head down.
Testing
The simulation was tested on the following systems:
- macOS Sequoia 15.2 (x86_64), Gazebo Ionic.
- macOS Sequoia 15.2 (arm64), Gazebo Harmonic.
- Ubuntu Jammy 22.04 (VM, x86_64), Gazebo Harmonic.
Gazebo pre-requisites
This model uses some more advanced features from the Gazebo physics library that are not yet released in standard distributions of Gazebo. The model will not be stable without them (it will load, but the model will not operate correctly).
Until the features have been released it is necessary to build Gazebo (Harmonic or Ionic) from source and include the patches below by cherry-picking the commits into gz-physics and gz-sim:
- https://github.com/gazebosim/gz-physics/pull/753
- https://github.com/gazebosim/gz-physics/pull/754
- https://github.com/gazebosim/gz-sim/pull/2960
Usage
Ensure the GZ_SIM_RESOURCE_PATH is updated to include these models:
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:\
$HOME/SITL_Models/Gazebo/models:\
$HOME/SITL_Models/Gazebo/worlds
Run Gazebo
gz sim -v4 -r helicopter_runway.sdf.sdf
Run ArduPilot SITL
sim_vehicle.py -v ArduCopter -f helicopter --model json --add-param-file=$HOME/SITL_Models/Gazebo/config/helicopter.param --console --map
The model operates as a traditional helicopter with RC 3 controlling collective and RC 8 the motor interlock. RC 1 is roll cyclic, RC 2 pitch cyclic and RC 4 yaw via tail rotor.
Credits
The visuals for the rotor head and frame were derived from the following CAD models:
- PB: https://grabcad.com/library/two-blade-small-helicopter-rotor-head-2
- Andrey Sazonov: https://grabcad.com/library/rc-helicopter-t-rex-450
Permission to use the models in a derived work has been sought.