Difference between revisions of "Explorer/PPRZ"
Jump to navigation
Jump to search
| Line 1: | Line 1: | ||
airframe file: | |||
<!DOCTYPE airframe SYSTEM "../../airframe.dtd"> | <!DOCTYPE airframe SYSTEM "../../airframe.dtd"> | ||
| Line 74: | Line 74: | ||
</airframe> | </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="NavDetectGround()" deroute="Holding point"/--> | |||
<exception cond="!nav_is_in_flight()" deroute="KILL_LANDED"/> | |||
<!--call_once fun="NavStartDetectGround()"/--> | |||
<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> | |||
[[Explorer/PPRZ/Configuration]] | [[Explorer/PPRZ/Configuration]] | ||
Revision as of 07:03, 31 July 2020
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>