Diary August2005
From Albatross
This article is part of the diary. For all diary entries please select by month below.
|
| 2006 • August • July • June • May • April • March |
12th December
- talked to David Shaw about doing a long endurance flight, especially engines, wings, and fuel injection. Some engine ideas are brainstormed on the Endurance page.
- We want to try fuel injection with a inkjet assembly from a cheap printer; David bought an Epson C45 printer that we will soon disassemble and analyze. Its quite difficult to find technical information about inkjets, but from what I can gather, a normal inkjet module should be able to atomize about 250 mL of fuel per hour (just enough for a very lean running efficient engine). Apparently most Epson printers use piezoelectric actuators to form the ink droplets, whereas most other brands use thermal bubbles, which may not work with fuel (they apparently need water-based liquid).
- We are also going to try making a power takeoff on the back of Davids Enya four-stroke engine and attach a brushless DC motor as an alternator with a 3-phase 6-diode rectifier.
9th December
- We are now located at www.albatross-uav.org.
- SVN is located at https://svn.greenbirdsystems.com/albatross/
1st December
- Site back up - again. We have a new VPS host (so the site should be faster now that it is not run from a home DSL link!!). We will soon have a new URL, albatross-uav.org.
25th October
- Site back up, after a bunch of annoying server problems -- and exams, so no time to fix them... SVN is down for now though.
29th August
- Came across Spread which seems to have some similarities to our UDP Datagram system, and could be useful in the future (as it appears to solve some of the problems we are having with our system). http://www.spread.org/docs/docspread.html
21st August
- David Shaw helped me mount the servos to the side of the fuselage (much further back than they were) and reconnect the control surface linkages, install the throttle linkage and connect it up, mount the radio gear, and power switch.
- David flew the Kadet airframe without our system in it (test flight). Performed perfectly, with the exception of the engine - it keeps cutting out. We suspect the problem is with the fuel system, so next time we will overhaul that too.
- I installed the Albatross electronics (no connections to servos though), and we flew it (the first flight since OpenGC and so on).
- Climbed to over 1200 feet (about 1100 feet AGL) and got to about 55 knots (~100 kmph; going down wind). It cruises at half throttle at about 30 to 40 knots (~55 - 75 kmph) but we didn't know the wind speed and these speeds were (or may have been) on the down wind legs. These speeds are all speeds over the ground (from GPS). The current fuel tank is about 500 ml and lasts about 20 to 30 minutes, giving us an approximate range of about 25 km (no wind).
20th August
- Fabricated a engine mount adapter plate from aluminum stock to mount our MFA Panther 0.46 engine on to the aluminium engine mount on the Sig Kadet Senior airframe (which was for a Enya 0.60 four stroke engine. The engine mounts about an 4 cm further forward than it's supposed to (and about 1.5 cm further forward than the Enya engine), which moves the center of mass forward and makes it possible to load the plane up with our electronics (which are positioned just on and back from the center of mass). Also removed the old servo mounts in the middle of the fuselage, moved the fuel tank slightly further forward, and patched up some slots/holes around the engine mounting.
14th August
- Tried to load it all into the plane again and go for another test flight, but for some reason we couldn't get it to fit again.... the only physical change to the hardware since last time was the addition of a connection to a single servo (2 wires) onto the wiring loom, but the wing wouldn't go down properly onto the fuselage.
- David Shaw kindly gave us an old Sig Kadet Senior airframe (with tail dragger undercarriage), so we stripped the engine and servos from our old Sport 40 trainer airframe, and prepared to mount them onto the Kadet.
12th August
- Project inspections! No (major) technical difficulties which was good.
9th August
- Connected HWD back up to the servos as the precursor to control of the plane in the air. The attitude control estimates seem to be ralatively robust.
- Did a demo inspection with our supervisors. Didnt go to well. Its quite hard to convey the scope of the project in 4 minutes without large amounts of technical detail.
- Drew 4 boxes on the screen in an attempt to make a nice flowchart to succinctly describe the project.
8th August
- Did a presentation of our project, which was good practice for the final inspection
- Worked out the budget of the project so far at an impressive $3509.50 of which $2209.50 was from personal funds.
7th August
- The flight was a no-go due to the weather. Oh well
- We built a more recent MMC system and tidied up all the bugs with network not coming up properly and this causing the UDP comms to not work.
- Wrote a nice little script to place the logs in different directory each time the system boots
6th August
- Getting ready for the filght tomorrow.
- Added a simple SupervisorD which will be integrated with a simple shell script to kill and restart the onboard elements in the same manner as run.sh
- Added the ability to send said supervirsor Start all, Stop all, and Restart all, LWC to the supervisor daemon.
- sTill having trouble with AccelX, which unfortunatley means that we cannot get a good pitch estimate yet.....
5th August
- First attempt at a kalman filter (normal linear KF, no fancy EKF or anything). It doesnt actually do anything yet. It was more an excercise in defining the stare variables and the data flow between them.
- As the kalman filter will not be implemented in time another complementary filter was developed. Hugo: Fixme
4th August
- Put up a Wiki page on how to install OpenGC, i.e. what libraries and tools to install and how to build.
- Cleaned up controls to enable/disable controllers in the GUI.
- Added log packet re-emitter.
3rd August
- I finished the OpenGC-based cockpit application. It displays roll and pitch on an artificial horizon, yaw/heading (plus GPS heading) on the mini-HSI at the bottom, altitude (right hand side), airspeed (left hand side), vertical speed (far right with needle - To do), GPS mode (2D/3D and number of satellites in view - above left of artificial horizon), Battery voltage (above right of artificial horizon - To Do), and autopilot on/off status (center above artificial horizon - colour of text changes to green when the autopilot control loops are engaged). Its not in SVN yet - there are a few build-related problems to resolbe first (hardwired paths etc.). The corruption in the screenshot is because OpenGC doesn't seem to be double buffered and the screenshot program is captureing it mid frame-redraw. However, there is no visible flickering when it is running. The anti-aliasing still doens't work (as in the previous screenshot) - don't know why.
- Fixed mkfilter to be a little more up to date (Debian/Ubuntu versions of GD graphics library have no GIF support because of patent problems, so I switched it to use PNG format; also fixed the Makefile).
- HWD, the Simulator, and StateD now respond correctly??...... to sending PID gains over the air.
- Added a LWC: LWC_ENABLE_DISABLE_CONTROLLERS which is linked to the GS.
- Then the auto mode button in the GUI sends a AUTO_MODE_MESSAGE if prev in manual mode. The A_M_M is for the benefit of the supervisor ONLY. The Enable Disable controllers message is whats actually used in practice when tessting and evaluating controllers. This allows individual controllers to be enabled or diabled and not affect any other parts of the system.
2nd August
- Imported mkfilter into svn which is a command line tool to allow rapid generation of FIR/IIR filter constants (poles/zeros) in a form suitable for immediate includion into other programmes. It generates valid C code for the IIR filter. Notes:
- It was a mission to get working
- You need libgd2-dev to build it
- gencode will need to be modified to fit into our workflow, such that it accepts a few command line params, one will be the function name. Then it can be included into the make files something like this Done
./mkfilter -Bu -Lp -o 4 -a 3.0000000000e-01 0.0000000000e+00 | ./gencode "INS_IIR_attitude_fusion(float newData)"
which is a 4th order butterworth lowpass @ 30Hz. The generated function could then be called from within stated as
INS_IIR_attitude_fusion(data)
- Have been thinking alot about the changeover sequence when going from manual->automatic, and most difficultly the intermediate stages. My/our priorities for this week need to be realistic and not too ambitious. I believe they are (in no order)
- FPGA code fir encoding AND decoding the rxpwm signal
- Expand the protocol with ability to set PID gains over the air, and enable and disable each PID controller individually. This step will involve StateD (dont calculate it if its not enabled) and HwD (sample it, and regenerate it if its not enabled, if said controller is enabled replace the pilots manual control with the calculated autopilot signal)
- Add enabled tick boxes to the groundstation to allow easy chaging if this
- Decide how the big 'Auto' button will fit into this
- Test Test Test (including another GPS test)
- Mechanically strengthen the MMC plug
1st August
- Reinvigorated after the test flight, and with the upcoming university demonstration of the project, I thought it was time to tidy up the Groundstation program and add more functionality, especially pretty graphics (PFD, maps etc.).
- Cleaned up Groundstation considerably, to move as much "data" as possible out from being inline with the code, and into separate files (the groundstation/data directory).
- Investigated OpenGC, an open-source glass cockpit library (and accompanying demo program). Downloaded the latest version from CVS, and got it to compile (dodgey CMake... what is wrong with autoconf/automake? Oh right you want Visual Studio support... grrr). Made a new datasource called AlbatrossDataSource that receives data from our UDP datagram IPC system (not yet finished, but close). Fought with the CMake system to get it to link against the datagram libraries in onboard/lib. Obligatory screenshot: . There are some as yet unresolved font problems, causing the strange text effect that can be seen in the screenshot. Turning off anti-aliasing solves the problem, but then it doesn't look as nice.
- Investigated Pythonic GPS and Mapping libraries:
- Proj.4 (a projections/cartography library) and Thuban which uses it (from Python) to display interactive maps - both excessively complex for us.
- http://www.pygps.org - two programs, PyGPS and MapView, use Python to display maps and georeferenced aerial photos. Nice simple code, and it accesses quite low-level Gtk and Gdk functions so it should be reasonably efficient.
- Without a pretty GUI to work on I continued plodding along with the C code. Making progress with the general control<->ins<-hw-> data flow and how things will play nicely in both development and operational environments
