Diary July2005

From Albatross

Jump to: navigation, search
This article is part of the diary. For all diary entries please select by month below.
2006 August July June May April March
===31st July===
Albatross finally in flight.
Enlarge
Albatross finally in flight.
  • Today we had our inaugural test flight!
    • Gratefully assisted and piloted by David and Andrew.
    • 1st flight - plane only to test everything is mechanically sound.
    • 2nd flight - plane loaded with a box of the same size and weight as our electronics, and the main battery.
    • 3rd flight - plane with our electronics onboard, but not attached to the servos/Rx.
    • Data recording only - no autopilot stuff yet.
    • Sucessful data collection from IMU sensors. See http://hugovincent.no-ip.org/files/hwd-log-20050731.csv and [1], [2].
    • No data corruption on MMC card.
    • Forgot to record GPS data - oops!
    • Recorded some video of the flights (camcorder).
  • Need to buy an 12 V DC -> 240 V AC inverter for power at the flying field.

30th July

  • Been improving the Groundstation a bit. Details moved to Groundstation.
  • Continual work on the onboard systems including
    • StateD dataflow changes
    • StateD bank angle and altitude controllers hacked in
    • Simulator improvements to play nicely with StateD

27th July

  • Moved SVN directory structure round so that there are trunk and tags directories, and tagged the (approximate) version of the software that was used in Mondays taxi test.
  • Added simple local error message logging that shouldn't every miss messages. It emits the UDP packet, but also logs it to a file on the local (MMC) file system.
  • Played around a bit with the data. FFT revealed no major peaks that need attention, and in general the data looks very good. I will now start writing some sensor data fusion code (simple IIR filter stuff, no time for a Kalman filter before project inspections... unlucky).
  • Added the ability to send datagrams over serial to the supervosor. Now we get fun messages from the supervisor when we go to manual mode, etc
  • We successfully managed to break svn. If you (like us) forget to have everything in a trunk directory at the start, and then want to keep tags in a tags directory you must enter the following style of command or else SVN eats your revision history and any nearby babies
svn move -m "Moved to trunk" http://192.168.0.2/svn/albatross/util http://192.168.0.2/svn/albatross/trunk/
And repeat n times for the number of directories previously in / that you want moved to /trunk 
(i.e. in this example /util is the directory we wished to move)
  • We fixed svn again
===25th July===
All the systems in the aircraft.
Enlarge
All the systems in the aircraft.
  • Got all the electronics to fit into the airframe and taxied the plane around Hugos lawn to collect some vibration on the sensors with the aircraft in normal operation. This was a major milestone as it showed;
    • GPS working in the aircraft with all noise sources in close proximity.
    • All major software systems working, including:
      • Datagram architecture.
      • CommD and packet forwarding over the radio working correctly.
      • Groundstation displaying accurate information.
      • HWD successfully reading data from the IMU and the GPS.
    • It physically fits!
    • Something tangible to show people.
  • There were a few issues however which need to be addressed:
    • Snapper reset once due to .......? Need a better Error and Issue logging/alerting system.
    • MMC corruption when it was bumped/not removed properly/loose connections/???
    • UDP packets dont work unless eth0 gets up/down/route add in the correct sequence. FIXED
    • The jury is still out on the noise in the readings... Update: see below in this entry.
  • Updated the Gallery.
  • Starting to process the data we collected during the systems and taxiing tests today. We collected two major data tables, the larger of which had 33,000 rows of data, recording to a file on the MMC card, and about 1,700 datagrams went out over the radios to the Groundstation.
  • Noise initially seems OK, but it is painful sifting though a dataset that brings spreadsheet programs to their knees.
    Some data of acceleration vectors.
    Enlarge
    Some data of acceleration vectors.
  • Added heaps of messages to the supervisor.
  • Started porting the daemons over to use callbacks and while doing so I am adding datagram_send_log_message to lots of places where log messages should be sent. I have so far ported the following to use the callback system:
    • datagram_test_receive
    • CommD

24th July

  • Spent considerable time modifying the aircraft so all the electronics would fit in the fuselage
  • Started implementing the datagram code to use callbacks; while on the positive side this (almost) guarentees all processes will recieve all datagrams, it does remove the finer grained control over CPU usage which was previously held when using the sleep/read/sleep approach.

23 July

  • Writing VHDL code to enable Radio-Control Receiver and Servo control. When the supervisor places the analog switch for servo control in auto mode, the FPGA generates a PWM stream like that sent by the radio-control transmitter, which is injected into the receiver, which decodes it into individual servo outputs.
  • This arrangement requires only two wires to control all the servos from our board, as opposed to 3 wires from each servo from the radio receiver and from our board, along with some kind of switching to change between auto and manual mode.
  • The two wires required need to be added on to the receiver by,
    • removing it from its case,
    • identifying the signal that is the FM received PWM pulse train (before the decoder that demultiplexes that signal to the servo outputs),
    • cutting that signal, and
    • attaching wires to either side of the cut.
  • The Albatross PCB includes an analog switch IC under the control of the supervisor micro, that can switch the PWM output (into the receiver) between the radio-control transmitted manual control (out of the receiver) or the FPGA-generated autopilot output.
  • Hardware fixes needed to out board to get this going:
    • Cut the track from RX_PWM into the FPGA (Snapper pin IO4_T04) - it would need level translation, but at this point we don't need the FPGA to listen to the radio-control transmitters signal.

22nd July

  • More work on the supervisor

21st July

  • Wrote a whole lot of code for the supervisor to enable it to snoop on the serial comms, detect override packets, and take the appropriate action regarding snapper. This may entail
    • Changing between auto and manual mode control (switching the rx pwm line...)
    • Emergency override - Hold snapper in reset and go to manual mode

20th July

  • Went into bluewater systems to sort out the MMC issues.
  • Ran a hour long tests on commd over serial port to check the there were no locks or loss of sync with the data.
  • Improved LogD considerably to now support adjustable variable fequency logging on a per sender basis.
  • Refactored HardwareD to use alarms to give constant adjustable frequency reads from the FPGA.
  • In conclusion, a huge day of improvements, we had the following major successes
    • GPS now works. We changed the snapper core frequency from 400Mhz to 200Mhz to shift the 3rd (4th??) harmonic at 1600MHz away from the GPS carrier at 1.57GHz. This seems to have solved all of the radiated EMI problems.
    • MMC hardware now working. We had forgotten some pullups. If I had a dollar for every time I had forgotten some pull ups on this project I would now have $11.
    • Data frowarding from aircraft to groundstation using commd and the radios works. It was good to see code which was developed and tested on pc with a serial cable work near first time on the target.

17th July

  • Did alot of research in how I am going to control the plane, and the level of accuracy we must have from the hardware before that point can be reached.
  • More commd improvements. We can now successfully forward data over serial from network.
  • Groundstation improvements now allow us to send light weight commands easier, for easier testing
  • Initial import of the PID code into the state daemon

16th July

  • We think we have got the INS code working. It seems to track the simulator. The translations appear around the correct way.
  • Finished CommD which now allows two way translations between the network and the radios.
  • Groundstation inprovements to allow testing of the control code.

15th July

  • Still trying to sort out integration issues in the INS code
  • We found that it is quite hard to get the StateD loop running at anywhere near constant time so we have decided to use alarm signals instead of xsleep(). This allows us specify a speed for the loop to run at, and detect when it cannot meet this speed. For future we would consider using one of the flavours of RTLinux.
  • Wrote some more code for controlling the Radios

14th July

  • Trying to sort out the issues with stated and hwd and the dataflow between them. We are trying to avoid having to merge the two together as this eliminates the ease with which the simulator can be plugged in and out.
  • Random notes about Snapper and Linux:
    • The ethernet driver does not support a preemptible kernel... its possible that other drivers are not preempt-friendly too. So we can't really use preempt at this point which is annoying cause preemptibility is cool.
    • Need to fix the stray interrupt ignored error (or fix the problem that causes the error...)

11th July

  • Made some progress on stated, including merging in the PSAS code and starting to play with it.

10th July

  • Both of us have been very busy with other university projects over the last two weeks... but here is an update of what we have done.
  • Added some unit conversions and simple math to get output from the IMU in real-world units (so accelerometers output in meters per second squared and gyros output in degrees per second).
    • Data can be displayed in real-time in the Groundstation GUI over the network.
  • Got new radios, new GPS antenna and new GPS antenna connector. Radio's work well, GPS still has some problems.
  • Radio stuff FIXME can communication with the radios in command mode and also talk between radios. There seem to be some intermittent data corruption problems in the FPGA while using the radios (perhaps noise-related). May need to add some (more) shielding.
  • There is a jamming problem with the GPS - it turns out that the 4th harmonic of the XScale CPU frequency (i.e. 1.59 GHz) is close to that used by GPS L1 band (1.57 GHz), and this may be causing the problem. John hot-plugged (!!!) Snapper after the GPS got a fix, but when the antenna was brought near Snapper, the fix was lost.
  • Added in INS coordinate frame conversion and numerical integration code from PSAS (see below). Haven't tested it much (yet).
Personal tools