rat 0 7 мая, 2014 Опубликовано 7 мая, 2014 · Жалоба День добрый. Запустил 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; Считает неправильно. Прошу знающих комрадов подсказать - где ошибка в формуле? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amaora 20 7 мая, 2014 Опубликовано 7 мая, 2014 · Жалоба В векторах не проще пересчитать? А не гонять в углы и обратно. Построить два базисных вектора и перевести показания магнитометра в новую СК, если правильно понял задачу. Понадобятся векторное и скалярное произведение, и ещё нормирование. А с углами дело неприятное, проверять формулу желания нет, извините. Можете сами расписать два поворота. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
polyakovav 0 7 мая, 2014 Опубликовано 7 мая, 2014 · Жалоба Нужно внимательно проверять соответствие осей х-у, потому что смотреть на ось z можно с двух сторон :) Формулы перепроверять лениво, но даже при отсутствии ошибок этот способ расчета более-менее обеспечивает компенсацию только при наклонах до 30 градусов и предварительной калибровке акселерометров и магнитометров. Акселерометры можно калибровать в здании, а магнитометры - только в отсутствии искажений геомагнитного поля, т.е. вдали от всякого железа. А еще все это хозяйство плывет от температуры, поэтому ошибки не больше 5 градусов по азимуту для диапазона температур -20...+50 обеспечить сложно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rat 0 8 мая, 2014 Опубликовано 8 мая, 2014 · Жалоба Обожаю наш форум. Все расскажут, подробно объяснят ))) Всем спасибо ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rat 0 20 января, 2015 Опубликовано 20 января, 2015 · Жалоба Кстати, такой вопрос: кому какую точность реально удалось получить в диапазоне углов ±30°? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rat 0 22 января, 2015 Опубликовано 22 января, 2015 · Жалоба Вопрос вдогонку: посоветуйте пожалуйста методику калибровки электронного компаса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Электронщик 1 22 января, 2015 Опубликовано 22 января, 2015 · Жалоба http://media.digikey.com/pdf/Data%20Sheets...-RD%20Guide.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rat 0 23 января, 2015 Опубликовано 23 января, 2015 · Жалоба http://media.digikey.com/pdf/Data%20Sheets...-RD%20Guide.pdf По ссылке методика для конкретного компаса и с использованием заточенного под него ПО, мой компас уже не подходит. Интересует теория и практические советы по калибровке и какие точности были получены. Неужели никто из форумчан не делал электронный компас? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться