Skip to content

Commit

Permalink
Merged CDW into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
dewagter committed May 4, 2011
2 parents 2222350 + d9f78fa commit 2bf0367
Show file tree
Hide file tree
Showing 16 changed files with 468 additions and 139 deletions.
197 changes: 197 additions & 0 deletions conf/airframes/CDW/PPZIMUTinyFw.xml
@@ -0,0 +1,197 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">

<!--
YAPA + XSens + XBee
-->

<airframe name="Yapa v1">

<servos>
<servo name="THROTTLE" no="0" min="1000" neutral="1000" max="2000"/>
<servo name="AILERON_LEFT" no="1" min="1000" neutral="1500" max="2000"/>
<servo name="AILERON_RIGHT" no="2" min="2000" neutral="1500" max="1000"/>
<servo name="ELEVATOR" no="3" min="2000" neutral="1500" max="1000"/>
<servo name="RUDDER" no="4" min="1100" neutral="1500" max="1900"/>
</servos>

<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="BRAKE" failsafe_value="0"/> <!-- both elerons up as butterfly brake ? -->
</commands>

<rc_commands>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="BRAKE" value="@YAW"/>
</rc_commands>

<section name="SERVO_MIXER_GAINS">
<define name="AILERON_RATE_UP" value="0.50f"/>
<define name="AILERON_RATE_DOWN" value="0.25f"/>

<define name="AILERON_RATE_UP_BRAKE" value="0.5f"/>
<define name="AILERON_RATE_DOWN_BRAKE" value="0.9f"/>

<define name="PITCH_GAIN" value="0.9f"/>

<define name="YAW_THRUST" value="0.0f"/>
<define name="BRAKE_AILEVON" value="-0.68f"/>
<define name="BRAKE_PITCH" value="0.0f"/>
<define name="MAX_BRAKE_RATE" value="150"/>

<define name="LIMIT(X,XL,XH)" value="( ((X)>(XH)) ? (XH) : ( ((X)>(XL)) ? (X) : (XL) ) )"/>
</section>

<command_laws>
<!-- Differential Aileron Depending on Brake Value -->
<set servo="AILERON_LEFT" value="@ROLL"/>
<set servo="AILERON_RIGHT" value="@ROLL"/>

<!-- Differential Thurst -->
<set servo="THROTTLE" value="@THROTTLE"/>

<!-- Pitch with Brake-Trim Function -->
<set servo="ELEVATOR" value="@PITCH"/>
</command_laws>

<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
</section>

<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.7"/>
<define name="MAX_PITCH" value="0.7"/>
</section>

<section name="BAT">
<define name="MilliAmpereOfAdc(adc)" value="((adc) - 505) * 124.0f"/>

<define name="LOW_BAT_LEVEL" value="10.5" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="10" unit="V"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="9.1" unit="V"/>
</section>

<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="13." unit="m/s"/>
<define name="CARROT" value="5." unit="s"/>
<define name="CONTROL_RATE" value="60" unit="Hz"/>
<define name="XBEE_INIT" value="&quot;ATPL2\rATRN5\rATTT80\r&quot;"/>
<!-- <define name="NO_XBEE_API_INIT" value="TRUE"/> -->
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>

<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>

<define name="GLIDE_AIRSPEED" value="10"/>
<define name="GLIDE_VSPEED" value="3."/>
<define name="GLIDE_PITCH" value="45" unit="deg"/>
</section>

<section name="VERTICAL CONTROL" prefix="V_CTL_">
<define name="POWER_CTL_BAT_NOMINAL" value="11.1" unit="volt"/>
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="-0.03"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="2."/>

<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.32"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.65"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="-4000"/>
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.15" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="-0.01"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.05"/>

<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/>
</section>

<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="-1.20000004768"/>
<define name="COURSE_DGAIN" value="0.3"/>
<define name="COURSE_PRE_BANK_CORRECTION" value="0.2"/>

<define name="ROLL_MAX_SETPOINT" value="0.9" unit="radians"/>
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>

<define name="PITCH_PGAIN" value="-12000."/>
<define name="PITCH_DGAIN" value="0"/>

<define name="ELEVATOR_OF_ROLL" value="1000."/>

<define name="ROLL_ATTITUDE_GAIN" value="-11500"/>
<define name="ROLL_RATE_GAIN" value="-600."/>
</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="1.00"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.3"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.25"/><!-- 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="DEFAULT_THROTTLE" value="0.35" unit="%"/>
<define name="DEFAULT_ROLL" value="0.17" unit="rad"/>
<define name="DEFAULT_PITCH" value="0.08" unit="rad"/>

<define name="HOME_RADIUS" value="DEFAULT_CIRCLE_RADIUS" unit="m"/>
<define name="KILL_MODE_DISTANCE" value="(MAX_DIST_FROM_HOME*1.5)"/>
<define name="DELAY_WITHOUT_GPS" value="3" unit="s"/>
</section>

<section name="DIGITAL_CAMERA" prefix="DC_">
<define name="AUTOSHOOT_QUARTERSEC_PERIOD" value="6" unit="quarter_second"/>
<define name="AUTOSHOOT_METER_GRID" value="50" unit="meter"/>
</section>


<modules>
<load name="baro_bmp.xml" >
<define name="SENSOR_SYNC_SEND" />
<define name="BMP_I2C_DEV" value="i2c0" />
</load>

</modules>

<firmware name="fixedwing">
<target name="ap" board="tiny_2.11">
<define name="STRONG_WIND"/>
<define name="WIND_INFO"/>
<define name="WIND_INFO_RET"/>
<define name="LOITER_TRIM"/>
<define name="ALT_KALMAN"/>
<define name="NB_CHANNELS" value="5" />
</target>
<target name="sim" board="pc"/>

<subsystem name="radio_control" type="ppm"/>
<subsystem name="gps" type="ublox_lea5h" />

<!-- Communication -->
<subsystem name="telemetry" type="xbee_api">
<configure name="MODEM_BAUD" value="B57600"/>
</subsystem>

<!-- Actuators -->
<subsystem name="control"/>
<!-- Sensors -->
<subsystem name="navigation"/>
<!-- <subsystem name="gps" type="ublox_lea5h"/> -->

<subsystem name="i2c"/>
<subsystem name="imu" type="aspirin" />

</firmware>

</airframe>
14 changes: 9 additions & 5 deletions conf/airframes/TU_Delft/yapa_xsens.xml
@@ -1,6 +1,6 @@
<!DOCTYPE airframe SYSTEM "../airframe.dtd">

<!--
<!--
YAPA + XSens + XBee
-->

Expand Down Expand Up @@ -51,7 +51,7 @@
<!-- Brake Rate Limiter -->
<let var="brake_value" value="Chop(-@BRAKE, 0, MAX_PPRZ)"/>
<!--<let var="brake_value" value="RATELIMIT( $brake_value , MAX_BRAKE_RATE )"/>
<let var="test; \
static int16_t _var_brake_value = 0; \
_var_brake_value += LIMIT(_var_brake_value_nofilt - _var_brake_value,-MAX_BRAKE_RATE,MAX_BRAKE_RATE); \
Expand Down Expand Up @@ -180,14 +180,16 @@
<load name="ins_xsens_MTiG_fixedwing.xml">
<configure name="XSENS_UART_NR" value="0"/>
</load>

<!--
<load name="light.xml">
<define name="LIGHT_LED_STROBE" value="3"/>
<define name="LIGHT_LED_NAV" value="2"/>
<define name="STROBE_LIGHT_MODE_DEFAULT" value="6"/>
<define name="NAV_LIGHT_MODE_DEFAULT" value="4"/>
</load>
<!-- <load name="digital_cam_i2c.xml"/> -->
-->
<!-- <load name="digital_cam_i2c.xml"/> -->
<load name="mag_hmc5843.xml" />
<load name="digital_cam.xml" >
<define name="DC_SHUTTER_LED" value="3"/>
</load>
Expand Down Expand Up @@ -218,6 +220,8 @@
<subsystem name="navigation"/>
<subsystem name="gps" type="xsens"/>

</firmware>
<subsystem name="i2c"/>

</firmware>

</airframe>
1 change: 0 additions & 1 deletion conf/autopilot/subsystems/fixedwing/imu_booz.makefile
Expand Up @@ -52,7 +52,6 @@ imu_srcs += $(SRC_ARCH)/peripherals/max1168_arch.c
#ifeq ($(ARCH), lpc21)
imu_CFLAGS += -DSSP_VIC_SLOT=9
imu_CFLAGS += -DMAX1168_EOC_VIC_SLOT=8
#FIXME ms2100 not used on this imu
#else ifeq ($(ARCH), stm32)
#imu_CFLAGS += -DUSE_SPI2 -DUSE_DMA1_C4_IRQ -DUSE_EXTI2_IRQ -DUSE_SPI2_IRQ
#imu_CFLAGS += -DMAX_1168_DRDY_PORT=$(MAX_1168_DRDY_PORT)
Expand Down
5 changes: 4 additions & 1 deletion conf/modules/ins_xsens_MTiG_fixedwing.xml
Expand Up @@ -13,10 +13,13 @@
<define name="AHRS_TYPE_H" value="\\\"modules/ins/ins_xsens.h\\\"" />
<define name="USE_UART$(XSENS_UART_NR)"/>
<define name="INS_LINK" value="Uart$(XSENS_UART_NR)"/>
<define name="UART$(XSENS_UART_NR)_BAUD" value="B115200"/>
<define name="UART$(XSENS_UART_NR)_BAUD" value="B230400"/>
<define name="USE_GPS_XSENS"/>
<define name="USE_GPS_XSENS_RAW_DATA" />
<define name="GPS_NB_CHANNELS" value="16" />
<define name="XSENS_OUTPUT_MODE" value="0x1836" />
<file name="ins_xsens.c"/>
<define name="AHRS_TRIGGERED_ATTITUDE_LOOP" />
</makefile>
</module>

19 changes: 19 additions & 0 deletions conf/modules/mag_hmc5843.xml
@@ -0,0 +1,19 @@
<!DOCTYPE module SYSTEM "module.dtd">

<module name="sensors">
<!-- <depend conflict="ins" -->
<header>
<file name="mag_hmc5843.h"/>
</header>
<init fun="hmc5843_module_init()"/>
<periodic fun="hmc5843_module_periodic()" freq="60"/>
<event fun="hmc5843_module_event()"/>
<makefile>
<define name="USE_I2C" />
<file name="mag_hmc5843.c"/>
<file name="../../peripherals/hmc5843.c"/>
<define name="HMC5843_I2C_DEVICE" value="i2c0" />
<define name="USE_I2C0" />
<define name="HMC5843_NO_IRQ" />
</makefile>
</module>
5 changes: 5 additions & 0 deletions conf/xsens_MTi-G.xml
Expand Up @@ -40,6 +40,11 @@
</message>
<message name="SetBaudrateAck" ID="0x19" to="host"/>

<message name="SetSyncOutSettings" ID="0xD8" to="MT" length="3">
<field name="param" format="U1"/>
<field name="value" format="U2"/>
</message>

<message name="RestoreFactoryDef" ID="0x0E" to="MT"/>
<message name="RestoreFactoryDefAck" ID="0x0F" to="host"/>

Expand Down
2 changes: 1 addition & 1 deletion sw/airborne/ap_downlink.h
Expand Up @@ -191,7 +191,7 @@
int16_t climb = -gps.ned_vel.z; \
int16_t course = DegOfRad(gps.course / 10); \
DOWNLINK_SEND_GPS(DefaultChannel, &gps.fix, &gps.utm_pos.east, &gps.utm_pos.north, &course, &gps.lla_pos.alt, &gps.gspeed, &climb, &gps.week, &gps.tow, &gps.utm_pos.zone, &i); \
if (i == gps.nb_channels) i = 0; \
if (i >= gps.nb_channels) i = 0; \
if (i < gps.nb_channels && gps.svinfos[i].cno > 0 && gps.svinfos[i].cno != last_cnos[i]) { \
DOWNLINK_SEND_SVINFO(DefaultChannel, &i, &gps.svinfos[i].svid, &gps.svinfos[i].flags, &gps.svinfos[i].qi, &gps.svinfos[i].cno, &gps.svinfos[i].elev, &gps.svinfos[i].azim); \
last_cnos[i] = gps.svinfos[i].cno; \
Expand Down
78 changes: 78 additions & 0 deletions sw/airborne/arch/lpc21/subsystems/imu/imu_aspirin_arch.c
@@ -0,0 +1,78 @@
#include "subsystems/imu.h"


#include "mcu_periph/i2c.h"


void imu_aspirin_arch_int_enable(void)
{
}

void imu_aspirin_arch_int_disable(void)
{
}

void imu_aspirin_arch_init(void)
{
}


void adxl345_write_to_reg(uint8_t addr, uint8_t val) {

// Adxl345Select();
// SPI_I2S_SendData(SPI2, addr);
// while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
// SPI_I2S_SendData(SPI2, val);
// while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
// while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) == SET);
// Adxl345Unselect();

}

void adxl345_clear_rx_buf(void) {
}

//void adxl345_start_reading_data(void) {
//}

/*
*
* Gyro data ready
*
*/

void exti15_10_irq_handler(void) {

/* clear EXTI */
// if(EXTI_GetITStatus(EXTI_Line14) != RESET)
// EXTI_ClearITPendingBit(EXTI_Line14);

imu_aspirin.gyro_eoc = TRUE;
imu_aspirin.status = AspirinStatusReadingGyro;

}

/*
*
* Accel data ready
*
*/
void exti2_irq_handler(void) {

/* clear EXTI */
// if(EXTI_GetITStatus(EXTI_Line2) != RESET)
// EXTI_ClearITPendingBit(EXTI_Line2);

// adxl345_start_reading_data();

}

/*
*
* Accel end of DMA transfert
*
*/
void dma1_c4_irq_handler(void) {

imu_aspirin.accel_available = TRUE;
}

0 comments on commit 2bf0367

Please sign in to comment.