paparazzi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] Skywalker airframe-file ala september 2012


From: Jorn Anke
Subject: Re: [Paparazzi-devel] Skywalker airframe-file ala september 2012
Date: Mon, 21 Jan 2013 11:02:37 +0100

Christophe,
 
I have performed several flights using a slightly different verson of the sample flie you was referncing, with my zamboni flight-pattern. This has worked very well. The attached image shows a screendump from two actual successive zamboni flights.
 
I was then using a simple set of <command laws> similar to quoted under. I don't understand much of the newer set of command laws, and I wonder if you can clearify how they might affect flight performance.
 
Cheers,
 
Jørn
 
 
Old settings:
<command_laws>
    <set servo="AILEVON_LEFT" value="@ROLL"/>
    <set servo="AILEVON_RIGHT" value="address@hidden"/>
    <set servo="THROTTLE" value="@THROTTLE"/>
    <set servo="ELEVATOR" value="@PITCH"/>
</command_laws>
 
"New" settings:
<command_laws>
    <!-- Brake Rate Limiter -->
    <let var="brake_value_nofilt" value="Chop(address@hidden, 0, MAX_PPRZ)"/>
    <ratelimit var="brake_value" value="$brake_value_nofilt" rate_min="-MAX_BRAKE_RATE" rate_max="MAX_BRAKE_RATE" />

    <!-- Differential Aileron Depending on Brake Value -->
    <let var="aileron_up_rate" value="(AILERON_RATE_UP   * (MAX_PPRZ - $brake_value)) + (AILERON_RATE_UP_BRAKE   * $brake_value)"/>
    <let var="aileron_down_rate" value="(AILERON_RATE_DOWN * (MAX_PPRZ - $brake_value)) + (AILERON_RATE_DOWN_BRAKE * $brake_value)"/>
    <let var="aileron_up" value="((address@hidden)  *  (((float)$aileron_up_rate) / ((float)MAX_PPRZ)))"/>
    <let var="aileron_down" value="((address@hidden)  * (((float)$aileron_down_rate) / ((float)MAX_PPRZ)))"/>
    <let var="leftturn" value="(@ROLL >= 0? 0 : 1)"/>
    <let var="rightturn" value="(1 - $leftturn)"/>
    <set servo="AILERON_LEFT" value="($aileron_up * $leftturn) + ($aileron_down * $rightturn) - $brake_value*(BRAKE_AILEVON) - (MAX_PPRZ * AILERON_NEUTRAL)"/>
    <set servo="AILERON_RIGHT" value="($aileron_up * $rightturn) + ($aileron_down * $leftturn) + $brake_value*(BRAKE_AILEVON) + (MAX_PPRZ *AILERON_NEUTRAL)"/>

    <set servo="RUDDER" value="-(@YAW + @ROLL * RUDDER_OF_AILERON)"/>
    <set servo="THROTTLE" value="@THROTTLE"/>

    <!-- Pitch with Brake-Trim Function -->
    <set servo="ELEVATOR" value="@PITCH * PITCH_GAIN - BRAKE_PITCH * $brake_value"/>
  </command_laws>

 

Our Skywalker airframe (yapa2 + xsens) is our UAV with most flight-hours but the airframe.xml file did not change (functionally) for at the very least over a year. But there seem to be several versions arround in several branches/folders. So I do not know which version you refer to as of Sep2012.  

This is the one actually flying: https://github.com/tudelft/paparazzi/blob/tudelft4.2/conf/airframes/TUDelft/skywalker.xml which might still have unused defines, outdated stuff etc. 

PS: there is absolutely no guarantee that it will work like this for other SkyWalkers. It depends on your total weight, choice of engine, actual servo setup and deflections, wing-stiffness-reenforcements, ...

-Christophe 


Attachment: zamboni_test_13_27_05.jpg
Description: JPEG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]