Wednesday, May 12, 2010

Helicopter making some progress

Have a lot of integration going now. Have the entire SAS mounted on the helicopter, plugged into the receiver and getting power from the battery. At some point or another, have had the Arduino talking to the AHRS, R/C receiver, servos, and wireless module. Almost ready to start designing a controller. Remaining issues:
  1. Not talking properly to R/C receiver and servos anymore, although earlier today it was relaying commands quite transparently. So will need to debug that; at least I should be able to revert to my earlier code (yay SVN).
  2. Would be nice to get residual acceleration data from the AHRS. Easy change.
  3. AHRS magnetometer is no good anymore. Even just mounted on the helicopter (with helicopter unpowered), the readings aren't right. Don't know if it's the helicopter's own magnetic fields or what's going on; have decided to let it go for now, although I did put a lot of work into it :(
  4. Still lots of noise when the main motor is running. Attitude estimation is fairly clean (because it's integrated), but gyro signal is pretty bad. Haven't had a chance to look at acceleration yet. Yaw axis is much cleaner, though, but it's unclear whether that's due to:
    1. Better sensor, as that axis is on a different chip. Unlikely; I remember it having worse noise than the others in the past. If it is, though, there's nothing I can do about that.
    2. Less electrical noise because it's better shielded. I have no idea whether that's true, but it wouldn't be too hard to wrap the whole thing in aluminum foil.
      Update: checked out the past data; when shielded, I had ±10 deg/s of noise an all 3 axes, unshielded I had the same but ±100 deg/s on pitch (seems kinda extreme, may be a bad experimental setup), and currently I have ±25 deg/s pitch/roll and ±2 deg/s yaw. Noise when off is ±0.4 deg/s.
    3. Less mechanical vibration along that axis. Plausible: that's the major axis of the enclosure and the foam tape is less stiff in shear than in compression. Could double layer the foam tape (decrease effective stiffness), and put it down in pads rather than an entire sheet. Sidewalls to the enclosure would also help, as would rigid mounting for the Arduino board.
  5. Serial communication is dropping bytes. It's not the Arduino-AHRS communication anymore (I fixed that problem; didn't have sufficient delay between end of transmission and driving the SS line high again). The pattern of dropped bytes suggests either buffer overrun in the Arduino's UART queue or in the wireless module. If it's the former, then I might be able to do something about the transmission timing, but if it's the latter, then I just need to send fewer bytes.

No comments:

Post a Comment