Easyelectronics.ru

Электроника для всех
Текущее время: 11 апр 2021, 08:42

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 05:42 
Старожил

Зарегистрирован: 14 авг 2010, 20:14
Сообщения: 1504
Собственно сабж. Как можно определить скорость движения робота? Именно движения. А не вращения двигателей.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 07:55 
Старожил
Аватара пользователя

Зарегистрирован: 17 апр 2010, 08:38
Сообщения: 4921
Откуда: Усинск, республика Коми
Как не странно, но именно через скорость вращения двигателя можно узнать. Двигатель вращает колесами с определенной скоростью. Колесо совершает N оборотов в единицу времени. За один оборот проходится расстояние, равное длине окружности. Длинна окружности = 2*пи*радиус. Следовательно, если за секунду колесо совершает 10 оборотов, то пройденное расстояние = 10 длин окружности в секунду.

_________________
хаос это непознанный порядок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 09:38 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:19
Сообщения: 6851
Откуда: Из тех... Из бывших...
Ну, это только в идеальных условиях. Колеса еще и буксовать могут. Абстрагируйтесь от них. Считайте, что движитель- воздушный винт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 10:34 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:08
Сообщения: 7549
Откуда: Алма-ата
a9d писал(а):
Как можно определить скорость движения робота? Именно движения. А не вращения двигателей.

Обычно важннее не скорость, а пройденный путь. Есть 2 варианта:
1. Cчитать отдельно для каждого из ведущих колес или гусеницы, по их разности также вычисляя угол поворота. Из этих данных несложно получить и скорость, но это в большинстве случаев для домашних мобильных роботов не имеет особого значения.
2. Определять непосредственно перемещение робота относительно поверхности, по которой движется. Например, по принципу оптической мыши.
3. Определять непосредственно пространственное положение робота. Например, относительно каких - то реперных маяков, или используя спутниковые навигаторы.

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

Вариант 2 - проблемы возникают с отслеживанием поверхности, которая обычно неровная, что нарушает фокусировку или вызывает потерю пятна.

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

С акселерометром проблема в том, что он определяет не скорость или путь, а всего лишь ускорение по осям.
При этом многие забывают о силе тяжести, создающей ускорение свободного падения. Например, я так и не смог доказать одному из своих знакомых, что акселерометр будет показывать ускорение свободного падения, если сам неподвижен. Его аргумент: "Если он неподвижен - ускорения нет. Если он будет падать - оно появится". На самом же деле наоборот. Если он будет падать, то должен будет показывать 0.
Кроме того, если акселерометр не горизонтален, он будет раскладывать ускорение свободного падения по трем осям. Можно исключить постоянную составляющую из показаний, и учитывать только динамические изменения ускорений. Но это будет уже третья производная от пути по времени. (первая - это скорость, вторая - ускорение).
И при равномерном прямолинейном движении ускорение равно нулю... И вообще, для малых скоростей, свойственных большинству мобильных роботов, возникающие ускорения слишком малы, что дает большие погрешности их измерения...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 15:15 
Старожил
Аватара пользователя

Зарегистрирован: 29 дек 2010, 22:08
Сообщения: 567
Посмотрите на реализацию инерциальных систем наведения ракет.В теории там все как раз описано.Не требуется ни внешних маяков ни управления.Основываясь на показаниях гироскопов и акселерометров,а также количества топлива в секунду проходящего через ту или иную форсунку(в роботе - угловое положение колеса\двигателя)возможно довольно точно рассчитать текущее положение.Также требуется хорошо знать свойства среды,в которой двигается устройство и параметры самого устройства(вес,размеры,векторы тяги,центры тяжести)Еще в 70годах подобные системы достигали точности +-1км на дальности 15тыс км.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 15:43 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:08
Сообщения: 7549
Откуда: Алма-ата
Blondie писал(а):
Посмотрите на реализацию инерциальных систем наведения ракет.В теории там все как раз описано.Не требуется ни внешних маяков ни управления.Основываясь на показаниях гироскопов и акселерометров,а также количества топлива в секунду проходящего через ту или иную форсунку(в роботе - угловое положение колеса\двигателя)возможно довольно точно рассчитать текущее положение.Также требуется хорошо знать свойства среды,в которой двигается устройство и параметры самого устройства(вес,размеры,векторы тяги,центры тяжести)Еще в 70годах подобные системы достигали точности +-1км на дальности 15тыс км.

Зато там требуется офигенная точность изготовления и повторяемость, недостижимые в домашних условиях, а также высокая точность измерения и поддержания параметров.
Казалось бы что может быть проще автоматного патрона. Но попробуйте изготовить дома вручную сотню штук, постреляйте с ними метров на 400, и посмотрите, какой получится разброс, по сравнению с заводскими...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 15:52 
Старожил

Зарегистрирован: 23 июл 2010, 15:39
Сообщения: 306
Откуда: Хмельницкий, Украина
Оптимального способа нет, всё зависит от задач... И уже было описано выше... Для повышения точности можна использовать комбинированое измерение... Но как правило если идёт вопрос о домашнем роботе достаточно одометра (коректировать даные которого можно с помущью оптического дальномера или сонара). Если же большой робот то можна использовать джпс+датчик давления (трубку пито), коректируя значения темже одометрами, или акселерометрами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 15:53 
Старожил
Аватара пользователя

Зарегистрирован: 17 апр 2010, 08:38
Сообщения: 4921
Откуда: Усинск, республика Коми
STT писал(а):
Ну, это только в идеальных условиях. Колеса еще и буксовать могут. Абстрагируйтесь от них. Считайте, что движитель- воздушный винт.

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

_________________
хаос это непознанный порядок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 15:55 
Старожил

Зарегистрирован: 23 июл 2010, 15:39
Сообщения: 306
Откуда: Хмельницкий, Украина
Ну имхо с автоматными патронами тоже не совсем правильный пример при наявности оборудования, и желания можна и в домашних условия получить хорошее качество.. проблема не в качестве а в соотношение (ресурсы(время в том числе)/качество*количество)


Последний раз редактировалось Dreamer 13 фев 2011, 16:04, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 15:58 
Старожил
Аватара пользователя

Зарегистрирован: 29 дек 2010, 22:08
Сообщения: 567
Просто далеко не каждый может спроектировать систему подобного уровня.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 16:08 
Старожил

Зарегистрирован: 23 июл 2010, 15:39
Сообщения: 306
Откуда: Хмельницкий, Украина
Я бы сказал вопрос не стоит возможно ли спроектировать, а есть ли смысл? какой смысл например в точности позиционирования (скорости) домашнего робота?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 16:09 
Заглядывает иногда

Зарегистрирован: 28 янв 2010, 16:31
Сообщения: 98
Откуда: Речица
Можно еще добавить одно колесо, которое будет просто крутиться при движении объекта и по числу его оборолтов определять пройденный путь (получится нечто вроде датчика расстояния), тогда о пробуксовке можно забыть)))). Затем делим расстояние на время и получаем скорость)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 16:15 
Старожил
Аватара пользователя

Зарегистрирован: 29 дек 2010, 22:08
Сообщения: 567
Digg писал(а):
Можно еще добавить одно колесо, которое будет просто крутиться при движении объекта и по числу его оборолтов определять пройденный путь (получится нечто вроде датчика расстояния), тогда о пробуксовке можно забыть)))). Затем делим расстояние на время и получаем скорость)))

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 16:30 
Старожил

Зарегистрирован: 23 июл 2010, 15:39
Сообщения: 306
Откуда: Хмельницкий, Украина
Да кучу всего можна :) можна поставить маленький пропелер который будет крутиться от набегающего потока, таже трубка пито, в комнате можна использовать дальномеры, можна сделать систему радиолокации, можна как уже говорилось использовать метки, магнитный компас, НО всё будет иметь свою точность, и не всегда будет пременимо.... Можна вообще у гаишников радар взять и самим следить за роботом и руками вводить скорость (ну или посадить человека :)...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 16:34 
Заглядывает иногда

Зарегистрирован: 28 янв 2010, 16:31
Сообщения: 98
Откуда: Речица
Ну вероятность пробуксовки такого колеса очень мала, так как его не крутит двигатель, а оно крутится за счет движения платформы. С застреванием можно бороться сделав к примеру пружинный прижим, насчет расположения тут подумать можно))) Так что, было бы желание...))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 16:41 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:55
Сообщения: 5625
Откуда: Уругвайская АССР
Изображение
Под номером 5 - специальное колесо-путеизмеритель.

_________________
Без гнева и жестокости, сегодня Смерть взмахнёт косой, и ангел тайными дорогами мой милый Кубик унесёт с собой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 16:55 
Старожил

Зарегистрирован: 14 авг 2010, 20:14
Сообщения: 1504
На сайте электроникса, как собственно и здесь порекомендовали самый простой способ определения скорости(или пути).
Это поставить дополнительное колесико и по его вращению определять скорость.
Но как это будет влиять на повороты. Это еще загадка.

Скорость(или путь) необходимы для отрисовки пройденного маршрута. Зная маршрут можно вернутся в исходную точку.

Я думал сделать привязку к вращению траков. Но если робот зацепится, то они двигаться не будет а скорость, в этом случае, отображаться будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 17:02 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:08
Сообщения: 7549
Откуда: Алма-ата
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 17:22 
Старожил
Аватара пользователя

Зарегистрирован: 29 дек 2010, 22:08
Сообщения: 567
В случае с луноходом,робот имеющий не гусеницы а более четырех колес(опорных точек)может получать вполне правдивую информацию только от датчиков поворота колес(каждого в отдельности).Вводим условие -все колеса должны вращаться почти одновременно.Насколько "почти"?Это число можно вывести из предполагаемой скорости движения,вектора(вдруг робот поворачивает).Подбирается экспериментально(простейшая табличка,выведенная для разных скоростей на одной массе).Также если затормозилось одно-два колеса,сигналы от них считать неверными.То есть обрабатывая все восемь колес,алгоритмически определять какое из них буксует(не все ведущие,разумеется)и по этой картине можно составит довольно реальное представление о скорости и направлении движения.Чем больше колес-тем меньше будет ошибок(но тем больше длина робота и сложность обработки данных)Плюс-на каждое колесо придется поставить угловой датчик положения,на основе данных которого робот рассчитает свою скорость.
В случае гусеничных движителей можно попробовать сделать несколько систем - колеса,оптодатчик от мыши,хотя бы два маркера,и т.д.На основе этих данных интерполированием выводим текущую скорость и направление.

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

SWG,это реально такие доски существуют или же игра воображенияфотошоп?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 18:05 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:19
Сообщения: 6851
Откуда: Из тех... Из бывших...
Blondie писал(а):
Это колесо может тоже пробуксовать-оно тоже круглое и катится по той же плоскости(на которой могут быть неровности).

Я считаю, что вы неправы. Пробуксовывать могут только ведущие колеса. Свободно катящееся колесо может только проскальзывать, да и то на очень скользкой/гладкой поверхности. Резиновый обод с хорошим протектором решает эту проблему даже на льду.
Такое доп. колесо- самое простое решение задачи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 18:23 
Заглядывает иногда

Зарегистрирован: 13 фев 2011, 14:54
Сообщения: 57
Откуда: Орехово-Зуево, Московская обл.
Предлагаю тебе поставить энкодеры. А далее решать проблему программно уже дело техники... Если нужно более подробно рассказать, пиши.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 18:24 
Старожил
Аватара пользователя

Зарегистрирован: 29 дек 2010, 22:08
Сообщения: 567
Цитата:
Я считаю, что вы неправы

Возможно.Я не строила луноходов а просто сделала предположения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 19:42 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:08
Сообщения: 7549
Откуда: Алма-ата
Blondie писал(а):
SWG,это реально такие доски существуют или же игра воображенияфотошоп?
Не знаю, в Интернете нашел.
Это я к тому, что не стоит излишне усложнять проблему, когда сама она этого не требует.
Если исходные данные заведомо не точны, а так же не требуется академично точного результата, то и решение надо упрощать. В пределах разумного. Например, нет смысла использовать 16 или 24 битный АЦП, если опора и элементы схемы гуляют на 5% при изменении температуры или питания... Так же и с одометрами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 20:22 
Старожил
Аватара пользователя

Зарегистрирован: 17 апр 2010, 08:38
Сообщения: 4921
Откуда: Усинск, республика Коми
SWG писал(а):
Blondie писал(а):
SWG,это реально такие доски существуют или же игра воображенияфотошоп?
Не знаю, в Интернете нашел.
Это я к тому, что не стоит излишне усложнять проблему, когда сама она этого не требует.
Если исходные данные заведомо не точны, а так же не требуется академично точного результата, то и решение надо упрощать. В пределах разумного. Например, нет смысла использовать 16 или 24 битный АЦП, если опора и элементы схемы гуляют на 5% при изменении температуры или питания... Так же и с одометрами.

Поддерживаю.

_________________
хаос это непознанный порядок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определение скорости движения робота?
СообщениеДобавлено: 13 фев 2011, 20:29 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5892
Откуда: Москва/Саратов
Цитата:
это реально такие доски существуют или же игра воображенияфотошоп?


Если присмотреться - она собрана из фотографий разных досок. Причем видимо темы там по всем предметам...

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу 1, 2  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB