[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Paparazzi-devel] Using Paparazzi board as failsafe
From: |
Nathan Aherne |
Subject: |
Re: [Paparazzi-devel] Using Paparazzi board as failsafe |
Date: |
Sun, 26 Sep 2010 21:29:10 +1000 |
Forgot to say the error I was getting:
CC
/home/nathanaherne/paparazzi3/var/Hopper/sim/modules/servo_switch/servo_switch.o
modules/servo_switch/servo_switch.c: In function ‘servo_switch_periodic’:
modules/servo_switch/servo_switch.c:37: warning: i
This is all that comes out now.
Kindest regards,
Nathan Aherne
Email: address@hidden
Mob: 0402 555 080
On 26/09/2010, at 8:43 PM, Nathan Aherne wrote:
> Hi Felix,
>
> I have done what you have said, I checked you guide at least 10 times to make
> sure I didn't miss anything. See my airframe file below:
>
> <airframe name="Island Hopper TWOG 1">
>
> <modules main_freq="60">
> <load name="servo_switch.xml">
> <param name="SERVO_SWITCH_ON_VALUE" value="1000"/>
> <param name="SERVO_SWITCH_OFF_VALUE" value="2000"/>
> <param name="SERVO_SWITCH_SERVO" value="SERVO_SWITCH"/>
> </load>
> </modules>
>
> <servos>
> <servo name="MOTOR" no="0" min="1000" neutral="1000" max="2000"/>
> <servo name="AILEVON_LEFT" no="2" min="1130" neutral="1575" max="1880"/>
> <servo name="AILEVON_RIGHT" no="6" min="1980" neutral="1465" max="1170"/>
> <servo name="SWITCH" no="7" min="1000" neutral="1500" max="2000"/>
> </servos>
>
> This is how I call the function
> <block key="c" name="KILL" strip_button="KILL" strip_icon="kill.png">
> <call fun="ServoSwitchOn()"/>
> </block>
>
>
>
>
>
> Kindest regards,
>
> Nathan Aherne
> Email: address@hidden
> Mob: 0402 555 080
>
> On 26/09/2010, at 8:04 PM, Felix Ruess wrote:
>
>> 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
>>>
>>
>> _______________________________________________
>> 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
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, (continued)
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Felix Ruess, 2010/09/25
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Nathan Aherne, 2010/09/25
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Nathan Aherne, 2010/09/25
- [Paparazzi-devel] Debian Linux installation, Alan Kitching, 2010/09/26
- Re: [Paparazzi-devel] Debian Linux installation, Nathan Aherne, 2010/09/26
- Re: [Paparazzi-devel] Debian Linux installation, Alan Kitching, 2010/09/27
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Nathan Aherne, 2010/09/25
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Nathan Aherne, 2010/09/26
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Felix Ruess, 2010/09/26
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Nathan Aherne, 2010/09/26
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe,
Nathan Aherne <=
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Felix Ruess, 2010/09/26
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Nathan Aherne, 2010/09/26
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Felix Ruess, 2010/09/27
- Re: [Paparazzi-devel] Using Paparazzi board as failsafe, Nathan Aherne, 2010/09/25