アート
美容とウェルネス
工芸
文化と歴史
エンターテインメント
環境
食品と飲料
リバースエンジニアリング
科学
スポーツ
テクノロジー
ウェアラブル
The Inertial Guidance Platform
Emma

作成者

Emma

27. 8月 2026SE
27
0
0
0
0

The Inertial Guidance Platform

A rocket must know where it is and which way it is pointing, and it cannot ask. Radio guidance can be jammed and needs ground stations along the flight path; celestial navigation needs a clear view and time; and neither works in the few minutes that matter. Inertial guidance answers the question with no outside reference at all: gyroscopes hold a set of axes fixed in space while the vehicle rotates around them, accelerometers measure acceleration along those axes, and integrating twice gives velocity and then position. It is entirely self-contained and cannot be interfered with. Its weakness is equally fundamental — integration accumulates error, so a tiny constant bias in an accelerometer becomes a position error growing with the SQUARE of time, and the system gets steadily more wrong from the moment it is switched on.
上級者
7 hours

手順

1

Show that a spinning rotor holds its direction

Rigidity in space is the property everything else rests on.

  1. Mount a heavy rotor in a two-axis gimbal so it is free to point in any direction.
  2. Spin it up and note the direction its axis points.
  3. Carry the whole assembly around the room, rotating the frame in every direction.
  4. Watch the spin axis.

The frame turns; the spin axis does not. The rotor is holding an orientation fixed relative to space itself while its mounting rotates around it, and the gimbals are simply allowing that to happen without transmitting torque.

Now push gently on the spinning rotor and observe: it does not move in the direction you pushed, but at right angles to it. That is precession, and it is the source of every counter-intuitive behaviour in the rest of this blueprint.

See the Sperry gyrocompass blueprint for how the same property was used to find true north at sea. The difference in application is instructive: the gyrocompass deliberately CONSTRAINS the gyro so Earth’s rotation forces it to seek north, while a guidance platform tries to leave it entirely unconstrained.

このステップの材料:

Ball BearingBall Bearing4
Brass Round Bar (25mm)Brass Round Bar (25mm)1
Aluminium Plate (10mm)Aluminium Plate (10mm)1

必要な工具:

Metal LatheMetal Lathe
Milling Vise (4-inch)Milling Vise (4-inch)
Dial IndicatorDial Indicator
Digital Caliper 6-InchDigital Caliper 6-Inch
Digital TachometerDigital Tachometer
Digital Angle GaugeDigital Angle Gauge
Clear Safety GlassesClear Safety Glasses
2

Build a stable platform on three gimbals

Isolate a small platform from every rotation of the vehicle around it.

  1. Build three nested gimbal rings, each free about a different axis.
  2. Mount the inner platform carrying the gyros and accelerometers.
  3. Fit pickoffs to sense any relative rotation, and small torque motors to drive each gimbal.
  4. Close a loop that drives the motors to keep the pickoffs reading zero.

The platform now stays fixed in inertial space while the vehicle rotates freely around it, and the gimbal angles read out the vehicle’s attitude directly. The loop is not steering the platform — it is removing friction, driving the gimbals so the platform never has to be pushed.

Three gimbals have a famous flaw. Rotate the vehicle so two gimbal axes line up and the platform loses a degree of freedom entirely — gimbal lock, after which the platform tumbles and the reference is destroyed. Apollo carried a display warning the crew away from those attitudes, and Michael Collins famously suggested they carry a fourth gimbal instead.

The fix is a redundant fourth gimbal, or abandoning the mechanical platform altogether for a strapdown system where sensors are bolted to the airframe and the transformation is done in software. Cheap computing killed the gimballed platform — the mathematics was always possible, the processing was not.

このステップの材料:

Aluminium Plate (10mm)Aluminium Plate (10mm)2
Ball BearingBall Bearing6
Steel Dowel Pin (5mm)Steel Dowel Pin (5mm)6
M5 Cap Screws (20mm)M5 Cap Screws (20mm)12

必要な工具:

Milling Vise (4-inch)Milling Vise (4-inch)
Metal LatheMetal Lathe
Drill PressDrill Press
Dial IndicatorDial Indicator
Digital Caliper 6-InchDigital Caliper 6-Inch
Digital Angle GaugeDigital Angle Gauge
Torque WrenchTorque Wrench
Clear Safety GlassesClear Safety Glasses
3

The drift logger sketch

Upload this, leave the sensor completely still, and let it run for ten minutes.

It first averages 2000 stationary samples to measure bias — whatever a still sensor reads IS bias plus gravity, and gravity is known, so the average removes both. Then it integrates the remaining signal twice and prints apparent velocity and apparent position once per second.

Paste the output into a spreadsheet and plot position against time. A sensor that never moved will report metres, then tens of metres, growing with the SQUARE of elapsed time.

inertial_drift_logger.inoarduino
/*
  Inertial drift logger — bias, single and double integration
  Youblob blueprint: The Inertial Guidance Platform

  Leave the sensor COMPLETELY STILL and run this. It measures accelerometer
  bias, then integrates that stationary signal twice and prints the apparent
  velocity and apparent position of a sensor that never moved.

  Hardware:
    MPU-6050  SDA -> A4, SCL -> A5, VCC -> 3.3V, GND -> GND

  This is step 3 of the blueprint: the point is to SEE the error grow with the
  square of time. Paste the serial output into a spreadsheet and plot it.
*/

#include <Wire.h>

const int MPU = 0x68;
const float G = 9.80665;
const long  CAL_SAMPLES = 2000;

float biasX = 0, biasY = 0, biasZ = 0;
float vx = 0, vy = 0, vz = 0;          // integrated velocity  (m/s)
float px = 0, py = 0, pz = 0;          // integrated position  (m)
unsigned long lastMicros = 0, startMillis = 0;

void readAccel(float &ax, float &ay, float &az) {
  Wire.beginTransmission(MPU);
  Wire.write(0x3B);
  Wire.endTransmission(false);
  Wire.requestFrom(MPU, 6, true);
  int16_t rx = Wire.read() << 8 | Wire.read();
  int16_t ry = Wire.read() << 8 | Wire.read();
  int16_t rz = Wire.read() << 8 | Wire.read();
  ax = (rx / 16384.0) * G;             // +/-2 g range -> m/s^2
  ay = (ry / 16384.0) * G;
  az = (rz / 16384.0) * G;
}

void setup() {
  Serial.begin(115200);
  Wire.begin();
  Wire.beginTransmission(MPU);
  Wire.write(0x6B); Wire.write(0);
  Wire.endTransmission(true);
  delay(1000);

  Serial.println(F("Calibrating - DO NOT MOVE THE SENSOR"));
  float ax, ay, az;
  for (long i = 0; i < CAL_SAMPLES; i++) {
    readAccel(ax, ay, az);
    biasX += ax; biasY += ay; biasZ += az;
    delay(2);
  }
  biasX /= CAL_SAMPLES; biasY /= CAL_SAMPLES; biasZ /= CAL_SAMPLES;

  // Whatever a stationary sensor reads IS bias plus gravity, and gravity is
  // known — so subtracting the average removes both. This is exactly the
  // self-calibration described in step 4, and it works only while still.
  Serial.print(F("Bias removed (m/s^2): "));
  Serial.print(biasX, 4); Serial.print(',');
  Serial.print(biasY, 4); Serial.print(',');
  Serial.println(biasZ, 4);
  Serial.println(F("t_s,accel_x,vel_x,pos_x,pos_magnitude_m"));

  lastMicros = micros();
  startMillis = millis();
}

void loop() {
  float ax, ay, az;
  readAccel(ax, ay, az);
  ax -= biasX; ay -= biasY; az -= biasZ;

  unsigned long now = micros();
  float dt = (now - lastMicros) / 1000000.0;
  lastMicros = now;
  if (dt <= 0 || dt > 0.2) return;

  vx += ax * dt;  vy += ay * dt;  vz += az * dt;     // first integration
  px += vx * dt;  py += vy * dt;  pz += vz * dt;     // second integration

  static unsigned long lastLog = 0;
  if (millis() - lastLog >= 1000) {                  // one line per second
    lastLog = millis();
    float t = (millis() - startMillis) / 1000.0;
    float posMag = sqrt(px * px + py * py + pz * pz);
    Serial.print(t, 1);      Serial.print(',');
    Serial.print(ax, 5);     Serial.print(',');
    Serial.print(vx, 5);     Serial.print(',');
    Serial.print(px, 5);     Serial.print(',');
    Serial.println(posMag, 4);
  }
}

このステップの材料:

Inertial Measurement Unit (6-Axis)Inertial Measurement Unit (6-Axis)1
Microcontroller BoardMicrocontroller Board1
Hookup Wire (22 AWG)Hookup Wire (22 AWG)1 reel

必要な工具:

Computer with Arduino IDEComputer with Arduino IDE
Digital Multimeter (Lab Grade)Digital Multimeter (Lab Grade)
Oscilloscope 2-Channel 100MHzOscilloscope 2-Channel 100MHz
4

Measure accelerometer bias, and watch it become distance

This is where the errors come from, and the mechanism is arithmetic rather than mechanical.

  1. Leave an accelerometer perfectly still and log its output for ten minutes.
  2. Compute the mean — this is bias, and it should be zero and will not be.
  3. Integrate the logged signal once to get apparent velocity, and again to get apparent position.
  4. Plot both against time.

A stationary sensor reports a steadily growing velocity and a position error that grows with the square of time. A bias of one milli-g — roughly a thousandth of gravity — produces about 176 metres of position error after ten minutes, from a sensor that never moved.

That is the central problem of inertial navigation and it cannot be solved by better integration. Integration is faithful; it is faithfully integrating an error.

Which is why inertial systems are always eventually corrected from outside — star trackers, radio updates, GPS today. Inertial guidance is unjammable and drifts; external references are jammable and do not. Modern systems fuse both, using each to cover the other’s weakness, and that combination is the standard answer wherever navigation must be trusted.

このステップの材料:

Inertial Measurement Unit (6-Axis)Inertial Measurement Unit (6-Axis)1
Microcontroller BoardMicrocontroller Board1
Graph PaperGraph Paper1 pad

必要な工具:

Oscilloscope 2-Channel 100MHzOscilloscope 2-Channel 100MHz
Digital Multimeter (Lab Grade)Digital Multimeter (Lab Grade)
Adjustable Bench Power Supply (30V/5A)Adjustable Bench Power Supply (30V/5A)
Soldering StationSoldering Station
Digital Angle GaugeDigital Angle Gauge
Clear Safety GlassesClear Safety Glasses
5

Separate gravity from acceleration, because the sensor cannot

An accelerometer cannot tell you which way is up, and this is not a defect you can engineer away.

  1. Hold an accelerometer stationary and note it reads 1 g upward.
  2. Drop it — in free fall — and note it reads zero.
  3. Tilt it slowly and watch the components change.
  4. Now consider a sensor reading 1 g and try to determine whether it is sitting still or accelerating upward in space.

There is no measurement that distinguishes them. That is the equivalence principle, and it means the guidance computer must SUBTRACT a modelled gravity vector from every reading — which requires knowing where you are, which is what you were trying to compute.

The loop closes on itself: use current position estimate to look up gravity, subtract it, integrate to update position, repeat. Errors in position produce errors in the gravity model, which produce errors in position.

This is why serious inertial systems carry a detailed gravity model rather than a constant, and why Earth’s gravity field has been mapped by satellite to remarkable precision. It is also why a stationary system can be self-calibrated: anything it reads while parked is, by definition, bias plus gravity, and gravity is known.

このステップの材料:

Inertial Measurement Unit (6-Axis)Inertial Measurement Unit (6-Axis)1
Graph PaperGraph Paper1 pad

必要な工具:

Digital Angle GaugeDigital Angle Gauge
Oscilloscope 2-Channel 100MHzOscilloscope 2-Channel 100MHz
Digital Multimeter (Lab Grade)Digital Multimeter (Lab Grade)
Smartphone with Slow-Motion VideoSmartphone with Slow-Motion Video
Clear Safety GlassesClear Safety Glasses
6

Align the platform before launch, and know why it takes so long

An inertial system must be told where it is once. Everything after that is arithmetic.

  1. With the platform level and stationary, use the accelerometers to find the local vertical — gravity defines it.
  2. Now use the gyros to detect Earth’s rotation, about 15 degrees per hour, and find the direction of its axis.
  3. From vertical and the rotation axis, compute true north.
  4. Time how long the measurement takes to become repeatable.

Gyrocompassing finds north with no magnetic compass and no outside signal, using only the fact that the Earth turns — but the signal is tiny and it takes minutes of averaging to extract it. That is why a launch vehicle sits on the pad with its guidance running long before ignition, and why the countdown includes a point after which alignment cannot be repeated without starting over.

The magnetic compass, by contrast, is instant and points at a wandering magnetic pole that is not north. One is slow and true; the other is fast and approximately right — and which you want depends entirely on whether you are steering a ship or hitting a target 300 km away.

This closes the batch. The nozzle raised exhaust velocity, staging beat the logarithm, the gimbal kept the vehicle upright, and the platform knows which way that is. What remains is coming back down, which is the heat shield blueprint — and a different problem entirely, because on the way up you are spending energy and on the way down you must get rid of it.

このステップの材料:

Inertial Measurement Unit (6-Axis)Inertial Measurement Unit (6-Axis)1
Graph PaperGraph Paper1 pad

必要な工具:

Digital Angle GaugeDigital Angle Gauge
Oscilloscope 2-Channel 100MHzOscilloscope 2-Channel 100MHz
Digital Multimeter (Lab Grade)Digital Multimeter (Lab Grade)
Adjustable Bench Power Supply (30V/5A)Adjustable Bench Power Supply (30V/5A)
Digital TachometerDigital Tachometer
Clear Safety GlassesClear Safety Glasses

材料

9

必要な工具

15

関連ブループリント

これらのブループリントは知識を共有しています — 技術、材料、原理

CC0 パブリックドメイン

このブループリントはCC0で公開されています。許可を求めずに、自由にコピー、修正、配布、あらゆる目的で使用できます。

メイカーを応援するには、ブループリント経由で製品を購入してください。メイカーには メイカーコミッション がベンダーにより設定されています。または、このブループリントの新しいイテレーションを作成し、自分のブループリントにコネクションとして含めて収益を共有できます。

ディスカッション

(0)

ログイン してディスカッションに参加

コメントを読み込み中...