paparazzi-devel
[Top][All Lists]
Advanced

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

Re: [Paparazzi-devel] Using Paparazzi board as failsafe


From: Felix Ruess
Subject: Re: [Paparazzi-devel] Using Paparazzi board as failsafe
Date: Sun, 26 Sep 2010 12:04:45 +0200

Hi Nathan,

By default the servo_switch module looks for a servo called SWITCH.
So you have to either define a servo named SWITCH or set a different
servo like I indicated before.
e.g. in my airframe file I have:
  <servos>
    ....
    <servo name="SWITCH" no="7" min="1000" neutral="1500" max="2000"/>
  </servos>


The switch on value is 2000us and switch off is 1000us by DEFAULT.
If you want to use a different servo/values you can set that in the
modules section, e.g. for a servo named KILL:
 <load name="servo_switch.xml">
     <param name="SERVO_SWITCH_ON_VALUE"  value="1100"/>
     <param name="SERVO_SWITCH_OFF_VALUE" value="1900"/>
     <param name="SERVO_SWITCH_SERVO"     value="SERVO_KILL"/>
 </load>

Of course you only have to set these parameters here If you do not
want to use the DEFAULT servo (SWITCH) or the default on/off values.
 <load name="servo_switch.xml"/>

In my airframe I use a switch which expects the on signal to be
reversed (on is short, off is long) and it was just an example of how
to override the default switch values.

Cheers, Felix

On Sun, Sep 26, 2010 at 7:30 AM, Nathan Aherne <address@hidden> wrote:
> I have also noticed that servo_switch.h contains this:
>
> #ifndef SERVO_SWITCH_ON_VALUE
> #define SERVO_SWITCH_ON_VALUE 2000
> #endif
> #ifndef SERVO_SWITCH_OFF_VALUE
> #define SERVO_SWITCH_OFF_VALUE 1000
>
> This seems to be opposite of what I have set in the airframe file, is this by 
> design?
>
> Kindest regards,
>
> Nathan Aherne
> Email: address@hidden
> Mob: 0402 555 080
>
> On 26/09/2010, at 1:30 PM, Nathan Aherne wrote:
>
>> Ok so I have worked out the battery issue (forgot "make" in my haste to get 
>> it working).
>>
>> I am getting an issue with servo_switch:
>>
>> modules/servo_switch/servo_switch.c: In function ‘servo_switch_periodic’:
>> modules/servo_switch/servo_switch.c:37: warning: implicit declaration of 
>> function ‘SetServo’
>> modules/servo_switch/servo_switch.c:37: error: ‘SERVO_SWITCH’ undeclared
>>
>> I tried calling both functions from the flight plan but both produce the 
>> issue.
>>
>>>>  <call fun="ServoSwitchOn()"/>
>>>> or
>>>>  <call fun="ServoSwitchOff()"/>
>>
>> I copy pasted the implementation you recommended. I cannot see how 
>> SERVO_SWITCH could be undeclared.
>>
>> Kindest regards,
>>
>> Nathan Aherne
>> Email: address@hidden
>> Mob: 0402 555 080
>>
>> On 25/09/2010, at 11:02 PM, Felix Ruess wrote:
>>
>>> you might also want to take a look at the EMAV2009.xml flight plan
>>> (which includes EMAV2009_safety.xml as a procedure)....
>>>
>>> On Sat, Sep 25, 2010 at 2:57 PM, Felix Ruess <address@hidden> wrote:
>>>> Hi Nathan,
>>>>
>>>> I just updated the servo_switch module a bit. I can't test it at the
>>>> moment, but it *should* work as advertised ;-)
>>>>
>>>> Have a look at the mentor_tum.xml airframe... there it is used.
>>>>
>>>> Now you only have to declare a servo in your airframe.xml that you
>>>> want to use. Previously you had to set up commands, command laws as
>>>> well.
>>>>
>>>> By default the servo_switch module looks for a servo called SWITCH.
>>>> The switch on value is 2000us and switch off is 1000us by default.
>>>> If you want to use a different servo/values you can set that in the
>>>> modules section, e.g. for a servo named KILL:
>>>> <load name="servo_switch.xml">
>>>>     <param name="SERVO_SWITCH_ON_VALUE"  value="1100"/>
>>>>     <param name="SERVO_SWITCH_OFF_VALUE" value="1900"/>
>>>>     <param name="SERVO_SWITCH_SERVO"     value="SERVO_KILL"/>
>>>> </load>
>>>>
>>>> In your flight plan you just call the makro defined in servo_switch.h
>>>>  <call fun="ServoSwitchOn()"/>
>>>> or
>>>>  <call fun="ServoSwitchOff()"/>
>>>> respectively.
>>>>
>>>> Cheers, Felix
>>>>
>>>> On Sat, Sep 25, 2010 at 8:51 AM, Nathan Aherne <address@hidden> wrote:
>>>>> Hi All,
>>>>>
>>>>> I have updated my paparazzi code and found the servo switch module, this 
>>>>> should work fine fore me. What I would like to know is how to use this 
>>>>> module (how to call servo_switch from within the flight plan) and set the 
>>>>> servo to either min or max. Also how do I declare which servo output to 
>>>>> use?
>>>>>
>>>>> Kindest regards,
>>>>>
>>>>> Nathan Aherne
>>>>> Email: address@hidden
>>>>> Mob: 0402 555 080
>>>>>
>>>>> On 25/09/2010, at 3:37 PM, Nathan Aherne wrote:
>>>>>
>>>>>> These are the relevant part of my flight plan in regards to the failsafe 
>>>>>> action. The rest is just some of the competition waypoints.
>>>>>>
>>>>>> You will see I have implemented the Holdingpoint block so that the Kill 
>>>>>> block is not run. I would like to understand if there is an easier way 
>>>>>> to implement this crash failsafe than this, and output to a servo 1000ms 
>>>>>> or 2000ms. Thanks for your help in advance!
>>>>>>
>>>>>>   <sector color="red" name="MissionBoundary">
>>>>>>     <corner name="MB1"/>
>>>>>>     <corner name="MB2"/>
>>>>>>     <corner name="MB3"/>
>>>>>>     <corner name="MB4"/>
>>>>>>     <corner name="MB5"/>
>>>>>>     <corner name="MB6"/>
>>>>>>     <corner name="MB7"/>
>>>>>>     <corner name="MB8"/>
>>>>>>     <corner name="MB9"/>
>>>>>>     <corner name="MB10"/>
>>>>>>     <corner name="MB11"/>
>>>>>>   </sector>
>>>>>> </sectors>
>>>>>> <exceptions>
>>>>>>     <exception cond="! InsideMissionBoundary(estimator_x, estimator_y)" 
>>>>>> deroute="Kill"/>
>>>>>> </exceptions>
>>>>>> <blocks>
>>>>>> <!-- FLIGHT PLAN -->
>>>>>>   <block name="Wait GPS">
>>>>>>     <set value="1" var="kill_throttle"/>
>>>>>>     <while cond="!GpsFixValid()"/>
>>>>>>   </block>
>>>>>>   <block name="Geo init">
>>>>>>     <while cond="LessThan(NavBlockTime(), 10)"/>
>>>>>>     <call fun="NavSetGroundReferenceHere()"/>
>>>>>>     <set value="0" var="estimator_flight_time"/>
>>>>>>   </block>
>>>>>>   <block name="Holding point">
>>>>>>     <call fun="NavSetWaypointHere(WP_STPT)"/>
>>>>>>     <set value="1" var="kill_throttle"/>
>>>>>>     <attitude roll="0" throttle="0" vmode="throttle"/>
>>>>>>   </block>
>>>>>>   <block key="c" name="KILL" strip_button="KILL" strip_icon="kill.png">
>>>>>>     <go wp="CRASH" vmode="throttle" pitch="kill_pitch"/>
>>>>>>   </block>
>>>>>>
>>>>>> Kindest regards,
>>>>>>
>>>>>> Nathan Aherne
>>>>>> Email: address@hidden
>>>>>> Mob: 0402 555 080
>>>>>>
>>>>>> On 25/09/2010, at 2:58 PM, Nathan Aherne wrote:
>>>>>>
>>>>>>> We would like to use the Paparazzi as a failsafe in this years outback 
>>>>>>> challenge, plus use its other features to control and report back 
>>>>>>> certain tests and conditions. We are using the paparazzi for this 
>>>>>>> because it supplies so much more data than our commercial autopilot.
>>>>>>>
>>>>>>> The failsafe part just needs to output 2000ms or 1000ms on a servo 
>>>>>>> output if the aircraft goes over the mission boundary. I have already 
>>>>>>> built some code, but it seems there must be a simpler way to get the 
>>>>>>> autpilot to do this, could someone help me out with this one please? 
>>>>>>> Some sample code would be great and possibily an explanation of what I 
>>>>>>> need to initialise.
>>>>>>>
>>>>>>> I am only wanting to run the GPS, Xbee and TWOG if possible.
>>>>>>>
>>>>>>> Thanks in advance!
>>>>>>>
>>>>>>> Kindest regards,
>>>>>>>
>>>>>>> Nathan Aherne
>>>>>>> Email: address@hidden
>>>>>>> Mob: 0402 555 080
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Paparazzi-devel mailing list
>>>>>>> address@hidden
>>>>>>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Paparazzi-devel mailing list
>>>>>> address@hidden
>>>>>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Paparazzi-devel mailing list
>>>>> address@hidden
>>>>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> Paparazzi-devel mailing list
>>> address@hidden
>>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>
>>
>> _______________________________________________
>> Paparazzi-devel mailing list
>> address@hidden
>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>
>
> _______________________________________________
> Paparazzi-devel mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>



reply via email to

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