Ейлерові кути проти кватерніонів · Gimbal lock · Плавна інтерполяція
Ейлерові кути (рискання, тангаж, крен) інтуїтивні, але страждають від gimbal lock: коли дві осі обертання вирівнюються (наприклад, тангаж = ±90°), один ступінь свободи втрачається і обертання стає хаотичним. Кватерніони — чотиривимірні числа q = w + xi + yj + zk, відкриті Гамільтоном у 1843 — представляють обертання без сингулярностей. SLERP (Spherical Linear intERPolation) плавно інтерполює між двома кватерніонними орієнтаціями вздовж найкоротшої дуги на 4D-гіперсфері.
Вільям Роуен Гамільтон вирізав правила множення кватерніонів (i² = j² = k² = ijk = −1) на мосту Бруема в Дубліні 16 жовтня 1843 року. Кватерніони тепер є основою в аерокосмічній техніці, робототехніці та кожному 3D-ігровому движку — Unity, Unreal та Godot використовують кватерніони за замовчуванням. Комп'ютер навігації Apollo використовував гіроскопічний підвіс; біля gimbal lock астронавти мусили переорієнтувати корабель, щоб не втратити навігацію.
Цей візуалізатор розміщує два однакові куби поруч: лівий обертається за допомогою Ейлерових кутів (рискання, тангаж і крен застосовуються як послідовні матриці обертання), а правий керується одиничним кватерніоном q = w + xi + yj + zk. Коли ви змінюєте орієнтацію, кватерніонна сторона плавно наближається до цілі за допомогою SLERP — сферичної лінійної інтерполяції вздовж найкоротшої дуги в 4D — даючи вам змогу спостерігати, як кватерніони уникають сингулярностей, що мучать Ейлерові кути.
Два дротяні куби на Canvas 2D, відрендерені з простою перспективною проєкцією та сортуванням граней за алгоритмом художника. Ейлерів куб будується з матриці рискання-тангажу-крену; кватерніонний куб перетворює еквівалентний одиничний кватерніон на матрицю обертання 3x3. Примусове встановлення тангажу на 90 градусів згортає Ейлерів куб у gimbal lock, тоді як кватерніонна сторона зберігає всі три осі незалежними.
Перетягуйте повзунки Рискання, Тангаж і Крен (кожен від -180 до 180 градусів), щоб задати цільову орієнтацію. Повзунок швидкості авто-обертання (0-30) безперервно обертає рискання та крен. Поставте позначку «Gimbal lock», щоб закріпити тангаж на 90 градусах, перемкніть «SLERP інтерполяцію», щоб порівняти плавне наближення з миттєвим стрибком, та користуйтеся «Показати осі», Паузою та Скиданням. Панель w, x, y, z у реальному часі показує поточний кватерніон.
Вільям Роуен Гамільтон винайшов кватерніони в спалаху осяяння 16 жовтня 1843 року і вирізав правило i у квадраті = j у квадраті = k у квадраті = ijk = мінус один на дублінському мосту Бруема. Сьогодні кожен великий 3D-движок — Unity, Unreal і Godot — зберігає обертання як кватерніони всередині.
Кватерніон — це чотирикомпонентне число q = w + xi + yj + zk, що кодує 3D-обертання як точку на одиничній 4D-гіперсфері. Одиничний кватерніон представляє будь-яку орієнтацію без сингулярностей чи неоднозначності Ейлерових кутів, тому він є стандартом для графіки, робототехніки та керування орієнтацією в аерокосмічній галузі.
Gimbal lock виникає, коли дві з трьох осей обертання Ейлера вирівнюються, через що втрачається один ступінь свободи. Позначка «Gimbal lock» встановлює тангаж на 90 градусів: на лівому кубі рискання та крен тоді обертаються навколо однієї візуальної осі, тоді як правий кватерніонний куб зберігає всі три осі повністю незалежними.
SLERP, або сферична лінійна інтерполяція, змішує поточний і цільовий кватерніони вздовж найкоротшої дуги великого кола на гіперсфері з постійною кутовою швидкістю. Коли його позначено, кватерніонний куб плавно наближається до нових орієнтацій; коли знято — він миттєво стрибає до цілі в кожному кадрі, тож ви можете відчути різницю.
Так. Вона використовує стандартне перетворення рискання-тангаж-крен на кватерніон, нормалізує результат до одиничного кватерніона та перетворює назад за канонічною формулою кватерніон-у-матрицю. Процедура SLERP включає звичайну зміну знака для найкоротшого шляху та лінійний запасний варіант, коли два кватерніони майже паралельні, що відповідає підручниковим реалізаціям.
Ейлерові кути інтуїтивні, бо рискання, тангаж і крен прямо відповідають повсякденним поняттям, як-от курс і нахил, що робить їх ідеальними для введення та відображення. Платою є gimbal lock і незручна інтерполяція, тож багато систем приймають введення в Ейлерових кутах, але перетворюють його на кватерніони всередині для самих обчислень обертання.