SITL_Models icon indicating copy to clipboard operation
SITL_Models copied to clipboard

Gazebo: Helicopter: add models for rotor head and helicopter

Open srmainwaring opened this issue 6 months ago • 0 comments

Add a Gazebo model for a traditional helicopter with functioning swash plate and rotor head.

trex-hover

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.

srmainwaring avatar Jul 03 '25 15:07 srmainwaring