split analogimu in imu and dcm (ahrs) part, update makefiles

This commit is contained in:
Felix Ruess
2010-12-09 22:43:26 +01:00
parent 86b18fd20a
commit ab37342ea7
4 changed files with 92 additions and 36 deletions
+3 -1
View File
@@ -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)