Release Upgrades

From PaparazziUAV
Revision as of 04:27, 6 March 2014 by Flixr (talk | contribs)
Jump to navigation Jump to search

Release information and tarballs can be found at https://github.com/paparazzi/paparazzi/releases or accessed directly via git.

The latest stable release is: v5.0.4_stable

This page is help guide any software configuration changes in airframe files or configuration files, as well as provides hints around any behaviour or workflow changes.

In any codeblocks, a leading - indicates one should remove the line, while a leading + indicates one should add the line. In other cases, only names have changed.

DISCLAIMER: This page is by no means guaranteed to be complete. If you find another required change that was missed, please add it!

Upgrading from v5.0.x_stable to master (to be released as v5.2.x_stable soon)

- INS_BARO_SENS has been removed.

Fixedwing airframes

Further altitude/climb estimator clean-up.

Remove the ALT_KALMAN_ENABLED define, it's always enabled if you use the ins alt_float subsystem.

File: conf/airframes/myplane.xml
    <section name="MISC">
       ...
-     <define name="ALT_KALMAN_ENABLED" value="TRUE"/> <!-- can also be set to FALSE (default if not present) -->
    </section>

    <firmware name="fixedwing">
       ...
      <subsystem name="ins" type="alt_float"/>
    </firmware>

Upgrading from v4.2.x_stable to v5.0.x_stable

Changelog for this release on GitHub: changelog

Control Panel

A new simulator launcher has been added to better select between the different types of simulator (OCAML fixed-wing, JSBSim fixed-wing, NPS, etc). The launcher path must be changed to support this:

File: conf/controlpanel.xml
-   <program name="Simulator" command="sw/simulator/launchsitl">
+   <program name="Simulator" command="sw/simulator/pprzsim-launch">

Flightplans

The adoption of the state interface means a number of functions and variables previously used in the flightplans are no longer valid, and must be replaced by their equivalent:

  • GetPosAlt() replaces estimator_z
  • GetPosX() replaces estimator_x
  • GetPosY() replaces estimator_y
  • autopilot_flight_time replaces estimator_flight_time

Advanced flightplans will likely require additional changes.

Airframes

A number of changes to clarify names and clean up subsystems and modules means airframe files must be updated:

All Airframes

  • CONTROL_FREQUENCY replaces CONTROL_RATE

Fixedwing Airframes

The altitude/climb estimator has been cleaned up.

Change the way the altitude kalman filter is enabled:

File: conf/airframes/myplane.xml
    <section name="MISC">
       ...
+    <define name="ALT_KALMAN_ENABLED" value="TRUE"/> <!-- can also be set to FALSE (default if not present) -->
    </section>

    <firmware name="fixedwing">
       ...
-    <define name="ALT_KALMAN"/>
    </firmware>

Add the altitude INS subsystem if there is an ALT_KALMAN_ENABLED define or if you use a barometer:

File: conf/airframes/myplane.xml
    <firmware name="fixedwing">
       ...
+    <subsystem name="ins" type="alt_float"/>
    </firmware>

Alternatively, use the gps_passthrough subsystem to use direct GPS data (remove all ALT_KALMAN_ENABLED):

File: conf/airframes/myplane.xml
    <firmware name="fixedwing">
       ...
+    <subsystem name="ins" type="gps_passthrough"/>
    </firmware>

Rotorcraft Airframes

The motor mixing has been updated and renamed:

File: conf/airframes/myplane.xml
-   <section name="SUPERVISION" prefix="SUPERVISION_">
+   <section name="MIXING" prefix="MOTOR_MIXING_">
       ...
    </section>
  • servos need a driver <servos driver="Asctec">
   <command_laws>
   <call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
   <set servo="FRONT"  value="motor_mixing.commands[SERVO_FRONT]"/>
   <set servo="BACK"   value="motor_mixing.commands[SERVO_BACK]"/>
   <set servo="RIGHT"  value="motor_mixing.commands[SERVO_RIGHT]"/>
   <set servo="LEFT"   value="motor_mixing.commands[SERVO_LEFT]"/>
   </command_laws>
   - <define name="TRIM_A" value="0"/>
   - <define name="TRIM_E" value="0"/>
   - <define name="TRIM_R" value="0"/>
   + <define name="TRIM_ROLL" value="0"/>
   + <define name="TRIM_PITCH" value="0"/>
   + <define name="TRIM_YAW" value="0"/>
   - <define name="MIN_MOTOR" value="3"/>    replaced by min value in servo
   - <define name="MAX_MOTOR" value="200"/>  replaced by neutral value in servo
  • an INS subsystem is now compulsory

Advanced Code and Makefile

Board Makefiles

In any conf/boards/board_name.makefile:

  • add $(TARGET).LDSCRIPT
  • ?= can replace ifndef statements or = statements to allow overrides
  • add a default actuator configuration (can be overridden by a configure option in the firmware section)
    • ACTUATORS ?= actuators_pwm

Board Header Files

In all sw/airborne/boards/'board_name.h:

  • add EXT_CLK
  • change to libopencm3
  • Default actuator driver
  • ADC_CHANNEL_X -> X