Технический форум по робототехнике.
Vovan » 04 апр 2009, 22:08
Проблема в следующем:
живёт "оно" уже давно и долго и, вроде, как всё в порядке... Но вот захотелось мне всё же засинхронизировать ему ноги в противофазе. Т.е. чтобы ни в коем случае не получалось у него одновременно (параллельно) ногами двигать, а только в противофазе при любых маневрах и после них. На борту Мега8, есть 4-ре свободных порта. Не могу придумать (сообразить) какие, где и сколько датчиков для этого нужно?
Что-то мне подсказывает: нужно ставить датчики (не знаю какие) на одной стороне ног на любую крайнюю, а на другой стороне ног на среднюю...
Чё-то я стормозил кароче
![Embarassed :oops:](http://roboforum.ru/images/smilies/blush.gif)
В архиве видео "таракана" (3,7мег)
- Вложения
-
mvi_0535.rar
- (3.66 МиБ) Скачиваний: 124
=DeaD= » 04 апр 2009, 22:24
Прикольный бешенный таракан
![Very Happy :D](http://roboforum.ru/images/smilies/biggrin.gif)
Не понял что такое в противофазе ногами двигать - в смысле чтобы когда поднимает среднюю ногу слева справа поднимал переднюю и заднюю ноги?
Vovan » 04 апр 2009, 22:35
Ну бешенный потому что "испуган", в данном видео (у него несколько моделей поведения)...
В противофазе - я мождь неверно или неудачно сформулировал, но Вы правильно поняли - да именно так.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
=DeaD= » 04 апр 2009, 22:38
Блин, ну не надо меня на "Вы" называть, тем более с большой буквы
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
вроде же давно на форуме?
Датчики можно поставить например щелевые оптические, если есть куда запихнуть и есть куда на ногах приладить лепестки, которые в датчики будут влезать синхронно в нужном взаимоположении ног. Чтобы синхронизировать достаточно быстро движки, чтобы срабатывания происходили синхронно или почти синхронно.
Vovan » 04 апр 2009, 22:43
Оптические - помещу, годится.
А вот алгоритм срабатывания можно уточнить?
Т.е. так:
сработал датчик на одной стороне - ждём пока сработает на второй и только тогда продолжаем движение первой стороной... блин... чё-то я капитально торможу с такой, казалось бы, простой траблой
![Embarassed :oops:](http://roboforum.ru/images/smilies/blush.gif)
сорри...
=DeaD= » 04 апр 2009, 22:58
трабла не простая
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
особенно если учитывать, что есть нефиговые задержки в системе - между подачей ШИМ и началом движения. По моему тут типичная задача для ПИД-регулятора. т.е. скажем левый движок пускаем всегда в 70% от ШИМ, а правым ШИМом управляем ПИД-регулятором, считая ошибкой время между срабатываниями датчиков и пытаясь свести его к нулю.
Vovan » 04 апр 2009, 23:04
Спасибо за участие.
Да, походу реально не просто... я и думаю: чего это я никак не въеду?
Так-с... а если начать с того что мы пока отключим ШИМ и будем ехать только на макс. скорости? Может мне сначала определиться без ШИМа, а уж потом ПИД строить?
=DeaD= » 04 апр 2009, 23:33
Без ШИМа по моему не получится - не реально управлять такими малыми задержками для выравнивания ног включая и выключая двигатели, слишком велико время реакции системы - пока все люфты выберет, пока якорь двигателя раскрутится - тут уже и 5 раз успеют датчики сработать...
Vovan » 04 апр 2009, 23:59
М...да... верно
Придётся всю прогу переделывать... думаю в сторону ПД (без И)...
Однако туго мне придётся
![Crying or Very sad :cry:](http://roboforum.ru/images/smilies/cray.gif)
на асме ужасно витиеватая прога и без того...
executer » 05 апр 2009, 00:04
А чем обоснован отказ от И составляющей и включение Д заместь нее? Если есть люфты - их можно рассматривать как шум в канале датчика, а Д составляющая противопоказана с зашумленным каналом ОС. Всякие фильтры и ухищрения - от лукавого, если датчик не позволяет - юзайте ПИ.
И составляющую думаю Вам помогут описать на асме.
Както так вроде должна выглядеть в упрощенном виде (поправте если что) I=I+(D-I)/T
где: I - величина интеграла. справа и слева от равно - в предидущий и текущий моменты времени, соотв.
D - ошибка на входе регулятора
T - пост. интегрирования
Vovan » 05 апр 2009, 00:46
Да, собсно, ничем не обоснован, просто мысли вслух...
Да и описать, думаю смогу сам... было бы что...
Просто вижу две основных проблемы: слишком большая и витиеватая и без того прога (на си что ль начать?), а во-вторых где и как разместить ПИД чтоб не грузил сильно МК...
Кароче тут походу надо всё переделывать и начинать именно с управления ПИДом ШИМом, а уж потом всё остальное пристраивать...
Лан, будут проблемы конкретные - отпишусь...
=DeaD= » 05 апр 2009, 01:10
2Vovan: Use C
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
executer » 05 апр 2009, 10:30
В промышленных контроллерах функция ПИД неуклонно вызывается из прерывания, через равные промежутки времени.
Vovan » 05 апр 2009, 12:22
Хех... спасибо... кароче пока отложу ибо с си совсем плохо (надо подучиться
![Embarassed :oops:](http://roboforum.ru/images/smilies/blush.gif)
), а на асме чё-то оторопь берёт
![Shocked :shock:](http://roboforum.ru/images/smilies/shok.gif)
Видать пока не по зубам мне, надо признаться
![Crying or Very sad :cry:](http://roboforum.ru/images/smilies/cray.gif)
EdGull » 05 апр 2009, 12:37
может это знак свыше, что пора на васик переходить?
![Very Happy :D](http://roboforum.ru/images/smilies/biggrin.gif)