mirror of
https://github.com/okalachev/flix.git
synced 2026-01-08 20:16:49 +00:00
Add level calibration
This commit is contained in:
@@ -42,6 +42,7 @@ const char* motd =
|
||||
"log [dump] - print log header [and data]\n"
|
||||
"cr - calibrate RC\n"
|
||||
"ca - calibrate accel\n"
|
||||
"cl - calibrate level\n"
|
||||
"mfr, mfl, mrr, mrl - test motor (remove props)\n"
|
||||
"sys - show system info\n"
|
||||
"reset - reset drone's state\n"
|
||||
|
||||
@@ -44,6 +44,13 @@ void readIMU() {
|
||||
gyro = Quaternion::rotateVector(gyro, rotation.inversed());
|
||||
}
|
||||
|
||||
void calibrateLevel() {
|
||||
print("Place perfectly level [1 sec]\n");
|
||||
pause(1);
|
||||
Quaternion correction = Quaternion::fromBetweenVectors(Quaternion::rotateVector(Vector(0, 0, 1), attitude), Vector(0, 0, 1));
|
||||
imuRotation = Quaternion::rotate(correction, Quaternion::fromEuler(imuRotation)).toEuler();
|
||||
print("✓ Done: %.3f %.3f %.3f\n", degrees(imuRotation.x), degrees(imuRotation.y), degrees(imuRotation.z));
|
||||
}
|
||||
|
||||
void calibrateGyroOnce() {
|
||||
static Delay landedDelay(2);
|
||||
|
||||
Reference in New Issue
Block a user