Explorer/PPRZ

From PaparazziUAV
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Explorer

Explorer/PPRZ/Configuration
Explorer/PPRZ/Tunning

airframe file:

<!DOCTYPE airframe SYSTEM "../../airframe.dtd">

<airframe name="Quadricopter XP">

 <description>
   * Autopilot:   Tawaki/ Apogee
   * Actuators:   4 in 1 Holybro BLHELI ESC
   * Telemetry:   XBee and Wifibroadcast (compagnon board)
   * GPS:         ublox M8P (optional DGPS) or Datalink
   * RC:          FrSky XM+ or Datalink

   IMU Apogee :    
     - MPU6050 (acc+gyro), 
     - MPU9150 (acc+gyro+mag) = MPU6050 + AK8975

   MAG Apogee (AK8975 on I2C1) or on external GPS board (LIS3MDL on I2C1) or Datalink

   BARO Apogee (MPL3115A2 on I2C1)

 </description>

 <firmware name="rotorcraft">

   <configure name="PERIODIC_FREQUENCY" value="1000"/>
   <configure name="AHRS_PROPAGATE_FREQUENCY" value="$(PERIODIC_FREQUENCY)"/>
   <configure name="KILL_AS_FAILSAFE" value="1"/>
 
   <!-- OPTION 1A & 1B -->
   <target name="ap" board="apogee_1.0_chibios"/>
   <!-- OPTION 1C -->
   <!--
   <target name="nps" board="pc"/>
   -->

 </firmware>

 <!-- apogee_1.0_chibios -->
 <!-- OPTION 1A -->
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_board_apogee_mpu9150.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_imu_apogee_mpu9150.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_common_target_flying.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_target_apogee.xml"/>
 <!-- OPTION 1B -->
 <!--
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_board_apogee_lis3mdl.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_imu_apogee_lis3mdl.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_common_target_flying.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_target_apogee.xml"/>
 -->
 <!-- OPTION 1C -->
 <!--
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_board_tawaki.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_board_apogee_mpu9150.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_board_apogee_lis3mdl.xml"/> 
 -->

 <!-- tawaki_1.0 & apogee_1.0_chibios -->
 <!-- OPTION 2A -->
 <!-- include href="conf/airframes/ENAC/quadrotor/xp/xp_option_indoor.xml"/-->
 <!-- OPTION 2B -->
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_outdoor.xml"/>

 <!-- OPTION 2C -->
 <!--
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_option_target_nps.xml"/>
 -->

 <!-- All targets -->
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_common_stab_rate.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_common_stab_attitude.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_common_guidance.xml"/>
 <include href="conf/airframes/ENAC/quadrotor/xp/xp_common_modules.xml"/>

</airframe>

flght_plan file:

<!DOCTYPE flight_plan SYSTEM "../flight_plan.dtd">

<flight_plan alt="148" ground_alt="146" lat0="43.5640917" lon0="1.4829201" max_dist_from_home="20" name="Rotorcraft Optitrack (ENAC)" security_height="0.3">
  <header>

</header>
  <waypoints>
    <waypoint name="HOME" x="0.0" y="0.0"/>
    <waypoint name="GOAL" x="2.0" y="2.0"/>
    <waypoint name="STDBY" x="-0.7" y="-0.8"/>
    <waypoint name="TD" x="0.8" y="-1.7"/>
    <waypoint name="S1" x="2.1" y="2.8"/>
    <waypoint name="S2" x="2.0" y="-3.0"/>
    <waypoint name="S3" x="-2.1" y="-3.1"/>
    <waypoint name="S4" x="-2.2" y="2.8"/>
    <waypoint name="_N1" x="4.5" y="5.2"/>
    <waypoint name="_N2" x="4.5" y="-5.2"/>
    <waypoint name="_N3" x="-4.5" y="-5.2"/>
    <waypoint name="_N4" x="-4.5" y="5.2"/>
  </waypoints>
  <sectors>
    <sector color="red" name="Net">
      <corner name="_N1"/>
      <corner name="_N2"/>
      <corner name="_N3"/>
      <corner name="_N4"/>
    </sector>
    <sector color="green" name="Survey" type="dynamic">
      <corner name="S1"/>
      <corner name="S2"/>
      <corner name="S3"/>
      <corner name="S4"/>
    </sector>
  </sectors>
  <modules>
    <module name="nav" type="survey_rectangle_rotorcraft"/>
  </modules>
  <blocks>
    <block name="Wait GPS">
      <call_once fun="NavKillThrottle()"/>
      <while cond="!GpsFixValid()"/>
    </block>
    <block name="Holding point">
      <call_once fun="NavKillThrottle()"/>
      <attitude pitch="0" roll="0" throttle="0" until="FALSE" vmode="throttle"/>
    </block>
    <block name="Start Engine">
      <call_once fun="NavResurrect()"/>
      <attitude pitch="0" roll="0" throttle="0" until="FALSE" vmode="throttle"/>
    </block>
    <block name="Takeoff" strip_button="Takeoff" strip_icon="takeoff.png">
      <exception cond="stateGetPositionEnu_f()->z > 1.0" deroute="Standby"/>
      <call_once fun="NavSetWaypointHere(WP_STDBY)"/>
      <stay climb="nav_climb_vspeed" vmode="climb" wp="STDBY"/>
    </block>
    <block name="Standby" strip_button="Standby" strip_icon="home.png">
      <call_once fun="nav_set_heading_deg(0)"/>
      <stay wp="STDBY"/>
    </block>
    <block name="START" strip_button="Go" strip_icon="lookfore.png">
      <call_once fun="NavSetWaypointHere(WP_GOAL)"/>
    </block>
    <block name="StayGoal">
      <stay wp="GOAL"/>
    </block>
    <block group="extra_pattern" name="Survey S1-S2 Sweep NS SET" strip_button="SvySweep-NS" strip_icon="survey_rect_ns.png">
      <call_once fun="nav_survey_rectangle_rotorcraft_setup(WP_S1, WP_S3, 1, NS)"/>
      <deroute block="Survey RECTANGLE RUN"/>
    </block>
    <block group="extra_pattern" name="Survey S1-S2 Sweep WE SET" strip_button="SvySweep-WE" strip_icon="survey_rect_we.png">
      <call_once fun="nav_survey_rectangle_rotorcraft_setup(WP_S1, WP_S3, 1, WE)"/>
      <deroute block="Survey RECTANGLE RUN"/>
    </block>
    <block group="extra_pattern" name="Survey RECTANGLE RUN" strip_button="SvySweep CONT" strip_icon="survey_rect_run.png">
      <exception cond="rectangle_survey_sweep_num == 1" deroute="Standby"/>
      <call fun="nav_survey_rectangle_rotorcraft_run(WP_S1, WP_S3)"/>
    </block>
    <block name="land here" strip_button="Land Here" strip_icon="land-right.png">
      <call_once fun="NavSetWaypointHere(WP_TD)"/>
    </block>
    <block name="land">
      <go wp="TD"/>
    </block>
    <block name="flare">
      <exception cond="!nav_is_in_flight()" deroute="KILL_LANDED"/>
      <stay climb="nav_descend_vspeed" vmode="climb" wp="TD"/>
    </block>
    <block name="KILL_LANDED">
      <call_once fun="NavKillThrottle()"/>
      <attitude pitch="0" roll="0" throttle="0" until="FALSE" vmode="throttle"/>
    </block>
  </blocks>
</flight_plan>