Arducopter control over max thrust?

1,625 views
Skip to first unread message

Andrew Chapman

unread,
Jun 9, 2013, 8:52:06 PM6/9/13
to drones-...@googlegroups.com
Hi guys,

I have a Hex which is flying like it's underpowered, though in theory it
should have plenty of grunt.

I bench tested each motor individually by directly connecting the RX
throttle input. Each motor gives approx 1.3kg of thrust, so I should
have a total of 7.8kg of thrust available from a fresh charge (4S packs,
380kv T-Motor 4008s, 14x4.7 APC props).

The Hex weighs 2.5kg in bare airframe mode (i.e. no camera or gimbal) so
should hover on well under half thrust, but it actually requires 60%
throttle to hover in this setup (throttle output value of around 590,
which I've set THR_MID to now). And when I put the camera and gimbal on
it weighs 3.5kg and seems to really struggle, with the throttle stick at
3/4 (THR_MID still set at 590) and lolling around rather than reacting
snappily to inputs, even though that still has a thrust to weight ratio
of around 2:1.

So what parameters am I missing that are causing the APM to
under-utilize the motors? Here's the settings I know of and how they're
set (and all parameters pasted at the end):

THR_MID: 590
THR_MAX: 1000
RC3_MIN: 1104
RC3_MAX: 1894
MOT_CRV_MIDPCT: 52
MOT_CRV_MAXPCT: 93

I tested max amp draw using an off-board current sensor with one motor
directly connected to the throttle signal and it draws 10.9 amps. With
the copter level and the throttle going via the APM it draws only
6.5amps. If I then tilt it (lowering the side of that motor to around 45
degrees) I then get much closer, maybe 9.5-10amps.

So it seems like in this case the APM is reserving too much head-room
for stabilization and not enough lifting power when level. I thought
THR_MAX was used to configure that, but in my case it's already set to
100% (1000).

Any thoughts appreciated - this rig should have enough power, but it
looks like the APM is being shy in asking for it.

Cheers.

AC.






#NOTE: 05/06/2013 1:24:49 PM Frame :
ACRO_BAL_PITCH,200
ACRO_BAL_ROLL,200
ACRO_P,4.5
ACRO_TRAINER,1
AHRS_BARO_USE,0
AHRS_GPS_GAIN,1
AHRS_GPS_USE,1
AHRS_RP_P,0.1
AHRS_TRIM_X,-0.041
AHRS_TRIM_Y,0.01
AHRS_TRIM_Z,0
AHRS_WIND_MAX,0
AHRS_YAW_P,0.1
AMP_PER_VOLT,18.002
AUTO_SLEW,30
AUTO_VELZ_MAX,125
AUTO_VELZ_MIN,-125
AXIS_ENABLE,1
BATT_CAPACITY,6000
BATT_CURR_PIN,12
BATT_MONITOR,4
BATT_VOLT_PIN,13
CAM_DURATION,10
CAM_SERVO_OFF,1100
CAM_SERVO_ON,1300
CAM_TRIGG_TYPE,0
CH7_OPT,0
CIRCLE_RADIUS,0
COMPASS_AUTODEC,0
COMPASS_DEC,0.45
COMPASS_LEARN,0
COMPASS_OFS_X,51.503
COMPASS_OFS_Y,14.715
COMPASS_OFS_Z,-27.313
COMPASS_USE,1
ESC,0
FLOW_ENABLE,0
FLTMODE1,6
FLTMODE2,3
FLTMODE3,5
FLTMODE4,2
FLTMODE5,0
FLTMODE6,0
FRAME,1
FS_BATT_ENABLE,1
FS_THR_ENABLE,1
FS_THR_VALUE,975
HLD_LAT_I,0
HLD_LAT_IMAX,3000
HLD_LAT_P,0.2
HLD_LON_I,0
HLD_LON_IMAX,3000
HLD_LON_P,0.2
INAV_ACORR_X,25.311
INAV_ACORR_Y,-63.039
INAV_ACORR_Z,15.949
INAV_TC_XY,3
INAV_TC_Z,5
INPUT_VOLTS,5
INS_ACCOFFS_X,-0.15
INS_ACCOFFS_Y,0.292
INS_ACCOFFS_Z,0.94
INS_ACCSCAL_X,0.99
INS_ACCSCAL_Y,0.995
INS_ACCSCAL_Z,0.979
INS_GYROFFS_X,0.003
INS_GYROFFS_Y,-0.07
INS_GYROFFS_Z,0.054
INS_MPU6K_FILTER,0
INS_PRODUCT_ID,88
LAND_SPEED,50
LED_MODE,9
LIM_ALT_MAX,0
LIM_ALT_MIN,0
LIM_ALT_ON,0
LIM_ALT_REQ,0
LIM_CHANNEL,0
LIM_DEBUG,0
LIM_ENABLED,0
LIM_FNC_ON,0
LIM_FNC_RAD,0
LIM_FNC_REQ,0
LIM_FNC_SMPL,0
LIM_FNC_TOT,0
LIM_GPSLCK_ON,0
LIM_GPSLCK_REQ,0
LIM_RECMODE,0
LIM_REQUIRED,0
LIM_SAFETIME,0
LOG_BITMASK,-30850
LOITER_LAT_D,0.4
LOITER_LAT_I,0.04
LOITER_LAT_IMAX,3000
LOITER_LAT_P,5
LOITER_LON_D,0.4
LOITER_LON_I,0.04
LOITER_LON_IMAX,3000
LOITER_LON_P,5
LOW_VOLT,12.8
MAG_ENABLE,1
MNT_ANGMAX_PAN,0
MNT_ANGMAX_ROL,2000
MNT_ANGMAX_TIL,4500
MNT_ANGMIN_PAN,0
MNT_ANGMIN_ROL,-2000
MNT_ANGMIN_TIL,-4500
MNT_CONTROL_X,0
MNT_CONTROL_Y,0
MNT_CONTROL_Z,0
MNT_JSTICK_SPD,0
MNT_MODE,3
MNT_NEUTRAL_X,0
MNT_NEUTRAL_Y,0
MNT_NEUTRAL_Z,0
MNT_RC_IN_PAN,0
MNT_RC_IN_ROLL,0
MNT_RC_IN_TILT,6
MNT_RETRACT_X,0
MNT_RETRACT_Y,0
MNT_RETRACT_Z,0
MNT_STAB_PAN,0
MNT_STAB_ROLL,1
MNT_STAB_TILT,1
MOT_TB_RATIO,1
MOT_TCRV_ENABLE,1
MOT_TCRV_MAXPCT,93
MOT_TCRV_MIDPCT,52
NAV_LAT_D,0
NAV_LAT_I,0.17
NAV_LAT_IMAX,1800
NAV_LAT_P,2.4
NAV_LON_D,0
NAV_LON_I,0.17
NAV_LON_IMAX,1800
NAV_LON_P,2.4
OF_PIT_D,0.12
OF_PIT_I,0.5
OF_PIT_IMAX,100
OF_PIT_P,2.5
OF_RLL_D,0.12
OF_RLL_I,0.5
OF_RLL_IMAX,100
OF_RLL_P,2.5
PILOT_VELZ_MAX,250
RATE_PIT_D,0.003
RATE_PIT_I,0.2
RATE_PIT_IMAX,500
RATE_PIT_P,0.2
RATE_RLL_D,0.003
RATE_RLL_I,0.2
RATE_RLL_IMAX,500
RATE_RLL_P,0.2
RATE_YAW_D,0
RATE_YAW_I,0.015
RATE_YAW_IMAX,800
RATE_YAW_P,0.2
RC_SPEED,490
RC1_DZ,30
RC1_MAX,1882
RC1_MIN,1082
RC1_REV,-1
RC1_TRIM,1482
RC10_DZ,0
RC10_FUNCTION,0
RC10_MAX,1900
RC10_MIN,1100
RC10_REV,1
RC10_TRIM,1500
RC11_DZ,0
RC11_FUNCTION,0
RC11_MAX,1900
RC11_MIN,1100
RC11_REV,1
RC11_TRIM,1500
RC2_DZ,30
RC2_MAX,1948
RC2_MIN,1151
RC2_REV,-1
RC2_TRIM,1551
RC3_DZ,30
RC3_MAX,1894
RC3_MIN,1104
RC3_REV,1
RC3_TRIM,1513
RC4_DZ,40
RC4_MAX,1905
RC4_MIN,1101
RC4_REV,-1
RC4_TRIM,1502
RC5_DZ,0
RC5_FUNCTION,0
RC5_MAX,1835
RC5_MIN,910
RC5_REV,1
RC5_TRIM,1688
RC6_DZ,0
RC6_FUNCTION,0
RC6_MAX,2030
RC6_MIN,910
RC6_REV,1
RC6_TRIM,1586
RC7_DZ,0
RC7_FUNCTION,8
RC7_MAX,1914
RC7_MIN,1102
RC7_REV,-1
RC7_TRIM,1906
RC8_DZ,0
RC8_FUNCTION,7
RC8_MAX,2030
RC8_MIN,910
RC8_REV,1
RC8_TRIM,1509
RSSI_PIN,-1
RTL_ALT,2000
RTL_ALT_FINAL,200
RTL_LOIT_TIME,3000
SERIAL3_BAUD,57
SIMPLE,0
SONAR_ENABLE,0
SONAR_TYPE,0
SR0_EXT_STAT,2
SR0_EXTRA1,10
SR0_EXTRA2,10
SR0_EXTRA3,2
SR0_PARAMS,50
SR0_POSITION,3
SR0_RAW_CTRL,0
SR0_RAW_SENS,2
SR0_RC_CHAN,2
SR3_EXT_STAT,0
SR3_EXTRA1,0
SR3_EXTRA2,0
SR3_EXTRA3,0
SR3_PARAMS,0
SR3_POSITION,0
SR3_RAW_CTRL,0
SR3_RAW_SENS,0
SR3_RC_CHAN,0
STB_PIT_I,0
STB_PIT_IMAX,800
STB_PIT_P,4
STB_RLL_I,0
STB_RLL_IMAX,800
STB_RLL_P,4
STB_YAW_I,0
STB_YAW_IMAX,800
STB_YAW_P,4.5
SUPER_SIMPLE,0
SYSID_MYGCS,255
SYSID_SW_MREV,120
SYSID_SW_TYPE,10
SYSID_THISMAV,1
TELEM_DELAY,0
THR_ACC_ENABLE,1
THR_ACCEL_D,0
THR_ACCEL_I,1.5
THR_ACCEL_IMAX,500
THR_ACCEL_P,0.75
THR_ALT_I,0
THR_ALT_IMAX,300
THR_ALT_P,2
THR_MAX,1000
THR_MID,590
THR_MIN,130
THR_RATE_D,0.2
THR_RATE_I,0
THR_RATE_IMAX,300
THR_RATE_P,6
TILT,54
TOY_RATE,1
TRIM_THROTTLE,232
TUNE,0
TUNE_HIGH,1000
TUNE_LOW,0
VOLT_DIVIDER,10
WP_INDEX,0
WP_RADIUS,2
WP_SPEED_MAX,500
WP_TOTAL,1
XTRK_GAIN_SC,0.2
XTRK_MIN_DIST,15
YAW_OVR_BEHAVE,0


Randy Mackay

unread,
Jun 9, 2013, 9:38:36 PM6/9/13
to drones-discuss, amch...@gmail.com

No, we don't reserve some headroom in the throttle for stabilization so I think it's a frame issue not a controller issue.

-Randy

Sent from Yahoo! Mail on Android



From: Andrew Chapman <amch...@gmail.com>;
To: drones-...@googlegroups.com <drones-...@googlegroups.com>;
Subject: [drones-discuss] Arducopter control over max thrust?
Sent: Mon, Jun 10, 2013 12:52:06 AM

--
You received this message because you are subscribed to the Google Groups "drones-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drones-discuss+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Robert Lefebvre

unread,
Jun 9, 2013, 11:12:37 PM6/9/13
to drones-discuss
Sorry, didn't have the time to read the whole thing but just in case...

I just went through something like this with my new Octo.  On it's first ever battery, getting it tuned in, I had reduced ThrMax to like 800 or something, because I thought it would be overpowered.  But it wasn't at all.  I raised it back up to 1000, set ThrMid to like 600, and the motor kept shutting off, so I set ThrMin to like 250... And still they'd shut down.

I tuned the rate pids a bit, etc.  But I thought it seemed way underpowered.  Then when I changed the battery, all the sudden it was more powerful.  (no, not a battery thing).  I think what happened is that if you move the Thr Min-Max-Mid, maybe you need to reboot so something gets reset?  Like Heli "swash initialization"?

Make any sense Randy?


--
You received this message because you are subscribed to the Google Groups "drones-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drones-discus...@googlegroups.com.

Randy Mackay

unread,
Jun 10, 2013, 3:01:47 AM6/10/13
to drones-...@googlegroups.com
Rob,
     I think for your issue, indeed it's because we only send the thr-min and thr-max at start-up.  I've raised an issue here to fix the problem by moving the parameter to the motors class.
 
     I think AC's issue is different because he hasn't modified the thr-min nor thr-max.  It's just thr-mid.
 
AC,
     the thr-mid parameter won't affect the total output going to the motors.  It just scales the total throttle so that when the throttle stick is put in the middle it outputs the hover throttle (i.e. 590 in your case).
 
     I see you're probably using 2.9.1b (it's certainly not 3.0-rc5 because it's missing the new wpnav parameters) so this code has flown on tons of hexa copters which is why I think it's a set-up or frame issue.
 
>>> With the copter level and the throttle going via the APM it draws only 6.5amps. If I then tilt it (lowering the side of that motor to around 45 degrees) I then get much closer, maybe 9.5-10amps.
 
     I guess you're only checking one motor and you're putting the throttle to full?  I'll bet if you leave the copter level but rotate it you can also get it to increase to 10amps.  If that's the case then the problem is probably yaw related...for example if you had one motor that wasn't working properly (or it's prop was on up-side-down or it was spinning in the wrong direction) the copter would have too little yaw control.  It would make up for this by spinning some motors very quickly and others very slowly and it might even be able to maintain yaw but in order to maintain attitude control it would not be able to output full throttle.
      Actually, now that I think of it...i'm sure this is your problem. one or even two of the props or motors is spinning backwards.
 
-Randy

To unsubscribe from this group and stop receiving emails from it, send an email to mailto:drones-discuss%2Bunsu...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.


Andrew Chapman

unread,
Jun 10, 2013, 4:57:43 AM6/10/13
to drones-...@googlegroups.com
On 2013-06-10 12:01 AM, Randy Mackay wrote:
      Actually, now that I think of it...i'm sure this is your problem. one or even two of the props or motors is spinning backwards.

I'm not that much of an amateur ;)

I'm pretty thorough about running the CLI motors command after setup or messing around with motor connections. They definitely all spin in the right order, in the right directions, and the props are the right way up and of the correct pusher/tractor types.

I did another test today after re-calibrating the ESCs, it was a bit better but still not the power I would expect.

I did notice in the MOTOR entries in the log that motors 2+4+5 (CCW) are outputting higher throttle than 1+3+6 (CW). So it looks like there is some yaw twist in the frame which is being compensated for. They all look perfectly straight to my eye, so I might try skewing them all a little to add some right yaw (I think I've got my logic the right way around there: CCW motors working harder means it is trying to yaw the whole thing CW, which is to the right.... rrrright?)

And yes, this is 2.9.1b, I'm testing 3.0 on my quad but I'm not willing to risk the hex with it until after a wider release.

AC.



Will Chaney

unread,
Jan 20, 2014, 6:01:21 PM1/20/14
to drones-...@googlegroups.com
I'm having the exact same problem with a hexarotor that is very similar to the size of yours.  I personally believe it to be an issue with the control board limiting the power used for lift in order to keep enough reserve for maneuvering. I've played around with all the throttle settings as you have mentioned and have not been able to get above ground effect with my setup.  My system should theorticaly draw 138 amps if run at full throttle.  I'm currently running about 80 amps with the throttle wide open.

This is becoming very frustrating to deal with as I know the math checks out and I should easily be able to obtain flight. I have a thrust to weight ratio of 1.83.

Have you found any solution since June?  I have also tried the recommendations from diydrones: http://diydrones.com/forum/topics/why-are-motors-not-getting-full-power-from-arducopter?commentId=705844%3AComment%3A1099678

Even after all of the comments on there, I'm still unsuccessful.

Andrew Chapman

unread,
Jan 26, 2014, 6:11:35 PM1/26/14
to drones-...@googlegroups.com
Hi Will, 

My workaround was to move to 6S, which has additional benefits, i.e. much more tolerant of a motor failure now, as well as it just being nice to have gobs of power ;)

I think something changed between 2.8.1 and 2.9.1 which affected the max thrust that the copter code will command, but I didn't loop back to get to the bottom of it. If you're willing to do the test I'd love to know if you do get full power by installing the old 2.8.1 firmware.

AC.

Rory San Miguel

unread,
Apr 14, 2014, 7:50:33 PM4/14/14
to drones-...@googlegroups.com
Hi All,
We are currently facing the same problem, struggling to push 65A through a system capable (and bench tested with single motor/prop/esc/radio combo) to use 120A or thereabouts. With no payload and a theoretical 15kgs of thrust, our 5kg setup accelerates vertically quite sluggishly. We are running 6s and total system hovers on about 25A so its fairly efficient. 

After digging through the parameters and finding the thrust curve setting, turning the thrust curve off causes all outputs to jump by about 200ns, which is much better, but total current draw and thrust remains low. Just to confirm, the escs have been calibrated, and the same calibration process produces >2.5kgs of thrust and 18A on the bench at full throttle. 

I doubt the power supply is at fault, we have 2 10Ah 6s batteries in parallel delivering gobs of current. PDB is over-rated as well. 

Am going to spend some more time this afternoon examining frame yaw imbalance however nothing obvious strikes me.

Any recommendations would be welcome.

Rory

Randy Mackay

unread,
Apr 14, 2014, 10:57:21 PM4/14/14
to drones-...@googlegroups.com

Rory,

 

     Thanks for looking into this in detail.

 

     I think looking at the RCOUT dataflash log may help because that should show the raw values being output to each ESC.  From that I guess you can see the average pwm that is being output.

 

     You’re absolutely right that the throttle curve chops off the top 8% of the pwm output.  Before implementing that I tested a variety of ESCs and found that even though the ESCs accepted higher pwm values they didn’t produce any additional thrust.  If you find some ESCs do produce additional thrust I’m very happy to modify that bit of code.  I suspect we could even remove it.  We added it a long time ago when we were trying to solve the “rise-on-yaw” problem.  It didn’t actually help though and we found the cause of the problem was the previous version of the stability patch which has since been replaced.

 

     My guess is that the current stability patch is limiting the output to the motors because of a motor imbalance but it could be some kind of “issue”.  The code for the stability patch is quite complex but you can experiment with different inputs to it to see what it produces by loading the AP_Motors_test.pde onto an APM2, not need to actually attach motors, it’ll display the output on the terminal.

https://github.com/diydrones/ardupilot/blob/master/libraries/AP_Motors/examples/AP_Motors_test/AP_Motors_test.pde

 

-Randy

--
You received this message because you are subscribed to the Google Groups "drones-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drones-discus...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages