Задать вопрос
@Lexluter20

Можно ли использовать датчик mpu9250 для измерения положения робота в пространстве?

Здравствуйте!
63c7979854343049678212.png
Робот с двигателями, его задача ездить по точкам, положение которых заранее измерено.
Допустим, в базе данных 6 точек, он знает своё положение, далее он по определённой логике двигается по точкам.
Можно ли это реализовать с помощью mpu9250? Если нет, то с помощью чего?
  • Вопрос задан
  • 234 просмотра
Подписаться 2 Средний 3 комментария
Решения вопроса 1
trapwalker
@trapwalker
Программист, энтузиаст
Обычно такие задачи решаются с помощью фильтра Калмана. Но вам этого датчика будет недостаточно для вашей задачи. Акселерометры не показывают абсолютных координат, они дают только скорость изменения скорости. Для получения координат надо дважды интегрировать ускорение, а при этом быстро накапливается ошибка, ведь нет способа ее устранить.
Для устранения ошибок используют дополнительную информацию о положении робота. К примеру можно поставить энкодеры на колёса, тогда сведения о перемещении вы будете получать не только от интегрирования ускорений, но и от вращения колёс. При этом вы никак не решаете проблему ошибки, вознкающей з-за проскальзывания колёс.
Вообще, фильтр калмана довольно гибкий инструмент, он подразумевает построение модели перемещения вашего робота и фильтрует поток информации с датчиков в соответствии с тем, насколько близко их показания соответствуют модели перемещения.
Грубо говоря, например, будут приняты с малым коэффициентом показания датчиков, которые говорят, что робот внезапно дёрнулся влево с большой скоростью и ускорением, которое очень маловероятно для математической модели перемещения вашего робота. А вот показания. которые близки к тому, что предсказывает модель, будут приняты с коэффициентом, близким к единице.
Прочитайте про фильтр Калмана, подумайте какие еще датчики можно прикрутить к вашему роботу кроме акселерометров и гироскопов, которые, безусловно, способны помочь, но их будет не достаточно для навигации робота в локальной системе координат.
Самый точный способ - это маркировать робота инфракрасным или любым другим светодиодом и находить его камерой, подвешенной над сценой. Так вы получите достаточно точную локализацию и относительно дешево.
Можно оставить на робота сканирующий оптический пассивный радар (фотодиод в трубочке на вращающейся башне), а маячки разместить на местности. Так робот вращая своей башней (с энкодером дляопределения угла поворота относительно корпуса робота) и регистрируя модулированные уникальные сигналы от маячков. сможет триангулировать и доуточнять своё положение. Даже двух разнесенных маячков, если они не на одной линии с роботом, достаточно для очень неплохой точности локализации.
Бывает, что на местности активные маячки разместить проблематично, тогда используются пассивные маркеры - яркие конусы, QR-коды, контрастные метки. Тогда на робота надо ставить камеру. таком случае добиться можно еще бОльшей точности локации, но в ущерб сложности и ресурсоемкости бортового оборудования.

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

Войдите, чтобы написать ответ

Похожие вопросы