APM setup

Reading through the APM manual and APM code I have found a line that worries me. In the code an IMU calibration needs to be done to show level flight but in the manual I cannot find a reference. I can only assume flying while data logging will supply the necessary information for me to input the value into the code but without a little guidance I cannot start. The default value may actually be sufficient for a flat install within the EasyStar but I would love some confirmation before I begin further butchery of my model :D

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • I'm still a little confused about the calibration... particularly the placement of the board. I have read in some posts that it should be leveled when the plane is on the ground.. and i have read in other posts that it should be at a slight tilt(usually frontside pointing downward) because of the angle of some planes in flight.

    If i calibrate the board flat, then when flying it will be slightly pointed up in the front.
    If i calibrate the board set at an angle facing foreward, then it will be pointed down while calibrating but then level when flying.

    I havent got deep enough into the code yet(still reading forum posts and learning the theory behind all this), but was wondering if any of you knew how exactly this works. (calibration and how the system sees the 2 scenarios mentioned above)
  • 3D Robotics
    Yes, the calibration is automatic. You just leave the plane level on the ground after powerup until the LEDs stop flashing. This is the way all IMU autopilots work.
  • Hi Ritchie,

    The calibration is automatic and depends on the plane being level during the startup of the board. The servo's will wiggle a bit and the GPS leds will flash like a christmas tree when it's doing that. This happens right after you turn on the board.

    The code where this happens is in system.pde. It's "init_ardupilot", then "startup_ground" and finally the "startup_IMU_ground" code. I believe it is primarily the AN_OFFSET value array that needs to be receiving proper values for further calculations. Those are being read from the board when it's somewhere level and not moving around.

    If you need more time to put the plane in a level condition before the IMU calibration starts, have a look at the

    #define GROUND_START_DELAY 0

    define in the APM_Config.h file.

    So that should happen automatically. I think it's only the radio min/max that I generally leave in the code, but there's a procedure to configure the radio as well in the field. See read_radio_limits in radio.pde for that. (needs #if SET_RADIO_LIMITS == 1 define).
This reply was deleted.

Activity

Neville Rodrigues liked Neville Rodrigues's profile
Jun 30
Santiago Perez liked Santiago Perez's profile
Jun 21
More…