Перейти к содержанию
    

Угловая компенсация компаса

День добрый. Запустил LSM303D. Данные с магнитного датчика, акселерометра и датчика температуры идут на ура. Направление на севео посчитал по формуле:

 

180*atan2f(magnetic_Y, magnetic_X)/3.1415 с коррекцией отрицательного угла.

 

Работает нормально, если выставлен по уровню(горизонтирован).

Углы крена и тангажа:

 

pitch = asinf(-acceleration_X);

roll = asinf(acceleration_Y / cosf(pitch));

 

Тоже считаются верно.

 

Потом попытался компенсировать углы крена и тангажа, когда компас не горизонтирован. Считал по формуле:

 

xh = magnetic_X * cosf(pitch) + magnetic_Z * sinf(pitch);

yh = magnetic_X * sinf(roll) * sinf(pitch) + magnetic_Y * cosf(roll) - magnetic_Z * sinf(roll) * cosf(pitch);

 

angle_compensated= 180*atan2f(yh, xh)/3.1415;

 

Считает неправильно. Прошу знающих комрадов подсказать - где ошибка в формуле?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В векторах не проще пересчитать? А не гонять в углы и обратно.

 

Построить два базисных вектора и перевести показания магнитометра в новую СК, если правильно понял задачу. Понадобятся векторное и скалярное произведение, и ещё нормирование. А с углами дело неприятное, проверять формулу желания нет, извините. Можете сами расписать два поворота.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно внимательно проверять соответствие осей х-у, потому что смотреть на ось z можно с двух сторон :)

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

Акселерометры можно калибровать в здании, а магнитометры - только в отсутствии искажений геомагнитного поля, т.е. вдали от всякого железа.

А еще все это хозяйство плывет от температуры, поэтому ошибки не больше 5 градусов по азимуту для диапазона температур -20...+50 обеспечить сложно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обожаю наш форум. Все расскажут, подробно объяснят ))) Всем спасибо )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, такой вопрос: кому какую точность реально удалось получить в диапазоне углов ±30°?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос вдогонку: посоветуйте пожалуйста методику калибровки электронного компаса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

По ссылке методика для конкретного компаса и с использованием заточенного под него ПО, мой компас уже не подходит. Интересует теория и практические советы по калибровке и какие точности были получены. Неужели никто из форумчан не делал электронный компас?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...