Jump to content

    
Mikhail_015

Решение "вырождения осей" четвертой осью вращения

Recommended Posts

Здравствуйте.

Возможно, эта тема уже обсуждалась, но я не смог найти обсуждение и решение задачи, которая появилась у меня.

Если я правильно понимаю, для устранения возможности "блокировки (вырождения) осей" (gimbal lock и т.д.) при 3-х осях (рамках) гироскопа, необходимо добавить 4-ю вращающуюся рамку и держать ее плоскость в перпендикуляре с плоскостью 2-й рамки.

Т.е., как для гироскопа, так и для получения БЕСПРОБЛЕМНОГО вращения тела в 3-х мерном пространстве (мне надо найти решение именно для этой задачи) необходимо иметь математику пересчета углов движения тела, зафиксированного во внутренней, первой раме (например, по аналогии с самолетами - крен, тангаж, рысканье) в углы поворота всех 4-х осей рамок (держа при этом плоскости 4-й и 2-й рамок все время перпендикулярно).

Если с первой (внутренней) осью (которая, например, ответственна за вращение по "крену") все просто, то повороты по двум остальным осям ("тангаж", "рысканье") необходимо преобразовать в одновременные (в общем случае) повороты остальных трех осей (рамок).

Подскажите, пожалуйста, где можно найти решение этой задачи и, по возможности, минимизировать вычислительный процесс, чтобы обеспечить хорошее быстродействие системы (четырех вращающихся рамок).

Тема вырождения осей уже обсуждалась, но немного в другом плане.

Заранее спасибо.

 

Share this post


Link to post
Share on other sites

Может я неверно понял проблему, но давным-давно в надежных гироскопах ставили четвертый канал под 45 градусов к остальным трем.
Потерянная ось вычислялась проекцией ( умножением на коэффициент ) показаний 4-го канала.

Share this post


Link to post
Share on other sites
7 часов назад, Егоров сказал:

Может я неверно понял проблему, но давным-давно в надежных гироскопах ставили четвертый канал под 45 градусов к остальным трем.
Потерянная ось вычислялась проекцией ( умножением на коэффициент ) показаний 4-го канала.

Спасибо за ответ.

Ну да, я и не сомневаюсь, что есть механические решения для этой ситуации - наверно, любая четвертая ось, расположенная под ненулевым углом к внешней (третьей) рамке, решает эту задачу.

И иначе бы у нас не было хороших приборов на основе гироскопа.

Я просто, сколько не искал, не нашел выхода на математические формулы, которые помогут мне НЕ с гироскопом, а с переводом 3-х углов отклонения, которые должны производятся "внутренним" телом, в необходимые углы отклонения четырех осей, которые вращают 4 рамки, и таким образом, обеспечивают поворот "внутреннего" тела на заданные углы.

Скорее всего, эта математика для специалистов не очень сложная (кватернионы там всякие, умножения матриц поворота и т.п.), но я не особо математик, а задачу с определением углов поворота 4-х осей хотелось бы решить...

Поэтому и обращаюсь сюда, к спецам - в надежде выйти на формулы, которые я смог бы использовать.

Share this post


Link to post
Share on other sites

Я никаких знаний в этой области не имею. Предлагаю распределить 4 оси равномерно в пространстве. Направить оси из центра тетраэдра к его вершинам (надеюсь, понятно описал). А как и что там считать - без понятий. 

Share this post


Link to post
Share on other sites
19 hours ago, Mikhail_015 said:

Если я правильно понимаю, для устранения возможности "блокировки (вырождения) осей" (gimbal lock и т.д.) при 3-х осях (рамках) гироскопа, необходимо добавить 4-ю вращающуюся рамку и держать ее плоскость в перпендикуляре с плоскостью 2-й рамки.

Зачем придумывать 4-ю ось если можно просто поменять схему поворотов при определенных ориентациях? 
Ведь все обработки и фильтрации угловых перемещений все равно ведутся в пространстве кватернионов.
Потом когда надо вернуться к физическим углам кватернионы конвертируют в схему поворотов.
И если эта схема поворотов приводит в точку вырождения или близко к ней (когда две рамки гимбала оказываются совмещенными в одной плоскости) то просто выбирают другую схему поворотов где совмещения рамок не возникнет.. 

Share this post


Link to post
Share on other sites
19 минут назад, AlexandrY сказал:

Зачем придумывать 4-ю ось если можно просто поменять схему поворотов при определенных ориентациях? 
Ведь все обработки и фильтрации угловых перемещений все равно ведутся в пространстве кватернионов.
Потом когда надо вернуться к физическим углам кватернионы конвертируют в схему поворотов.
И если эта схема поворотов приводит в точку вырождения или близко к ней (когда две рамки гимбала оказываются совмещенными в одной плоскости) то просто выбирают другую схему поворотов где совмещения рамок не возникнет.. 

Я как раз и привёл пример с гороскопом, чтобы понятно было, что без 4-й оси решить задачу корректно невозможно. В определенной ориентации возникает блокировка вращения по одному из каналов. 

Share this post


Link to post
Share on other sites
1 minute ago, Mikhail_015 said:

Я как раз и привёл пример с гороскопом, чтобы понятно было, что без 4-й оси решить задачу корректно невозможно. В определенной ориентации возникает блокировка вращения по одному из каналов. 

Если подумать, то ту же ориентацию можно получить и сдругим расположением рамок.  Так что мешает привести к этому другому расположению? 

Share this post


Link to post
Share on other sites
19 минут назад, AlexandrY сказал:

Если подумать, то ту же ориентацию можно получить и сдругим расположением рамок.  Так что мешает привести к этому другому расположению? 

Ну, и, на всякий случай, уточню, что задача состоит не просто в занятии телом определенного положения в пространстве - это можно было бы решить и тремя рамами, а необходимо в ЛЮБОМ его положении в пространстве иметь возможность вращаться по каждой из трёх осей, т.е. ИЗБЕЖАТЬ блокировки осей.

а это без 4-й рамки никак...

Share this post


Link to post
Share on other sites
1 hour ago, Mikhail_015 said:

Ну, и, на всякий случай, уточню, что задача состоит не просто в занятии телом определенного положения в пространстве - это можно было бы решить и тремя рамами, а необходимо в ЛЮБОМ его положении в пространстве иметь возможность вращаться по каждой из трёх осей, т.е. ИЗБЕЖАТЬ блокировки осей.

а это без 4-й рамки никак...

Тогда надо яснее формулировать.
Дескать так и так, но почему-то хочу двигать телом в рамках по невозможной траектории с произвольного места в физическом гимбале.
А в пространстве с вображаемыми рамками (и меняя на ходу конфигурацию их соединения) вам ничто не мешает двигать тело как угодно с любой позиции и без всяких виртуальных 4-х рамок.  

Тем виртуальность и отличается от реальности что там можно мгновенно все менять. :dance3: 
 

Share this post


Link to post
Share on other sites

Ну вот, я, похоже, опять не правильно объяснил...

Есть не виртуальные, а вполне физические 4 рамки одна в другой, с осями под 90 градусов. 
И ко внутренней рамке прикреплено тело, которое необходимо иметь возможность вращать из любого места по ЛЮБОЙ возможной траектории, в ЛЮБОМ направлении (это НЕ является невозможным при 4-х рамках).  
И эти всевозможные направления движения надо обеспечивать нужными поворотами осей этих 4-х рамок. 

Share this post


Link to post
Share on other sites
12 minutes ago, Mikhail_015 said:

Ну вот, я, похоже, опять не правильно объяснил...

Есть не виртуальные, а вполне физические 4 рамки одна в другой, с осями под 90 градусов. 
И ко внутренней рамке прикреплено тело, которое необходимо иметь возможность вращать из любого места по ЛЮБОЙ возможной траектории, в ЛЮБОМ направлении (это НЕ является невозможным при 4-х рамках).  
И эти всевозможные направления движения надо обеспечивать нужными поворотами осей этих 4-х рамок. 

Тогда непонятна в чем вы нашли проблему. Держите 4-ю рамку на подстраховке одной из тех что сложаться.
Т.е. перепендикулярной ей и перпендикулярно третьей в точке вырождения. Что тут сложного?  

Share this post


Link to post
Share on other sites
7 минут назад, AlexandrY сказал:

Тогда непонятна в чем вы нашли проблему. Держите 4-ю рамку на подстраховке одной из тех что сложаться.
Т.е. перепендикулярной ей и перпендикулярно третьей в точке вырождения. Что тут сложного?  

Вот-вот, поэтому сюда и обратился, что для вас ничего сложного, а для меня непонятно, какими формулами преобразовывать (3 необходимых угла поворота тела, например, X,Y,Z в 4 угла поворота всех 4-х осей,  например, A, B, C, D), и как в них "зашить" постоянную перпендикулярность 4-й и 2-й рамки.

 

Share this post


Link to post
Share on other sites
On 5/29/2020 at 1:52 PM, Mikhail_015 said:

необходимо добавить 4-ю вращающуюся рамку и держать ее плоскость в перпендикуляре с плоскостью 2-й рамки.

А, простите, можно картинку этих четырех рамок? В смысле где именно оси проходят?

Share this post


Link to post
Share on other sites

Извините, я не только математик не очень, но и художник не ахти...

Но примерно это может выглядеть так, как самый простой вариант рамок, "вложенных" одна в другую:

 

IMG_8519.jpg

Share this post


Link to post
Share on other sites
3 hours ago, Mikhail_015 said:

Но примерно это может выглядеть так, как самый простой вариант рамок, "вложенных" одна в другую:

Если в этом варианте, крутя мотором самые наружные оси Вы будете удерживать 90 градусов в отмеченных осях, то вроде будет так, как надо:

image.png.8a54444e1c5c0802f56d313c66b9803d.png

При любом повороте второй от наружной рамки угол будет определяться только положением наружной рамки.

Вот сейчас у Вас на картинке угол в отмеченных осях - 0, а надо крутить мотором наружную рамку, пока не станет 90. И все вроде. Энкодер, PID-регулятор, мотор - и вперед ;)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.