PX4 Autopilot with 8 Lift Motors and 1 Pusher Motor

Hello, I’m a university student who is just getting started with PX4 and Gazebo. I attempted to extend the standard_vtol model by adding four additional lift motors to create an octo-VTOL (8 lift motors + 1 pusher motor). However, I continually ran into Ninja and CMake errors and ultimately failed to get the model building and running.

Has anyone successfully implemented an 8-motor + 1-pusher-motor VTOL? If so, could you please share your code or offer guidance? I really want to get this working… any help would be greatly appreciated!

Can you please share a link to your branch and the full build output?

Hello,

I’ve uploaded my Octo-VTOL files here:

Right now I’m running into this error when I try to launch the simulator:

yjh@yjh-IdeaPad-Gaming-3-16IAH7:~/PX4-Autopilot$ PX4_SIM_MODEL=standard_vtol make px4_sitl_default gz
[0/9] git submodule Tools/simulation/gz
[5/9] Performing configure step for 'gz'
CMake Error: The source directory "/home/yjh/PX4-Autopilot/Tools/simulation/gz" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
FAILED: external/Stamp/gz/gz-configure /home/yjh/PX4-Autopilot/build/px4_sitl_default/external/Stamp/gz/gz-configure 
  cd /home/yjh/PX4-Autopilot/build/px4_sitl_default/build_gz \
    && /usr/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local -GNinja /home/yjh/PX4-Autopilot/Tools/simulation/gz \
    && /usr/bin/cmake -E touch /home/yjh/PX4-Autopilot/build/px4_sitl_default/external/Stamp/gz/gz-configure
ninja: build stopped: subcommand failed.
make: *** [Makefile:222: px4_sitl_default] Error 1

Because of this CMake issue I can’t even verify whether my SDF is correct, and I’ve already lost two days just trying to fix CMake. I really need your help.

did you try compiling at least once before making your changes? Did you setup the dev environment? Are submodules updated?

That error means the Gazebo simulation submodule hasn’t been initialized. Run:

git submodule update –init –recursive

Then rebuild with:

PX4_SIM_MODEL=standard_vtol make px4_sitl_default gz

That should fix the missing CMakeLists.txt issue.