Here are some notes on the steps i took to get the Ardupilot to
perform autolanding on a typical RC plane
USB to Serial converter
Looked at pinouts of cable from DIYDrones compared to HVWTech converter (see schematics)
Found the typical "Hello World" LED Blink program for Ardupilot (AP) board. This flashes a
LED attached to D13. We shall power the AP using the ESC plugged into Output 3
Preparing the hardware:
Use a piece of network cable and some jumpers to connect the AP to the FTDI
Using Arduino 16 software keep the default controller
9 Jul, 2009
Got HVWTech USB to Serial converter working on EEEPC
Investigating the manual over-ride feature of AP > Look for the MUX LED. OFF = Manual, ON = Autopilot
Had a look at the original [MUX] board, Stamp AP @ DIYDrones.com
Had an idea for GPS circle. Calculate distance from WP and keep it constant
May want to add a digital compass > got it.
17 Jul, 2009
tested AP board programming with blink program > yay, it worked
NOTES: i did not connect the VCC wire since it was being powered by an ESC jumper
next > load the original code and check the GPS
I got a Stamp BS2e and using the wireless I plan to create a simple ground monitor to allow the AP
to confirm settings and display status when in range
18 Jul, 2009
Loaded 2.2 code > it wants a jumper to be connected :( see shield notes in AP manual
Loaded 1.0 code > it gave me a GPS lock (blue led) :)
Now want to pick apart the code starting with the GPS, perhaps send strings back to the computer.
The code seems to include a few test routines to output GPS data (See "system")
21 Jul, 2009
Figured out what jumper wire does (AP manual). See appendix 4
It connects the throttle for manual control MUX_IN to D8. These seems to be left unconnected for optional use (3-4 MUX_IN)
I may choose to put the throttle under AP control so leave this unconnected for now.
See "Servo". Controls output to servos and has a nice test routine.
Use some serial test progs like "Ascii Table" to get some data displayed on the IDE
22 Jul, 2009
Learned how to program waypoints into the setup utility. also checked home coordinates
of my house on google maps.
Possible testing areas >
Home Depot car park (ground testing), bowness park, large field in tuscany, highway extension
24 Jul
Looked for my old programs (Bs2) but no luck. Will need to do from scratch - not to worry.
Servo control using pulseout. Each unit is 2 microsec. Need pulses 0.6mS (min) to 1.5ms (center) to 2.4 ms (max)
http://www.geocities.com/bourbonstreet/3220/servobasics.html
Off time can be 10-30ms but if it is longer then the servo may jitter. The proper solution is a servo controller chip
such as the FT639 or Parallax servo controller board
An easier but more expensive solution is to use a separate BS2 or BS1 for servo control. This will "memorize" the signals that
it recieves and offload the processing of NAV data from the first BS2
Read control signals from RC unit using pulsein.
Jul 25
Looking through code for XY Sensor stuff > signals, calculations
Picked up some wire-wrap for circuits, landing gear supplies for yellow (test) plane, nylon screws
for CG idea.
Wire wrapping techniques > http://www.vpc.com/downloads/Wire_Wrap_Techniques/Wire_Wrap_Techniques.pdf
Tried Chris A's GPs program with BS2 - it does not have the memory capability of the higher level stamps but I got some data out
Wiring up the BS2e (extra memory)
transferring the FTDI from AP to Stamp. remember the wires go from Rx to CTS
BS2e did not work with FTDI for some reason. Works fine with my other USB/Serial converter so will pair those.
Chris A.'s code does not work unless you are using a high level stamp capable of high speed buffering.
However, I got the SIRFDemo program to Rx GPS data directly into the computer using FTDI. Data looks great!
Should graph the "height" data to look for drift
Jul 26
http://dailyduino.com/archives/category/communication/wireless
nice article on using Parallax wireless Tx/Rx with arduino
Jul 27
got some GPS data out of BS2. Had to tune to 9600 baud and used the old Chris A code for Stamp based AP
Jul 28
hacking AP 1.0 code
found routines for testing the servos and reading the GPS. Blue LED for GPS Lock is D12
Time to test v1.0 with RC gear hooked up
perhaps do a waypoint with 1m height and add landing later (take out of AP control before)
Insert wireless transmitter between FTDI and AP so that you can read serial output of AP on BS2
IDEA: develop a digital protocol for sending data to AP via a spare channel on Tx with coded PWM
See > http://ban-sidhe.com/blog/?p=1465
July 29
XY sensor and Co-Pilot arrived today. yay
IDEA: graphical (BW with grey levels) representaion of XY sensor outputs using A/D from Arduino
Fixed landing gear and ailerons on yellow plane. revived 6 channel radio, charging batteries
Going through older blog posts to see the history of 2.x AP code
2.0 seems to work without the "shield"
stuff gets interesting from Feb 2009 blog
Google code repository has earlier versions of 2.x code > look options that work without the shield and z sensor.
notice the labels and bug fixes
Used windiff to look at differences in 2.2 and 2.1 code
2.1 specifically has z sensor as optional. Connect jumper between pins D6 and D7 for ground setup and sensor calibration
Tested the IR sensor with VM and A/D program. Used info in
http://diydrones.com/profiles/blogs/getting-ready-for-ardupilot-20
need to ground z sensor input. works ok.
Count connections to XY sensor from "cable" going anticlockwise. First (Yaw) gives more positive results if you put hand closer.
First (Pitch - second one round) gives more positive. values between 500-600
Also, got a lock on GPS
Next - how to calibrate the XY sensor
Found it. See AP Manual and the section entitled
ArduPilot 2.1 and above (no Z sensor):
Notice that the sensor is mounted diagonally with support for reversing the physical setup
Need 2 passthrough jumpers to connect RC Rx - pick them up when I'm gettin my Eflite Apprentice checked out
IDEA: Nunchuk interface to RC tx
2.1 docs
http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A71674&page=1#comment-705844_Comment_71702
Jul 31
Assembled Eflite apprentice platform. Had some bugs so took it back to hobby shop. All good now.
Looked into brushless conversion for Piper Cub.
Picked up a 4 line LCD display and a spare Ardupilot (in case of burnout)
Also picked up a simple RC car platform for testing.
Now working on landing algorithm. []=subroutines, ()= optional
Pseudocode for landing algorithm:
setup
read start runway coordinates
read end runway coordinates
Wait until landing command detected
calculated waypoints till runway start using best route and [glideslope]
loop
goto waypoints until ground detected
end loop
ground detected
flare - switch to hieght maintenance
droprate (until touchdown)
cut engine and switch to manual or taxi and park (need other coordinates)
OK, tested the AP with servos and XY sensor. 3 modes show correctly with LEDs. Manual mode works ok but there is some
jitter in the servos, possibly due to noise from the GPS data
Checking the config tool
http://maps.google.ca/?ie=UTF8&ll=51.123203,-114.24916&spn=0.001108,0.003176&t=h&z=18
Testing location using GPS
LAT LON
51123324 -114249248
51123336 -114249320
51123340 -114249360
Google maps is slightly off compared to the GPS measurements. For navigation purposes this is ok but for landing
we will need to use field measurements
Still need to figure out connection for Throttle? A - it seems from the code that D8 is used so we should solder the jumper
Use BS2e for data logging? Timestamped GPS data
Ready to test Piper Cub platform:
- Wiring AP onto plane
- Loading waypoints for test site (bring GPS for Microsoft Streets and Trips)
- Do early missions
Aug 1
tested platforms (no AP, just manual)
Piper Cub needed mods to landing gear for stability
Apprentice got damaged (Ellie stepped on it out in the field) - repairs complete
Put jumpers on AP board for more solid connections
Tested AP board out in the open. Tried to calibrate XY sensor but power from 4 pins next to GPS - They are actually unregulated!
nearly burned out the XY sensor but it seems to be OK
IDEA: use BS2 to act as Tx input to AP for simulations
This is working. Using BS2 the limits of pulsout are 1150(max), 250 min (multiply by 2uS for real pulse length)
Did a demo video showing
- operation of the XY sensor for leveling in flight
- correct operation of LEDs for 3 modes (Manual, Waypoint and RTL)
IDEA: Take AP on drive down the hill in the Athletic Park. Check the operation of the hieght readings and
look for consistency.
Checked the waypoints in AP memory - still good i.e. this does not get overwritten if you reprogram (cool)
Next..
Proximity sensor tests
Wireless interface
Need 3D plotter for waypoints to check the accuracy of height measurements
Adri put me onto Sketchup using Ruby scripts - found cloud.rb > test it
Aug 3
tested the AP for consistent height data by driving down a hill while data logging
The Sketchup plot works. Bad news is the H data is showing a weird pattern.
Either the data is time lagged or the GPS is extrapolating in some way.
I did not notice variations in the RAW GPS data.
Next..
Do the drive test with RAW GPS data
Plus stuff from Aug 1
Aug 4
Picked up a ParkZone powered glider for long range testing
Another GPS module
IDEA: project hobby laser with modulated output > sparkfun
e.g. http://www.instructables.com/id/Send-Music-over-a-Laser-Beam/
Tested the DIRSS optical proximity sensor. Actually, it can give both analog
and digital (serial) output. The analog works fine but the output is logarithmic - it's ok
for my purposes.
Tested SRF01 ultrasonic module. Works with an edited version of the demo program.
srf01_edit.pde
sends serial data to the Arduino monitor. Got it to display readings in cm
Decided to use the Optical sensor with BS2 and ultrasonic with Arduino
Aug 5
Picked up Parallax GPS unit for comparison plus some Xbee modules for
ground station (1.5 mile range)
managed to reset the EM406A GPS to 9600 NMEA mode using SIRFDemo program
Performed a second H resolution test on EM406 using 9600 NMEA mode. Better continuity
but still produces H drift
Successfully connected Parallax GPS > ready for testing H resolution
IDEA: use "Processing" to test XY sensor
IDEA: use picaxe 8M or 14 for ADC and Passthrough (like MUX and XY sensor)
there is a nice 8M dev board with servo connections
LAT & LON
http://istp.gsfc.nasa.gov/stargaze/Slatlong.htm
Aug 6
Did some testing of the Parallax GPS but lost sat-lock while driving
Focussing on simple proximity activated program on BS2
IDEA: Use Parallax Ping sensor with Servo bracket
Aug 7
Had no end pf problems with both SRF01 and DIRRS rangefinders. Noisy and intermittent output..
Solarbotic kindly refunded my $ (SRF01). The DIRRS I will convert to analog output for Takeoff use. Got the analog cable
Picked up the Parallax Ping))) and a LV-MaxSonar EZ1
Both worked beautifully. It seems simpler to use pulses than serial info. This meshes nicely
with the Servo control.
Can finally see some light at the end of the tunnel.
Decided to work on the simplest of designs >
keep plane at setpoint height then adjust setpoint till landed safely
add more complexity later
'v1.1 Aug 7, 09
'building prototype using BS2 Stamp Stack
'range of servo pulse is 250 TO 1150 which translates to 500uS to 2300uS
'center value is around 750 which translates to 1500uS
'Ch5 switch up = 1037, down = 484
'Ch2 elevator range 550-950, centered around 750, adjustable offset +/-50
'6pm
'Got basic input of Ch2 & Ch5 with servo control and height sensor
'Got feedback loop working
'TODO:
'test On plane For servo reverse and correct operation
'remove DEBUG lines and check loop speed
'power supply for ping sensor
'v1.2 Aug 8, 09
'built physical computing prototype on BS2e
'operation ok in test lab
'Test in plane - Ch5 passthrough ok, autoheight jumpy
'test here with BS2 and user input for proximity
'removed pauses for field testing. This works and got rid of the "jumpiness"
Aug 10
Got the working prototype into the plane but encountered limitations when testing. Bug is that program takes some time to activate. Investigating.
It seems that the servo load is reseting the processor. This only happens in the bypass mode. Also, the powering the
sensor from the regulator on the processor may be causing a problem.
HVWTech SKU's
5V 1A Switching voltage regulator
(SKU# 50210)
$17.45 USD
MaxSonar-EZ0
(SKU# 35231)
$27.45 USD
PICAXE-08M SMD Project Board
(SKU# 28517)
$12.45 USD
PICAXE Programming Cable (USB)
(SKU# 28405)
$21.95 USD
Reflecting on the "flight testing" I'm realizing that takoff is as complex
(if not more) than landing. The plane has to be constantly corrected for drift
in the steering, wait for lift and then ease on the up-elevator
IDEA: use the vibration sensor to detect lift in takoff, use GPS to keep plane steady i.e. control the steering and rudder based on pre-programmed coordinates,
perhaps use the Co-pilot (only aileron) to stabilize
TODO:
check reversal of front landing gear for stability
Check reseting problem to see if it happens with processor in plane
Check if Voltage regulator will solve the problem (possibly use a digital buffer)
***** Need a reset button on the BS2e
Aug 11
Solved reset problem (See code)
Thought through auto takeoff by autoland mode with elevator brought down and released slowly
Did pseudocode for Straight Line flight based on Parallax GPS
TODO:
test "fly straight" on car
test Ardupilot 1.0 on car and glider (2.0 can work too) http://diydrones.com/profiles/blogs/getting-ready-for-ardupilot-20
test Autotakeoff and Autoland with hop mission
practice flight with microlight Sukhoi
test Ardupilot 1.0 with Apprentice, then add autoland
First doc on Hardware setup for Ardupilot 1.0 and 2.x
http://diydrones.com/profiles/blogs/ardupilot-assembly
ll=51.151258,-114.207403 for landing site
ll=51.151991,-114.20647
Aug 12
Thinking of adding my autolander between FMA copilot and RC Rx on 1.0 setup
(See http://diydrones.com/profiles/blogs/ardupilot-assembly)
Ch5 will toggle both Co-pilot and autolander
Ch6 will toggle Ardupilot
Test Ardupilot with car and replace RC with Futaba 6 Ch
Car test
ll=51.128472,-114.250152
ll=51.127852,-114.250683
ll=51.127903,-114.251692
Loaded Waypoints in v10
car test failed. It wandered aimlessly
Tried changing reversing the servo. Nothing
Tried setup in plane. No intelligible output. The rudder flipped
in one direction with no apparent pattern.
Getting frustrated with Ardupilot..
OK, some investigation showed that my GPS normally operates at 9600
even though v10 code sets it at 4800
Seems to give an intelligible output now with bearing and distance to WP making sense
New problems:
small negaive values of height show up as unsigned huge numbers
after a while, the values drift
Rudder instructed to move in jumpy increments and flips between +25 and -35 degrees.
May still be worth another field test..
Aug 17
did another field test but getting battery restart problems on car platform
IDEA: independent power supplies
AP + Steering on small battery
Main power/motor with direct speed control
repaired micro plane platform
picked up multiplex microjet for testing vtail mixing
Aug 18
designated SITES for testing
SITE A > car park behind Supermarket - waypoint testing car, plane without wings
and micro plane
SITE B > large park closeby - good for heli and small plane. grass too rough for
car
SITE C > main test site for autolander - roads under construction
SITE D > nose hill park - good for long range tests of AP
IDEA: navigation in high wind with course-over-ground vs throttle
tested v1.6 autolander at SITE C
again, wind was quite strong
autolander at "Takeoff" mode needs adjustment of the elevator
it caused the plane to jump during the hop test.
a second pass go the plane off the ground then wind crashed it. seems ok
need to straighten the landing gear
moved on to powered glider at site D
had a few test flights. managed to return to the ground safely but again the
high winds are a challenge. got some real altitude with the last flight
then went down out of sight. found it & decided to call it a day.
IDEA: homing beacon or wireless GPS signal for lost planes
IDEA: start a blogger and youtube account for project stuff
worked on "fly straight" program. course and bearing approach made simpler
by simply using "distance from straight" line approach.
needs testing on car - my prog & Ardupilot
looked at pwmpal and parallax servo controller on HVWtech
Need a separate prog for "takeoff"
tune wheel vs rudder
perhaps add wing stabilization and straight-line rudder/steering control
OR
develop "throw" type settings using landing prog (should work with glider)
Aug 20
AP 23 out
new waypoints
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124834,-114.249455&spn=0.000682,0.001738&t=h&z=19
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124597,-114.249345&spn=0.000682,0.001738&t=h&z=19
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.125036,-114.248916&spn=0.000682,0.001738&t=h&z=19
Aug 21
IDEA: use microjet in Time Trust Trials - Roll stabilize with ultrasonics, use my flystraight algorithm for rudder
perhaps usereversible prop!
This would require 2 sensors and AL2x software
Nice Arduino hacking info
www.freeduino.org
lookup math.h in arduino docs and implement "flystraight" routine
Tests ready to go:
Car with AP23
Apprentice with AL20 (use SS2 and power pings with pins)
Then...
Radian with AP22 + AL1x (Use BS2e then try PICAXE)
Microjet with AP23 + AL20 (Add tail rudder & motor)
IDEA: eagle files for Air-stamp and V-Stamp boards
IDEA: prototype for CG heli w GPS
GET: linear sensor from parallax > horizon detection
GET: 2 small servos and reversible prop kit, roll of servo wire with ends
Aug 23
IDEA: Home security robot
crawler + "legs" to assist in climbing stairs
Tested car with AP23 AGAIN. No luck. Tried reversing roll variable, moving outputs.
At least the Throttle works with independent power. Getting a GPS lock @9600 baud
4800 baud did not give a GPS lock
Nice site for Roll, Pitch and Yaw
Rudder controls Yaw
Ailerons control Roll
Elevator controls pitch
Aug 24
Fixed the error formula on my "flystraight" algorithm.
Hooked up Parallax Optascope
Looked at signals from GPS 4 pin header. 5V, GND, TX, RX
Connected to TX, GND on the FTDI interface
TX shows Ardupilot output
Rx shows raw NMEA output
Both are @9600
Tried to program GPS while connected to Ardupilot. Does not work because Ardupilot is sending its
own signals.
Checked VCC out of Ardupilot. Reading 5V but this is because the battery is @5V. VCC should read the battery level
TODO:
test "flystraight" in Arduino code (won't run easily in BS2 because of floating point math - see below)
debug signals in AL22. Suspect digital buffer needed for servo signals
investigate "trainer" signal in Spektrum transmitter
get AP to work at 4800 baud so we can send NMEA data from plane to ground (did it!)
http://www.phanderson.com/stamp/
nice link on bs2, adc0831 and picaxe 8m as slave processor
Using Bs2 for coordinate math?
Sine function accepts 8 bit angle and returns a 16 bit answer
Variable up to 65535
If you use a resolution of 0.1m on the GPS then you are limited to about 6.5 km or 3.2 km for +/- values
result is in the range -32767 to +32767
Need to demonstrate correction of rudder (plane) or steering (car) relative to a defined straight line.
Aug 26
scope capture of signals.
period and amplitude changes - see scope folder
rx - 3v, 45hz, duty cyle 4-8%
bs2e
micro, 5v, 22.7-45 hz, loses every other pulse
micro with ch5 on, 740us on, 3.68ms off
bs2
16 hz, ch5 off
2 hz, ch5 on pulse width 124ms
Nice article on Tx trainer signal
http://www.geocities.com/BourbonStreet/3220/servotx.html
Can use this for Modulation of serial commands to RC aircraft in flight
Aug 27
fixed bs2 autolander for Apprentice. ready for flight test and tuning. needed longer delay in passthrough mode
Ardupilot board - writing my own software
got all LED's, inputs and outputs to work i.e. servo in and out with MUX
Lovely article on 'Duino with lots of links and discussion
http://www.urbanhonking.com/ideasfordozens/2009/05/why_the_arduino_matters.html#comments
Aug 28
Got parallax GPS to talk to Arduino
http://maps.google.ca/?ie=UTF8&ll=51.123135,-114.249079&spn=0.002539,0.006952&t=h&z=17
51.123136,-114.249080
checking resolution of GPS - 6 decimal places on LAT/LON, ok
Lost site c to contstruction :(
Investigate site near home
need GPS waypoints to check flystraight
using front and back of the house.
51.123364,-114.249288
51.123134,-114.249082
51.123278,-114.248634
lat is Y
lon is X
Parallax GPS giving bad resolution. NMEA values look better.
Got it working!
Now to calculate distance and error
Got a valid error signal
Need to add gain and waypoint switcher > got that working
Need to tune gain
measured waypoints for car test
51.12456, -114.24900
51.12488, -114.24948
51.12520, -114.24862
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124337,-114.24909&spn=0.001364,0.003476&t=h&z=18
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124829,-114.249487&spn=0.001364,0.003476&t=h&z=18
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.125017,-114.248918&spn=0.001364,0.003476&t=h&z=18
Data for site A
wp_lat[1]= 51124204;
wp_lon[1]= -114248912;
wp_alt[1]= 150; //meters
wp_lat[2]= 51124848;
wp_lon[2]= -114249456;
wp_alt[2]= 200; //meters
wp_lat[3]= 5112508;
wp_lon[3]= -114248872;
wp_alt[3]= 150; //meters
wp_lat[4]= 51124848; //enter home
wp_lon[4]= -114249456;
wp_alt[4]= 150; //meters
Data
wp_lat[1]= 51123364;
wp_lon[1]= -114249288;
wp_alt[1]= 150; //meters
wp_lat[2]= 51123134;
wp_lon[2]= -114249082;
wp_alt[2]= 200; //meters
wp_lat[3]= 51123278;
wp_lon[3]= -114248634;
wp_alt[3]= 150; //meters
wp_lat[4]= 111; //enter home
wp_lon[4]= -111;
wp_alt[4]= 150; //meters
Gain too high and car drives in circles
IDEA: use adaptive gain and sliding window plus extrapolation
find center pulselength of servo
focus on glideslope and direction (like ILS), leave navigation to AP
don't forget the SIMPLE one transducer lander based on PICAXE
Aug 31
Did not get to enter Time trials on DIYDrones (sigh)
However, I finished the Microjet platform and wrote BS2e code for flight stabilization in takeoff and landing.
Checked out football field site for testing. They formally lock up at 10pm.
Can't wait to flight test tomorrow.
IDEA:
use small "jerks" on servo instead of constant turn.
develop a "calibration" program or mode to get straight path for car.
can use calibration for plane BUT must be adaptive for wind. may use COG.
need math to find best circle through a set of x,y coordinates.
also need a "servo buffer" which accepts a pulse width and repeats it
Photodiodes from Active, sparkfun or hvw
Sept 1
Interesting interface for controller to pc
http://www.simblaster.com/servlet/StoreFront
flight test failed :( crashed within 15 ft. not enough speed and turned to one side..
even have video!
ah, well. back to the old drawing board as they say. re-design cycle.
nice refs for patents
http://www.patentstorm.us/patents/4979154/description.html
http://www.freepatentsonline.com/4979154.html
convert units (GPS)
http://www.unitjuggler.com/convert-speed-from-kt-to-ms.html
Sept 2
Went flying with Todd. Intention was to check the functionality of the prototype
landing assist module. My apprentice had a loose servo horn connector which made it lose
control :( What a week!
Hoping to do some simple testing with a ParkZone SuperCub.
Sept 3
weather is against me today
instead, worked on GPS guidance and improved program for 2 sensor stabilization on Apprentice
interesting arduino baloon project
http://nw5w.com/journal/?cat=12
Educator in electronics ponders the arduino
http://falconphysics.blogspot.com/2008/02/arduino-or-picaxe.html
Sept 7
New TTT on Oct 4!
rewrote "Flystraight". Getting a nitro (gas) plane for testing.
Looked at Diydrones parallax UAV. He used XY coordinates with OR for hit (instead of circle).
Sept 9
home depot
51.107566,-114.240381
51.107542,-114.239777
51.107818,-114.239767
wp_lat[1]= 51107566;
wp_lon[1]= -114240381;
wp_alt[1]= 150; //meters
wp_lat[2]= 51107542;
wp_lon[2]= -114239777;
wp_alt[2]= 200; //meters
wp_lat[3]= 51107818;
wp_lon[3]= -114239767;
wp_alt[3]= 150; //meters
Tested car at Home Depot site. "Turn" activated a few times but the turn circle seems too tight. A few things fell off while testing (Radio TX and RX)
IDEA: use the compass module to give direction data for small turns, increase the turn radius. Log data for GPS while
driving and executing "turn" and "nudge". Secure the payload better.
Looked at data sheet for multiplexer. It can handle only 2 inputs at a time. This seems ok. can always use 2 chips for 4 inputs
IDEA: use gps in and around the house to get an idea of the resolution
IDEA: work with sliding window for x, y and z data
Sept 10
Flight tested LA (landing assist) on apprentice. OK flight without. High winds on test takeoff - plane dive
Need to tune landing assist so it does not correct for above Setpoint (just below). This may produce a "bouncing" effect
before stabilizing. We can add damping later. Try Landing only then takeoff - different parameters
hvw
voltage regulator
voltage and current sense for battery
http://franson.com/gpsgate/ > interesting way to share data with multiple apps
prods:
1 - single ping landing assist
2 - dual ping landing assist
3 - autonomous landing
4 - computer assisted landing - training cable
Sept 12
found nice practice site near Bearspaw school
Sept 13
repaired Apprentice
re-wrote AL
http://www.robotshop.ca/New-arrivals/parallax-servopal-dual-servo-controller.html
Analog input
Arduino - 10 bit
Picaxe - 8 bit
1023 could be mapped to the useful range of an 11.1V LiPo with an Op Amp
http://www.siliconchip.com.au/cms/A_104400/article.html
PICAXE in schools
IDEA: use charging plug to monitor voltage
Passive flight monitor with ground station
http://www.electronics123.com/
http://www.rangevideo.com/index.php?main_page=product_info&cPath=8&products_id=98&zenid=244b0cd77d18aed28b6cb4a7860ae237
Sept 19
IDEA: Parallax autopilot board
Need for simplicity, again... Too many options and stuff too complicated
Q - simplest landing assist?
A - bs2 with one sensor
Q - simplest autolander?
A - Arduino with Co-pilot stabilization
Q - simplest monitor?
A - GPS with XBEE
All can be modified later.
Q - Simplest product
A - landing assist using picaxe and MUX
Sept 17
Test Compass module on BS2 using WAM hardware
Check out Parallax new SD reader $14 !!!
OLED serial display on Sparkfun
Sept 18
stil getting errors on ground detect
seems to be rooted in issues with nested if in pbasic or
Sept 19
Test flight on Easystar - ok
Compass and ping on Arduino
http://www.arduino.cc/playground/Main/HM55B
http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor
http://antipastohw.blogspot.com/2007/12/arduino-with-parallax-sonar-sensor.html
http://www.arduino.cc/playground/Main/MaxSonar
http://arduino.cc/en/Tutorial/Memsic2125?from=Tutorial.AccelerometerMemsic2125
http://antipastohw.blogspot.com/2007/12/arduino-with-radio-shack-parallax.html
GPS
http://www.ladyada.net/make/gpsshield/
http://www.arduino.cc/playground/Tutorials/GPS
http://www.arduino.cc/playground/Learning/Tutorials
includes a ref to EM406 plus other useful tutorials
Sept 20
rewrote AL for arduino (landassist_00)
version of flystraight including compass (flystraight_17)
TODO:
create a flat circuit holder to mount on the car (test flystraight_17)
try Co-pilot stabilization in Apprentice - did it! worked great!
add landassist_00 to Apprentice
try AP with EASYSTAR
fun > try synapse and flying wing with reverse/hover
start building Beaver
IDEA:
use LT-40 kit to build a long distance UAV for search and rescue
need rangevideo FPV set
http://www.rangevideo.com
use processing to interpret landingassist00 data
get xbee working for GPS data
IDEA: use OLED for HUD > Skiers, rc fliers
Oct 3
tested compass on arduino
first flight with camera on Easystar
todo:
transfer electrics from Apprentice to Quattro
test simple AL on Easystar
See youtube for aereal video using Quattro
Nice flight over the Badlands in Drumheller, Alberta
Plane crashed due to an broken servo horn but can be repaired
2010
May 15
It's my bday. Not much done since last time since I lost my work area
due to our recent addition (Jodie)
Now re-inspired to work on the autolander project since it is now
a TTT competition on Diydrones. Sparkfun had a similar event giving
extra credit for autonomous landing. The Diydrones competition seems
more up my ally and I've clarified the rules with the organizers.
Now dusting off my old microcontrollers. The last program I tested
was the ground rover with Ardupilot and Parallax GPS with wireless comms.
Re-aligning the wire-bridge between the Arduino and my (HVWtech) ftdi
using the CTS connection as a guide
Getting comms using Hyperterminal with "Flystraight03" settings
Waiting for GPS lock
results seem to be in line with "Flystraight17" program - that
one included routines for the compass. Loaded but never tested.
Readings can be seen at Com8 (FTDI) using 4800 baud
Got compass working for low speed orientation
Todo:
Wiring for proper mounting in car or plane
Math for low-speed motion
Testing on ground
Add proximity sensor and vibration sensor (may need to offload to stamp)
then send all the readings in serially
perhaps group GPS, vibration and compass - leave proximity
as analog or group with others as serial
Test the final taxi/stop routines
Test the landing routine
May 16
uncovered a major error with my direction routines.
now fixed
tested servo controls, added ramp functions
May 18
Encountered a reset problem with the rig
turned out to be the servo's require more power
will work with an external battery when servo's are hooked up
May 20
need to set up wireless comms
program XBEE's using Sparkfun XBEE explorer boards
can test with hvw ftdi and lilypad
see youtube http://www.youtube.com/watch?v=VzgUtZyiHhE
feed sample angles to "glideslope" program to ensure proper treatment
of large or negative angles
try various lat/lon coordinates to check the correct operation of
"error" value (change the order of waypoints to use different orientations of "error". Rotate compass completely)
add programming for speed and altitude control
build and test contact (vibration) sensor
build "brakes"
integration testing
add wireless groundstation comms
May 30
Wow!
finally got the car navigation to work
installed GPS and Co-pilot in plane
startup procedure:
power on PLANE
power tx
power xbee rx
Use Google earth or MS Streets and Trips to plot realtime data
Use GPS visualizer to plot nmea or other log files
Track options > Altitude mode: absolute (for flights)
Waypoint options > Altitude mode: Absolute floating
Consider making the delay for Rudder pulse proportional to speed
if using the ArduIMU you need to do a MOD
http://www.diydrones.com/profiles/blogs/how-to-remove-the-high-pass?id=705844%3ABlogPost%3A122162&page=2#comments
May 31
did a flight test (manual) to test telemetry. XBee performed to spec and
was able to get good plots of the flight path from Google Earth.
had some problems with underpowered throttle. turned out to be a bad
battery so replaced it.
June 1
want to send up plane under full autonomous control with telemetry.
my own version of the software for ardupilot uses Parallax GPS
with a simple servo routine. this needs to be tested when it works
alongside the co-pilot stabilization hardware
also need to test ESC control from ardupilot
if this fails, will need a "buffer" program (from BS2 or picaxe say) that accepts
pulses or serial comms and send constant updates to servos
also, the system will eventually end up in a plane with ailerons
i should just test the rudder and throttle/elevator controls WITHOUT the co=pilot
the final system will use co-pilot for ailerons and perhaps elevator. will experiement with throttle/elevator combination for ALT control
plan to use Rudder and Throttle control for TO/Landing - may need to
inject signals into stabilization (Aileron/Elevator) - will test
on Spektrum, use channel 5/6 for ardupilot/stabilization
perhaps I will stick with the Easystar and just add the prox sensor
to tune landings
Throttle < Ground_speed (add BS2 for buffer)
Elevator < altitude
Rudder < heading
(tune gain and delay, even leave in position if error is too large)
re-wire with wire-wrap
perhaps re-write code for NMEA parsing (try it with nmea.h and servo.h)
routine for calibration
routine for autoland from "anywhere" (try with Radian and camera)
NOTE: XBEE can be powered from battery
(GPS should still be powered from Ardupilot +5V)
Still need to write "Processing" code for XY and Z plots
use 2D primitives and serial input
later add image from Google Earth
idea:
self powered GPS location transmitter from > Em406 GPS, XBEE & +5V power
BS2 pseudocode for "buffer"
old value = zero pulse width
loop:
pulsin from ESC signal > new value
did it timeout? Y>use old value N>use new value
store new value in old value
pulseout
delay 20ms
June 3
Problem when Ardupilot is feeding co-pilot (wants a continous servo signal)
Looked at Ardupilot firmware 2.6 to solve this
If this works then all I will need is an "over-ride" program for the elevator. This could be tested with Ardupilot hardware
Pseudocode for ground detection (elevator over-ride)
//test this with low levels
setup "listener" port for elevator
put Ardupilot board in "passthrough" mode
setup ground_detect height
loop:
read elevator servo pulse > elevator
check elevator (use analog signal)
if height < ground_detect
{
// ground level has been detected
go to ground level routine();
}
else
{
keep board in passthrough mode
add an appropriate delay // test with scope
}
ground level routine()
calculate elevator signal based < elevator pulse, height
e.g. elevator = elevator - (k*height);
First test this using Ardupilot board
then transfer to arduino mini + MUX chip
If using code 2.6 then use ConfigTool or Waypoint Writer for entry
Will need to cut the XY sensor wire and create a "pluggable" connection. That way you can use the Co-Pilot OR Ardupilot
IDEA: You can try to send GPS signal also to the Arduino MINI for
ground level Landing and Taxi routines
2:39 AM 6/6/2010
Ardupilot 2.6 is assembled and ready for testing
12:53 AM 6/9/2010
Had a good test flight at Bearspaw school ground. Manual and Stabilize mode worked well.
Fly by Wire was drifting. Power was also resetting.
Solutions:
new header file
trim the plane in flight
adjust the CG so it does not climb
add a capacitor to the PS
Feel ready to try AUTO
Also, I want to add the proximity sensor and modify the altitude
routine to use "home_alt + prox" if we detect the ground
Code in Navigate TAB, get_altitude_above_home(void)