Omnicopter
An Omnicopter is a multicopter that can provide thrust in all directions (6 degrees of freedom). This allows it to move in any direction without having to tilt, and it can hover at an arbitrary tilt angle. All of this is achieved by arranging the motor positions and thrust axis in specific ways:
This build follows the original design from Brescianini, Dario, and Raffaello D'Andrea.
Bill of Materials
The components needed for this build are:
- Electronics:
- Flight controller: Holybro KakuteH7
- Coupled with 2x Tekko32 F4 4in1 ESCs ::: info You can select your own flight controller of choice, it just needs to support 8 DShot outputs. :::
- GPS: ZED-F9P
- GPS helix antenna ::: info Any other GPS may work as well, however a helix antenna is expected to perform better for inverted flights. :::
- Any RC receiver
- An external Magnetometer. We used the RM-3100.
- Telemetry link, e.g. WiFi
- Propulsion:
- Motors: 8x BrotherHobby LPD 2306.5 2000KV/2450KV/2650KV
- 3D Propellers: 2x HQProp 3D 5X3.5X3 3-Blade Propeller (Set of 4) or 2x Gemfan 513D 3-Blade 3D Propeller (Set of 4)
- Battery: we used a 6S 3300mAh LiPo. Make sure to check the dimensions so it fits the frame.
- Battery strap
- Frame:
- 3D model
Assembly
Frame
Print the 3D parts ::: info The orientation of the corner pieces matters. You will notice if it's wrong when the angles of the rods are not correct. :::
Cut the rods
Test that it all works by connecting the frame pieces together:
Place the motors as far out as possible, without the propellers touching the rods.
Electronics
Solder the peripherals to the flight controller. We used the following assignments:
- ESCs: the 2 ESCs can be connected directly to the two connectors of the KakuteH7. To avoid conflicts we removed the power pin (right-most pin) from one of the connectors.
- Telemetry to UART1
- GPS to UART4
- RC to UART6
Remarks:
- Make sure the magnetometer is placed away from power. We ended up placing it to the bottom of the center-piece with a 4cm padding styrofoam.
- Put some tape on the barometer (without taping the opening!) to avoid any influence from light.
- We did not glue the frame. It is certainly advisible to do so after initial test flights, but it might work without.
Software Configuration
ESC
First, configure the ESCs to 3D mode (bidirectional). We had issues with the stock ESC settings in 3D mode: when trying to switch direction, a motor sometimes did not start anymore until the ESC was rebooted. So we had to change ESC settings.
To do so, you can use Betaflight on the flight controller and then use pass-through mode and the BL Heli suite (make sure there is an airframe with 8 motors configured in Betaflight). These are the settings:
In particular:
- set the Motor Direction to Bidirectional Soft
- increase the Rampup Power to 100% (this is conservative and might reduce efficiency)
INFO
Make sure the motors do not overheat with the changed settings.
PX4
- Select a generic multicopter airframe
- Use an arming switch, do not use stick arming
- Select DShot as output protocol on all eight outputs
- Configure the motors according to this: We used the following convention: the motors are facing the direction of where the axis points to. The spinning direction matches the direction of positive thrust (moving the motor slider up). Make sure to use the right props, as there is a CCW and a CW version.
- Parameters:
- This file contains all the relevant parameters.
Video
Simulation
There is an omnicopter simulation target in Gazebo Classic:
sh
make px4_sitl gazebo-classic_omnicopter
Remarks
Some general remarks:
- The hover throttle is about 30%.
- The flight time is around 4-5min. This could probably be improved a bit by using larger propellers.