[hitl] rewrite support for hardware in the loop simulation (#3146)

- old way (based on ins_vectornav) is not supported anymore
- directly send sensor data and receive commands with a dedicated link
- examples with USB link for better results
- update sphinx documentation
- compilation in a single build
This commit is contained in:
Gautier Hattenberger
2023-10-31 14:48:55 +01:00
committed by GitHub
parent 094997af4b
commit 4ae40567ed
108 changed files with 1684 additions and 1276 deletions
+18
View File
@@ -195,6 +195,16 @@ endif
@echo "#######################################"
$(Q)PAPARAZZI_SRC=$(PAPARAZZI_SRC) PAPARAZZI_HOME=$(PAPARAZZI_HOME) PAPARAZZI_QT_GEN=$(PAPARAZZI_QT_GEN) TARGET=$* Q=$(Q) $(GENERATORS)/gen_aircraft.out -all -name $(AIRCRAFT) -target $* -conf $(CONF_XML)
# generate headers for HITL as is it was AP target
hitl.ac_h : $(GENERATORS)/gen_aircraft.out
$(Q)if (expr "$(AIRCRAFT)") > /dev/null; then : ; else echo "AIRCRAFT undefined: type 'make AIRCRAFT=AircraftName ...'"; exit 1; fi
@echo "#######################################"
@echo "# BUILD AIRCRAFT=$(AIRCRAFT), TARGET hitl"
@echo "#######################################"
$(Q)PAPARAZZI_SRC=$(PAPARAZZI_SRC) PAPARAZZI_HOME=$(PAPARAZZI_HOME) PAPARAZZI_QT_GEN=$(PAPARAZZI_QT_GEN) TARGET=hitl Q=$(Q) $(GENERATORS)/gen_aircraft.out -airframe -flight_plan -settings -name $(AIRCRAFT) -target hitl -conf $(CONF_XML)
$(Q)rm -f $(AIRCRAFT_BUILD_DIR)/Makefile.ac
$(Q)PAPARAZZI_SRC=$(PAPARAZZI_SRC) PAPARAZZI_HOME=$(PAPARAZZI_HOME) PAPARAZZI_QT_GEN=$(PAPARAZZI_QT_GEN) TARGET=ap Q=$(Q) $(GENERATORS)/gen_aircraft.out -all -name $(AIRCRAFT) -target ap -conf $(CONF_XML)
%.qt: %.ac_h
@echo "GENERATED Qt project"
@@ -202,9 +212,17 @@ endif
$(MAKE) TARGET=$* -f Makefile.ac all_ac_h
cd $(AIRBORNE); $(MAKE) -j$(NPROCS) TARGET=$* all
hitl.compile: hitl.ac_h | print_version
$(MAKE) TARGET=ap -f Makefile.ac all_ac_h
cd $(AIRBORNE); $(MAKE) -j$(NPROCS) TARGET=ap all
cd $(AIRBORNE); $(MAKE) -j$(NPROCS) TARGET=hitl AP_LAUNCH=$(shell grep '<dl_setting ' $(AIRCRAFT_BUILD_DIR)/settings.xml | grep 'autopilot.launch' -n | cut -d ':' -f 1) all
%.upload: %.compile
cd $(AIRBORNE); $(MAKE) TARGET=$* upload
hitl.upload: hitl.compile
cd $(AIRBORNE); $(MAKE) TARGET=ap upload
clean_ac :
$(Q)if (expr "$(AIRCRAFT)") > /dev/null; then : ; else echo "AIRCRAFT undefined: type 'make AIRCRAFT=AircraftName ...'"; exit 1; fi
@echo "CLEANING $(AIRCRAFT)"
@@ -31,17 +31,6 @@ Aggie Air ARK
<module name="telemetry" type="transparent"/>
</target>
<target name="hitl" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="imu" type="nps"/>
<module name="radio_control" type="spektrum"/>
<configure name="INS_DEV" value="/dev/ttyUSB1"/>
<configure name="INS_BAUD" value="B921600"/>
<configure name="AP_DEV" value="/dev/ttyUSB2"/>
<configure name="AP_BAUD" value="B921600"/>
<module name="telemetry" type="transparent"/>
</target>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="160"/>
@@ -32,16 +32,6 @@ AggieAir Atomic Tangerine
<module name="telemetry" type="transparent"/>
</target>
<target name="hitl" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<configure name="INS_DEV" value="/dev/ttyUSB1"/>
<configure name="INS_BAUD" value="B230400"/>
<configure name="AP_DEV" value="/dev/ttyUSB2"/>
<configure name="AP_BAUD" value="B921600"/>
<module name="telemetry" type="transparent"/>
</target>
<module name="control"/>
<module name="navigation"/>
@@ -27,16 +27,6 @@ AggieAir Blujayujay
<module name="radio_control" type="spektrum"/>
</target>
<target name="hitl" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="imu" type="nps"/>
<module name="radio_control" type="spektrum"/>
<configure name="INS_DEV" value="/dev/ttyUSB1"/>
<configure name="INS_BAUD" value="B921600"/>
<configure name="AP_DEV" value="/dev/ttyUSB2"/>
<configure name="AP_BAUD" value="B921600"/>
</target>
<module name="control"/>
<module name="navigation"/>
@@ -195,99 +195,6 @@
<program name="Real-time Plotter"/>
</session>
<session name="HITL USB-serial@57600">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server">
<arg flag="" constant="-no_md5_check"/>
</program>
<program name="GCS"/>
<program name="Messages"/>
<program name="Simulator">
<arg flag="-a" constant="@AIRCRAFT"/>
<arg flag="-f" constant="127.0.0.1"/>
<arg flag="-b" constant="127.255.255.255"/>
<arg flag="--fg_fdm" constant=""/>
<arg flag="-t" constant="hitl"/>
</program>
<program name="AggieCap3 Sidekick"/>
</session>
<session name="Secure HITL v2.0 USB-serial@57600">
<program name="Secure Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="57600"/>
<arg flag="-a" constant="@AC_ID"/>
<arg flag="-n" constant="@AIRCRAFT"/>
<arg flag="-c" />
<arg flag="-v" constant="2.0"/>
</program>
<program name="Server">
<arg flag="" constant="-no_md5_check"/>
</program>
<program name="GCS">
<arg flag="-layout" constant="AGGIEAIR/vertical.xml"/>
</program>
<program name="Messages"/>
<program name="Simulator">
<arg flag="-a" constant="@AIRCRAFT"/>
<arg flag="-f" constant="127.0.0.1"/>
<arg flag="-b" constant="127.255.255.255"/>
<arg flag="--fg_fdm"/>
<arg flag="-t" constant="hitl"/>
<arg flag="--nodisplay"/>
</program>
<program name="AggieCap3 Sidekick"/>
</session>
<session name="Secure HITL v1.0 USB-serial@57600">
<program name="Secure Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="57600"/>
<arg flag="-a" constant="@AC_ID"/>
<arg flag="-n" constant="@AIRCRAFT"/>
<arg flag="-c" />
<arg flag="-v" constant="1.0"/>
</program>
<program name="Server">
<arg flag="" constant="-no_md5_check"/>
</program>
<program name="GCS">
<arg flag="-layout" constant="AGGIEAIR/vertical.xml"/>
</program>
<program name="Messages"/>
<program name="Simulator">
<arg flag="-a" constant="@AIRCRAFT"/>
<arg flag="-f" constant="127.0.0.1"/>
<arg flag="-b" constant="127.255.255.255"/>
<arg flag="--fg_fdm"/>
<arg flag="-t" constant="hitl"/>
<arg flag="--nodisplay"/>
</program>
<program name="AggieCap3 Sidekick"/>
</session>
<session name="HITL USB-serial@115200">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="115200"/>
</program>
<program name="Server">
<arg flag="" constant="-no_md5_check"/>
</program>
<program name="GCS"/>
<program name="Messages"/>
<program name="Simulator">
<arg flag="-a" constant="@AIRCRAFT"/>
<arg flag="-f" constant="127.0.0.1"/>
<arg flag="-b" constant="127.255.255.255"/>
<arg flag="--fg_fdm" constant=""/>
<arg flag="-t" constant="hitl"/>
</program>
</session>
<session name="AggieAir Simulation">
<program name="Data Link">
<arg flag="-udp"/>
@@ -310,50 +217,6 @@
<program name="AggieCap3 Sidekick"/>
</session>
<session name="HITL+SBUS USB-serial@57600">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="57600"/>
</program>
<program name="Server">
<arg flag="" constant="-no_md5_check"/>
</program>
<program name="GCS"/>
<program name="Messages"/>
<program name="Simulator">
<arg flag="-a" constant="@AIRCRAFT"/>
<arg flag="-f" constant="127.0.0.1"/>
<arg flag="-b" constant="127.255.255.255"/>
<arg flag="--fg_fdm" constant=""/>
<arg flag="-t" constant="hitl"/>
</program>
<program name="Sbus Fakerator">
<arg flag="-p" constant="/dev/ttyUSB3"/>
</program>
</session>
<session name="HITL+SBUS USB-serial@115200">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="115200"/>
</program>
<program name="Server">
<arg flag="" constant="-no_md5_check"/>
</program>
<program name="GCS"/>
<program name="Messages"/>
<program name="Simulator">
<arg flag="-a" constant="@AIRCRAFT"/>
<arg flag="-f" constant="127.0.0.1"/>
<arg flag="-b" constant="127.255.255.255"/>
<arg flag="--fg_fdm" constant=""/>
<arg flag="-t" constant="hitl"/>
</program>
<program name="Sbus Fakerator">
<arg flag="-p" constant="/dev/ttyUSB3"/>
</program>
</session>
<session name="Flight USB-XBee-API@57600">
<program name="Data Link">
<arg flag="-d" constant="/dev/paparazzi/xbee"/>
@@ -32,16 +32,6 @@ AggieAir El Capitan
<module name="telemetry" type="transparent"/>
</target>
<target name="hitl" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<configure name="INS_DEV" value="/dev/ttyUSB1"/>
<configure name="INS_BAUD" value="B230400"/>
<configure name="AP_DEV" value="/dev/ttyUSB2"/>
<configure name="AP_BAUD" value="B921600"/>
<module name="telemetry" type="transparent"/>
</target>
<module name="control"/>
<module name="navigation"/>
@@ -27,15 +27,6 @@ AggieAir RP3 Minion
<module name="radio_control" type="spektrum"/>
</target>
<target name="hitl" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<configure name="INS_DEV" value="/dev/ttyUSB1"/>
<configure name="INS_BAUD" value="B921600"/>
<configure name="AP_DEV" value="/dev/ttyUSB2"/>
<configure name="AP_BAUD" value="B921600"/>
</target>
<module name="control"/>
<module name="navigation"/>
@@ -33,16 +33,6 @@ AggieAir Minion Sim
<module name="telemetry" type="transparent"/>
</target>
<target name="hitl" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<configure name="INS_DEV" value="/dev/ttyUSB1"/>
<configure name="INS_BAUD" value="B230400"/>
<configure name="AP_DEV" value="/dev/ttyUSB2"/>
<configure name="AP_BAUD" value="B921600"/>
<module name="telemetry" type="transparent"/>
</target>
<module name="control"/>
<module name="navigation"/>
@@ -32,16 +32,6 @@ AggieAir Minty Fresh
<module name="telemetry" type="transparent"/>
</target>
<target name="hitl" board="pc">
<module name="fdm" type="jsbsim"/>
<module name="radio_control" type="spektrum"/>
<configure name="INS_DEV" value="/dev/ttyUSB1"/>
<configure name="INS_BAUD" value="B230400"/>
<configure name="AP_DEV" value="/dev/ttyUSB2"/>
<configure name="AP_BAUD" value="B921600"/>
<module name="telemetry" type="transparent"/>
</target>
<module name="control"/>
<module name="navigation"/>
@@ -0,0 +1,238 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Matek H7 FW HITL">
<description>
Mateksys FC H743 SLIM Fixedwing HITL
</description>
<firmware name="fixedwing">
<configure name="PERIODIC_FREQUENCY" value="100"/>
<configure name="USE_HARD_FAULT_RECOVERY" value="FALSE"/>
<target name="ap" board="matek_h743_slim">
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
</target>
<module name="radio_control" type="datalink"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="usb_serial"/>
</module>
<module name="control" type="new"/>
<module name="navigation"/>
<configure name="HITL_PORT" value="usb_serial_debug"/>
<module name="sensors" type="hitl">
<define name="USE_BATTERY_MONITOR"/>
</module>
<module name="actuators" type="hitl"/>
<!--module name="ahrs" type="float_dcm"/>
<module name="ins" type="alt_float"/-->
<module name="ins" type="float_invariant">
<configure name="AHRS_PROPAGATE_FREQUENCY" value="100"/>
<configure name="AHRS_CORRECT_FREQUENCY" value="100"/>
</module>
<module name="sys_mon"/>
<module name="air_data"/>
</firmware>
<firmware name="generic_hitl">
<target name="hitl" board="pc">
<configure name="USE_HARD_FAULT_RECOVERY" value="FALSE"/>
<module name="fdm" type="jsbsim"/>
<module name="nps" type="hitl_sensors">
<define name="AP_DEV" value="/dev/pprz-dbg" type="string"/>
</module>
</target>
</firmware>
<!-- commands section -->
<!-- Servo Configuration -->
<servos>
<servo name="THROTTLE" no="5" min="1100" neutral="1100" max="1900"/>
<servo name="AILERON_RIGHT" no="1" min="900" neutral="1500" max="2100"/>
<servo name="AILERON_LEFT" no="2" min="2100" neutral="1500" max="900"/>
<servo name="ELEVATOR" no="3" min="975" neutral="1500" max="2100"/>
<servo name="RUDDER" no="4" min="2100" neutral="1500" max="900"/>
</servos>
<!-- Servo Command Structure -->
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
</commands>
<!-- RC Command Structure -->
<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
</rc_commands>
<!-- Define RC commands to Servo in Auto Mode -->
<auto_rc_commands>
<set command="YAW" value="@YAW"/>
</auto_rc_commands>
<!-- Define Mixing Parameters -->
<section name="MIXER">
<define name="AILERON_AILERON_RATE" value="0.9"/>
<define name="ELEV_ELEV_RATE" value="0.8"/>
</section>
<!-- Define RC commands to Servos in Manual -->
<command_laws>
<let var="aileron" value="@ROLL * AILERON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * ELEV_ELEV_RATE"/>
<set servo="THROTTLE" value="@THROTTLE"/>
<set servo="AILERON_RIGHT" value="$aileron"/> <!--flip signs if necessary -->
<set servo="AILERON_LEFT" value=" - $aileron"/>
<set servo="ELEVATOR" value="$elevator"/>
<set servo="RUDDER" value="@YAW"/>
</command_laws>
<!-- Define Max Roll and Pitch setpoints in Auto1 -->
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.7"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
<!-- Dummy Mag values for NPS -
replace with your own calibration -->
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
</section>
<include href="conf/mag/toulouse_muret.xml"/>
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
</section>
<!-- Define current estimator and Battery Level Warnings -->
<section name="BAT">
<!-- Simulator values -->
<define name="MAX_BAT_LEVEL" value="5.0" unit="V" />
<define name="LOW_BAT_LEVEL" value="4.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.5" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="16." unit="m/s"/> <!-- GCS only -->
<define name="CARROT" value="5." unit="s"/> <!-- GCS only -->
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="DEFAULT_CIRCLE_RADIUS" value="120."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.136"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.65"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.20"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.80"/>
<define name="AUTO_PITCH_MAX_PITCH" value="20." unit="deg"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-20." unit="deg"/>
<!-- Climb loop (throttle) -->
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.006"/>
<define name="AUTO_THROTTLE_DGAIN" value="0.0"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.035"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.09"/>
<!-- Climb loop (pitch) -->
<define name="AUTO_PITCH_PGAIN" value="0.027"/>
<define name="AUTO_PITCH_DGAIN" value="0.01"/>
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
<!-- airspeed control -->
<define name="AUTO_AIRSPEED_SETPOINT" value="16."/>
<define name="AUTO_AIRSPEED_THROTTLE_PGAIN" value="0.1"/>
<define name="AUTO_AIRSPEED_THROTTLE_DGAIN" value="0.12"/>
<define name="AUTO_AIRSPEED_THROTTLE_IGAIN" value="0.0"/>
<define name="AUTO_AIRSPEED_PITCH_PGAIN" value="0.06"/>
<define name="AUTO_AIRSPEED_PITCH_DGAIN" value="0.0"/>
<define name="AUTO_AIRSPEED_PITCH_IGAIN" value="0.042"/>
<define name="AIRSPEED_MAX" value="30" unit="m/s"/>
<define name="AIRSPEED_MIN" value="10" unit="m/s"/>
<!-- groundspeed control -->
<define name="AUTO_GROUNDSPEED_SETPOINT" value="15" unit="m/s"/>
<define name="AUTO_GROUNDSPEED_PGAIN" value="1."/>
<define name="AUTO_GROUNDSPEED_IGAIN" value="0."/>
<!-- pitch trim -->
<define name="PITCH_LOITER_TRIM" value="0." unit="deg"/>
<define name="PITCH_DASH_TRIM" value="0." unit="deg"/>
<define name="THROTTLE_SLEW" value="0.1"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="1.135"/>
<define name="COURSE_DGAIN" value="0.35"/>
<define name="ROLL_MAX_SETPOINT" value="0.6" unit="rad"/>
<define name="PITCH_MAX_SETPOINT" value="0.35" unit="rad"/>
<define name="PITCH_MIN_SETPOINT" value="-0.2" unit="rad"/>
<define name="PITCH_PGAIN" value="10000."/>
<define name="PITCH_DGAIN" value="1500"/>
<define name="PITCH_IGAIN" value="500"/>
<define name="ROLL_ATTITUDE_GAIN" value="9000"/>
<define name="ROLL_RATE_GAIN" value="1600"/>
<define name="ROLL_IGAIN" value="100."/>
<define name="PITCH_OF_ROLL" value="1." unit="deg"/>
<define name="AILERON_OF_THROTTLE" value="0.0"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="20"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes CANNOT BE ZERO!!-->
<define name="CLIMB_THROTTLE" value="0.85"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.13"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.1"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/><!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="5" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0" unit="%"/>
<define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="JSBSIM_LAUNCHSPEED" value="15"/>
<define name="JSBSIM_MODEL" value="easystar" type="string"/>
<define name="JS_AXIS_MODE" value="4"/>
</section>
</airframe>
@@ -0,0 +1,279 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<airframe name="Matek H7 rotorcraft HITL">
<description>
Mateksys FC H743 SLIM Rotorcraft HITL
</description>
<firmware name="rotorcraft">
<configure name="PERIODIC_FREQUENCY" value="500"/>
<target name="ap" board="matek_h743_slim">
</target>
<target name="nps" board="pc">
<module name="fdm" type="jsbsim"/>
</target>
<module name="radio_control" type="datalink"/>
<configure name="HITL_PORT" value="usb_serial_debug"/>
<module name="sensors" type="hitl">
<define name="USE_BATTERY_MONITOR"/>
</module>
<module name="actuators" type="hitl"/>
<module name="ins" type="ekf2"/>
<module name="stabilization" type="int_quat"/>
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
</module>
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="usb_serial"/>
</module>
<module name="air_data"/>
<module name="sys_mon"/>
</firmware>
<firmware name="generic_hitl">
<target name="hitl" board="pc">
<configure name="USE_HARD_FAULT_RECOVERY" value="FALSE"/>
<configure name="PERIODIC_FREQUENCY" value="500"/>
<module name="fdm" type="jsbsim"/>
<module name="nps" type="hitl_sensors">
<define name="AP_DEV" value="/dev/pprz-dbg" type="string"/>
</module>
</target>
</firmware>
<servos driver="Pwm">
<servo name="FL" no="4" min="1000" neutral="1200" max="2000"/>
<servo name="FR" no="2" min="1000" neutral="1200" max="2000"/>
<servo name="BR" no="1" min="1000" neutral="1200" max="2000"/>
<servo name="BL" no="3" min="1000" neutral="1200" max="2000"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<section name="MIXING" prefix="MOTOR_MIXING_">
<!-- front left (CW), front right (CCW), back right (CW), back left (CCW) -->
<define name="TYPE" value="QUAD_X"/>
</section>
<command_laws>
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
<set servo="FL" value="motor_mixing.commands[MOTOR_FRONT_LEFT]"/>
<set servo="FR" value="motor_mixing.commands[MOTOR_FRONT_RIGHT]"/>
<set servo="BR" value="motor_mixing.commands[MOTOR_BACK_RIGHT]"/>
<set servo="BL" value="motor_mixing.commands[MOTOR_BACK_LEFT]"/>
</command_laws>
<section name="IMU" prefix="IMU_">
<define name="GYRO_P_SIGN" value="1"/>
<define name="GYRO_Q_SIGN" value="1"/>
<define name="GYRO_R_SIGN" value="1"/>
<define name="ACCEL_X_SIGN" value="1"/>
<define name="ACCEL_Y_SIGN" value="1"/>
<define name="ACCEL_Z_SIGN" value="1"/>
<define name="ACCEL_X_NEUTRAL" value="-42"/>
<define name="ACCEL_Y_NEUTRAL" value="64"/>
<define name="ACCEL_Z_NEUTRAL" value="-155"/>
<define name="ACCEL_X_SENS" value="2.43600300517" integer="16"/>
<define name="ACCEL_Y_SENS" value="2.43442233815" integer="16"/>
<define name="ACCEL_Z_SENS" value="2.46007236396" integer="16"/>
<!-- MPU MAG -->
<define name="MAG_X_SIGN" value="1"/>
<define name="MAG_Y_SIGN" value="1"/>
<define name="MAG_Z_SIGN" value="-1"/>
<define name="MAG_X_NEUTRAL" value="-53"/>
<define name="MAG_Y_NEUTRAL" value="-17"/>
<define name="MAG_Z_NEUTRAL" value="-29"/>
<define name="MAG_X_SENS" value="14.1339051912" integer="16"/>
<define name="MAG_Y_SENS" value="15.9334896814" integer="16"/>
<define name="MAG_Z_SENS" value="15.9429325263" integer="16"/>
<!--define name= "MAG_X_CURRENT_COEF" value="0.0350248861409"/>
<define name= "MAG_Y_CURRENT_COEF" value="-0.0118884242797"/>
<define name= "MAG_Z_CURRENT_COEF" value="0.0176235525201"/-->
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
</section>
<section name="AHRS" prefix="AHRS_">
<!-- values used if no GPS fix, on 3D fix is update by geo_mag module if loaded -->
<!-- Toulouse -->
<define name="H_X" value="0.513081"/>
<define name="H_Y" value="-0.00242783"/>
<define name="H_Z" value="0.858336"/>
</section>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
<!-- setpoints -->
<define name="SP_MAX_P" value="300" unit="deg/s"/>
<define name="SP_MAX_Q" value="300" unit="deg/s"/>
<define name="SP_MAX_R" value="240" unit="deg/s"/>
<define name="DEADBAND_P" value="20"/>
<define name="DEADBAND_Q" value="20"/>
<define name="DEADBAND_R" value="200"/>
<!-- feedback -->
<define name="GAIN_P" value="1000"/>
<define name="GAIN_Q" value="1000"/>
<define name="GAIN_R" value="800"/>
<define name="IGAIN_P" value="75"/>
<define name="IGAIN_Q" value="75"/>
<define name="IGAIN_R" value="50"/>
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
<!-- setpoints -->
<define name="SP_MAX_PHI" value="45." unit="deg"/>
<define name="SP_MAX_THETA" value="45." unit="deg"/>
<define name="SP_MAX_R" value="200." unit="deg/s"/>
<define name="DEADBAND_A" value="0"/>
<define name="DEADBAND_E" value="0"/>
<define name="DEADBAND_R" value="250"/>
<!-- reference -->
<define name="REF_OMEGA_P" value="400" unit="deg/s"/>
<define name="REF_ZETA_P" value="0.85"/>
<define name="REF_MAX_P" value="400." unit="deg/s"/>
<define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_Q" value="400" unit="deg/s"/>
<define name="REF_ZETA_Q" value="0.85"/>
<define name="REF_MAX_Q" value="400." unit="deg/s"/>
<define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>
<define name="REF_OMEGA_R" value="250" unit="deg/s"/>
<define name="REF_ZETA_R" value="0.85"/>
<define name="REF_MAX_R" value="250." unit="deg/s"/>
<define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/>
<!-- feedback -->
<define name="PHI_PGAIN" value="500"/>
<define name="PHI_DGAIN" value="260"/>
<define name="PHI_IGAIN" value="100"/>
<define name="THETA_PGAIN" value="500"/>
<define name="THETA_DGAIN" value="260"/>
<define name="THETA_IGAIN" value="100"/>
<define name="PSI_PGAIN" value="1279"/>
<define name="PSI_DGAIN" value="802"/>
<define name="PSI_IGAIN" value="31"/>
<!-- feedforward -->
<define name="PHI_DDGAIN" value="300"/>
<define name="THETA_DDGAIN" value="300"/>
<define name="PSI_DDGAIN" value="300"/>
</section>
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
<!-- control effectiveness -->
<!--define name="G1_P" value="0.018284"/>
<define name="G1_Q" value="0.017385"/>
<define name="G1_R" value="0.0024217"/>
<define name="G2_R" value="-0.30628"/-->
<define name="G1_P" value="0.025483"/>
<define name="G1_Q" value="0.022144"/>
<define name="G1_R" value="0.0023438"/>
<define name="G2_R" value="-0.23538"/>
<define name="FILTER_ROLL_RATE" value="TRUE"/>
<define name="FILTER_PITCH_RATE" value="TRUE"/>
<define name="FILTER_YAW_RATE" value="FALSE"/>
<!-- reference acceleration for attitude control -->
<define name="REF_ERR_P" value="170.0"/>
<define name="REF_ERR_Q" value="600.0"/>
<define name="REF_ERR_R" value="600.0"/>
<define name="REF_RATE_P" value="14.3"/>
<define name="REF_RATE_Q" value="28.0"/>
<define name="REF_RATE_R" value="28.0"/>
<!-- second order filter parameters -->
<define name="FILT_CUTOFF" value="3.2"/>
<define name="FILT_CUTOFF_R" value="3.2"/>
<!-- first order actuator dynamics -->
<define name="ACT_DYN_P" value="0.06"/>
<define name="ACT_DYN_Q" value="0.06"/>
<define name="ACT_DYN_R" value="0.06"/>
<!-- Adaptive Learning Rate -->
<define name="USE_ADAPTIVE" value="FALSE"/>
<define name="ADAPTIVE_MU" value="0.0001"/>
</section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="150"/>
<define name="HOVER_KD" value="80"/>
<define name="HOVER_KI" value="20"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.35"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
</section>
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
<define name="REF_MAX_SPEED" value="5." unit="m/s"/>
<define name="MAX_BANK" value="20" unit="deg"/>
<define name="USE_SPEED_REF" value="TRUE"/>
<define name="PGAIN" value="180"/>
<define name="DGAIN" value="180"/>
<define name="AGAIN" value="0"/>
<define name="IGAIN" value="30"/>
</section>
<section name="NAVIGATION" prefix="NAV_">
<define name="DESCEND_VSPEED" value="-1."/>
<define name="CLIMB_VSPEED" value="1.5"/>
</section>
<section name="SIMULATOR" prefix="NPS_">
<define name="ACTUATOR_NAMES" value="nw_motor, ne_motor, se_motor, sw_motor" type="string[]"/>
<define name="JSBSIM_MODEL" value="HOOPERFLY/hooperfly_teensyfly_quad" type="string"/>
<!-- mode switch on joystick channel 5 (axis numbering starting at zero) -->
<define name="JS_AXIS_MODE" value="4"/>
</section>
<section name="AUTOPILOT">
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
<define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD"/>
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
<define name="ARRIVED_AT_WAYPOINT" value="2."/>
</section>
<section name="BAT">
<!-- Simulator values -->
<define name="MAX_BAT_LEVEL" value="5.0" unit="V" />
<define name="LOW_BAT_LEVEL" value="4.0" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="3.5" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="3.0" unit="V"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="5"/>
<define name="ALT_SHIFT_PLUS" value="1"/>
<define name="ALT_SHIFT_MINUS" value="-1"/>
<define name="AC_ICON" value="quadrotor_x"/>
</section>
</airframe>
+22
View File
@@ -87,4 +87,26 @@
settings_modules="modules/ahrs_float_mlkf.xml modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/electrical.xml modules/geo_mag.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/stabilization_int_quat.xml"
gui_color="blue"
/>
<aircraft
name="Matek_FW_HITL"
ac_id="2"
airframe="airframes/examples/matek_h7_fixedwing_hitl.xml"
radio="radios/dummy.xml"
telemetry="telemetry/default_fixedwing.xml"
flight_plan="flight_plans/basic.xml"
settings="settings/fixedwing_basic.xml"
settings_modules="modules/air_data.xml modules/electrical.xml modules/gps.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/ins_float_invariant.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
gui_color="red"
/>
<aircraft
name="Matek_RC_HITL"
ac_id="4"
airframe="airframes/examples/matek_h7_rotorcraft_hitl.xml"
radio="radios/dummy.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/air_data.xml modules/electrical.xml modules/gps.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_rotorcraft.xml modules/stabilization_int_quat.xml"
gui_color="red"
/>
</conf>
+13
View File
@@ -192,6 +192,19 @@
</program>
</session>
<session name="HITL demo">
<program name="Hardware in the Loop">
<arg flag="-a" constant="@AIRCRAFT"/>
<arg flag="-t" constant="hitl"/>
</program>
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyACM1"/>
</program>
<program name="Server">
<arg flag="-n"/>
</program>
<program name="GCS"/>
</session>
</section>
</control_panel>
+1 -5
View File
@@ -258,15 +258,11 @@ BARO_BOARD_CFLAGS += -DBARO_PERIODIC_FREQUENCY=$(BARO_PERIODIC_FREQUENCY)
ap.CFLAGS += $(BARO_BOARD_CFLAGS)
ap.srcs += $(BARO_BOARD_SRCS)
# don't use for NPS or HITL
# don't use for NPS
ifeq ($(TARGET),nps)
$(TARGET).CFLAGS += -DUSE_BARO_BOARD=FALSE
endif
ifeq ($(TARGET),hitl)
$(TARGET).CFLAGS += -DUSE_BARO_BOARD=FALSE
endif
else # USE_BARO_BOARD is not TRUE, was explicitly disabled
ap.CFLAGS += -DUSE_BARO_BOARD=FALSE
+6
View File
@@ -0,0 +1,6 @@
# Hey Emacs, this is a -*- makefile -*-
#
# generic_hitl.makefile
#
#
-4
View File
@@ -12,10 +12,6 @@ ifeq ($(TARGET), nps)
UART_CFLAGS += -Iarch/linux
UART_SRCS += arch/linux/serial_port.c
endif
ifeq ($(TARGET), hitl)
UART_CFLAGS += -Iarch/linux
UART_SRCS += arch/linux/serial_port.c
endif
ifeq ($(TARGET), sim)
UART_CFLAGS += -Iarch/linux
UART_SRCS += arch/linux/serial_port.c
-4
View File
@@ -13,10 +13,6 @@ ifeq ($(TARGET), nps)
UDP_CFLAGS += -Iarch/linux
UDP_SRCS += arch/linux/udp_socket.c
endif
ifeq ($(TARGET), hitl)
UDP_CFLAGS += -Iarch/linux
UDP_SRCS += arch/linux/udp_socket.c
endif
$(TARGET).CFLAGS += $(UDP_CFLAGS)
$(TARGET).srcs += $(UDP_SRCS)
+31
View File
@@ -0,0 +1,31 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="actuators_hitl" dir="actuators" task="actuators">
<doc>
<description>
Sends commands or actuators for Hardware In The Loop simulation
</description>
<configure name="HITL_PORT" value="UARTX|UDPX|usb_serial" description="Select port for extra datalink"/>
<configure name="HITL_BAUD" value="B230400" description="Baudrate for extra datalink if link device is UART"/>
</doc>
<dep>
<provides>actuators</provides>
</dep>
<header>
<file name="actuators_hitl.h"/>
</header>
<init fun="actuators_hitl_init()"/>
<periodic fun="actuators_hitl_periodic()"/>
<makefile target="ap">
<configure name="HITL_PORT" case="upper|lower"/>
<configure name="HITL_BAUD" default="B230400"/>
<define name="HITL_DEVICE" value="$(HITL_PORT_LOWER)"/>
<define name="USE_$(HITL_PORT_UPPER)"/>
<define name="$(HITL_PORT_UPPER)_BAUD" value="$(HITL_BAUD)"/>
<file name="actuators_hitl.c"/>
<test>
<define name="HITL_DEVICE" value="usb_serial"/>
<define name="USE_USB_SERIAL"/>
</test>
</makefile>
</module>
+1 -1
View File
@@ -12,5 +12,5 @@
<dep>
<depends>stabilization_attitude_fw,guidance_basic_fw</depends>
</dep>
<makefile target="ap|sim|nps|hitl" firmware="fixedwing"/>
<makefile target="ap|sim|nps" firmware="fixedwing"/>
</module>
+1 -1
View File
@@ -17,7 +17,7 @@
<file name="dfu_command.h"/>
</header>
<event fun="dfu_command_event()"/>
<makefile target="!fbw|sim|nps|hitl">
<makefile target="!fbw|sim|nps">
<configure name="SERIAL_TTY" default="/dev/ttyACM0"/>
<configure name="DFU_PRE_UPLOAD_CMD" default="@(printf '\043\012' $(REDIRECT) $(SERIAL_TTY) $(AND) sleep 1 $(AND) printf 'bl\012' $(REDIRECT) $(SERIAL_TTY) $(AND) sleep 1) $(OR) echo 'Warning: DFU command failed!'"/>
<configure name="DFU_UTIL_PRE_UPLOAD_CMD" default="@(printf '\043\012' $(REDIRECT) $(SERIAL_TTY) $(AND) sleep 1 $(AND) printf 'bl\012' $(REDIRECT) $(SERIAL_TTY) $(AND) sleep 1) $(OR) echo 'Warning: DFU command failed!'"/>
+1 -1
View File
@@ -22,7 +22,7 @@
</header>
<init fun="electrical_init()"/>
<periodic fun="electrical_periodic()" freq="10"/>
<makefile target="fbw|sim|nps|hitl" firmware="fixedwing">
<makefile target="fbw|sim|nps" firmware="fixedwing">
<file name="electrical.c"/>
<test firmware="fixedwing"/>
</makefile>
+4 -20
View File
@@ -6,6 +6,9 @@
<configure name="EXTRA_DL_PORT" value="UARTX|UDPX|usb_serial" description="Select port for extra datalink"/>
<configure name="EXTRA_DL_BAUD" value="B57600" description="Baudrate for extra datalink if link device is UART"/>
</doc>
<dep>
<depends>uart|udp</depends>
</dep>
<header>
<file name="extra_pprz_dl.h"/>
</header>
@@ -25,28 +28,9 @@
<configure name="EXTRA_DL_PORT" default="uart1" case="upper|lower"/>
<define name="EXTRA_DOWNLINK_DEVICE" value="$(EXTRA_DL_PORT_LOWER)"/>
<define name="USE_$(EXTRA_DL_PORT_UPPER)"/>
<define name="$(EXTRA_DL_PORT_UPPER)_BAUD" value="$(EXTRA_DL_BAUD)"/>
<configure name="TELEMETRY_FREQUENCY" default="$(PERIODIC_FREQUENCY)"/>
<define name="TELEMETRY_FREQUENCY" value="$(TELEMETRY_FREQUENCY)"/>
<raw>
# Check for UDP port
ifneq (,$(findstring udp,$(EXTRA_DL_PORT_LOWER)))
include $(CFG_SHARED)/udp.makefile
else
ifneq (,$(findstring usb_serial,$(EXTRA_DL_PORT_LOWER)))
# usb_serial telemetry chosen, add files based on architecture
ifeq ($(ARCH), stm32)
$(TARGET).srcs += $(SRC_ARCH)/usb_ser_hw.c
else
ifneq ($(ARCH), sim)
$(error telemetry_transparent_usb currently only implemented for the stm32)
endif
endif
else
EXTRA_DL_BAUD ?= B57600
$(TARGET).CFLAGS += -D$(EXTRA_DL_PORT_UPPER)_BAUD=$(EXTRA_DL_BAUD)
endif # USB serial
endif # UDP
</raw>
<file name="extra_pprz_dl.c"/>
<file name="pprz_transport.c" dir="pprzlink/src"/>
</makefile>
+2 -2
View File
@@ -11,7 +11,7 @@
<depends>system_core,autopilot_gnc_fw,actuators_pwm</depends>
<suggests>nav_basic_fw</suggests>
</dep>
<makefile>
<makefile target="ap|nps|sim|fbw">
<configure name="PERIODIC_FREQUENCY" default="60"/>
<configure name="SRC_FIRMWARE" value="firmwares/fixedwing"/>
<configure name="WIND_INFO" default="TRUE"/>
@@ -28,7 +28,7 @@
<makefile target="!fbw">
<file name="main_ap.c" dir="."/>
</makefile>
<makefile target="nps|hitl">
<makefile target="nps">
<define name="AP"/>
<file name="nps_autopilot_fixedwing.c" dir="nps"/>
</makefile>
+15
View File
@@ -0,0 +1,15 @@
<!DOCTYPE module SYSTEM "../module.dtd">
<module name="generic_hitl" dir="firmwares" task="core">
<doc>
<description>
Generic firmware config for Hardware In The Loop simualtion
</description>
</doc>
<makefile target="hitl">
<configure name="PERIODIC_FREQUENCY" default="60"/>
<define name="PERIODIC_FREQUENCY" value="$(PERIODIC_FREQUENCY)"/>
<define name="BOARD_CONFIG" value="$(BOARD_CFG)"/>
</makefile>
</module>
+1 -1
View File
@@ -25,7 +25,7 @@
<makefile target="!fbw">
<file name="main_ap.c" dir="."/>
</makefile>
<makefile target="nps|hitl">
<makefile target="nps">
<file name="nps_autopilot_rotorcraft.c" dir="nps"/>
</makefile>
</module>
+1 -1
View File
@@ -28,7 +28,7 @@ $(error "Rover firmware should use generated autopilot")
endif
</raw>
</makefile>
<makefile target="nps|hitl">
<makefile target="nps">
<define name="AP"/>
<file name="nps_autopilot_rover.c" dir="nps"/>
</makefile>
+1 -1
View File
@@ -31,7 +31,7 @@
<datalink message="GPS_INJECT" fun="gps_parse_GPS_INJECT(buf)"/>
<datalink message="RTCM_INJECT" fun="gps_parse_RTCM_INJECT(buf)"/>
<makefile target="fbw|ap|sim|nps|hitl">
<makefile target="fbw|ap|sim|nps">
<configure name="GPS_LED" default="none"/>
<file name="gps.c"/>
<define name="USE_GPS"/>
+1 -1
View File
@@ -17,7 +17,7 @@
</header>
<init fun="gps_nps_init()"/>
<periodic fun="gps_nps_periodic_check()" freq="1." autorun="TRUE"/>
<makefile target="nps|hitl">
<makefile target="nps">
<file name="gps_sim_nps.c"/>
<define name="GPS_TYPE_H" value="modules/gps/gps_sim_nps.h" type="string"/>
<test>
-25
View File
@@ -1,25 +0,0 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="gps_sim_hitl" dir="gps" task="sensors">
<doc>
<description>
Sim HITL GPS
Simulate GPS for HITL (HardwareInTheLoop) from rotorcrafts horizontal/vertical reference system.
</description>
</doc>
<dep>
<depends>gps</depends>
<provides>gps</provides>
</dep>
<header>
<file name="gps.h"/>
</header>
<init fun="gps_sim_hitl_init()"/>
<event fun="gps_sim_hitl_event()"/>
<makefile target="ap" firmware="rotorcraft">
<file name="gps_sim_hitl.c"/>
<define name="HITL"/>
<define name="GPS_TYPE_H" value="modules/gps/gps_sim_hitl.h" type="string"/>
<test firmware="rotorcraft"/>
</makefile>
</module>
+1 -1
View File
@@ -35,7 +35,7 @@
<periodic fun="gps_ubx_periodic_check()" freq="1." autorun="TRUE"/>
<event fun="gps_ubx_event()"/>
<datalink message="HITL_UBX" fun="gps_ubx_parse_HITL_UBX(buf)"/>
<makefile target="ap|fbw|hitl">
<makefile target="ap|fbw">
<configure name="UBX_GPS_PORT" default="$(GPS_PORT)" case="upper|lower"/>
<configure name="UBX_GPS_BAUD" default="$(GPS_BAUD)"/>
+1 -1
View File
@@ -54,7 +54,7 @@
<file name="guidance_h.h"/>
</header>
<init fun="v_ctl_init()"/>
<makefile target="ap|sim|nps|hitl" firmware="fixedwing">
<makefile target="ap|sim|nps" firmware="fixedwing">
<file name="guidance_v.c" dir="$(SRC_FIRMWARE)/guidance"/>
<file name="guidance_h.c" dir="$(SRC_FIRMWARE)/guidance"/>
<define name="CTRL_TYPE_H" value="firmwares/fixedwing/guidance/guidance_v.h" type="string"/>
+1 -1
View File
@@ -45,7 +45,7 @@
<file name="guidance_pid.h"/>
</header>
<init fun="guidance_pid_init()"/>
<makefile target="ap|nps|hitl" firmware="rotorcraft">
<makefile target="ap|nps" firmware="rotorcraft">
<file name="guidance_pid.c" dir="$(SRC_FIRMWARE)/guidance"/>
</makefile>
</module>
+1 -1
View File
@@ -37,7 +37,7 @@
</header>
<init fun="guidance_h_init()"/>
<init fun="guidance_v_init()"/>
<makefile target="ap|nps|hitl" firmware="rotorcraft">
<makefile target="ap|nps" firmware="rotorcraft">
<file name="guidance_h.c" dir="$(SRC_FIRMWARE)/guidance"/>
<file name="guidance_h_ref.c" dir="$(SRC_FIRMWARE)/guidance"/>
<file name="guidance_v.c" dir="$(SRC_FIRMWARE)/guidance"/>
+2 -1
View File
@@ -17,7 +17,8 @@
<provides>recovery</provides>
</dep>
<makefile target="ap" firmware="fixedwing">
<define name="USE_HARD_FAULT_RECOVERY"/>
<configure name="USE_HARD_FAULT_RECOVERY" default="TRUE"/>
<define name="USE_HARD_FAULT_RECOVERY" value="$(USE_HARD_FAULT_RECOVERY)"/>
<file name="main_recovery.c" dir="firmwares/fixedwing"/>
<test firmware="fixedwing">
<define name="RADIO_CONTROL"/>
+1 -1
View File
@@ -30,7 +30,7 @@
<init fun="imu_aspirin2_init()"/>
<periodic fun="imu_aspirin2_periodic()"/>
<event fun="imu_aspirin2_event()"/>
<makefile target="!sim|nps|fbw|hitl">
<makefile target="!sim|nps|fbw">
<configure name="ASPIRIN_2_SPI_DEV" default="spi2" case="lower|upper"/>
<configure name="ASPIRIN_2_SPI_SLAVE_IDX" default="SPI_SLAVE2"/>
+1 -1
View File
@@ -16,7 +16,7 @@
<init fun="imu_nps_init()"/>
<event fun="imu_nps_event()"/>
<makefile target="nps|hitl">
<makefile target="nps">
<file name="imu_nps.c"/>
</makefile>
</module>
+1 -1
View File
@@ -19,7 +19,7 @@
<file name="ins_int.h" dir="modules/ins"/>
</header>
<init fun="ins_int_init()"/>
<makefile target="ap|nps|hitl">
<makefile target="ap|nps">
<define name="INS_TYPE_H" value="modules/ins/ins_int.h" type="string"/>
<file name="ins.c"/>
<file name="ins_int.c"/>
+3 -3
View File
@@ -14,7 +14,7 @@
<file name="ins_gps_passthrough.h"/>
</header>
<init fun="ins_gps_passthrough_init()"/>
<makefile target="nps|hitl">
<makefile target="nps">
<file name="imu.c" dir="modules/imu"/>
<file name="imu_nps.c" dir="modules/imu"/>
<define name="USE_IMU"/>
@@ -29,12 +29,12 @@
</test>
</makefile>
<makefile target="nps|hitl" firmware="rotorcraft">
<makefile target="nps" firmware="rotorcraft">
<define name="INS_TYPE_H" value="modules/ins/ins_gps_passthrough.h" type="string"/>
<file name="ins.c"/>
<file name="ins_gps_passthrough.c"/>
</makefile>
<makefile target="nps|hitl" firmware="fixedwing">
<makefile target="nps" firmware="fixedwing">
<define name="INS_TYPE_H" value="modules/ins/ins_gps_passthrough.h" type="string"/>
<file name="ins.c"/>
<file name="ins_gps_passthrough_utm.c"/>
+1 -1
View File
@@ -34,7 +34,7 @@
<init fun="nav_init()"/>
<datalink message="BLOCK" fun="nav_parse_BLOCK(dev,trans,buf)"/>
<datalink message="MOVE_WP" fun="nav_parse_MOVE_WP(dev,trans,buf)"/>
<makefile target="ap|sim|nps|hitl" firmware="fixedwing">
<makefile target="ap|sim|nps" firmware="fixedwing">
<file name="nav.c" dir="$(SRC_FIRMWARE)"/>
<file name="common_flight_plan.c"/>
<file name="nav_survey_rectangle.c"/>
+1 -1
View File
@@ -14,7 +14,7 @@
<file name="nav_rotorcraft_base.h"/>
</header>
<init fun="nav_rotorcraft_init()"/>
<makefile target="ap|nps|hitl" firmware="rotorcraft">
<makefile target="ap|nps" firmware="rotorcraft">
<file name="nav_rotorcraft_base.c"/>
<test firmware="rotorcraft">
<configure name="SRC_FIRMWARE" value="firmwares/rotorcraft"/>
+1 -1
View File
@@ -14,7 +14,7 @@
<file name="nav_flower.h"/>
</header>
<init fun="nav_flower_init()"/>
<makefile target="ap|sim|nps|hitl">
<makefile target="ap|sim|nps">
<file name="nav_flower.c"/>
<test firmware="fixedwing">
<define name="CTRL_TYPE_H" value="firmwares/fixedwing/guidance/guidance_v.h" type="string"/>
+1 -1
View File
@@ -24,7 +24,7 @@
<file name="nav_rotorcraft_hybrid.h"/>
</header>
<init fun="nav_rotorcraft_hybrid_init()"/>
<makefile target="ap|nps|hitl" firmware="rotorcraft">
<makefile target="ap|nps" firmware="rotorcraft">
<file name="nav_rotorcraft_hybrid.c"/>
<test firmware="rotorcraft">
<define name="GUIDANCE_INDI_MAX_AIRSPEED" value="15."/>
+1 -1
View File
@@ -19,7 +19,7 @@
<file name="nav_lace.h"/>
</header>
<init fun="nav_lace_init()"/>
<makefile target="ap|sim|nps|hitl">
<makefile target="ap|sim|nps">
<file name="nav_lace.c"/>
</makefile>
</module>
+1 -1
View File
@@ -18,7 +18,7 @@
<header>
<file name="nav_launcher.h"/>
</header>
<makefile target="ap|sim|nps|hitl">
<makefile target="ap|sim|nps">
<file name="nav_launcher.c"/>
<test firmware="fixedwing">
<define name="CTRL_TYPE_H" value="firmwares/fixedwing/guidance/guidance_v.h" type="string"/>
+1 -1
View File
@@ -19,7 +19,7 @@
<file name="nav_line.h"/>
</header>
<init fun="nav_line_init()"/>
<makefile target="ap|sim|nps|hitl">
<makefile target="ap|sim|nps">
<file name="nav_line.c"/>
<test firmware="fixedwing">
<define name="CTRL_TYPE_H" value="firmwares/fixedwing/guidance/guidance_v.h" type="string"/>
+1 -1
View File
@@ -19,7 +19,7 @@
<file name="nav_rosette.h"/>
</header>
<init fun="nav_rosette_init()"/>
<makefile target="ap|sim|nps|hitl">
<makefile target="ap|sim|nps">
<file name="nav_rosette.c"/>
</makefile>
</module>
+1 -1
View File
@@ -26,7 +26,7 @@
<init fun="nav_init()"/>
<datalink message="BLOCK" fun="nav_parse_BLOCK(buf)"/>
<datalink message="MOVE_WP" fun="nav_parse_MOVE_WP(buf)"/>
<makefile target="ap|nps|hitl" firmware="rotorcraft">
<makefile target="ap|nps" firmware="rotorcraft">
<file name="navigation.c" dir="$(SRC_FIRMWARE)"/>
<file name="common_flight_plan.c"/>
<file name="waypoints.c"/>
+1 -1
View File
@@ -55,7 +55,7 @@
<header>
<file name="nav_skid_landing.h"/>
</header>
<makefile target="ap|sim|nps|hitl">
<makefile target="ap|sim|nps">
<file name="nav_skid_landing.c"/>
<define name="CTRL_VERTICAL_LANDING" value="1"/>
<test firmware="fixedwing">
+1 -1
View File
@@ -30,7 +30,7 @@
<file name="nav_spiral_3D.h"/>
</header>
<init fun="nav_spiral_3D_init()"/>
<makefile target="ap|sim|nps|hitl">
<makefile target="ap|sim|nps">
<file name="nav_spiral_3D.c"/>
</makefile>
</module>
+1 -1
View File
@@ -34,7 +34,7 @@ You can use:
<header>
<file name="nav_survey_poly_osam.h"/>
</header>
<makefile target="ap|sim|nps|hitl">
<makefile target="ap|sim|nps">
<file name="nav_survey_poly_osam.c"/>
<test firmware="fixedwing">
<define name="CTRL_TYPE_H" value="firmwares/fixedwing/guidance/guidance_v.h" type="string"/>

Some files were not shown because too many files have changed in this diff Show More