Перемещение в пространстве ХУN
- Войдите на сайт для отправки комментариев
Вс, 22/11/2015 - 01:08
Здравствутйе! Есть задачка: определить перемещение в пространстве по 3 осям. Почему-то я решил, что MPU-6050 - акселерометр+гироскоп должен помочь решить эту задачу. Раздобыл его, но пока не найду примера, где по его данным можно было построить перемещение в пространстве. Вроде бы теоретически это реально. Но пока все примеры по поводу отслеживния варщений вокруг 3х осей.
Подскажите, пожалуйста, как реализуется отслеживание траектории в пространстве, на какой микросхеме это реализуется?
Спасибо
Отслеживанеи тректории не отслеживается никакой микросхемой. Нужно читать данные с акселерометра и интегрировать. Это - дело программы.
Отслеживанеи тректории не отслеживается никакой микросхемой. Нужно читать данные с акселерометра и интегрировать. Это - дело программы.
Мы с тобою, товарищ, забыли что такое интегрирование. Ускорение - вторая производная от координаты по времени. Значит, чтобы из ускорния получить координату нужно дважды проинтегрировать. А какой "хвостик" есть у интегрирования? Верно - константа! И она очень даже произвольная может быть. А если дважды... Короче, очень быстро ошибка идёт в разнос, и правды не найти. Математика, ничего личного.... Напомнили мне об этом инженеры, рассторили. Говорят можно барометром высоту измерять, магнитным компасом положение, ещё есть платы для квадрокоптеров, и GPS, где всё собрано воедино. Но для данной задачки готового решения пока не нашёл, мне унжно без GPS обойтись.
Вот так вот. В поиске...
Ну так никто и не обещал золотых гор.
Все правильно - и константа, и накопление погрешности.
Поэтому нужны некоторые дополнительные условия. Например, первоначальная калибровка, предполагающая, что объект покоится. Так мы определяем нашу неизвестную константу.
А накопление ошибки - вообще классика. Акселерометр не может быть единственным прибором для отслеживания перемещений. С какой-то регулярностью нужно тем или иным способом сообщать устройству "верные" данные, по которым корректировать расчитанные на основе акселерометра. Предполагается, что либо добывание этих данных слишком дорого, чтобы делать его часто, либо ограничено по пространству.
Например, у нас по направляющим перемещается некоторая железка. На концах установлены концевики. Истинные координаты можно получить только в двух точках - на концах. А везде посередине приходится вычислять положение по данным акселерометра. Если потребовалось уточнить показания - проводим калибровку, для чего смещаем нашу железку до упора.
То есть в каждом конкретном случае думаем, как нам избавиться от неопределенностей, связанных с двойным интегрированием и накапливающейся ошибкой.
Ну так никто и не обещал золотых гор.
А хочется-то именно их, бесплатно и сегодня!
По высоте Z, как я понимаю барометр может выручить. По XY - сложнее. Допустим компас азимут дать может. А как скорость движения в направлении определять? Чешу затылок...
Ну, ещели оно летает, да еще и на расстояния не менее сотен метров, то я бы использовал GPS.
У меня хуже (рожденный ползать длетать не может) - перемещение на единицы метров, что ниже точности GPS, да и перемещаться должен внутри помещения, где спутников не видно.
Если ездит часто пользуют ещё и энкодеры для уменьшения погрешности. Покрутил мотор - знаешь сколько примерно проекхал - уточнил акселерометром.
Да, энкодеры - основное средство навигации. Но точности не хватает. ПОка пытаюсь выяснить, что можно выжать из связки энкодеры+компас. Дальше буду смотреть, можно ли что-то улучшить при помощи гироскопа-акселерометра.
andriano, а что за задача? Если случай двумерный (на плоскости), да ещё и не на любой, а на специальной (специально подготовленной), так там много вариантов точного позиционирования, до миллиметров вполне можно, а до сантиметров - вообще занефиг делать.
Знаете такие приборы "диджитайзеры"? Они применяются в частности для снятия чертежей с бумаги в компьютер (типа оцифровка и векторизация бумажных чертежей) и дают очень приличную точность. Особенно, если пользоваться не пером, а специальным прибором типа мышки с прицельным перекрестьем. У меня был такой. Там в "мышке" вокруг перекрестья была намотана катушка, а "доске" на которую кладётся чертёж была антенная сетка. Вполне можно сделать подобный стол и иметь очень высокую точность положения движусегося прибора.
Задача описана в разделе "Проекты" http://arduino.ru/forum/proekty/robot-kartograf
Плоскость не специально подготовленная. Правда, в связи с низкой проходимостью робота должна быть довольно ровной.
ПОка последняя проблема, с которой столкнулся: после добавления процедуры юстировки компаса код под завязку занимает 31 с копейками Кбайт программной памяти.
Сейчас вот думаю: может, если компас будет кроме разъема закреплен еще и винтом, может, не нужно будет его каждый раз юстировать... :)
Какой точности вы добились на энкодерах? Какова точность самих энкодеров? У меня вот такие http://www.aliexpress.com/snapshot/6885370822.html?orderId=69103050237404 моторы с энкодерами. У них 32 деления и энкодер прямо на оси мотора. Теоретически (не проверял ещё) можно выжать 1/64 от оборота. С редукторами 40:1 получится 8.5 минут дуги поворота колес робота, что дает теор. предел для ошибки перемещений в районе 0.7мм. Моторы оказались вполне приличные: от 8 акк.. Ni-Mh (на выходе 10.5В) через мотор-шилд L298N выдают около 7000rpm на ХХ и имеют останавливающий момент на выходе редуктора около 1.5кг*см. Рабочая скорость перещения по ковру более 300мм в сек. на колесах диаметром 55мм. В ближайшее время допилю подсчет энкодеров по прерываниям PCINT2 у меги и скажу чего получается на самом деле. Смущает пока только то, что при такой организации прерывания будут лететь с частотой в районе 8500гц.
Процесс временно застопрорился из-за окончания свободной программной памяти и невозможности впихнуть мугу 2560 в имеющийся конструктив.
ПОка дожидаюсь нового конструктива. Там чуть побольше тележка, и уже получены другие энкодеры. Сделаю, отпишусь в разделе "Прогекты".
Даже всякие Core не влезают? Они вроде даже меньше уны.
А что это такое?
Поиск по "arduino core" к внятному результату не привел.
У тебя какой-то другой поиск. У меня на ebay по "arduino mega core" сразу пачка таких.
Подобные вещи видел, но ассоциировал их с mega, а не с core.
У этого мне цена не понравилась.
Дождусь когда пришлют либо тележку побольше, либо 3d-принтер (тогда сам буду тележку проектировать). И то и другое заказано. Пока занимаюсь другими вещами.
PS. А выдача на поисковые запросы, действительно, последнее время стала уж слишком индивидуальной.
Да .. на али я не нашел ничего подобного ни в апреле, когда закупал свою Мегу ни сейчас толком ничего нет. А то что есть - откровенно по конским ценам. А так попалось бы что-то подобное - не раздумывая взял бы. Там все(!) ноги разведены .. у-у-у...
https://youtu.be/hZV8IfJm-MI?t=2515
Вот так это решают. Без оптики не обойтись по-хорошему. Есть варианты: тележка со сканирующим лазерным лучём на вращающемся зеркале. Задачка ещё та...
Насчет "в память не влезает" рекомендую таки ознакомиться с этим: http://arduino.ru/forum/programmirovanie/arduino-kak-konechnyi-avtomat-z...
Теперь есть распиновка и для Arduino UNO, подходит также и для Pro Mini и для любых других железяк на процессорах ATmega328P и его меньших собратьях. В теме есть ссыль на гитхаб, откуда можно выкачать код и ссылка на zip-архив на сайте cyber-place.ru