Friday, April 16, 2010

Orbital gyrocompass: pretty awesome

So, on a satellite, it turns out to be pretty easy to detect the horizon and thus calculate pitch and roll angles. Yaw is harder. However, if your satellite is orbiting, then your LHV (locally horizontal-vertical) frame will have a steady-state rotation around the LHV frame's pitch axis, which creates gyroscopic coupling between roll and yaw. That is, a term containing the orbital rate and the yaw angle shows up in the body frame's roll rate, and a term containing the orbital rate and roll angle shows up in the body frame's yaw rate. So if you have a measurement of roll angle and roll/yaw rates in the body frame (and you know the orbital rate), then you can estimate yaw angle!

The even awesomer part is that when the dust has settled (Prof. Rock demonstrated this with a complementary filter; Bryson uses "a kinematic estimator (a steady-state Kalman-Bucy filter)", which I am having some difficulty reconciling with my conception of a Kalman filter), you end up constructing the yaw angle estimate by adding a bunch of lowpassed measurements! That's pretty cool. It's like my IR sensor + gyro estimate of angle for the Segboard project.

So is this applicable to the helicopter? Well, let's look at the equations for the orbital gyrocompass. The linearized relationship (discarding higher order terms) between Euler angle rates and angular velocity in a circular orbit with nominal orbit rate (and therefore nominal pitch rate) n is:
  • dΦ/dtp + nΨ
  • dΨ/dt ≅ r - nΦ
where Φ and Ψ are roll and yaw angles, and p and r are the components of the angular velocity vector in the body roll and yaw axes, respectively. The  and  terms come about because unless the body and LHV frame pitch axes are identical (i.e., Φ,Ψ = 0), the orbital rotation in the LHV pitch axis shows up in the angular velocity vector, even if dΦ/dt and dΨ/dt are zero.

Of course, the fact that
n is quite constant and Φ
, Θ, Ψ are perturbational quantities only (i.e., small) makes the math a lot simpler, but the concept should be generally applicable: if an axis and rate of rotation is known (n about the LHV pitch axis, in this case), and we know an Euler angle (roll Φ), then the gyroscopic coupling makes the unknown Euler angle (yaw Ψ) a major component of the discrepancy between the known Euler angle rate (dΦ/dt) and the corresponding component of the angular velocity vector (r).

You know. Unless large angles and high rotation rates bring the unknown Euler angle or Euler angle rate inextricably back into the equation. Or ill-conditioned transformation matrices (gimbal lock!) ruin everything. Also this is all hoping that the magnetometer will produce a clean, trustworthy heading measurement.

Also it looks like I will have to do some SMT rework to remove a highpass filter...

update: Looking closer at the schematic for the board I bought (v14), it appears the RC component values for the HP are 0 ohm and "Do Not Place", so no rework needed!

No comments:

Post a Comment