Browse Source

Copter: integrate automatic roll and pitch trims

mission-4.1.18
Randy Mackay 12 years ago committed by rmackay9
parent
commit
6601bd37cf
  1. 6
      ArduCopter/GCS_Mavlink.pde
  2. 7
      ArduCopter/setup.pde

6
ArduCopter/GCS_Mavlink.pde

@ -1227,9 +1227,13 @@ void GCS_MAVLINK::handleMessage(mavlink_message_t* msg) @@ -1227,9 +1227,13 @@ void GCS_MAVLINK::handleMessage(mavlink_message_t* msg)
trim_radio();
}
if (packet.param5 == 1) {
float trim_roll, trim_pitch;
// this blocks
AP_InertialSensor_UserInteractStream interact(hal.console);
ins.calibrate_accel(flash_leds, &interact);
if(ins.calibrate_accel(flash_leds, &interact, trim_roll, trim_pitch)) {
// reset ahrs's trim to suggested values from calibration routine
ahrs.set_trim(Vector3f(trim_roll, trim_pitch, 0));
}
}
result = MAV_RESULT_ACCEPTED;
break;

7
ArduCopter/setup.pde

@ -288,13 +288,18 @@ static void setup_wait_key(void) @@ -288,13 +288,18 @@ static void setup_wait_key(void)
static int8_t
setup_accel_scale(uint8_t argc, const Menu::arg *argv)
{
float trim_roll, trim_pitch;
cliSerial->println_P(PSTR("Initialising gyros"));
ahrs.init();
ins.init(AP_InertialSensor::COLD_START,
ins_sample_rate,
flash_leds);
AP_InertialSensor_UserInteractStream interact(hal.console);
ins.calibrate_accel(flash_leds, &interact);
if(ins.calibrate_accel(flash_leds, &interact, trim_roll, trim_pitch)) {
// reset ahrs's trim to suggested values from calibration routine
ahrs.set_trim(Vector3f(trim_roll, trim_pitch, 0));
}
report_ins();
return(0);
}

Loading…
Cancel
Save