mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-28 01:53:48 +08:00
[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:
committed by
GitHub
parent
094997af4b
commit
4ae40567ed
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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!'"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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)"/>
|
||||
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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."/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -9,5 +9,5 @@
|
||||
<dep>
|
||||
<depends>nav_basic_fw</depends>
|
||||
</dep>
|
||||
<makefile target="ap|sim|nps|hitl"/>
|
||||
<makefile target="ap|sim|nps"/>
|
||||
</module>
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="nps_hitl_sensors" dir="sensors" task="sensors">
|
||||
<doc>
|
||||
<description>
|
||||
Send simulated sensors for HITL (HardwareInTheLoop).
|
||||
</description>
|
||||
</doc>
|
||||
<dep>
|
||||
<provides>imu,mag,gps,baro,airspeed</provides>
|
||||
</dep>
|
||||
<makefile target="hitl">
|
||||
<include name="$(PAPARAZZI_HOME)/var/include"/>
|
||||
<define name="DOWNLINK"/>
|
||||
<file name="nps_hitl_sensors.c" dir="$(NPS_DIR)"/>
|
||||
<file name="serial_port.c" dir="arch/linux"/>
|
||||
<file name="pprz_transport.c" dir="pprzlink/src"/>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -21,7 +21,7 @@
|
||||
</header>
|
||||
<init fun="ppm_init()"/>
|
||||
<event fun="ppm_event()"/>
|
||||
<makefile target="ap|fbw|sim|nps|hitl">
|
||||
<makefile target="ap|fbw|sim|nps">
|
||||
<define name="USE_PPM" value="TRUE"/>
|
||||
<define name="PPM_CONFIG" value="$(PPM_CONFIG)" cond="ifdef PPM_CONFIG"/>
|
||||
<define name="RADIO_CONTROL_TYPE_PPM"/>
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
<define name="SPEKTRUM_SECONDARY_BIND_CONF_PIN" value="GPIO1"/>
|
||||
</test>
|
||||
</makefile>
|
||||
<makefile target="sim|nps|hitl">
|
||||
<makefile target="sim|nps">
|
||||
<file_arch name="spektrum_arch.c" dir="modules/radio_control"/>
|
||||
<test>
|
||||
<define name="RADIO_CONTROL"/>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<init fun="rust_function()"/>
|
||||
<periodic fun="rust_periodic()" freq="1." autorun="TRUE"/>
|
||||
|
||||
<makefile target="ap|nps|hitl">
|
||||
<makefile target="ap|nps">
|
||||
<!--
|
||||
MODULE_PATH is where the module lives.
|
||||
RUST_MODULES contains all Rust modules that should be built.
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="sensors_hitl" dir="sensors" task="sensors">
|
||||
<doc>
|
||||
<description>
|
||||
Simulated sensors for HITL (HardwareInTheLoop).
|
||||
</description>
|
||||
<configure name="HITL_PORT" value="UARTX|UDPX|usb_serial" description="Select port for extra datalink"/>
|
||||
<configure name="HITL_BAUD" value="B921600" description="Baudrate for extra datalink if link device is UART"/>
|
||||
<define name="USE_BATTERY_MONITOR" value="FALSE|TRUE" description="If the board is not powered from a real battery, set this flag to TRUE to override the battery voltage reading"/>
|
||||
</doc>
|
||||
<dep>
|
||||
<depends>imu_common,gps</depends>
|
||||
<provides>imu,mag,gps,baro,airspeed</provides>
|
||||
</dep>
|
||||
<header>
|
||||
<file name="sensors_hitl.h"/>
|
||||
</header>
|
||||
<init fun="sensors_hitl_init()"/>
|
||||
<periodic fun="sensors_hitl_periodic()"/>
|
||||
<event fun="sensors_hitl_event()"/>
|
||||
<datalink message="HITL_IMU" fun="sensors_hitl_parse_HITL_IMU(buf)"/>
|
||||
<datalink message="HITL_GPS" fun="sensors_hitl_parse_HITL_GPS(buf)"/>
|
||||
<datalink message="HITL_AIR_DATA" fun="sensors_hitl_parse_HITL_AIR_DATA(buf)"/>
|
||||
|
||||
<makefile target="ap">
|
||||
<configure name="HITL_PORT" case="upper|lower"/>
|
||||
<configure name="HITL_BAUD" default="B921600"/>
|
||||
<define name="HITL_DEVICE" value="$(HITL_PORT_LOWER)"/>
|
||||
<define name="USE_$(HITL_PORT_UPPER)"/>
|
||||
<define name="$(HITL_PORT_UPPER)_BAUD" value="$(HITL_BAUD)"/>
|
||||
<include name="$(PAPARAZZI_HOME)/conf/simulator/nps"/>
|
||||
<file name="sensors_hitl.c"/>
|
||||
<test firmware="rotorcraft">
|
||||
<include name="../../conf/simulator/nps"/>
|
||||
<define name="NPS_PROPAGATE" value="500"/>
|
||||
<define name="HITL_DEVICE" value="usb_serial"/>
|
||||
<define name="USE_USB_SERIAL"/>
|
||||
</test>
|
||||
</makefile>
|
||||
</module>
|
||||
@@ -54,7 +54,7 @@
|
||||
<file name="stabilization_attitude.h"/>
|
||||
</header>
|
||||
<init fun="h_ctl_init()"/>
|
||||
<makefile target="ap|sim|nps|hitl" firmware="fixedwing">
|
||||
<makefile target="ap|sim|nps" firmware="fixedwing">
|
||||
<file name="stabilization_attitude.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
</makefile>
|
||||
</module>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
<file name="stabilization_attitude_euler_float.h"/>
|
||||
</header>
|
||||
<init fun="stabilization_attitude_init()"/>
|
||||
<makefile target="ap|nps|hitl" firmware="rotorcraft">
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization_attitude_euler_float.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_ref_euler_float.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<define name="STABILIZATION_ATTITUDE_TYPE_FLOAT"/>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</header>
|
||||
<init fun="stabilization_init()"/>
|
||||
<init fun="stabilization_none_init()"/>
|
||||
<makefile target="ap|nps|hitl" firmware="rotorcraft">
|
||||
<makefile target="ap|nps" firmware="rotorcraft">
|
||||
<file name="stabilization.c" dir="$(SRC_FIRMWARE)"/>
|
||||
<file name="stabilization_none.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
<file name="stabilization_attitude_rc_setpoint.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<periodic fun="syslink_dl_periodic()" freq="2"/>
|
||||
<event fun="syslink_dl_event()"/>
|
||||
|
||||
<makefile target="!fbw|sim|nps|hitl">
|
||||
<makefile target="!fbw|sim|nps">
|
||||
<configure name="SYSLINK_PORT" default="uart6" case="upper|lower"/>
|
||||
<configure name="SYSLINK_BAUD" default="B1000000" case="upper|lower"/>
|
||||
<define name="SYSLINK_DEV" value="$(SYSLINK_PORT_LOWER)"/>
|
||||
|
||||
@@ -8,19 +8,15 @@
|
||||
</description>
|
||||
</doc>
|
||||
<dep>
|
||||
<depends>targets/nps</depends>
|
||||
<suggests>gps_nps</suggests>
|
||||
<depends>math,targets/nps_common</depends>
|
||||
</dep>
|
||||
<makefile target="hitl">
|
||||
<configure name="INS_DEV" default="/dev/ttyUSB1"/>
|
||||
<configure name="INS_BAUD" default="B921600"/>
|
||||
<configure name="AP_DEV" default="/dev/ttyUSB2"/>
|
||||
<configure name="AP_BAUD" default="B921600"/>
|
||||
<define name="AP"/>
|
||||
<define name="AP_DEV" value="$(AP_DEV)"/>
|
||||
<define name="AP_BAUD" value="$(AP_BAUD)"/>
|
||||
<define name="INS_DEV" value="$(INS_DEV)"/>
|
||||
<define name="INS_BAUD" value="$(INS_BAUD)"/>
|
||||
<configure name="SRC_FIRMWARE" default="firmwares/fixedwing"/>
|
||||
<configure name="PERIODIC_FREQUENCY" default="60"/>
|
||||
<define name="PERIODIC_FREQUENCY" value="$(PERIODIC_FREQUENCY)"/>
|
||||
<define name="HITL"/>
|
||||
<include name="$(SRC_FIRMWARE)"/>
|
||||
<file name="nps_main_hitl.c" dir="$(NPS_DIR)"/>
|
||||
</makefile>
|
||||
</module>
|
||||
|
||||
|
||||
@@ -6,79 +6,23 @@
|
||||
New Paparazzi Simulator (NPS)
|
||||
|
||||
Bindings between embedded autopilot code and a flight dynamic model (FDM).
|
||||
Possible FDM are: JSBSim or CRRCSIM, see corresponding modules.
|
||||
Can run Software In The Loop (SITL) or Hardware In The Loop (HITL) simulations.
|
||||
Possible FDM are: JSBSim, CRRCSIM, GAZEBO or PYBULLET, see corresponding modules.
|
||||
Can run Software In The Loop (SITL) simulations.
|
||||
</description>
|
||||
</doc>
|
||||
<dep>
|
||||
<depends>system_core,electrical,settings,@ins|@ahrs</depends>
|
||||
<depends>system_core,electrical,settings,@ins|@ahrs,targets/nps_common</depends>
|
||||
<provides>baro,airspeed,sonar,incidence,temperature</provides>
|
||||
<suggests>gps_nps,imu_nps,ins_nps,actuators_nps,telemetry_nps</suggests>
|
||||
</dep>
|
||||
<makefile target="nps|hitl">
|
||||
<configure name="BARO_PERIODIC_FREQUENCY" default="50"/>
|
||||
<configure name="NPS_DIR" value="nps"/>
|
||||
<raw>
|
||||
$(TARGET).MAKEFILE = $(TARGET)
|
||||
$(TARGET).ARCHDIR = sim
|
||||
|
||||
# detect system arch and include rt and pthread library only on linux
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
$(TARGET).LDFLAGS += -lrt -pthread
|
||||
endif
|
||||
|
||||
# sdl needed for joystick input
|
||||
$(TARGET).LDFLAGS += $(shell sdl-config --libs)
|
||||
|
||||
# glib is still needed for some components (such as radio input)
|
||||
$(TARGET).CFLAGS += $(shell pkg-config glib-2.0 --cflags)
|
||||
$(TARGET).LDFLAGS += $(shell pkg-config glib-2.0 --libs)
|
||||
|
||||
#
|
||||
# add the simulator directory to the make searchpath
|
||||
#
|
||||
VPATH += $(PAPARAZZI_SRC)/sw/simulator
|
||||
|
||||
</raw>
|
||||
<define name="BARO_PERIODIC_FREQUENCY" value="$(BARO_PERIODIC_FREQUENCY)"/>
|
||||
<define name="USE_BARO_BOARD" value="FALSE"/>
|
||||
<makefile target="nps">
|
||||
<define name="AP"/>
|
||||
<define name="SITL"/>
|
||||
<define name="USE_NPS"/>
|
||||
<flag name="LDFLAGS" value="lm -livy $(shell pcre-config --libs) -lgsl -lgslcblas"/>
|
||||
<include name="$(PAPARAZZI_SRC)/sw/simulator"/>
|
||||
<include name="$(PAPARAZZI_SRC)/sw/simulator/nps"/>
|
||||
<include name="$(PAPARAZZI_HOME)/conf/simulator/nps"/>
|
||||
<file name="nps_main_common.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensors.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensors_utils.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_gyro.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_accel.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_mag.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_baro.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_sonar.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_gps.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_airspeed.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_temperature.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_aoa.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_sideslip.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_electrical.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_atmosphere.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_ivy.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_flightgear.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_radio_control.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_radio_control_joystick.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_radio_control_spektrum.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_random.c" dir="$(NPS_DIR)"/>
|
||||
<file name="pprz_geodetic_wmm2020.c" dir="math"/>
|
||||
</makefile>
|
||||
<makefile target="nps">
|
||||
<file name="nps_main_sitl.c" dir="$(NPS_DIR)"/>
|
||||
</makefile>
|
||||
<makefile target="hitl">
|
||||
<file name="nps_main_hitl.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_ins_vectornav.c" dir="$(NPS_DIR)"/> <!-- TODO should be in ins_vectornav module -->
|
||||
</makefile>
|
||||
</module>
|
||||
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
<!DOCTYPE module SYSTEM "../module.dtd">
|
||||
|
||||
<module name="nps_common" dir="targets" task="core">
|
||||
<doc>
|
||||
<description>
|
||||
New Paparazzi Simulator (NPS) common files
|
||||
|
||||
Bindings between embedded autopilot code and a flight dynamic model (FDM).
|
||||
Can run Software In The Loop (SITL) or Hardware In The Loop (HITL) simulations.
|
||||
</description>
|
||||
</doc>
|
||||
<dep>
|
||||
<depends>math</depends>
|
||||
</dep>
|
||||
<makefile target="nps|hitl">
|
||||
<configure name="BARO_PERIODIC_FREQUENCY" default="50"/>
|
||||
<configure name="NPS_DIR" value="nps"/>
|
||||
<raw>
|
||||
$(TARGET).MAKEFILE = $(TARGET)
|
||||
$(TARGET).ARCHDIR = sim
|
||||
|
||||
# detect system arch and include rt and pthread library only on linux
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
$(TARGET).LDFLAGS += -lrt -pthread
|
||||
endif
|
||||
|
||||
# sdl needed for joystick input
|
||||
$(TARGET).LDFLAGS += $(shell sdl-config --libs)
|
||||
|
||||
# glib is still needed for some components (such as radio input)
|
||||
$(TARGET).CFLAGS += $(shell pkg-config glib-2.0 --cflags)
|
||||
$(TARGET).LDFLAGS += $(shell pkg-config glib-2.0 --libs)
|
||||
|
||||
#
|
||||
# add the simulator and var directory to the make searchpath
|
||||
#
|
||||
VPATH += $(PAPARAZZI_SRC)/sw/simulator
|
||||
VPATH += $(PAPARAZZI_HOME)/var/share
|
||||
|
||||
</raw>
|
||||
<define name="BARO_PERIODIC_FREQUENCY" value="$(BARO_PERIODIC_FREQUENCY)"/>
|
||||
<define name="USE_BARO_BOARD" value="FALSE"/>
|
||||
<define name="USE_NPS"/>
|
||||
<flag name="LDFLAGS" value="lm -livy $(shell pcre-config --libs) -lgsl -lgslcblas"/>
|
||||
<include name="$(PAPARAZZI_SRC)/sw/simulator"/>
|
||||
<include name="$(PAPARAZZI_SRC)/sw/simulator/nps"/>
|
||||
<include name="$(PAPARAZZI_HOME)/conf/simulator/nps"/>
|
||||
<file name="nps_sensors.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensors_utils.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_gyro.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_accel.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_mag.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_baro.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_sonar.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_gps.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_airspeed.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_temperature.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_aoa.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_sensor_sideslip.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_atmosphere.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_ivy.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_flightgear.c" dir="$(NPS_DIR)"/>
|
||||
<file name="nps_random.c" dir="$(NPS_DIR)"/>
|
||||
<file name="pprz_geodetic_wmm2020.c" dir="math"/>
|
||||
<file name="nps_main_common.c" dir="$(NPS_DIR)"/>
|
||||
</makefile>
|
||||
</module>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</header>
|
||||
<init fun="pprz_dl_init()"/>
|
||||
<event fun="pprz_dl_event()"/>
|
||||
<makefile target="nps|hitl">
|
||||
<makefile target="nps">
|
||||
<configure name="MODEM_DEV" default="UDP0" case="upper|lower"/>
|
||||
<configure name="MODEM_PORT_OUT" default="4242"/>
|
||||
<configure name="MODEM_PORT_IN" default="4243"/>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<depends>udp,datalink_common</depends>
|
||||
<provides>datalink,telemetry</provides>
|
||||
</dep>
|
||||
<makefile target="nps|hitl">
|
||||
<makefile target="nps">
|
||||
<configure name="MODEM_DEV" default="UDP0" case="upper|lower"/>
|
||||
<configure name="MODEM_PORT_OUT" default="4242"/>
|
||||
<configure name="MODEM_PORT_IN" default="4243"/>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<suggests>telemetry_nps_secure</suggests>
|
||||
</dep>
|
||||
|
||||
<makefile target="!sim|nps|hitl">
|
||||
<makefile target="!sim|nps">
|
||||
<configure name="MODEM_PORT" case="upper|lower"/>
|
||||
<define name="USE_$(MODEM_PORT_UPPER)"/>
|
||||
<define name="$(MODEM_PORT_UPPER)_BAUD" value="$(MODEM_BAUD)"/>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</header>
|
||||
<init fun="pprz_dl_init()"/>
|
||||
<event fun="pprz_dl_event()" cond="!TELEMETRY_DISABLE_RX"/>
|
||||
<makefile target="!sim|nps|hitl">
|
||||
<makefile target="!sim|nps">
|
||||
<configure name="MODEM_PORT" case="upper|lower"/>
|
||||
<define name="USE_$(MODEM_PORT_UPPER)"/>
|
||||
<define name="$(MODEM_PORT_UPPER)_BAUD" value="$(MODEM_BAUD)"/>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user