paparazzi-devel
[Top][All Lists]
Advanced

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

Re: [Paparazzi-devel] Tiny v2.11 - Programming help required


From: Ben Paratz
Subject: Re: [Paparazzi-devel] Tiny v2.11 - Programming help required
Date: Fri, 12 Sep 2008 04:00:18 -0400

hey guys,

thanks for all your help so far.

I have sorted out the shorting and overheating problems, so now my hardware is all good to go.
The RC Radio is functioning properly with the Tiny V2.11, but I still haven't been able to get the radio modems to talk to each other.
I am using a MaxStream 9XTend PKG-U for the ground station and a 9XTend OEM Module for the airborne modem.
The airborne modem is connected to the tiny via 4 cables: +5V, GND, TX, RX. The TX and RX are connected to the correct pins on the tiny, as per the wiki. The +5VDC is also connected to the 'shutdown' pin (on the modem)

The drivers for the ground station modem are installed, and the modem confirms a successful connection and proper drivers by lighting an LED on it.

Seeing as everything to do with hardware seems fine, it is likely that the problem lies in the code. I have selected PPRZ transparent mode wherever I have seen it, and I have set the baud rates for both the ground modem and airborne modem to 9600 (the default settings). The Ublox  baud rate is set at 38400, is this correct? I bought my Tiny in a bundle package from PPZUAV, so it came with the bootloader and tunnel already done for me.

If I run the 'messages' function, I don't see any sign of activity. There are some LEDs on the ground modem which indicate transmition and reception, but I haven't ever seen them light up.

The flight plan I am using is 'dummy'. It just makes the plane circle around home. I have set the latitude and longitude for 'home' as the centre of the park which I fly from.

Which telemetry file should I be using? I have tried a few, but are now using default.xml
The settings file I am using is basic.xml

I have attached the files I am using for: Airframe, Flight plan, Settings, Radio, Telemetry

If I am unable to get the radio modem working soon, is there any way I can still get the Tiny to act as a flight stabiliser, like the FMA Co-Pilot. Would I even be able to get it to follow a flight plan without the radio connection? Even just circling around one waypoint. Of course, I would still have an RC control link. I am entered in a competition, and need to demonstrate some amount of autonomy asap.

Thanks for any help you can provide...

Ben

On Tue, Sep 9, 2008 at 7:08 AM, Gautier Hattenberger <address@hidden> wrote:
Hi,

For your compilation problem, just add the lines :

ap.srcs += nav_line.c nav_survey_rectangle.c
sim.srcs += nav_line.c nav_survey_rectangle.c

It will compile the sources for autopilot and simulation

GH

Ben Paratz a écrit :
Hi,

I may have a problem. I mentioned earlier that certain parts of the autopilot (in the centre, around the power supply) would get very hot after a short amount of time. I was told that this is likely due to a short. I have been using a multimetre to look for bridges between solder joints on the board, and have found one on the 'serial' socket. The +5V pin and the GND pin have almost no resistance between them. They must be connected. I have been trying for more than a couple of hours to try and break the bridge with a soldering iron, but have had no success. Should these two pins be 'joined'? I wouldn't ever think so, but i have removed as much solder as I can from the two pins and they are still somehow touching. Can you please provide assistance with this?

When I selected the flight plan 'Basic.xml' the code would not compile. It gave me the following error:
/home/ben/paparazzi3/var/EASYSTAR/sim/nav.o: In function `nav_periodic_task':
nav.c:(.text+0x1696): undefined reference to `nav_line_init'
nav.c:(.text+0x16ea): undefined reference to `nav_survey_rectangle_init'
nav.c:(.text+0x1b9f): undefined reference to `nav_survey_rectangle'
nav.c:(.text+0x1f61): undefined reference to `nav_line'
collect2: ld returned 1 exit status
Error while building custom runtime system
make[1]: *** [/home/ben/paparazzi3/var/EASYSTAR/sim/simsitl] Error 2
make[1]: Leaving

I have now selected the flight plan 'dummy.xml' as this is a very simple flight pln that just causes the uav to circle around the home point. Will this be alright for the test flight.

Thanks,
Ben

On Mon, Sep 8, 2008 at 6:29 PM, <address@hidden <mailto:address@hidden>> wrote:

   Hi,

   you can plug your IRV where you want as soon as it correctly
   specified in your
   airframe file. But, if any adc channel is set to ADC_6, you have
   to add the
       -DUSE_ADC_6
   flag to the ap.CFLAGS variables. You won't get any warning if you
   forget it :-(

   --Pascal


   Quoting David Buzz Carlson <address@hidden
   <mailto:address@hidden>>:


   > Looking through his airframe file, it seems he is using ADC_6
   for his
   > vertical IR sensor.  However,
   > http://paparazzi.enac.fr/wiki/index.php/Tiny_v2  would have me
   believe
   > that IRV is ADC_0.  I believe ADC_0 is the correct one, can anybody
   > confirm that for me?
   >
   > Buzz
   >
   > address@hidden <mailto:address@hidden> wrote:
   > > Ben
   > >
   > > I believe the maxstream packages use an FTDI USB-to-serial
   converter chip
   > (everything in linux is chip-specific).  The FTDI driver is
   already present
   > and functional in Ubuntu so you may be all set.  Type "dmesg |
   tail" after
   > plugging in the modem and look for something about ftdi on
   ttyusb0 or such.
   > >
   > > The ground modem can be any baud you want.  Maxtream and some
   others allow
   > independent configuration of the RF baud and serial port baud to
   allow the
   > air and ground serial baud rates to be unequal so long as the RF
   rates are
   > equal.  Make sure your ap and airborne modem are at the same baud
   > (-DUART0_BAUD=B9600 in your case) and same for the gcs (link
   line should have
   > "-s 9600" or such to match the ground modem) and make sure your
   modems are
   > each configured for their appropriate baud rates as well (maybe
   9600 is the
   > default?).
   > >
   > > The RC modes are set in conf/radios/*.xml but I don't know how
   those
   > settings get mapped to channels 1 thru 8.  I usually use the
   transmitter
   > programming to change the channel of my switch until I find the
   one that
   > works.
   > >
   > > Your airframe file looks ok but I should point out that the
   GPS failsafe
   > values on many of the cvs airframes are strange, specifying 30%
   throttle, 30
   > degree pitch up, and 17 degree roll in the event of a total loss
   of GPS
   > position info.  It sounds to me more like a wild spin,
   throttle-on crash and
   > lipo fire.  I advise something more like 0 throttle, 10 deg up
   and 17 roll or
   > whatever produces a gentle circling glide on your airframe.  I
   think these
   > pitch/roll values are used in "kill" mode as well so you can
   test them in the
   > air.
   > > ____________________________________________________________
   > > Fashion Design Education - Click Here!
   > >
   >
   http://thirdpartyoffers.juno.com/TGL2141/fc/Ioyw6i3oIaxayhf6v0qyKFdfvXplzTMUHQ82EF1TvuOwIQPzEsrgkl/
   > >
   > >
   ------------------------------------------------------------------------
   > >
   > > Hi,
   > >
   > > I have a Tiny v2.11 autopilot with all the hardware needed for
   > > autonomous flight. I have started on the programming, but have run
   > > into a few difficulties.
   > >
   > > I have installed all the hardware in my aircraft, but have not
   gotten
   > > any further than that succesfully. I am meant to be demonstrating
   > > autonomous flight a week from now, so it would be really great
   if I
   > > could get the autopilot fully working by then.
   > >
   > > I am new to Linux, and have run into some problems regarding the
   > > programming. It would be extremely helpful if you could
   provide some
   > > assistance. I am using Ubuntu 8.04.1 - Hardy Heron
   > >
   > > I have been studying the Wiki and following it very closely.
   > >
   > > This is what I need help with:
   > >
   > > - Installing the drivers for the radio modem (the ground-station
   > > modem. It plugs into the USB port and grabs the serial
   signals. I'm
   > > sure you know all about this... The readme file that came with
   it says
   > > that I need to compile the driver into a 'Loadable Kernel
   Module' but
   > > I am unsure how to do this. The modem I am using is a Digi
   (Maxstream)
   > > 9XTend operating on 900MHz. I have been told that I may not
   need to
   > > install the driver, but can you please advise me on what to do.
   > >
   > > - Configuring the rc radio settings: I am using a 6-channel JR
   Radio.
   > > I have found (using a scope) that my JR R700 7-channel receiver
   > > outputs the ppm signal through the 'signal' pin in the battery
   > > connector. I can attach a picture of the signal if you want.
   Also, how
   > > do you choose which channel determines the mode? (Auto 1, Auto
   2, Manual).
   > >
   > > - Configuring the airframe file: I have had a go at making my own
   > > airframe file (following the wiki), but are not sure if it is
   correct.
   > > I have pasted the code at the bottom. My airframe is very
   simple: A
   > > 3-Channel Easystar. It also hope to be able to trigger a servo for
   > > controlling the shutter on a camera at a set position, but I
   will keep
   > > it simple and focus on achieving autonomous flight first.
   > >
   > >
   > > It would really be great if you could help me get this working
   within
   > > the next week.
   > >
   > > Thankyou very much,
   > >
   > > Ben
   > >
   > >
   > > Here is my airframe code:
   > >
   > > <!DOCTYPE airframe SYSTEM "airframe.dtd">
   > >
   > > <airframe name="EASYSTAR">
   > >  <!-- tiny v2.11 airframe -->
   > >
   > > <!-- commands section -->
   > >   <servos>
   > >     <servo name="THROTTLE"  no="0" min="1000" neutral="1500"
   max="2000"/>
   > >     <servo name="RUDDER"  no="2" min="1000" neutral="1500"
   max="2000"/>
   > >     <servo name="ELEVATOR" no="6" min="1000" neutral="1500"
   min="2000"/>
   > >   </servos>
   > >
   > >   <commands>
   > >     <axis name="THROTTLE" failsafe_value="0"/>
   > >     <axis name="YAW"     failsafe_value="0"/>
   > >     <axis name="PITCH"    failsafe_value="0"/>
   > >   </commands>
   > >
   > >   <rc_commands>
   > >     <set command="THROTTLE" value="@THROTTLE"/>
   > >     <set command="ROLL"     value="@ROLL"/>
   > >     <set command="PITCH"    value="@PITCH"/>
   > >   </rc_commands>
   > >
   > >   <command_laws>
   > >     <set servo="THROTTLE" value="@THROTTLE"/>
   > >     <set servo="RUDDER" value="@ROLL"/>
   > > <set servo="ELEVATOR" value="@PITCH"/>
   > >   </command_laws>
   > >
   > >   <section name="AUTO1" prefix="AUTO1_">
   > >     <define name="MAX_ROLL" value="0.6"/>
   > >     <define name="MAX_PITCH" value="0.6"/>
   > >   </section>
   > >
   > >   <section name="adc" prefix="ADC_CHANNEL_">
   > >     <define name="IR1" value="ADC_0"/>
   > >     <define name="IR2" value="ADC_1"/>
   > >     <define name="IR_TOP" value="ADC_6"/>
   > >
   > >   </section>
   > >
   > >   <section name="INFRARED" prefix="IR_">
   > >     <define name="ADC_IR1_NEUTRAL" value="512"/>
   > >     <define name="ADC_IR2_NEUTRAL" value="512"/>
   > >     <define name="ADC_TOP_NEUTRAL" value="512"/>
   > >     <define name="IR2_SIGN" value="-1"/>
   > >     <define name="TOP_SIGN" value="-1"/>
   > >     <define name="HORIZ_SENSOR_TILTED" value="1"/>
   > >     <define name="LATERAL_CORRECTION" value="1"/>
   > >     <define name="LONGITUDINAL_CORRECTION" value="1"/>
   > >     <define name="VERTICAL_CORRECTION" value="1"/>
   > >     <define name="ROLL_NEUTRAL_DEFAULT" value="0" unit="deg"/>
   > >     <define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
   > >     <define name="CORRECTION_UP" value="1"/>
   > >     <define name="CORRECTION_DOWN" value="1"/>
   > >     <define name="CORRECTION_LEFT" value="1"/>
   > >     <define name="CORRECTION_RIGHT" value="1"/>
   > >
   > >   </section>
   > >
   > >   <section name="BAT">
   > >     <define name="MILLIAMP_PER_PERCENT" value="0.86"/>
   > >     <define name="CATASTROPHIC_BAT_LEVEL" value="5.5" unit="V"/>
   > >   </section>
   > >
   > >   <section name="MISC">
   > >     <define name="NOMINAL_AIRSPEED" value="7" 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"/>
   > >   </section>
   > >
   > >   <section name="PID">
   > >     <define name="ROLL_PGAIN" value="5000."/>
   > >     <define name="PITCH_OF_ROLL" value="0.25"/>
   > >     <define name="PITCH_PGAIN" value="10000."/>
   > >     <define name="MAX_ROLL" value="0.35"/>
   > >     <define name="MAX_PITCH" value="0.35"/>
   > >     <define name="MIN_PITCH" value="-0.35"/>
   > >     <define name="AILERON_OF_THROTTLE" value="0.0"/>
   > >     <define name="CRUISE_THROTTLE" value="0.35"/>
   > >   </section>
   > >
   > >   <section name="ALT" prefix="CLIMB_">
   > >     <define name="PITCH_PGAIN" value="-0.05"/>
   > >     <define name="PITCH_IGAIN" value="0.075"/>
   > >     <define name="PGAIN" value="-0.01"/>
   > >     <define name="IGAIN" value="0.1"/>
   > >     <define name="MAX" value="1."/>
   > >     <define name="PITCH_OF_VZ_PGAIN" value="0.05"/>
   > >     <define name="THROTTLE_OF_CLIMB" value="0.15" unit="%/(m/s)"/>
   > >   </section>
   > >
   > >   <section name="HORIZONTAL CONTROL" prefix="H_CTL_">
   > >     <define name="COURSE_PGAIN" value="-0.4"/>
   > >     <define name="ROLL_MAX_SETPOINT" value="0.6" 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="5000."/>
   > >     <define name="AILERON_OF_THROTTLE" value="0.0"/>
   > >     <define name="PITCH_PGAIN" value="-9000."/>
   > >     <define name="PITCH_DGAIN" value="1.5"/>
   > >
   > >     <!--  roll rate loop -->
   > >     <define name="ROLL_RATE_MODE_DEFAULT" value="1"/>
   > >     <define name="ROLL_RATE_SETPOINT_PGAIN" value="-5."
   unit="rad/s/rad"/>
   > >     <define name="ROLL_RATE_MAX_SETPOINT" value="10"/>
   > >     <define name="LO_THROTTLE_ROLL_RATE_PGAIN" value="1000."/>
   > >     <define name="HI_THROTTLE_ROLL_RATE_PGAIN" value="1000."/>
   > >     <define name="ROLL_RATE_IGAIN" value="0"/>
   > >     <define name="ROLL_RATE_DGAIN" value="0"/>
   > >     <define name="ROLL_RATE_SUM_NB_SAMPLES" value="64"/>
   > >
   > >   </section>
   > >
   > >   <section name="VERTICAL CONTROL" prefix="V_CTL_">
   > >
   > >     <define name="POWER_CTL_BAT_NOMINAL" value="6" unit="volt"/>
   > >     <!-- outer loop proportional gain -->
   > >     <define name="ALTITUDE_PGAIN" value="-0.03"/>
   > >     <!-- outer loop saturation -->
   > >     <define name="ALTITUDE_MAX_CLIMB" value="2."/>
   > >
   > >     <!-- auto throttle inner loop -->
   > >     <define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE"
   value="0.4"/>
   > >     <define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE"
   value="0.30"/>
   > >     <define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE"
   value="0.80"/>
   > >     <define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
   > >     <define name="AUTO_THROTTLE_DASH_TRIM" value="-1000"/>
   > >     <define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT"
   value="0.15"
   > > unit="%/(m/s)"/>
   > >     <define name="AUTO_THROTTLE_PGAIN" value="-0.01"/>
   > >     <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.05"/>
   > >     <define name="AUTO_PITCH_IGAIN" value="0.075"/>
   > >     <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>
   > >
   > >
   > >   <section name="NAV">
   > >     <define name="NAV_PITCH" value="0.0"/>
   > >     <define name="NAV_GLIDE_PITCH_TRIM" value="0.2"/>
   > >     <define name="DEFAULT_CIRCLE_RADIUS" value="100" unit="m"/>
   > >   </section>
   > >
   > >   <section name="AGGRESSIVE" prefix="AGR_">
   > >     <define name="CLIMB_THROTTLE" value="0.95"/><!-- Throttle for
   > > Aggressive Climb -->
   > >     <define name="DESCENT_THROTTLE" value="0.1"/><!-- Throttle for
   > > Aggressive Decent -->
   > >     <define name="CLIMB_PITCH" value="0.3"/><!-- Pitch for
   Aggressive
   > > Climb -->
   > >     <define name="DESCENT_PITCH" value="-0.25"/><!-- Pitch for
   > > Aggressive Decent -->
   > >     <define name="BLEND_START" value="20"/><!-- Altitude Error to
   > > Initiate Aggressive Climb CANNOT BE ZERO!!-->
   > >     <define name="BLEND_END" value="10"/><!-- Altitude Error
   to Blend
   > > Aggressive to Regular Climb Modes  CANNOT BE ZERO!!-->
   > >     <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>
   > >
   > >
   > >   <section name="FAILSAFE" prefix="FAILSAFE_">
   > >     <define name="DELAY_WITHOUT_GPS" value="1" unit="s"/>
   > >         <define name="DEFAULT_THROTTLE" value="0.3" unit="%"/>
   > >         <define name="DEFAULT_ROLL" value="0.3" unit="rad"/>
   > >         <define name="DEFAULT_PITCH" value="0.5" unit="rad"/>
   > >     <define name="HOME_RADIUS" value="100" unit="m"/>
   > > </section>
   > >
   > > <!--
   > >   <section name="DATALINK" prefix="DATALINK_">
   > >     <define name="DEVICE_TYPE" value="PPRZ"/>
   > >     <define name="DEVICE_ADDRESS" value="...."/>
   > >   </section>
   > > -->
   > >
   > >
   > >  <makefile>
   > > include $(PAPARAZZI_SRC)/conf/autopilot/tiny.makefile
   > >
   > > FLASH_MODE=IAP
   > >
   > > ap.CFLAGS +=  -DFBW -DAP -DCONFIG=\"tiny.h\" -DLED -DTIME_LED=1
   > > ap.srcs = sys_time.c $(SRC_ARCH)/sys_time_hw.c
   $(SRC_ARCH)/armVIC.c
   > > main_fbw.c main_ap.c main.c
   > >
   > > ap.CFLAGS += -DLED_3_BANK=0 -DLED_3_PIN=17 -DLED_4_BANK=0
   > > -DLED_4_PIN=18 -DLED_5_BANK=0 -DLED_5_PIN=19 -DLED_6_BANK=0
   -DLED_6_PIN=20
   > >
   > >
   > > ap.srcs += commands.c
   > >
   > > ap.CFLAGS += -DACTUATORS=\"servos_4015_hw.h\" -DSERVOS_4015
   > > ap.srcs += actuators.c $(SRC_ARCH)/servos_4015_hw.c
   > >
   > > ap.CFLAGS += -DRADIO_CONTROL -DRADIO_CONTROL_TYPE=RC_JR
   > > ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c
   > >
   > > ap.CFLAGS += -DDOWNLINK -DUSE_UART0
   -DDOWNLINK_TRANSPORT=PprzTransport
   > > -DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0
   > > -DPPRZ_UART=Uart0 -DDATALINK=PPRZ -DUART0_BAUD=B9600
   > > ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c
   > > pprz_transport.c latlong.c
   > >
   > >
   > > ap.CFLAGS += -DINTER_MCU
   > > ap.srcs += inter_mcu.c
   > >
   > > ap.CFLAGS += -DADC -DUSE_AD0 -DUSE_AD0_2 -DUSE_AD0_3 -DUSE_AD1
   > > -DUSE_AD1_5 -DUSE_AD1_3 -DUSE_AD1_5
   > > ap.srcs += $(SRC_ARCH)/adc_hw.c
   > >
   > > ap.CFLAGS += -DGPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1
   -DUART1_BAUD=B9600
   > >
   > > ap.srcs += gps_ubx.c gps.c
   > >
   > > ap.CFLAGS += -DINFRARED
   > > ap.srcs += infrared.c estimator.c
   > >
   > > ap.CFLAGS += -DNAV
   > > ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c nav_survey_rectangle.c
   nav_line.c
   > >
   > >
   > > ap.CFLAGS += -DGYRO -DADXRS150 -DPID_RATE_LOOP
   > > ap.srcs += gyro.c
   > >
   > > # Harware In The Loop
   > >
   > > #ap.CFLAGS += -DHITL
   > >
   > > # Config for SITL simulation
   > > include $(PAPARAZZI_SRC)/conf/autopilot/sitl.makefile
   > > sim.CFLAGS += -DCONFIG=\"tiny.h\" -DAGR_CLIMB -DLOITER_TRIM
   -DALT_KALMAN
   > > sim.srcs += nav_survey_rectangle.c traffic_info.c nav_line.c
   > >   </makefile>
   > > </airframe>
   > >
   > >
   ------------------------------------------------------------------------
   > >
   > > _______________________________________________
   > > Paparazzi-devel mailing list
   > > address@hidden <mailto:address@hidden>

   > > http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
   > >
   >
   >
   >
   > _______________________________________________
   > Paparazzi-devel mailing list
   > address@hidden <mailto:address@hidden>

   > http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
   >




   _______________________________________________
   Paparazzi-devel mailing list
   address@hidden <mailto: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

Attachment: basic.xml
Description: Text Data

Attachment: BenJRMax66_2nd.xml
Description: Text Data

Attachment: default.xml
Description: Text Data

Attachment: dummy.xml
Description: Text Data

Attachment: EASYSTAR211New.xml
Description: Text Data


reply via email to

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