mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-06 07:53:43 +08:00
split analogimu in imu and dcm (ahrs) part, update makefiles
This commit is contained in:
@@ -210,7 +210,7 @@
|
||||
<!-- Actuators are automatically chosen according to the board-->
|
||||
<subsystem name="control"/>
|
||||
<!-- Sensors -->
|
||||
<subsystem name="attitude" type="analogimu">
|
||||
<subsystem name="imu" type="analog">
|
||||
<param name="GYRO_P" value="ADC_0"/>
|
||||
<param name="GYRO_Q" value="ADC_1"/>
|
||||
<param name="GYRO_R" value="ADC_2"/>
|
||||
@@ -218,6 +218,8 @@
|
||||
<param name="ACCEL_Y" value="ADC_6"/>
|
||||
<param name="ACCEL_Z" value="ADC_7"/>
|
||||
</subsystem>
|
||||
|
||||
<subsystem name="attitude" type="dcm"/>
|
||||
<subsystem name="gps" type="ublox_lea5h"/>
|
||||
<subsystem name="navigation"/>
|
||||
</firmware>
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
# attitude via analog imu
|
||||
|
||||
|
||||
ifeq ($(ARCH), lpc21)
|
||||
ap.CFLAGS += -DUSE_ANALOG_IMU -DADC
|
||||
ap.CFLAGS += -DUSE_$(GYRO_P) -DUSE_$(GYRO_Q) -DUSE_ADC_$(GYRO_R)
|
||||
ap.CFLAGS += -DUSE_$(ACCEL_X) -DUSE_$(ACCEL_y) -DUSE_$(ACCEL_Z)
|
||||
|
||||
ap.CFLAGS += -DADC_CHANNEL_GYRO_P=$(GYRO_P) -DADC_CHANNEL_GYRO_Q=$(GYRO_Q) -DADC_CHANNEL_GYRO_R=$(GYRO_R)
|
||||
ap.CFLAGS += -DADC_CHANNEL_ACCEL_X=$(ACCEL_X) -DADC_CHANNEL_ACCEL_Y=$(ACCEL_Y) -DADC_CHANNEL_ACCEL_Z=$(ACCEL_Z)
|
||||
|
||||
ap.srcs += $(SRC_SUBSYSTEMS)/ahrs/dcm/dcm.c
|
||||
ap.srcs += $(SRC_SUBSYSTEMS)/ahrs/dcm/analogimu.c
|
||||
ap.srcs += $(SRC_SUBSYSTEMS)/imu/imu_analog.c
|
||||
ap.srcs += $(SRC_SUBSYSTEMS)/imu.c
|
||||
|
||||
|
||||
endif
|
||||
|
||||
# since there is currently no SITL sim for the Analog IMU, we use the infrared sim
|
||||
|
||||
ifeq ($(TARGET), sim)
|
||||
|
||||
sim.CFLAGS += -DIR_ROLL_NEUTRAL_DEFAULT=0
|
||||
sim.CFLAGS += -DIR_PITCH_NEUTRAL_DEFAULT=0
|
||||
|
||||
$(TARGET).CFLAGS += -DUSE_INFRARED
|
||||
$(TARGET).srcs += subsystems/sensors/infrared.c
|
||||
|
||||
sim.srcs += $(SRC_ARCH)/sim_ir.c
|
||||
sim.srcs += $(SRC_ARCH)/sim_analogimu.c
|
||||
|
||||
endif
|
||||
|
||||
jsbsim.srcs += $(SRC_ARCH)/jsbsim_ir.c
|
||||
@@ -0,0 +1,27 @@
|
||||
# attitude estimation for fixedwings via dcm algorithm
|
||||
|
||||
|
||||
ifeq ($(ARCH), lpc21)
|
||||
ap.CFLAGS += -DUSE_ANALOG_IMU
|
||||
|
||||
ap.srcs += $(SRC_SUBSYSTEMS)/ahrs/dcm/dcm.c
|
||||
ap.srcs += $(SRC_SUBSYSTEMS)/ahrs/dcm/analogimu.c
|
||||
|
||||
endif
|
||||
|
||||
# since there is currently no SITL sim for the Analog IMU, we use the infrared sim
|
||||
|
||||
ifeq ($(TARGET), sim)
|
||||
|
||||
sim.CFLAGS += -DIR_ROLL_NEUTRAL_DEFAULT=0
|
||||
sim.CFLAGS += -DIR_PITCH_NEUTRAL_DEFAULT=0
|
||||
|
||||
sim.CFLAGS += -DUSE_INFRARED
|
||||
sim.srcs += subsystems/sensors/infrared.c
|
||||
|
||||
sim.srcs += $(SRC_ARCH)/sim_ir.c
|
||||
sim.srcs += $(SRC_ARCH)/sim_analogimu.c
|
||||
|
||||
endif
|
||||
|
||||
jsbsim.srcs += $(SRC_ARCH)/jsbsim_ir.c
|
||||
@@ -0,0 +1,62 @@
|
||||
#
|
||||
# Analog IMU connected to MCU ADC ports
|
||||
#
|
||||
#
|
||||
# <subsystem name="imu" type="analog">
|
||||
# <param name="GYRO_P" value="ADC_0"/>
|
||||
# <param name="GYRO_Q" value="ADC_1"/>
|
||||
# <param name="GYRO_R" value="ADC_2"/>
|
||||
# <param name="ACCEL_X" value="ADC_5"/>
|
||||
# <param name="ACCEL_Y" value="ADC_6"/>
|
||||
# <param name="ACCEL_Z" value="ADC_7"/>
|
||||
# </subsystem>
|
||||
#
|
||||
# required xml:
|
||||
# <section name="IMU" prefix="IMU_">
|
||||
#
|
||||
# <define name="GYRO_P_NEUTRAL" value="512"/>
|
||||
# <define name="GYRO_Q_NEUTRAL" value="512"/>
|
||||
# <define name="GYRO_R_NEUTRAL" value="512"/>
|
||||
#
|
||||
# <define name="GYRO_P_SENS" value="0.017" integer="16"/>
|
||||
# <define name="GYRO_Q_SENS" value="0.017" integer="16"/>
|
||||
# <define name="GYRO_R_SENS" value="0.017" integer="16"/>
|
||||
#
|
||||
# <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_SENS" value="0.1" integer="16"/>
|
||||
# <define name="ACCEL_Y_SENS" value="0.1" integer="16"/>
|
||||
# <define name="ACCEL_Z_SENS" value="0.1" integer="16"/>
|
||||
#
|
||||
# <define name="ACCEL_X_NEUTRAL" value="512"/>
|
||||
# <define name="ACCEL_Y_NEUTRAL" value="512"/>
|
||||
# <define name="ACCEL_Z_NEUTRAL" value="512"/>
|
||||
#
|
||||
# <define name="ACCEL_X_SIGN" value="1"/>
|
||||
# <define name="ACCEL_Y_SIGN" value="-1"/>
|
||||
# <define name="ACCEL_Z_SIGN" value="1"/>
|
||||
#
|
||||
# </section>
|
||||
#
|
||||
|
||||
|
||||
ifeq ($(ARCH), lpc21)
|
||||
imu_CFLAGS += -DADC
|
||||
imu_CFLAGS += -DUSE_$(GYRO_P) -DUSE_$(GYRO_Q) -DUSE_ADC_$(GYRO_R)
|
||||
imu_CFLAGS += -DUSE_$(ACCEL_X) -DUSE_$(ACCEL_y) -DUSE_$(ACCEL_Z)
|
||||
|
||||
imu_CFLAGS += -DADC_CHANNEL_GYRO_P=$(GYRO_P) -DADC_CHANNEL_GYRO_Q=$(GYRO_Q) -DADC_CHANNEL_GYRO_R=$(GYRO_R)
|
||||
imu_CFLAGS += -DADC_CHANNEL_ACCEL_X=$(ACCEL_X) -DADC_CHANNEL_ACCEL_Y=$(ACCEL_Y) -DADC_CHANNEL_ACCEL_Z=$(ACCEL_Z)
|
||||
|
||||
imu_srcs += $(SRC_SUBSYSTEMS)/imu.c
|
||||
imu_srcs += $(SRC_SUBSYSTEMS)/imu/imu_analog.c
|
||||
imu_srcs += math/pprz_trig_int.c
|
||||
|
||||
endif
|
||||
|
||||
# Keep CFLAGS/Srcs for imu in separate expression so we can assign it to other targets
|
||||
# see: conf/autopilot/subsystems/lisa_passthrough/imu_b2_v1.1.makefile for example
|
||||
ap.CFLAGS += $(imu_CFLAGS)
|
||||
ap.srcs += $(imu_srcs)
|
||||
Reference in New Issue
Block a user