[Top][All Lists]

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

RE: [Paparazzi-devel] radio control

From: mark.griffin
Subject: RE: [Paparazzi-devel] radio control
Date: Thu, 11 Nov 2010 15:06:42 +0100

Hi David,


I have not flown in windy conditions. Only with a light breeze.


The normal behavior in the case of loss of GPS is for the autopilot to use the failsafe roll, pitch and throttle settings defined in the airframe file.  The resetting of the flight plan back to “Geo Init” indicates that there was a power failure and the autopilot restarted. This would cause the ArduIMU to re-calibrate itself in-flight (if the ENABLE_AIR_START setting was set to the default value of 0 in the ArduIMU configuration) resulting most likely in erratic behaviour.


Some food for thought.




From: address@hidden [mailto:address@hidden On Behalf Of David Conger
Sent: Thursday, 11 November 2010 1:02 AM
To: address@hidden
Subject: Re: [Paparazzi-devel] radio control


Hi All, Hi Mark,


Interesting. I am very interested in the conditions you flew in. Calm? Wind? 


I just flew again today. Last night was perfect in zero wind. Today two snap rolls into steep dives were observed for not apparent reason. During the flight it also went to Geo-init and seemed to lose GPS signal mid flight. The spins were during prolonged circles about 30 degrees to the right. Then a snap to the left and spiral down. From the ground it appeared the autopilot was not all that able to cope with the gusty turbulent conditions. 


I have logs and really would like to explain what happened. Is there a graph I can plot from the logs to see the IMU behavior best? I think now mounting the IMU directly against the u-blox module maybe a bad idea. The GPS took a long time to get a fix and in flight lost signal...sending he flight plan to the top in Geo Init ... and holding. 


I have confidence this is a tuning or some issue that can be recovered from. However I may fly only in calm conditions in the future. I do have an onboard video I will post to YouTube so others can see the spins. Here is the link:


Log of the flight. Take off in Manual. Then a switch to AUTO2 once level with some altitude. It the plan goes quickly into the right handed circle and about 1/3 the way around you see it go into a fast spiral to the Left. I recover and fly a little in AUTO1 then go into AUTO2. It picks up the circle again and after about 5sec it does the same thing but I do not recover. The spin was too severe and fast for me to orient and take control. 


The Merlin survived with light damage. It will fly again after some patches. 


After replaying the logs I see the GPS resets and the plane goes to Geo Init about 3 seconds after I recover from the first spin. The conditions were windy but the airspeed indicator was pretty close in the estimation this time. Maybe last night with zero wind it had more problems determining the wind speed? I did notice it still had issues (not as severe) with displaying the direction the aircraft was pointed but not as bad as last night.



On Nov 10, 2010, at 12:52 AM, address@hidden wrote:

Hi David,

That’s great news and congratulations on your progress.

BTW, I have connected the ArduIMUv2 to my TWOG and put in my Funjet. It flies great at an airspeed of  ~ 20m/s. I have not yet dared to try it at 40 m/s!

Also, thanks to the ZHAW students for developing this great addon to the Paparazzi system and to Reto for his efforts to make the Paparazzi community aware of it.

Cheers, Mark


From: address@hidden [mailto:address@hidden On Behalf Of David Conger
Sent: Wednesday, 10 November 2010 4:46 AM
To: address@hidden
Subject: Re: [Paparazzi-devel] radio control


Hello all,


I have good news. Inexplicably the 3-pos switch started working. The only think I could remember changing is removing the RUDDER entry in the airframe file under the servo assignments. I discovered it working at the flying field. I was going to go into AUTO by powering off the Tx and MANUAL by powering on the Tx. I actually did this. Then to show my partner the 3-pos switch was not working I toggled it and noticed it actually did something. I don't mind happy surprises so I'm not going to question it. It just works. 


Unfortunately in this first flight the aircraft when put in AUTO1 would sharply dive immediately. I tried at least 5-8 times all with the same results. It was getting dark but I decided on a second flight. This time I let the IMU calibrate for at least 30 seconds with the plan horizontal. I took off and when I went to AUTO1 ... it flew. I dared try AUTO2 and it worked!!! Stable flight. I couldn't let it fly long as it was well past sunset and I could not allow it to go very far. However absolutely AUTO1 and AUTO2 were stable. 


Tomorrow we hope to fly some more during daylight but I wanted to just report this good news. 



On Nov 9, 2010, at 4:01 PM, David Conger wrote:

Ah, ok, a bit closer. 


This is probably due to my using the tuning_ins.xml file as suggested. There are no MANUAL, AUTO1, AUTO2 defined in there that I can see. Similar to BOOZ. 


Is there documentation around the settings file? I would be a bit nervous using the on/off switch on the Tx to control engaging the autopilot on/off 


I don't mind learning but I think this is not an issue with my having ground connected to the ESC anymore.. :)




On Nov 8, 2010, at 10:53 PM, Michel GORRAZ wrote:

Nothing to do with you R/C issue, sorry, but noticed you've connected the GND of PPM connector between ESC and Tiny.
You shouldn't do that because if for some reason the GND power cable of ESC get loose (in flight or test), you will burn your Tiny.
(all motor current will pass thru the small cable, molex connector and Tiny's PCB...)


2010/11/9 David Conger <address@hidden>

In case it is helpful to see an answer here's more details:
Aircraft: Multiplex Merlin
Autopilot: Tiny13
4 servos (2x Aileron, Elev, Rudder) . Turnigy micro digital servos:
Rx: Berg4L modified to output PPM to the autopilot
All servos connected to the autopilot (ppm, 5v, gnd)
ArduIMU v2 with SDC, SCL, GND, 5V connected to Autopilot and attached (double sided tape) to the bottom of the Tiny13
MultiPlex power pack for motor and prop
10A ESC (it was smaller in size than the 18A one that came from Multiplex)..only GND and PPM connected to the Tiny13

My airframe file looks like:
<!DOCTYPE airframe SYSTEM "airframe.dtd">

<!-- Merlin, Himax HC2212-1180
    Tiny 1.1
    ArduIMU Sensor
    XBee modem
    LEA 5H GPS

<airframe name="Merlin 1">

 <firmware  name="fixedwing">
       <target name="sim"      board="pc">
               <define name="AGR_CLIMB"/>
               <define name="LOITER_TRIM"/>
               <define name="ALT_KALMAN"/>
               <define name="WIND_INFO"/>
               <define name="WIND_INFO_RET"/>

       <target name="ap"       board="tiny_1.1">
               <define name="AGR_CLIMB"/>
               <define name="LOITER_TRIM"/>
               <define name="ALT_KALMAN"/>
               <define name="WIND_INFO"/>
               <define name="WIND_INFO_RET"/>
               <define name="USE_I2C0"/>

       <subsystem name="radio_control" type="ppm"/>
       <subsystem name="telemetry"     type="transparent"/>
       <subsystem name="control"/>
       <subsystem name="gps"           type="ublox_lea5h"/>
       <subsystem name="navigation"/>
       <subsystem name="i2c"/>

 <firmware name="setup">
       <target name="tunnel"           board="tiny_1.1"/>
       <target name="usb_tunnel_0"     board="tiny_1.1"/>
       <target name="usb_tunnel_1"     board="tiny_1.1"/>
       <target name="setup_actuators"  board="tiny_1.1"/>

       <load name="ins_arduimu.xml"/>

<!-- commands section -->
   <servo name="AILERON_RIGHT" no="3" min="1900" neutral="1500" max="1100"/>
   <servo name="AILERON_LEFT"  no="6" min="1900" neutral="1500" max="1100"/>
   <servo name="ELEVATOR"      no="2" min="1100" neutral="1500" max="1900"/>
   <servo name="MOTOR"         no="1" min="1000" neutral="1000" max="2000"/>
   <servo name="RUDDER"        no="0" min="1000" neutral="1000" max="2000"/>

   <axis name="THROTTLE"  failsafe_value="0"/>
   <axis name="ROLL"      failsafe_value="0"/>
   <axis name="PITCH"     failsafe_value="0"/>

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

 <section name="MIXER">
   <define name="AILERON_DIFF" value="0.8"/>

   <set servo="MOTOR" value="@THROTTLE"/>
   <set servo="ELEVATOR" value="@PITCH"/>
   <let var="roll" value="@ROLL"/>
   <set servo="AILERON_LEFT" value="($roll > 0 ? 1 : AILERON_DIFF) * $roll"/>
   <set servo="AILERON_RIGHT" value="($roll > 0 ? AILERON_DIFF : 1) * $roll"/>

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

 <!--<section name="adc" prefix="ADC_CHANNEL_">
   <define name="IR1" value="ADC_1"/>
   <define name="IR2" value="ADC_2"/>
   <define name="IR_TOP" value="ADC_0"/>
   <define name="IR_NB_SAMPLES" value="16"/>
 </section> -->

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

 <section name="BAT">
   <define name="MILLIAMP_AT_FULL_THROTTLE" value="20000"/>
   <define name="CATASTROPHIC_BAT_LEVEL" value="9.3" unit="V"/>
   <define name="CRITIC_BAT_LEVEL" value="10.3" unit="V"/>

 <section name="MISC">
   <define name="MINIMUM_AIRSPEED" value="10." unit="m/s"/>
   <define name="NOMINAL_AIRSPEED" value="12." unit="m/s"/>
   <define name="MAXIMUM_AIRSPEED" value="18." unit="m/s"/>
   <define name="CARROT" value="5." unit="s"/>
   <define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
   <define name="CONTROL_RATE" value="60" unit="Hz"/>
<!--    <define name="XBEE_INIT" value="&quot;ATPL2\rATRN1\rATTT80\r&quot;"/> -->
<!--    <define name="NO_XBEE_API_INIT" value="TRUE"/> -->
   <define name="ALT_KALMAN_ENABLED" value="FALSE"/>

   <define name="TRIGGER_DELAY" value="1."/>
   <define name="DEFAULT_CIRCLE_RADIUS" value="120."/>

 <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.06"/>
   <!-- outer loop saturation -->
   <define name="ALTITUDE_MAX_CLIMB" value="2."/>

   <!-- auto throttle inner loop -->
   <define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.45"/>
   <define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25"/>
   <define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.85"/>
   <define name="AUTO_THROTTLE_LOITER_TRIM" value="1000"/>
   <define name="AUTO_THROTTLE_DASH_TRIM" value="-1200"/>
   <define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.2" unit="%/(m/s)"/>
   <define name="AUTO_THROTTLE_PGAIN" value="-0.023"/>
   <define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
   <define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.05"/>

   <!-- auto pitch inner loop -->
   <define name="AUTO_PITCH_PGAIN" value="-0.06"/>
   <define name="AUTO_PITCH_IGAIN" value="0.08"/>
   <define name="AUTO_PITCH_MAX_PITCH" value="0.35"/>
   <define name="AUTO_PITCH_MIN_PITCH" value="-0.35"/>

  <define name="THROTTLE_SLEW" value="0.1"/>


 <section name="HORIZONTAL CONTROL" prefix="H_CTL_">
   <define name="COURSE_PGAIN" value="-1.0"/>
   <define name="ROLL_MAX_SETPOINT" value="0.60" unit="radians"/>
   <define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
   <define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>

   <define name="ROLL_PGAIN" value="6000."/>
   <define name="AILERON_OF_THROTTLE" value="0.0"/>
   <define name="PITCH_PGAIN" value="-9000."/>
   <define name="PITCH_DGAIN" value="1.5"/>

   <define name="ELEVATOR_OF_ROLL" value="1500"/>

   <!--define name="ROLL_ATTITUDE_GAIN" value="-5900"/>
   <define name="ROLL_RATE_GAIN" value="-2900"/-->

 <section name="NAV">
   <define name="NAV_PITCH" value="0."/>
   <define name="NAV_GLIDE_PITCH_TRIM" value="0"/>

 <section name="AGGRESSIVE" prefix="AGR_">
   <define name="BLEND_START" value="50"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
   <define name="BLEND_END" value="15"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes  CANNOT BE ZERO!!-->
   <define name="CLIMB_THROTTLE" value="0.9"/><!-- Gaz for Aggressive Climb -->
   <define name="CLIMB_PITCH" value="0.35"/><!-- Pitch for Aggressive Climb -->
   <define name="DESCENT_THROTTLE" value="0.05"/><!-- Gaz for Aggressive Decent -->
   <define name="DESCENT_PITCH" value="-0.35"/><!-- 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 name="FAILSAFE" prefix="FAILSAFE_">
   <define name="DELAY_WITHOUT_GPS" value="2" unit="s"/>
   <define name="DEFAULT_THROTTLE" value="0.3" unit="%"/>
   <define name="DEFAULT_ROLL" value="0.17" unit="rad"/>
   <define name="DEFAULT_PITCH" value="0.08" unit="rad"/>
   <define name="HOME_RADIUS" value="100" unit="m"/>


I'm using the settings file: conf/settings/tuning_ins.xml
I'm using the radio file: conf/radios/T7cap.xml

I'm not sure if I forgot anything but the radio is the same as used with a TWOG and Booz without issue. The biggest problem is an inability to get the mode switched using the transmitter.

David Conger

On Nov 8, 2010, at 4:54 PM, David Conger wrote:

> Hello,
> I have a very strange issue. With a TWOG and my T7CAP everything was just fine. The 3-pos switch worked well. With Booz it works well. Flying is just fine.
> The problem is the same everything (Berg4L receiver, same config) but with a Tiny13 it doesn't work. By "doesn't work" I mean the 3-pos switch has no effect. Also the autopilot acts strangely.  I powered it on without the T7CAP on and the autpilot acted as if it was in AUTO2 as expected. What doesn't work is powering on the T7CAP I expect full MANUAL mode. That didn't happen. On powering up the T7CAP some of the controls (i.e. right aileron) was no responding to the Tx. The 3-pos switch had no effect. Very odd.
> I read about ppm being modified. Could this be related?
> -David Conger
> On Oct 19, 2010, at 9:25 AM, Gautier Httenberger wrote:
>> Hi all,
>> I have made some changes in the RC mechanism. It is now using something really close to what exist on rotorcraft for fixed wing. The idea is to merge the two in a near future.
>> What is available on FW are:
>> <subsystem name="radio_control" type="ppm"/>  (regular ppm decoding, working with tiny/twog, need to be tested on lisa)
>> <subsystem name="radio_control" type="datalink"/>  (rc is coming from the datalink, the ground part need a bit more work to be user friendly...)
>> The old files for decoding ppm frames will be deleted soon.
>> Please report any troubles with this need radio control system.
>> Gautier
>> _______________________________________________
>> Paparazzi-devel mailing list
>> address@hidden
> _______________________________________________
> Paparazzi-devel mailing list
> address@hidden

Paparazzi-devel mailing list

Paparazzi-devel mailing list


Paparazzi-devel mailing list


Paparazzi-devel mailing list


reply via email to

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