roboforum.ru

Технический форум по робототехнике.
Текущее время: 15 апр 2025, 17:12

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




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 30 ноя 2007, 14:32 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Цитата:
А вот нефиг сразу 80! ;) Плавно надо...

Этим и должен заниматься указанный алгоритм. Причем чем быстрее выход на режим тем круче как я думаю.

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 30 ноя 2007, 16:02 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Виталий писал(а):
Ну вот с парой двигателей есть проблема...
А именно их нужно синхронизировать не только до нужной скорости, но и и время набора этой скорости.
Если этого не сделать и выдать на один и на другой двигатель команду "прямо 80", то скорее всего робот сперва сделает реверанс, вызванный различными скоростями разгона двигателей, и только потом выйдет на режим.

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

Ладно - попробую рассказать как делается верхний уровень :)
Каждая из процедур нижнего уровня может выдать что она "сдается" и сказать в какую сторону "сдается" и насколько всё ужастно.

Если верхняя процедура при назначении следующих скоростей видит, что какая-то из нижних процедур "сдается", она выбирает следующие плановые показатели такие, чтобы ни одна из нижних процедур не "сдавалась" и при этом мы минимально отклонялись от плана движения в первую очередь по траектории, а во вторую - по времени её прохождения, а если такого выхода нет, то чтобы сумма "ужастностей ситуаций" была минимальной, то есть чтобы выйти из невозможности корректно влиять на ситуацию.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 30 ноя 2007, 22:41 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Ну написал то.. ;) А проще нельзя?
Короче я берусь обмозговать это дело на выходных, что-б с начала недели на работе сделать. У меня как раз такой сложный случай - одна серва работает заметно хуже другой. И я хочу попробовать алгоритм которому не нужна предварительная калибровка - все динамически.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 01 дек 2007, 07:43 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Strijar писал(а):
Ну написал то.. ;) А проще нельзя?
Короче я берусь обмозговать это дело на выходных, что-б с начала недели на работе сделать. У меня как раз такой сложный случай - одна серва работает заметно хуже другой. И я хочу попробовать алгоритм которому не нужна предварительная калибровка - все динамически.

Динамически - это проехать криво и потом думать как выправить ситуацию? :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 03 дек 2007, 13:36 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Динамически - это разгонять и тормозить с одновременным контролем скорости. И если что-то идет не так - сразу поправлять ;) В общем на выходных не удалось плотно подумать, но кое-какие мысли есть. Задавать "рассогласование" надо не "на столько то", а "в столько то". Поясню.. не "одно 10, а другое на 2 меньше", а "одно 10 а другое в 0.8 раза меньше". Тогда можно спокойно менять "общую" скорость если какое-то колесо "не может" держать заданую - при этом сохраняется дуга поворота.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 03 дек 2007, 17:07 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Strijar писал(а):
И если что-то идет не так - сразу поправлять ;)

И если поправка прошла не так - еще поправлять и еще и еще.
А через 2 метра по дуге вместо прямой может и поймете как двигателем рулить, только эти 2 метра и есть калибровка, а вы же против неё, поэтому следующие 2 метра у вас должны быть так же не так как надо :crazy:

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 03 дек 2007, 17:17 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Почему через 2 метра? Энкодер есть? У меня энкодер с точностью 5 градусов. Я решил усреднять по 2 "кликам" т.е. 10 град. Исходя из колеса 100мм, я могу узнать, что что-то не так уже через 8мм пути ;) А можно не ждать 2 клика - а сделать прогноз через какое время они должны пройти и если они за это время не пришли, сразу начать исправлять. А если пришли раньше и того проще.

Это все при том, что энкодер все равно тикает. И как бы я криво не ехал - я точно знаю как именно я проехал ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 03 дек 2007, 21:02 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Strijar писал(а):
Почему через 2 метра? Энкодер есть? У меня энкодер с точностью 5 градусов. Я решил усреднять по 2 "кликам" т.е. 10 град. Исходя из колеса 100мм, я могу узнать, что что-то не так уже через 8мм пути ;) А можно не ждать 2 клика - а сделать прогноз через какое время они должны пройти и если они за это время не пришли, сразу начать исправлять. А если пришли раньше и того проще.

Это все при том, что энкодер все равно тикает. И как бы я криво не ехал - я точно знаю как именно я проехал ;)

хех, звучит оптимистично :), "как бы я ни заехал в яму, я знаю куда я заехал" :)))

Я же говорю - либо вы калибровку признаете, пусть даже на ходу, либо будете ездить как попало.

Впрочем кто вам мешает лично встать на эти грабли :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 04 дек 2007, 20:50 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
=DeaD= писал(а):
Я же говорю - либо вы калибровку признаете, пусть даже на ходу, либо будете ездить как попало.


Ну что-ж вы так категорично? Разве я писал что я ее не признаю? ;)
Цитата:
И я хочу попробовать алгоритм которому не нужна предварительная калибровка - все динамически.


А на роботе которого я обдумываю энкодер вообще будет супер точный - на датчиках из оптических мышах ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 04 дек 2007, 22:06 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Strijar писал(а):
Цитата:
И я хочу попробовать алгоритм которому не нужна предварительная калибровка - все динамически.

А на роботе которого я обдумываю энкодер вообще будет супер точный - на датчиках из оптических мышах ;)

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

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 04 дек 2007, 22:38 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
А здесь это не будет оффтопиком? ;) Двигатели RA25 - я про них писал в разделе "Механика". Скорость вращения 160 об/м. Тут не совсем будет нужна супер точность - такие энкодеры скорей для познания ;) Потому как будет еще видео-камера и дальномер.

Добавлено спустя 4 минуты 51 секунду:
А еще мне не очень понятно зачем суперточность двигателей? Что под этим поразумевается? Двигатель крутится, энкодер тикает. Ну не разогналься он быстро или не остановился сразу - энкодер это дело засекет. Где подвох?

Добавлено спустя 2 минуты 40 секунд:
И вообще предлагаю перейти на "ты". Мы ведь почти земляки. Я родом с Тюменской области ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 04 дек 2007, 22:55 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Strijar писал(а):
А еще мне не очень понятно зачем суперточность двигателей? Что под этим поразумевается? Двигатель крутится, энкодер тикает. Ну не разогналься он быстро или не остановился сразу - энкодер это дело засекет. Где подвох?

Вопрос в том, что управляющий сигнал не всегда будет приводить к одинаковым результатам. То есть видишь ты что надо чуть быстрее ехать, увеличил ШИМ, а у тебя наоборот из-за люфтов исполнительного механизма скорость только упала в следующем шаге. Ты еще увеличил, а тут исполнительный механизм догнал и люфт исчез и у тебя тут же перелет, ты давай снижаться, а у тебя опять люфт и робот дальше летит и понеслась нелегкая... И в результате когда у тебя шаг управления меньше погрешности исполнительного устройства у тебя в колебательный процесс выродится движение легко.

Strijar писал(а):
И вообще предлагаю перейти на "ты". Мы ведь почти земляки. Я родом с Тюменской области ;)

Без вопросов :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 04 дек 2007, 23:09 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Ага. Спасибо за инфу - буду думать и пробовать ;) В движках люфта нет... на ощупь по крайней мере. В ДШ где-то оговаривается, видел - но под рукой нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 20 дек 2008, 22:46 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Кто продвинулся по этой теме или всё умерло не родившись ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление двигателями. Парой.
СообщениеДобавлено: 20 дек 2008, 23:05 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
=DeaD= писал(а):
в результате когда у тебя шаг управления меньше погрешности исполнительного устройства

а шаг управления в чем измеряется ? а погрешность исполнительного устройства в чем измеряется ?


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

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


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

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


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

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