[Top][All Lists]

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

Re: [Paparazzi-devel] radio control

From: David Conger
Subject: Re: [Paparazzi-devel] radio control
Date: Tue, 09 Nov 2010 19:46:17 -0800

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

reply via email to

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