roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 08:33

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Двухколесный вращающийся робот
СообщениеДобавлено: 19 сен 2010, 21:02 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Читая робофорум, наткнулся на интересную ссылку
forum31/topic5401.html#p87852
Появилась идея сделать нечто подобное (не прямо сейчас, пока я занят другим проектом). Тем более что для колесно-моторной части у меня есть наработки. Для чего нужен такой робот? Для меня это просто интересная конструкторская задача - сделать девайс, у которого центр масс находится в геометрическом центре. Конечно нужно предусмотреть регулировку центра масс по двум осям. Что должен делать такой робот? Думаю пусть делает то же, что и прототип - волчок медленно ездит по линии. Теперь вопросы, которые я выношу на обсуждение.

Я так полагаю, как происходит движение. Если скорости обоих колес равны (диаметры колес тоже равны) - то робот крутится на месте. Если скорости не равны - то после одного оборота робот сдвинется по дуге (ее радиус равен бесконечности при равных скоростях, и равен расстоянию между колес при максимально различных скоростях). Робот будет ехать отрезками дуг, надо лишь вовремя менять быстрые и медленные колеса. Как узнать в какой момент нужно поменять скорости? Я пока думаю так: спереди и сзади стоит по датчику линии. После одного оборота вокруг оси меняем скорость. Это ограничивает требования к габаритам робота и минимальному радиусу поворота - трасса должна быть такой, чтоб ее можно было апроксимировать кусочно-линейно отрезками, равными расстоянию между датчиками. Это все простой подход к решению задачи. Датчиков может быть больше, есть возможность на оба колеса поставить энкодеры. Надо ли это? Я понимаю, что против скорости будет амплитуда "виляний робота", есть ли смысл гнаться за скоростью?

Робота я представляю круглым, два колеса находятся на диаметре, центр масс в центре. Вращение всегда в одну сторону. Для красоты можно сверху по окружности поставить светодиодов, датчики линии будут кадровыми синхроимпульсами, можно красивую цветовую установку сделать, в полутьме думаю будет красиво.

У прототипа есть ссылка на форум, говорят что там все просто, я посмотрел - просто для тех, кто собаку съел в пололу. Да и не люблю я чужое копировать, беру максимум идею. Напомню основные вопросы по теме:
- правильно ли я все прикинул
- нет ли лучшего алгоритма
- сколько лучше датчиков поставить по минимуму
- ну и попутные вопросы, о которых я не вспомнил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 20 сен 2010, 06:03 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Сегодня я что-то засомневался, что робот будет ездить по дуге, если скорость колес просто будет разной. У него нет понятия "перед" и "зад", а движение по дуге подразумевает направление. Мне не хватает воображения представить, как он будет двигаться. Смоделировать бы в чем-нибудь, но не знаю в чем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 20 сен 2010, 06:26 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
будет ) если сиильно охота помоделировать - у меня где-та лаба должна валяться на ету тему в матлабе

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 20 сен 2010, 09:20 
Не в сети

Зарегистрирован: 16 мар 2010, 17:42
Сообщения: 96
Откуда: Калуга
Чтоб у него было понятие "перед" и "зад" нужен датчик и линия. Ну или в "уме" считать положение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 20 сен 2010, 20:20 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Появились новые мысли. В своем первом посте я ошибся насчет траектории движения. Вращение на месте - это не движение по бесконечно большой дуге, все проще. При вращении на месте центр масс остается неподвижным (пока рассматриваем сферического коня в вакууме). Если одно колесо крутится на полную, а другое стоит на месте, то центр масс движется по окружности радиусом равным расстоянию между колесами. В любом случае после полного оборота робот окажется в той же точке, откуда начал движение. Ну а мы хотим двигаться вперед (пока вперед, а там посмотрим). Для определенности пусть робот вращается против часовой. Максимальное отклонение центра масс от начального положения будет через 90 градусов. Если после этого выровнять скорости колес, то центр масс тут и остановится. Когда робот станет передом в ту сторону, куда мы едем - снова делаем разные скорости колес, но теперь уже наоборот. Теперь мы максимально сдвинемся вперед через 270 градусов. Снова делаем скорости одинаковые, доворачиваем передок и все повторяем. Робот дугами в 90 градусов поедет вперед, при этом вращаясь все время в одну сторону.
Теперь возвращаемся на линию. Понятно, что нужен датчик спереди, чтоб робот знал где у него перед :D . И нужны два датчика по бокам, прямо рядом с колесами. Задний датчик не нужен. Ну и постоянно нужно знать какую фазу движения делает робот, пересекает он линию в нужный или не нужный раз.
Но ехать такими дугами не очень эстетично, да и датчики у колес несколько мешаются. Можно поставить их ближе к переду, например под углами 60 и 300 градусов (а не 90 и 270). Дуги будут меньше, скорость упадет, плавность возрастет. Также на плавность будет влиять рассогласование скоростей колес - больше рассогласование - больше дуга.
Ну а если линия начала поворачивать - не беда. Передний датчик ее найдет. Поступательная скорость мала (и ее можно еще уменьшить, уменьшив рассогласование скоростей), ее можно подобрать такую, что робот просто не сможет потерять линию. И никакого ПИД регулятора не надо :) . Как вы заметили, в моих рассуждениях ничего нет про энкодеры - тут они не нужны. Таким образом робота можно собрать на тиниавр. Цветомузыкой конечно придется пожертвовать, но пару светодиодов подключить к каналам моторов можно. Красный и зеленый, и чтоб при вращении они накладывались. Думаю эфект будет красивым. Вот только выключать такого робота будет трудновато.

Ну а напоследок вопрос: как по простому вычисляют центр масс? Приведу пример. На деревянной доске лежит кирпич. Известны габариты и того и другого, известны координаты их центров масс, а вот вес не известен - нет у меня маленьких весов. Плотность тоже не известна - вес не рассчитать. В общем известна только геометрия. Могу я узнать центр масс? Логика говорит что нет, но может я чего-то не знаю? А если вес я все-таки узнаю - как считают общий центр масс?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 20 сен 2010, 20:52 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
привязать две нитки за разные углы.
Подвесить на одной - провести (мысленно) линию - продолжение нитки внутри конструкции.
Подвесить на второй - то же самое.
Найти точку, где эти линии пересекаются.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 21 сен 2010, 06:23 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Насчет центра масс - отличная идея! А вот с одним датчиком на морде что-то не получается представить. Но идея понятна, буду думать, может и представлю к вечеру :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 21 сен 2010, 11:11 
Не в сети

Зарегистрирован: 16 мар 2010, 17:42
Сообщения: 96
Откуда: Калуга
С одним датчиком алгоритм должен быть сложным, иначе на поворотах линию потеряет. С тремя датчиками гораздо проще - можно схему вообще без процессора, на транзисторах и логике сделать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 21 сен 2010, 15:21 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
А по-моему, все как раз просто как лапти...

Собственно, как и код в приведенном примере


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 21 сен 2010, 20:34 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Я допетрил как с одним датчиком. Действительно все просто. Поясню, чтобы и остальные поняли. Моя проблема была в том, что я рассматривал идеальные объекты, точки и линии без ширины.
Итак, робот вращается против часовой, спереди один датчик. Первый постулат: после полуоборота вокруг себя робот трансформируется сам в себя (то колесо, что ехало вперед поедет назад и наоборот). Датчик на линии спереди - правое колесо быстрее левого. Центр масс уехал с линии влево. Датчик на линии сзади - робот трансформировался и новое правое колесо (бывшее левое) делаем быстрее нового левого колеса (бывшего правого). Теперь ключевое определение - раньше центр масс был на линии, теперь он сбоку от линии, а датчик на линии - следовательно робот стит под углом к линии. Скорости колес переключены - центр масс переедет через линию. Робот сделал один оборот, центр масс дважды пересек линию, робот сместился по линии. Дальность отклонения центра масс от линии влияет на скорость, но есть опасность потерять линию. Если разбаланс скоростей будет очень маленьким, то робот может вообще не покидать линию, а немного осциллировать около ее середины. Но тогда скорость будет меньше чем у улитки. Тут главное, что нужно понять - это два момента. Первый: центр масс робота смещается перпендикулятно положению робота, когда скорости колес стали разными. Второе - после начального положения робот должен находиться под углом к линии всегда, когда датчик линии говорит "Линия".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двухколесный вращающийся робот
СообщениеДобавлено: 21 сен 2010, 21:09 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
ну, я думаю, что реально все еще проще...
Когда мы снижаем шим, скорость же не меняется мгновенно - просто колесо _НАЧИНАЕТ_ _ПЛАВНО_ подтормаживать. Так что реальная картинка будет зависеть от динамики механики...

Уверен, что можно будет просто подобрать скорость вращения и разбаланс скоростей (скорость движения по линии), даже поставив датчик прямо на морде, а не смещая нос в сторону.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

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


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

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO