View Full Version : Mini-HowTo Mecevans Paparazzi How-to Guide
mecevans
Feb 13, 2009, 07:52 PM
Hello all,
Here i will document all my progress and experiences with my Tiny 2.11. I will take pictures and document everything as much as possible to aid others interested in paparazzi. if there is writing or fact error's in this mini how to please email me at Mecevans-at-gmail.com with corrections.
.....Useful links.....
http://paparazzi.enac.fr/wiki/Main_Page -wiki
http://lists.nongnu.org/mailman/listinfo/paparazzi-devel -mailing list sign up
http://www.engr.usu.edu/wiki/index.php/OSAM - college paparazzi project
http://www.patogara.com -build blog
http://www.mannberg.co.uk/paparazzi/ - another paparazzi how to guide
http://ppzuav.com/osc/catalog/index.php -hardware
http://diydrones.com/
http://www.rcgroups.com/forums/showthread.php?t=851820 - Rcgroups paparazzi forum
http://embed.mibbit.com/?server=irc.freenode.net&channel=%23paparazzi&noServerNotices=true -paparazzi chat room (please join!)
http://paparazzi.enac.fr/wiki_images/Users_manual.pdf - field guide
CAN I DO IT? :confused:
Yes you can! ;) . if you can read and follow instructions, you can build and fly a paparazzi system. Me, an average high school student is writing this guide! :D
------Where do i start?------
The first step is to sign up for the WIKI (http://paparazzi.enac.fr/wiki/Main_Page), Mailing List (http://lists.nongnu.org/mailman/listinfo/paparazzi-devel) , and join the paparazzi Chatroom (http://embed.mibbit.com/?server=irc.freenode.net&channel=%23paparazzi&noServerNotices=true) . Read the entire wiki head-to-toe and then if you still have any questions ask.
------Which autopilot is right for me? :confused: ------
After reading the entire paparazzi WIKI (http://paparazzi.enac.fr/wiki/Main_Page) and saving my money I was ready to consider purchasing or building a complete system. I set a real, saved up budget of $1000US to get things going. I set curtain goal in which i wanted to achieve now, and down the road. The original thread is HERE (http://www.rcgroups.com/forums/showthread.php?t=995908)
.....My goals.....
I plan to spend $1000US
I would like to be able to carry a video or digital camera now or in the near future
I would like to trigger or control the cameras with paparazzi
I would like long flight times (20-30 minutes or more)
I wanted to have everything build, tested and tuned in less than 2 months
Because of my time frame and budget i set my mind on pre-assembled and programmed autopilots from PPZUAV (http://ppzuav.com/osc/catalog/) .the choices were the tiny 2.11 (http://paparazzi.enac.fr/wiki/Tiny_v2) or the TWOG (http://paparazzi.enac.fr/wiki/Twog_v1) . I even made paper cutouts to get an idea of how amazingly small these things really are. This was not an overnight decision; I had messaged many people with all different levels of experience with paparazzi. The tiny 2.11 is a great first step into the world of UAV's and everything is one board.
Next on the list was the radio modems, either 900 MHz or 2.4 GHz from digi. Originally the kit comes with 2.4 GHz xbee pro V2 but you can request other if you like. After posting THIS (http://www.rcgroups.com/forums/showthread.php?t=999932) thread and contacting David from PPZUAV (http://ppzuav.com/osc/catalog/index.php) he convinced me to try the newly released Xbee pro XSC's. My final step with the hardware side of things was to either buy or build the PPM tapped receiver. Luckily the ones pre-modded from PPZUAV were on sale. :)
.....Parts list.....
(1)Bundle #2: TINY 2.11_LEA-5H Basic (http://ppzuav.com/osc/catalog/product_info.php?cPath=2&products_id=68) with 900Mhz pro
(1)Pre-modded BERG 4L (http://ppzuav.com/osc/catalog/product_info.php?cPath=13_11&products_id=51)
------Installing and using the paparazzi GCS------
While waiting for my order to come from David, I set up my laptop to run Ubuntu for paparazzi. The laptop I am going to use is a fairly new HP Pavilion DV5215US with windows already installed. The battery in the laptop only lasted 10 minutes so I ordered a replacement 8 hour battery for field use.You can either use the live CD or install ubuntu and paparazzi separately.
.....Making the live cd.....
plug in charger and boot windows
download the Latest Live Cd (http://www.recherche.enac.fr/paparazzi/paparazzix/) from the repository and saved it to the desktop
use your own or install THIS (http://www.download.com/Free-DVD-ISO-Burner/3000-2242_4-10902630.html?tag=mncol) iso burner
insert a blank cd and install/run the iso burner
select the live cd file you just downloaded and your cd drive
burn (Once it’s done don't forget to label it!)
.....Installing or booting from the cd.....
-A) to boot from the cd simply put the cd into the tray and restart. Select "try Ubuntu without any changes to your computer"
-B) to install ubuntu onto your hard drive, click “install Ubuntu” and follow the guide. i used a partitioned space to install Ubuntu so i could also use Windows XP because you still need it. On startup it will ask what operating system you would like to boot.
......Updating......
The live cd may not always come with the newest paparazzi software so it is important to update it every once in a while. this will search through all paparazzi folder and determine if it needs to be updated rather than completely copying over all files like the tarballs do.
open terminal
enter your paparazzi3 directory(cd paparazzi3)
cvs update
mecevans
Feb 13, 2009, 07:52 PM
------What to do when your waiting for your system------
......Clean the work area......
as much as i hate cleaning my room, i wanted to keep everything neat and organized. i threw a bunch of stuff out of some drawers so i can make room for notes,documents, hardware, etc. a clean work area saves time, energy, and possibly money. clean!!!!! ;)
.....Playing with the GCS......
I had some free time so i decided to learn about this powerful GCS. i wanted to simulate and know how to use all the buttons and features. If you have not done so, download and/or print THIS (http://paparazzi.enac.fr/wiki_images/Users_manual.pdf) field manual, and read through it. Here are my steps to get the GCS set up....
.....Setup.....
Double click on the paparazzi icon located in Applications>Other>paparazzi . i dragged the icon to the desktop to make it easy to get to. click ok.
Click A/C>new A/C, then name it. (ex: MecevansUAV )
On the airframe section click Edit, the text editor will pop up. File>Save as, and rename it.(ex: MecevansUAV )
Rename all the others. (ex:setting=Mecevans,Flight Plan=FortOrd Radio=Optic6, Telemetry=900MhzXSC )
Find the coordinates of your flight area with google earth or HERE (http://www.hmssurprise.org/Resources/whereami.html). make sure its in decimal form,and write it down.
now go back to paparazzi and click Flight Plan>Text Editor. Change the spaces i put words in only! (ex: latitude,longitude,max distance from home=700m) REMEMBER EVERTHINGS IN METERS! now save as. (ex: FortOrd ).
A/C>Save
.....Simulation.....
Under target make sure SIM is selected, click build.
Under Session make sure Simulation is selected.Click execute!
when the GCS opens up click the google icon, let it load the tiles. it will automatically save them too.
to take off: click the runway then the green launch button, your flying!
mess around with the simulation untill you have a general understanding how it works.
mecevans
Feb 13, 2009, 07:53 PM
------I got all my parts! Now what?------
THE FIRST THING TO DO IS ADD YOURSELF TO THE WIKI'S (http://paparazzi.enac.fr/wiki/Users) USER'S LIST!
-note: if you need any help with this PM me.
Everything will be assuming we are using the funjet1.xml for testing, digi 900 mhz xbee pro for modems.
.....Handling and turning on the tiny.....
So your anxious to turn this baby on huh? :D well stop and read this!
Always touch the end's of the PCB. try to ground yourself to whatever the tiny is on; touch the table, touch a power outlet face plate screw,use a ground strap,try not to rub feet on carpet. Put it back in the antistatic bag until you install it into your airframe. the molex connectors lock very well make sure you put the lock tab the right way. use your nails to grab the ends and gently wiggle out when removing. never yank on the wires! check the wires for weak solder joints (one wire broke on my FTDI cable). whenever you move it put it on a flat, stable surface with a piece of paper or something underneath.
lay out all of components on a clean,non conductive surface, i put mine on a hobby cutting mat. look at everything and get familiar with the components. The first thing you need to do is solder a connector of your preference to the tiny's (+ -) tabs, in my case JST. now go outside and plug it in, observe what happens.
blinking red- software running
blinking green- GPS locked.
*note* if your tiny is not programed by the seller, read THIS (http://paparazzi.enac.fr/wiki/Compiling) to learn what to do.
-----Flashing the tiny-----
My tiny was already programed when i received it, but there are a couple lines to edit in Airframe.
Follow this GUIDE (http://www.rcgroups.com/forums/showpost.php?p=11624645&postcount=1182) to editing your Airframe.,
open the paparazzi software and your A/C
session=ap , enter an ID (any number)
build
plug in pc>usb cable>usb to picoblade>usb on tiny
plug in battery
upload, red light will flash once its done
-----Talking to the tiny with the GCS-----
.....Using the FTDI cable.....
i wanted to connect the tiny to the GCS and see some real time data. prepare your laptop and boot ubuntu. you will need a spare usb cable, the tiny, and the FTDI cable and board.
Load the paparazzi GCS
load your A/C. (ex. MecevansUAV)
Airframe>funjet1.xml, one you just edited
Target>ap
Session>Usb-serial@9600
Click build
Plug in FTDI>Serial, Usb>FTDI, and plug in battery.
Execute
click the Google icon, center A/C and you should see the area you changed the coordinates to. real time data from the tiny should be there.
......Using the modems......
I got really lucky when it came time to try out the modems. they were already programed and all i had to do was hook everything up. I bought a 3 dBi rubber duck antenna and a shielded usb came from l-com.com . i used the "Flight Usb-serial@9600" for session and it worked without having to change anything. i made a cool stand for my ground modem with some spare balsa and 2 screws.
tiny-
pico-blade to 10 pin connector> black wire goes to pin one on left side of modem, with wire antenna.
ground-
sparkfun board> modem> USB
-----Test rig and seting up IR sensors-----
I saw a really neat IDEA (http://www.mannberg.co.uk/paparazzi/images/IMG_0113.jpg) for a test rig over at THIS (http://www.mannberg.co.uk/paparazzi/) site, so i stole the idea and made my own. Try not to touch the IR sensors at all because your can fry the chip on them very easily. I used rubber bands and foam to secure it to a stick i found around the house. I made sure it was snug on the stick and not pushing on anything too hard. just enough to secure it in any angle. SENSORS ARE EXTREMELY SENSITIVE TO PRESSURE.DONT ASK HOW I KNOW :rolleyes:
I was unlucky and received a faulty horizontal sensor. David sent me a horizontal and vertical FMA sensor until he figures out what's up with the PPZ ones.Sensors can not be mixed. Details on the FMA sensors can be found HERE (http://paparazzi.enac.fr/wiki/Other_Infrared_Sensors) . Once the mating connectors where soldered,i connected them to the tiny and observed the PFD move around. to confirm that the sensors are oriented the correct way put your hand under the vertical sensor and it should have sky up(blue).
Calibrate the sensors
open your airframe file look for this
<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"/>
and change the "512" to "0" and save.
Build and flash tiny with new files.
Setup your modems
Encase all sensors in about 2 inches of foam and/or put them in a cabinet once your battery is plugged in. I put mine in a heavy chest.
Build and execute to get to the GCS
Tools> Messages and Real-Time Plotter
In messages look for IR_SENSORS, click it.
Drag and drop "int16 ir1","int16 ir2",and "int16 vertical" into Real-Time Plotter
let it build a stable graph, about 10 minutes.
Curves> and get the Average for each one. write it down.
Take those numbers and put them in place of the 0's in the first step and save.
Flash tiny
more to come...........
mecevans
Feb 13, 2009, 07:54 PM
......ORIENTATION......
next is to get the IR sensors oriented the correct way. i had a science fair and i stayed up till 3am on the day of the fair figuring it all out! :rolleyes: .thankfully the guys on the IRC channel took me through each step. lets set up the sensors to be ALIGNED, or along each axis rather then TILTED 45 degrees.
either connect to the tiny via modems or FTDI
load the GCS.
TOOLS>MESSAGES, IR tab.
everything will be done as if you are looking towards the REAR of the plane
put your finger UNDER the VERTICAL sensor, "int16 vertical" should go POSITIVE. If not, flip it around.
put your finger on each one of the horizontal sensors until "int16 ir1" goes POSITIVE. position it to the RIGHT.
put your finger on each one of the horizontal sensors until "int16 ir2" goes POSITIVE. position it FORWARD.
Use the edited Funjet1.xml below. enter in your neutrals.
flash tiny
<!DOCTYPE airframe SYSTEM "airframe.dtd">
<!-- Funjet Multiplex (http://www.multiplex-rc.de/)
Tiny 2.1 board (http://paparazzi.enac.fr/wiki/index.php/Tiny_v2)
Tilted infrared sensor (http://paparazzi.enac.fr/wiki/index.php/Image:Tiny_v2_1_Funjet.jpg)
Radiotronix modem
-->
<airframe name="Funjet 1 Tiny 2.1">
<!-- commands section -->
<servos>
<servo name="MOTOR" no="0" min="1000" neutral="1000" max="2000"/>
<servo name="AILEVON_LEFT" no="2" min="1130" neutral="1500" max="1880"/>
<servo name="AILEVON_RIGHT" no="6" min="1980" neutral="1515" max="1170"/>
</servos>
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" 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>
<section name="MIXER">
<define name="AILEVON_AILERON_RATE" value="0.75"/>
<define name="AILEVON_ELEVATOR_RATE" value="0.75"/>
</section>
<command_laws>
<let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/>
<set servo="MOTOR" value="@THROTTLE"/>
<set servo="AILEVON_LEFT" value="$elevator + $aileron"/>
<set servo="AILEVON_RIGHT" value="$elevator - $aileron"/>
</command_laws>
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.85"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<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="INFRARED" prefix="IR_">
<define name="ADC_IR1_NEUTRAL" value="514"/>
<define name="ADC_IR2_NEUTRAL" value="512"/>
<define name="ADC_TOP_NEUTRAL" value="511"/>
<define name="LATERAL_CORRECTION" value="1."/>
<define name="LONGITUDINAL_CORRECTION" value="1."/>
<define name="VERTICAL_CORRECTION" value="1."/>
<define name="HORIZ_SENSOR_ALIGNED" value="1"/>
<define name="IR2_SIGN" value="-1"/>
<define name="TOP_SIGN" value="-1"/>
<define name="ROLL_NEUTRAL_DEFAULT" value="-3.6" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="6" 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="6.8" unit="V"/>
<define name="LOW_BAT_LEVEL" value="" unit="7.0"/>
<define name="MAX_BAT_LEVEL" value="8.4" unit="V"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="17." 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="\"ATPL2\rATRN1\rATTT80\r\""/> -->
<!-- <define name="NO_XBEE_API_INIT" value="TRUE"/> -->
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
<define name="TRIGGER_DELAY" value="1."/>
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
<define name="MIN_CIRCLE_RADIUS" value="50."/>
</section>
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<define name="POWER_CTL_BAT_NOMINAL" value="7.4" unit="volt"/>
<!-- outer loop proportional gain -->
<define name="ALTITUDE_PGAIN" value="-0.04"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="2."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.35"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.3"/>
<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.1" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="-0.02"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.1"/>
<!-- 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.5"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="-1.2"/>
<define name="ROLL_MAX_SETPOINT" value="0.7" unit="radians"/>
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
<define name="PITCH_PGAIN" value="-10000."/>
<define name="PITCH_DGAIN" value="1.5"/>
<define name="ELEVATOR_OF_ROLL" value="2500"/>
<define name="ROLL_ATTITUDE_GAIN" value="-7500"/>
<define name="ROLL_RATE_GAIN" value="-1500"/>
</section>
<section name="NAV">
<define name="NAV_PITCH" value="0."/>
<define name="NAV_GLIDE_PITCH_TRIM" value="0"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<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_THROTTLE" value="0.7"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.25"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.15"/><!-- 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>
<section name="GYRO_GAINS">
<define name="GYRO_MAX_RATE" value="200."/>
<define name="ROLLRATESUM_NB_SAMPLES" value="64"/>
<define name="ALT_ROLL__PGAIN" value="1.0"/>
<define name="ROLL_RATE_PGAIN" value="1000.0"/>
<define name="ROLL_RATE_IGAIN" value="0.0"/>
<define name="ROLL_RATE_DGAIN" value="0.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>
-->
<section name="Digital camera telecommand">
<!-- IOs are seen as LEDs -->
<define name="LED_6_BANK" value="0"/>
<define name="LED_6_PIN" value="2"/> <!-- I2C SCL -->
<!-- ADC 5 -->
<define name="LED_7_BANK" value="0"/>
<define name="LED_7_PIN" value="3"/> <!-- I2C SDA -->
<define name="DC_SHUTTER_LED" value="6"/> <!-- Grey wire -->
<define name="DC_ZOOM_LED" value="7"/>
</section>
<makefile>
CONFIG = \"tiny_2_1_1.h\"
include $(PAPARAZZI_SRC)/conf/autopilot/tiny.makefile
FLASH_MODE=IAP
ap.CFLAGS += -DFBW -DAP -DCONFIG=$(CONFIG) -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.srcs += commands.c
ap.CFLAGS += -DACTUATORS=\"servos_4017_hw.h\" -DSERVOS_4017
ap.srcs += $(SRC_ARCH)/servos_4017_hw.c actuators.c
ap.CFLAGS += -DRADIO_CONTROL -DRADIO_CONTROL_TYPE=RC_FUTABA
ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c
#XBEE ap.CFLAGS += -DDOWNLINK -DUSE_UART1 -DDOWNLINK_TRANSPORT=XBeeTransport -DXBEE_UART=Uart1 -DDATALINK=XBEE -DUART1_BAUD=B9600
#XBEE ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c xbee.c
#TRANSPARENT
ap.CFLAGS += -DDOWNLINK -DUSE_UART1 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_FBW_DEVICE=Uart1 -DDOWNLINK_AP_DEVICE=Uart1 -DPPRZ_UART=Uart1 -DDATALINK=PPRZ -DUART1_BAUD=B9600
ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c pprz_transport.c
ap.CFLAGS += -DINTER_MCU
ap.srcs += inter_mcu.c
ap.CFLAGS += -DADC -DUSE_ADC_0 -DUSE_ADC_1 -DUSE_ADC_2
ap.srcs += $(SRC_ARCH)/adc_hw.c
ap.CFLAGS += -DGPS -DUBX -DUSE_UART0 -DGPS_LINK=Uart0 -DUART0_BAUD=B38400 -DGPS_LED=2 -DGPS_USE_LATLONG
ap.srcs += gps_ubx.c gps.c latlong.c
ap.CFLAGS += -DINFRARED -DALT_KALMAN
ap.srcs += infrared.c estimator.c
ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM
ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c
ap.srcs += nav_line.c nav_survey_rectangle.c
########## Barometer (SPI)
#ap.CFLAGS += -DUSE_SPI -DSPI_MASTER -DUSE_SPI_SLAVE0 -DUSE_BARO_MS5534A
#ap.srcs += spi.c $(SRC_ARCH)/spi_hw.c $(SRC_ARCH)/baro_MS5534A.c
########## Chemo sensor (I2C)
#ap.srcs += i2c.c arm7/i2c_hw.c enose.c chemo_detect.c
#ap.CFLAGS += -DUSE_I2C -DENOSE
# Digital camera
# Shutter: I2C SCL
# Zoom: I2C SDA
ap.CFLAGS += -DDIGITAL_CAM
ap.srcs += dc.c
# 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_line.c nav_survey_rectangle.c
# -DENOSE
# chemotaxis.c anemotaxis.c discsurvey.c $(SRC_ARCH)/sim_enose.c chemo_detect.c
sim.CFLAGS += -DDIGITAL_CAM -DPOWER_SWITCH_LED=4
sim.srcs += dc.c
# a test program to setup actuators
setup_actuators.ARCHDIR = $(ARCHI)
setup_actuators.ARCH = arm7tdmi
setup_actuators.TARGET = setup_actuators
setup_actuators.TARGETDIR = setup_actuators
setup_actuators.CFLAGS += -DFBW -DCONFIG=\"tiny.h\" -DLED -DTIME_LED=1 -DACTUATORS=\"servos_4015_hw.h\" -DSERVOS_4015 -DUSE_UART1 -DUART1_BAUD=B9600 -DDATALINK=PPRZ -DPPRZ_UART=Uart1
setup_actuators.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c $(SRC_ARCH)/armVIC.c pprz_transport.c setup_actuators.c $(SRC_ARCH)/uart_hw.c $(SRC_ARCH)/servos_4015_hw.c main.c
</makefile>
</airframe>
go outside away from buildings(middle of street is fine) and move it around. confirm everything is working correctly. remember: Ground is hot.
-----SERVO's------
The servos are by far the easiest thing to do. you can either solder directly to the servo or get the mating connector so it can be reusable. to see some servo movement with the funjet1.xml file, plug in a servo into "S2" or "S6". move your hand around the IR sensors to see some movement.
------RECEIVER------
THIS (http://paparazzi.enac.fr/wiki/Other_Hardware) page explains which receivers can be modified and how to do it. its as easy as soldering three wires. i am using the receiver from PPZUAV which is already done for you. the newly released ppm decoder board requires no modification. simply plug in the servo wires like a normal radio controlled model. Make sure you have a couple spare crystals on different frequency's(does not apply to synthesized and 2.4GHz systems).
Receiver>"REC" on tiny
------RADIO------
to get our transmitter working with the tiny we need to map out which channels will do what. i am using an optic 6 transmitter and for now we will stick to the basics. i want to assign the channels like this for MODE 2.
Channel and Function
1 ROLL or Aileron
2 PITCH or Elevator
3 THROTTLE
4 YAW or Rudder
5 AUX (unused for now)
6 MODE. Manual,Auto1,Auto2.
most RC transmitters output a pulse width minimum of 1000 and a maximum of 2000. so min=1000,neutral=1500,max=2000 for a servo going in the normal direction(not reversed).this is described in detail HERE (http://paparazzi.enac.fr/wiki/Radio_Control) .
<!DOCTYPE radio SYSTEM "radio.dtd">
<radio name="Optic6" data_min="900" data_max="2100" sync_min ="5000" sync_max ="15000">
<channel ctl="1" function="ROLL" min="1000" neutral="1500" max="2000" average="0"/>
<channel ctl="2" function="PITCH" min="1000" neutral="1500" max="2000" average="0"/>
<channel ctl="3" function="THROTTLE" min="1000" neutral="1500" max="2000" average="0"/>
<channel ctl="4" function="YAW" min="1000" neutral="1500" max="2000" average="0"/>
<channel ctl="5" function="AUX" min="1000" neutral="1500" max="2000" average="0"/>
<channel ctl="6" function="MODE" min="1000" neutral="1500" max="2000" average="1"/>
</radio>
mecevans
Feb 13, 2009, 07:54 PM
Congratulations , you now know the basics of paparazzi!! :D . whats next? well results may vary from here, but its time to put it into something that flys. :)
------Considering an airframe design------
With my goals that i already set for the plane, i focused on these main things.
.....Goals.....
I would like long flight times (20-30 minutes or more)
I would like to be able to carry a video or digital camera now or in the near future
I knew that i wanted long flight times so i searched through Rcgroups for successful designs. also knowing that i wanted to have a camera now or in the future, i wanted a design which things could be easily removed or added. after searching for quite some time i found this very interesting plane, it has flight times of over and hour, quite fast, and had a very neat twist-to-lock payload section.
http://www.rcgroups.com/forums/showpost.php?p=10276474&postcount=362
and
http://www.rcgroups.com/forums/showpost.php?p=10769608&postcount=714
i hope to scratch build something off of this design, or if you have a better idea for an airframe post here
http://www.rcgroups.com/forums/showthread.php?t=995908
------PLANE------
i wanted to get a plane in the air and not spend to much time on building for now, so i decided to buy an ARF. i wanted a plane with elevons to cut back on weight and number of servos like my original goal on an airframe would be. the Multiplex Funjet, already extensively tested and used with Paparazzi, was a great pick for me as i have 4 years of RC experience. my goals for this airframe is to build as light as possible, and have sporty motor performance, while still being able to chop the throttle to cruise for 20 or so minutes. after searching Rcgroups and asking a few questions, i got an idea of what i needed. More on the FUNJET (http://paparazzi.enac.fr/wiki/FunJet) .
......Setup......
Multiplex Funjet ARF
Axi 2212/26
3s 2100 and 1800 mah Lipo's
Castle Creations Thunderbird 18
2 Hitec HS65hb's
Props: 9x6,8x6,8x4
make sure your work area is clean. lay out all the parts. the first thing you need to do is to READ ALL THE INSTRUCTIONS before you try to do anything. i built everything as per instruction, but i did not did no glue in the motor mount or turtle deck. i looked for as many pictures of Paparazzi builds as i could find to get an idea where things where going to go. you want to keep everything away from each other as much as possible, especially the receiver and modem. After a couple hours researching, moving things around, and staring at it, i got a good idea of how i wanted it. make sure it will balance.
<!DOCTYPE airframe SYSTEM "airframe.dtd">
<!-- Funjet Multiplex (http://www.multiplex-rc.de/)
Tiny 2.1 board (http://paparazzi.enac.fr/wiki/index.php/Tiny_v2)
Tilted infrared sensor (http://paparazzi.enac.fr/wiki/index.php/Image:Tiny_v2_1_Funjet.jpg)
Digi xbee pro 900mhz
Hitec HS-65 servos
-->
<airframe name="MCE Funjet">
<!-- commands section -->
<servos>
<servo name="MOTOR" no="0" min="1000" neutral="1000" max="2000"/>
<servo name="AILEVON_LEFT" no="2" min="1000" neutral="1500" max="2000"/>
<servo name="AILEVON_RIGHT" no="6" min="2000" neutral="1500" max="1000"/>
</servos>
<commands>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="ROLL" 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>
<section name="MIXER">
<define name="AILEVON_AILERON_RATE" value="0.75"/>
<define name="AILEVON_ELEVATOR_RATE" value="0.75"/>
</section>
<command_laws>
<let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/>
<set servo="MOTOR" value="@THROTTLE"/>
<set servo="AILEVON_LEFT" value="$elevator + $aileron"/>
<set servo="AILEVON_RIGHT" value="$elevator - $aileron"/>
</command_laws>
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="0.85"/>
<define name="MAX_PITCH" value="0.6"/>
</section>
<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="INFRARED" prefix="IR_">
<define name="ADC_IR1_NEUTRAL" value="514"/>
<define name="ADC_IR2_NEUTRAL" value="512"/>
<define name="ADC_TOP_NEUTRAL" value="511"/>
<define name="LATERAL_CORRECTION" value="1."/>
<define name="LONGITUDINAL_CORRECTION" value="1."/>
<define name="VERTICAL_CORRECTION" value="1."/>
<define name="HORIZ_SENSOR_TILTED" value="1"/>
<define name="IR1_SIGN" value="-1"/>
<define name="IR2_SIGN" value="-1"/>
<define name="TOP_SIGN" value="-1"/>
<define name="ROLL_NEUTRAL_DEFAULT" value="-3.6" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="6" 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="9.3" unit="V"/>
<define name="LOW_BAT_LEVEL" value="" unit="11"/>
<define name="MAX_BAT_LEVEL" value="12.6" unit="V"/>
</section>
<section name="MISC">
<define name="NOMINAL_AIRSPEED" value="17." 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="\"ATPL2\rATRN1\rATTT80\r\""/> -->
<!-- <define name="NO_XBEE_API_INIT" value="TRUE"/> -->
<define name="ALT_KALMAN_ENABLED" value="TRUE"/>
<define name="TRIGGER_DELAY" value="1."/>
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
<define name="MIN_CIRCLE_RADIUS" value="50."/>
</section>
<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.04"/>
<!-- outer loop saturation -->
<define name="ALTITUDE_MAX_CLIMB" value="2."/>
<!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.35"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.3"/>
<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.1" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PGAIN" value="-0.02"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.1"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.1"/>
<!-- 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.5"/>
</section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="-1.2"/>
<define name="ROLL_MAX_SETPOINT" value="0.7" unit="radians"/>
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
<define name="PITCH_PGAIN" value="-10000."/>
<define name="PITCH_DGAIN" value="1.5"/>
<define name="ELEVATOR_OF_ROLL" value="2500"/>
<define name="ROLL_ATTITUDE_GAIN" value="-7500"/>
<define name="ROLL_RATE_GAIN" value="-1500"/>
</section>
<section name="NAV">
<define name="NAV_PITCH" value="0."/>
<define name="NAV_GLIDE_PITCH_TRIM" value="0"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<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_THROTTLE" value="0.7"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="0.25"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="-0.15"/><!-- 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>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="1" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0.7" 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>
-->
<section name="Digital camera telecommand">
<!-- IOs are seen as LEDs -->
<define name="LED_6_BANK" value="0"/>
<define name="LED_6_PIN" value="2"/> <!-- I2C SCL -->
<!-- ADC 5 -->
<define name="LED_7_BANK" value="0"/>
<define name="LED_7_PIN" value="3"/> <!-- I2C SDA -->
<define name="DC_SHUTTER_LED" value="6"/> <!-- Grey wire -->
<define name="DC_ZOOM_LED" value="7"/>
</section>
<makefile>
CONFIG = \"tiny_2_1_1.h\"
include $(PAPARAZZI_SRC)/conf/autopilot/tiny.makefile
FLASH_MODE=IAP
ap.CFLAGS += -DFBW -DAP -DCONFIG=$(CONFIG) -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.srcs += commands.c
ap.CFLAGS += -DACTUATORS=\"servos_4017_hw.h\" -DSERVOS_4017
ap.srcs += $(SRC_ARCH)/servos_4017_hw.c actuators.c
ap.CFLAGS += -DRADIO_CONTROL -DRADIO_CONTROL_TYPE=RC_FUTABA
ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c
#XBEE ap.CFLAGS += -DDOWNLINK -DUSE_UART1 -DDOWNLINK_TRANSPORT=XBeeTransport -DXBEE_UART=Uart1 -DDATALINK=XBEE -DUART1_BAUD=B9600
#XBEE ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c xbee.c
#TRANSPARENT
ap.CFLAGS += -DDOWNLINK -DUSE_UART1 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_FBW_DEVICE=Uart1 -DDOWNLINK_AP_DEVICE=Uart1 -DPPRZ_UART=Uart1 -DDATALINK=PPRZ -DUART1_BAUD=B9600
ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c pprz_transport.c
ap.CFLAGS += -DINTER_MCU
ap.srcs += inter_mcu.c
ap.CFLAGS += -DADC -DUSE_ADC_0 -DUSE_ADC_1 -DUSE_ADC_2
ap.srcs += $(SRC_ARCH)/adc_hw.c
ap.CFLAGS += -DGPS -DUBX -DUSE_UART0 -DGPS_LINK=Uart0 -DUART0_BAUD=B38400 -DGPS_LED=2 -DGPS_USE_LATLONG
ap.srcs += gps_ubx.c gps.c latlong.c
ap.CFLAGS += -DINFRARED -DALT_KALMAN
ap.srcs += infrared.c estimator.c
ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM
ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c
ap.srcs += nav_line.c nav_survey_rectangle.c
########## Barometer (SPI)
#ap.CFLAGS += -DUSE_SPI -DSPI_MASTER -DUSE_SPI_SLAVE0 -DUSE_BARO_MS5534A
#ap.srcs += spi.c $(SRC_ARCH)/spi_hw.c $(SRC_ARCH)/baro_MS5534A.c
########## Chemo sensor (I2C)
#ap.srcs += i2c.c arm7/i2c_hw.c enose.c chemo_detect.c
#ap.CFLAGS += -DUSE_I2C -DENOSE
# Digital camera
# Shutter: I2C SCL
# Zoom: I2C SDA
ap.CFLAGS += -DDIGITAL_CAM
ap.srcs += dc.c
# 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_line.c nav_survey_rectangle.c
# -DENOSE
# chemotaxis.c anemotaxis.c discsurvey.c $(SRC_ARCH)/sim_enose.c chemo_detect.c
sim.CFLAGS += -DDIGITAL_CAM -DPOWER_SWITCH_LED=4
sim.srcs += dc.c
# a test program to setup actuators
setup_actuators.ARCHDIR = $(ARCHI)
setup_actuators.ARCH = arm7tdmi
setup_actuators.TARGET = setup_actuators
setup_actuators.TARGETDIR = setup_actuators
setup_actuators.CFLAGS += -DFBW -DCONFIG=\"tiny.h\" -DLED -DTIME_LED=1 -DACTUATORS=\"servos_4015_hw.h\" -DSERVOS_4015 -DUSE_UART1 -DUART1_BAUD=B9600 -DDATALINK=PPRZ -DPPRZ_UART=Uart1
setup_actuators.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c $(SRC_ARCH)/armVIC.c pprz_transport.c setup_actuators.c $(SRC_ARCH)/uart_hw.c $(SRC_ARCH)/servos_4015_hw.c main.c
</makefile>
</airframe>
RADIO
<?xml version="1.0"?>
<!-- $Id: T6EXAP.xml,v 1.5 2008/08/18 01:30:19 poine Exp $
--
-- (c) 2006 Pascal Brisset, Antoine Drouin
--
-- This file is part of paparazzi.
--
-- paparazzi is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2, or (at your option)
-- any later version.
--
-- paparazzi is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with paparazzi; see the file COPYING. If not, write to
-- the Free Software Foundation, 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA.
-->
<!--
-- Attributes of root (Radio) tag :
-- name: name of RC
-- data_min: min width of a pulse to be considered as a data pulse
-- data_max: max width of a pulse to be considered as a data pulse
-- sync_min: min width of a pulse to be considered as a synchro pulse
-- sync_max: max width of a pulse to be considered as a synchro pulse
-- min, max and sync are expressed in micro-seconds
-->
<!--
-- Attributes of channel tag :
-- ctl: name of the command on the transmitter - only for displaying
-- no: order in the PPM frame
-- function: logical command
-- averaged: channel filtered through several frames (for discrete commands)
-- min: minimum pulse length (micro-seconds)
-- max: maximum pulse length (micro-seconds)
-- neutral: neutral pulse length (micro-seconds)
-- Note: a command may be reversed by exchanging min and max values
-->
<!DOCTYPE radio SYSTEM "radio.dtd">
<radio name="Optic6" data_min="900" data_max="2100" sync_min ="5000" sync_max ="15000">
<channel ctl="1" function="ROLL" min="1000" neutral="1500" max="2000" average="0"/>
<channel ctl="2" function="PITCH" min="1000" neutral="1500" max="2000" average="0"/>
<channel ctl="3" function="THROTTLE" min="1150" neutral="1150" max="2000" average="0"/>
<channel ctl="4" function="YAW" min="1000" neutral="1500" max="2000" average="0"/>
<channel ctl="5" function="AUX" min="1000" neutral="1500" max="2000" average="0"/>
<channel ctl="6" function="MODE" min="1000" neutral="1500" max="2000" average="1"/>
</radio>
mecevans
Feb 13, 2009, 07:55 PM
getting it in the air.
range check
triple check connections
check cg
make sure thing wont move
make sure PFD moves correctly
for your first couple flights, i suggest having auto1 in the middle and manual on fore and aft. this way if you panic it auto1 does not work, you will go into manual and not auto2.
rich smith
Feb 14, 2009, 02:44 PM
I am very interested to see how this comes out. Like with Linux most cult members take great umbrage when I say you need a guru. The Linux does seem "less nasty" these days so maybe paparazzi has improved too. Best of luck.
PS what's the point of those empty posts?
mecevans
Feb 14, 2009, 02:52 PM
ubuntu is really neat, in fact i haven't used xp in a week :) .
its so i can fill it in with more info.everything will be on one the first page, so you dont have to look through the entire forum.
rich smith
Feb 14, 2009, 02:57 PM
ubuntu is really neat, in fact i haven't used xp in a week :) .
its so i can fill it in with more info.everything will be on one the first page, so you dont have to look through the entire forum.
hhhho...kayyyyy... :confused:
I agree about Ubuntu. It's history is interesting too. I was amazed the CD picked up at last weeks computer show booted and ran from memory. Big fun on my EeePC too. Not your grandads Unix anymore.
If Paparazzi works as well I may give it another try myself.
mecevans
Feb 14, 2009, 03:22 PM
its a mini-how-to, so i want it to have step by step guide on the first couple posts.then people can discuss it through the rest of the forum. saves allot of time looking for information.
yep best part is its all free! :)
rich smith
Feb 14, 2009, 03:28 PM
I start a lot of Mini-How-To threads myself so that's of interest. Is there a limit on how long or how many pics in 1 post?
We agree on free. However our definitions may differ slightly. My "free" UAV airframe runs about $5 and autopilot w/GPS under $100. $1000? Cough...Cough... Rich people :rolleyes:
I know what you mean though.
its a mini-how-to, so i want it to have step by step guide on the first couple posts.then people can discuss it through the rest of the forum. saves allot of time looking for information.
yep best part is its all free! :)
mecevans
Feb 14, 2009, 03:37 PM
i dont know i just want to keep everything neat and together.
rich? you mean tax and rent free? :) i'm still in high school lol
tc78
Feb 14, 2009, 09:37 PM
mecevans, it'S nice to see your thread here and especially that you try to keep all info at the beginning.
i like to see a site to find all needed information combined as a step to step help for newbies. reading through 1200 posts to get some info or maybe none can't be the way to go.
so keep on the good work and i'm curious to see how it performs.
especially i'm very interested how you will solve the part with attaching a video or digital camera to the airframe and control it via the ppz!
thx for this.
mecevans
Feb 14, 2009, 11:35 PM
mecevans, it'S nice to see your thread here and especially that you try to keep all info at the beginning.
i like to see a site to find all needed information combined as a step to step help for newbies. reading through 1200 posts to get some info or maybe none can't be the way to go.
so keep on the good work and i'm curious to see how it performs.
especially i'm very interested how you will solve the part with attaching a video or digital camera to the airframe and control it via the ppz!
thx for this.
thanks man!
i wouldent have gotten far without all the support everyone gives me.
bmw330i
Feb 20, 2009, 10:59 AM
Update?
Hoping to hear you got the funjet1.XML working with GCS
mecevans
Feb 20, 2009, 05:38 PM
ya probably tonight,had allot of HW last night. I'm going to Costco to get a new laptop too.
vespa
Feb 21, 2009, 03:13 AM
Great writeup Mec! Strange that Rich (sic) complained about your very realistic budget. :rolleyes:
rich smith
Feb 21, 2009, 02:17 PM
Great writeup Mec! Strange that Rich (sic) complained about your very realistic budget. :rolleyes:
I'm spoiled. My 48" foamie UAV costs less than $5 to build and autopilot w/GPS less than $50. So far 4 mile fully autonomous flight with 200 mile solar powered flight planned this summer. Whole thing with XBee plane tracker <$100. I know these things usually cost thousands but I'm famous for pinching pennies.
BTW I am NOT sic! :)
Johnnylynx
Feb 22, 2009, 12:46 AM
I'm spoiled. My 48" foamie UAV costs less than $5 to build and autopilot w/GPS less than $50. So far 4 mile fully autonomous flight with 200 mile solar powered flight planned this summer. Whole thing with XBee plane tracker <$100. I know these things usually cost thousands but I'm famous for pinching pennies.
BTW I am NOT sic! :)
What is the XBee plane tracker you're talking about? I just bought the XBee XSC 900 mhz modules and am looking to use them to either/or control my UAV and perform telemetry feedback...
John.
mecevans
Feb 22, 2009, 01:06 AM
What is the XBee plane tracker you're talking about? I just bought the XBee XSC 900 mhz modules and am looking to use them to either/or control my UAV and perform telemetry feedback...
John.
try the FPV forum. i saw some guy use them for RC control and telemetry for his FPV plane.
bmw330i
Feb 22, 2009, 01:09 AM
I'm spoiled. My 48" foamie UAV costs less than $5 to build and autopilot w/GPS less than $50. So far 4 mile fully autonomous flight with 200 mile solar powered flight planned this summer. Whole thing with XBee plane tracker <$100. I know these things usually cost thousands but I'm famous for pinching pennies.
BTW I am NOT sic! :)
...I'm missing why that's so exciting?
Buzz_Lightyear
Feb 22, 2009, 01:26 AM
I'm spoiled. My 48" foamie UAV costs less than $5 to build and autopilot w/GPS less than $50. So far 4 mile fully autonomous flight with 200 mile solar powered flight planned this summer. Whole thing with XBee plane tracker <$100. I know these things usually cost thousands but I'm famous for pinching pennies.
BTW I am NOT sic! :)
I think he meant ironic, (rich pinching pennies, yada yada)
Less than $5 to build? Now if you are talking about just the foam, I'll believe that. What about TX/RX? batteries? servos? motor? props? etc?
So your autopilot with GPS was less than $50? What happens when you put that autopilot on an unstable aircraft? What happens to that aircraft when you lose GPS? What happens on a gusty day?
My point being, you may be famous for pinching pennies rich :) , but you are oversimplifying your costs and thereby skewing your comparison. Your autopilot is cheaper, yes, but it is not as capable. By the same standards, I could say "Who would want to by a multi-million dollar Predator UAV when I can do the same thing for $800?!"
bmw330i
Feb 22, 2009, 02:00 AM
mecevans, keep up the good work. You're making progress.
rich smith
Feb 22, 2009, 08:08 AM
It's a $2 interconnect for XBee/GPS:
http://www.rcgroups.com/forums/showthread.php?t=993165
Although I've not used it with the 900mhz others have and it works great. This type of device is prerequisite for any autopilot work regardless of platform. Even so if your serious about UAV work it's probably just a matter of time before 1st fly away. IMO it's better to lose cheap foamie instead of Telemaster or Miss2 and $2 computer instead of $800. YMMV
What is the XBee plane tracker you're talking about? I just bought the XBee XSC 900 mhz modules and am looking to use them to either/or control my UAV and perform telemetry feedback...
John.
rich smith
Feb 22, 2009, 08:16 AM
There's some truth to what you say. I admit to minimizing cost (don't include re-usables) but you get the point. Paparazzi is a great platform and Funjet certainly handles wind better than my el cheapo foamie. I guess it depends on whether you choose to be VERY careful and have lots of time/money or need to get something going ASAP at lowest cost.
Paparazzi currently needs guru support due to incorrect/incomplete docs etc but as soon as these are ironed out I will be jumping in too. Kinda like early days of Linux.
I think he meant ironic, (rich pinching pennies, yada yada)
Less than $5 to build? Now if you are talking about just the foam, I'll believe that. What about TX/RX? batteries? servos? motor? props? etc?
So your autopilot with GPS was less than $50? What happens when you put that autopilot on an unstable aircraft? What happens to that aircraft when you lose GPS? What happens on a gusty day?
My point being, you may be famous for pinching pennies rich :) , but you are oversimplifying your costs and thereby skewing your comparison. Your autopilot is cheaper, yes, but it is not as capable. By the same standards, I could say "Who would want to by a multi-million dollar Predator UAV when I can do the same thing for $800?!"
Buzz_Lightyear
Feb 23, 2009, 07:03 AM
There's some truth to what you say. I admit to minimizing cost (don't include re-usables) but you get the point. Paparazzi is a great platform and Funjet certainly handles wind better than my el cheapo foamie. I guess it depends on whether you choose to be VERY careful and have lots of time/money or need to get something going ASAP at lowest cost.
Paparazzi currently needs guru support due to incorrect/incomplete docs etc but as soon as these are ironed out I will be jumping in too. Kinda like early days of Linux.
From my experience, just about any autopilot needs guru support. Autonomous flight is a difficult task. I have dealt with a few commercial autopilots, and all of them had a semi-steep learning curve. Paparazzi is no different in that aspect.
What is different is that it is open-source. Touted a lot, yes; but this really is a huge advantage. It already flies on just about every aircraft, and you would be free to modify the code to get it to work with any hardware/airframe/payload/etc you want. The community is also very helpful and the "gurus" are willing to help just about anybody (provided that they've at least attempted it themselves). The documentation is a bit lacking, but that is rapidly changing as the user base is currently growing very fast. I know a few different people working on "Begginer's Guide"s.
I don't know what autopilot you use, and I'm sure it has some advantages. Just saying why I chose the one that I did.
rich smith
Feb 23, 2009, 01:00 PM
I am following Mecevans thread for just this reason. To see how far they've come. It appears lot's of help is still required unlike some other autopilots. At least 2 clients I know had no problem w/RCAP, one other who got the UNAV Picopilot up w/o help, and it appears Deans Attopilot also has good docs. Last 2 very expensive compared to Paparazzi and Ardupilot but I guess in a few rare cases you do get what you pay for. At this point in time anyway.
I wrote mine in AVR assembler for a client but now use it for my hobby. Modeled after Tom Harpers "Feint Kiss". Only couple k in size like Tom but has waypoint sequencing and solar power management. Will do a build thread this summer.
Started with Paparazzi back when Mega8 used by them and it's still the chip I use currently. However abandoned in favor of ground up due to frustration over incompetent version control and docs. Can't afford to haunt the Paparazzi clubhouse all day for help. I'll jump in when the "Beginners Guide" is out and hardware/software is warm and fuzzy. Like Linux.
bmw330i
Feb 23, 2009, 01:13 PM
mecevans is an overachiever, he's had no problems at all finding help or his way around the Wiki. He's actually been extremely helpful with helping others already on his project. Good work!
rich smith
Feb 23, 2009, 01:18 PM
Buzzzzzzz...ZZZZZZZzzzzz......zzzzZZZZZZzz.... :)
I personally know at least a dozen individuals involved with PZ and not 1 managed w/o help. Like Ardupilot I have great hope for the project though.
PS I'm entitled to my opinion and you yours.
bmw330i
Feb 23, 2009, 01:31 PM
I'll be the first to say in this thread I have found all my issues with Paparazzi to be self inflicted. The Wiki has had so many edits lately I have to laugh at anyone blaming it for their issues with Paparazzi. Maybe your learning style just isn't a good fit Rich for paparazzi. Not an issue for mecevans and most though. I have followed every other autopilot thread on here am not going to comment good or bad or experiences. They all just different. That's a good thing because people can go read and follow then make informed decisions.
I can say ArduPilot and Paparazzi you can build yourself today or buy them pre-assembled and pre-programmed today. Leaving just some learning and configuration left to the DIY hobbyist who builds/buys them.
So, how does this fit mecevans project? He chose Paparazzi by making an informed decision. His project is a complex one. He has a project and decided on Paparazzi given the other things available. I hope to help him any way I can.
-BMW
rich smith
Feb 23, 2009, 02:06 PM
Now you have pretty much summed it up. I must admit to being one of those who do not like being forced to learn. To this day no HS diploma but flew through university because I had choice. Then there's those who simply lack ability. There's also an issue of time/resources as in my case too. I'm hoping Paparazzi will one day be for everybody.
I'll be the first to say in this thread I have found all my issues with Paparazzi to be self inflicted. The Wiki has had so many edits lately I have to laugh at anyone blaming it for their issues with Paparazzi. Maybe your learning style just isn't a good fit Rich for paparazzi. Not an issue for mecevans and most though. I have followed every other autopilot thread on here am not going to comment good or bad or experiences. They all just different. That's a good thing because people can go read and follow then make informed decisions.
I can say ArduPilot and Paparazzi you can build yourself today or buy them pre-assembled and pre-programmed today. Leaving just some learning and configuration left to the DIY hobbyist who builds/buys them. Like all learning there are people who hardly try and get straight As and those that struggle for their As and Bs and those that just don't like to learn and drop out (yes along with everything between). No one can package learning for you perfect for all. It's just accepted that people will learn their own way or not learn their own way. I certainly didn't blame the book or my teacher when I just didn't understand Calculus. I had to assume it required more work and try until I did learn it. Paparazzi is the Calculus of Autopilots not the simple addition. It's complex but powerful, mature, tested and winning most every competition out there (or top positions). People are flying Quadrotors and Fixed with with it and some are using IMU only and others Thermopiles. They are doing complex missions and adding new code all the time. Not to get it flying they are adding new code like collision avoidance and bungee take-offs along with new search patters and mature additional features. No one is out there with Paparazzi trying to get GPS to work right. That's all been long tested and finished.
bmw330i
Feb 23, 2009, 02:10 PM
Now you have pretty much summed it up. I must admit to being one of those who do not like being forced to learn. To this day no HS diploma but flew through university because I had choice. Then there's those who simply lack ability. I'm hoping Paparazzi will one day be for everybody.
Hopefully if you mean that about your "hoping Paparazzi will one day be for everybody" you'll turn that hope into action. We can all hope for world peace and an end to wars but until people do something about it nothing will happen towards those ends.
rich smith
Feb 23, 2009, 02:21 PM
True but there are practical limits to what can be done given finite time/resources. Threads like this one Mecevans started should do more in the long run. I've personally learned more from beginners than experts.
Hopefully if you mean that about your "hoping Paparazzi will one day be for everybody" you'll turn that hope into action. We can all hope for world peace and an end to wars but until people do something about it nothing will happen towards those ends.
tc78
Feb 23, 2009, 06:49 PM
aehm... well. could we please stick on the topic and discuss in a way that supports the thread? (problems, help, ideas, etc. on the chosen system - paparazzi)
General discussions like this only make the thread getting 100 pages but without real information for any reader.
Please correct (mecevans?!) me but this thread is intended to give his impressions of the project and to provide summarized information to support others having problems with this system.
So please tell me why we should discuss about alternatives??
rich smith
Feb 23, 2009, 07:02 PM
Yes SIR!! Mr one post SIR!!! Sorry SIR!! :)
Sometimes it's relevant to discuss alternate solutions. I personally don't mind such discussions or even OT chat in threads I've started. But that is always up to the originator. Sorry if it bothered Mecevans.
aehm... well. could we please stick on the topic and discuss in a way that supports the thread? (problems, help, ideas, etc. on the chosen system - paparazzi)
General discussions like this only make the thread getting 100 pages but without real information for any reader.
Please correct (mecevans?!) me but this thread is intended to give his impressions of the project and to provide summarized information to support others having problems with this system.
So please tell me why we should discuss about alternatives??
mecevans
Feb 23, 2009, 10:23 PM
i think your taking it to far rich. keep on topic. make your own thread if you want to brag. this is a build thread to help get people into UAV's.
mecevans
Feb 23, 2009, 10:26 PM
aehm... well. could we please stick on the topic and discuss in a way that supports the thread? (problems, help, ideas, etc. on the chosen system - paparazzi)
General discussions like this only make the thread getting 100 pages but without real information for any reader.
Please correct (mecevans?!) me but this thread is intended to give his impressions of the project and to provide summarized information to support others having problems with this system.
So please tell me why we should discuss about alternatives??
yes a How-to, not a build thread like the paparazzi forum. step by step instructions even the most novice person can follow.
joekadet
Feb 27, 2009, 10:20 AM
Just a little bump. Keep up the good work.
Joe
bmw330i
Feb 27, 2009, 12:29 PM
...agreed, update is in order. We know you've been hard at work :)
joekadet
Feb 27, 2009, 01:25 PM
When Mecevans edits to add content on the first page it does not show. Reason for bump. There was an edit today at 2:30 am.
Joe :)
mecevans
Feb 27, 2009, 07:50 PM
thanks for all the support guys. i just added more pictures now. kinda messed up real bad with the connector so update might be delayed for awhile.
mecevans
Mar 25, 2009, 05:00 PM
Update: Its back! thanks David for all the help! :)
mecevans
Apr 01, 2009, 11:11 PM
Huge Update Guys
mecevans
Apr 05, 2009, 10:25 PM
i just ordered my funjet! :)
mecevans
Apr 11, 2009, 11:52 AM
have you guys abandoned me? :( got my plane and the build is going well. just waiting on bullet connectors and a prop adapter :) . hows the layout of my components?
AntonK
Apr 11, 2009, 01:31 PM
Mike,
The layout looks great, except your Tiny is upside down :)
AJ
mecevans
Apr 11, 2009, 01:46 PM
Mike,
The layout looks great, except your Tiny is upside down :)
AJ
oh lol i flipped the turtle deck around so i could visualize it better. antenna goes to sky when it is fitted. :)
bmw330i
Apr 11, 2009, 08:41 PM
Hey,
Just took a few minutes to review the first few posts. Looks good.
-BMW
mecevans
Apr 14, 2009, 01:44 AM
THE PLANE IS DONE!!!! :). hope to fly it whenever the weather is suitable.
bmw330i
Apr 14, 2009, 02:14 PM
Just a hint from my experiences with the FunJet:
1. You'll want to fly with more than one battery pack. Making swapping it out very easy.
2. To program you have to power it on with the USB attached. Make getting to the battery plug easy (goes to #1 also for making it easy to switch the battery out).
3. Keep it light. Less weight is longer flight times and slower landing speeds. It can get a bit tough to bring in a FunJet and land it in a small area as it gets heavier.
To check with any aircraft:
1. Make sure in AUTO2 all controls act normally. Take the prop off the motor or be very careful and go to a flat area away from buildings/trees and verify when you pitch the nose down the elevons correct with up...right they correct left etc. Then verify the throttle behaves normal. My throttle channel was reversed. Worked ok in manual and AUTO1 but in AUTO2 it was reversed so the throttle went to 100% instead of 0% when it wanted to decend and 0% for takeoff and when it wanted to climb. Fix this before trying to fly in AUTO2.
2. PID loop tuning. Here:http://www.rcgroups.com/forums/showpost.php?p=11900951&postcount=1382 AJ does a very good job explaining the tuning this. This will be critical to getting your aircraft to fly right and follow the desired course properly. Otherwise you'll flip into AUTO2 and it will behave strangely and you won't know what to change to get it to hold the course. This is the same with the other autopilots. It's a part of the process and good to review what AJ wrote and understand it now.
Good luck.
mecevans
Apr 14, 2009, 06:50 PM
current problem with above code
http://www.youtube.com/watch?v=-dHp3AJfjOc
joekadet
Apr 14, 2009, 08:28 PM
current problem with above code
Question : Do the controls operate correctly in manual mode? You need to get that correct first.
Observations:
1. Looks to me that you need to rotate the sensor 90 degrees clockwise.
2. Looks like you are using FMA sensors."?"
3. You describe installing aligned but you have them tilted as well your airframe file has them tilted.
Joe
mecevans
Apr 14, 2009, 09:37 PM
Question : Do the controls operate correctly in manual mode? You need to get that correct first.
Observations:
1. Looks to me that you need to rotate the sensor 90 degrees clockwise.
2. Looks like you are using FMA sensors."?"
3. You describe installing aligned but you have them tilted as well your airframe file has them tilted.
Joe
yep manual first. i figured it out. ir2 was reversed with a -1 code lower down in the code. i removed it and it work but backwards. i made ir1 and ir2 -1 and everything works perfect. lucky me i set up everything mechanically the same as the original plane had so everything will be tuned very closely :D . once these 30 mph winds go away, i will have manual,auto1, and hopefully auto2 flights :rolleyes: .
joekadet
Apr 14, 2009, 09:50 PM
That is great. Good luck on your first flight. Auto1 is a trip, auto2 is twice that and all three in one flight must be out of this world. Took me five.
Joe
Redrow
Aug 06, 2009, 02:22 PM
Good day,
I'm playing around on the paparazzi center and getting to know how everything works. I got my lat and long decimal degrees and put them in the flight plan file. I then built and ran the simulator and tried to fill the map with google tiles but everytime i get the following message in the paparazzi center:
Connecting to khm.google.com|64.233.179.136|:80... failed: Connection refused.
Any suggestions on how i can get it to work?
Thank you,
Jano
vBulletin® Copyright ©2000-2009, Jelsoft Enterprises Ltd.