Configuration for Rotation of Propulsion Frame

I’m looking into a copter architecture in which the centerbody rotates independently from the propulsion system in the pitch axis and passively orients itself parallel to the freestream flow at all forward flight speeds to reduce drag. See sketch of this below. Independent rotation is achieved by using a rotor frame that is attached to the centerbody via bearings. Passive orientation is achieved by aerodynamic forces acting on the centerbody during forward flight, which produces a favorable net torque for a statically stable configuration.

How would I go about configuring a ‘dynamic motor’ setup like this in ardupilot?

Btw I’m open to any other feedback folks may have on the general feasibility/practically of this configuration. Thanks.

My guess is this is quite hard since there are a lot of fixed orientation assumptions baked into the code. You are also going to need some way of sensing the rotation as I suspect assuming it is perfectly level at all times is invalid. But @iampete is your man - if it can be done he will know how.

1 Like

If you just mount all the flight control stuff on the tilting bit ArduCopter will not care what the fuselage does, but you may have to do some gain scheduling because the vehicle will change inertia as the copter tilts relative to the fuselage.

1 Like

Thanks @iampete - makes sense

@iampete Would this gain scheduling process be any different than just performing an autotune per: ?

Yes, Gain scheduling means we would change the gains the gains with angle relative to the fuselage. Autotune would give you one of those points. I suspect you will find its fine without.

1 Like

Hey @iampete one more question. Any recommendation on how to handle the external compass (on gps) being mounted on the fuselage while the flight controller compass is mounted on the propulsion frame? My setup is fight controller mounted 270roll, 270 yaw on propulsion frame while gps is mounted on fuselage pointing forward. With this current setup, I am getting an ‘inconsistent compass’ error. Thanks.

No, you will have to mount in on the “copter” bit.

1 Like

If I mount the GPS on the ‘copter’ bit in the same orientation as the flight controller (270 roll, 270 yaw, set in ahrs_orientation), do any other parameters need to be updated? From the wiki, looks like not, but just want to confirm.

I’m running into the following compass related errors:

  • inconsistent compass
  • MAG0 ground mag anomaly, yaw realigned
  • GPS Glitch or Compass Error

Datalogs are also showing large deviations in MAG1 and MAG2 x/y/z measurements.

@andyp1per /@iampete Any chance you could sanity check my configuration? (see below)

To account for the non-standard mounting of the flight controller I set:

  • CUST_ROT1_ROLL = 270
  • CUSTO_ROT1_YAW = 270

To account for the non-standard mounting of the GPS (plus external compass) I set (same orientation as FC)


My Hardware config is as follows:

  • Pixhawk 6C FC
  • Matek M8Q -5883 connected to GPS2 port on FC (to enable use of GPS2 I set GPS_TYPE2 = 1)

Any feedback would be appreciated.

You should not need a custom rotation for AHSR or compass. We have all combinations of 90 for AHRS and then you can just let compass figure it out on its own during calibration.

1 Like

Thanks @iampete. Reverting to the standard orientation fixed the compass inconsistency issues.

But I am still getting “EKF3 IMU1 MAG0 ground mag anomaly, yaw realigned” error. Any thoughts on this one? Thanks

Looks to be a common issue several other folks have run into. Per this thread EKF ground mag anomaly - has anyone heard of it? - #27 by Raj_Kumar
root cause wasn’t really determined

It looks like you have the internal compass as priority 1. Try swapping the priority to the external compass.

1 Like

Thank you @dkemxr - That seemed to resolve the issue. Now getting “EKF3 IMU1 MAG0 initial yaw alignment complete”

There still appears to be a large variation in magnetic field. This may be due to inference as i’m testing indoors (due to high winds). Will try again outdoors tomorrow and see what it looks like.

UPDATE: Ran a few hovers outside and am getting similar results. Is this indicative of a hardware issue? Thanks