Помогите с алгоритмом управления гусенечным роботом

Резисторы, транзисторы, конденсаторы, микросборки, чип компоненты ...
Вопросы согласования управляющих модулей с периферией.

Помогите с алгоритмом управления гусенечным роботом

Сообщение digi » 11 апр 2011, 22:42

Собрал платформу робота на базе гученечного танка.

CPU: платформа ПЛИС Altera Cyclone2, NIOS2, 8Мб ОЗУ.
Интерфейсы: Bluetooth UART, Ethernet 10T, PPM 40 Mhz.
Сенсоры: Ультразвуковой поворотный сканер 120град, фото/видеокамера 2МПикс, сенсорный ЖК дисплей 240*320.
Силовая установка: 2 коллекторных стандартных привода, ШИМ по 8 бит на направление, энкодер на каждой стороне 16 имп на оборот ведущего вала.
Все это все обрабатывается аппаратно, а результаты приходят на центральный процессор.

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

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

Вообщем хелп, а то у меня творческий кризис.
digi
 
Сообщения: 3
Зарегистрирован: 11 апр 2011, 22:22
Откуда: Воронеж
прог. языки: C#, Verilog
ФИО: Александр

Re: Помогите с алгоритмом управления гусенечным роботом

Сообщение galex1981 » 11 апр 2011, 23:57

Программу приведите, а лучше внешний вид выложите вашего робота. на слух плохо воспринимается
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Помогите с алгоритмом управления гусенечным роботом

Сообщение digi » 12 апр 2011, 19:36

Внешний вид - ничего особенного. Датчики снаружи невидно. А программа - это целый проект, написаный как на verilog так и на Си. С кучей файлов. Нужна собственно рабочая идея. Неужели ни у кого такой проблемы нет, как движение гусенечной техники с отклонением от прямой ?
digi
 
Сообщения: 3
Зарегистрирован: 11 апр 2011, 22:22
Откуда: Воронеж
прог. языки: C#, Verilog
ФИО: Александр

Re: Помогите с алгоритмом управления гусенечным роботом

Сообщение vadinator » 12 апр 2011, 19:59

digi писал(а):как уровнять скорости вращения ведущих двигателей при прямом движении
тахогенераторы...они бывают разными (например обычный DC-мотор, может выполнять такую функцию...
digi писал(а): как расчитать требуемую разность в шагах между двигателями
энкодеры...
digi писал(а):Энкодеры выдают, грубо говоря, пройденное расстояние каждой гусеницы.
увеличьте их разрешение...
digi писал(а):пробовал застабилизировать обороты ПИД регулятором, но из-за малого числа импульсов на оборот и сильно разной нагрузке стабилизировать тяжело. Можно корректировать позицию ведомого привода относительно ведущего, но как тогда быть при поворотах.
ну тогда тахогенератор и преобразователь U/F (напряжение/частота)...
Может как то графически вначале порешать задачку...типа нарисовать траекторию при развороте, оценить точки контакта гусениц с поверхностью, представить зависимости усилий на этих точках в разных режимах...И эмпирически составить табличку, в которой будут уставки скорости в зависимости от состояния системы...Эту табличку можно корректировать, приближаясь к идеалу...
Роботы, уже среди нас...
Прошу прощения за аватар, никак схему динамической индикации не могу настроить :)
Аватара пользователя
vadinator
 
Сообщения: 979
Зарегистрирован: 19 янв 2010, 14:51
Откуда: Петрозаводск
прог. языки: C, FBD, Wiring-Processimg,,,LD, SFC, ST...
ФИО: Вадим

Re: Помогите с алгоритмом управления гусенечным роботом

Сообщение lvg_brest » 20 апр 2011, 18:33

Сам искал что-то подобное, вот наверное наиболее подходящий вариант, но диски энкодеров придется крепить к валу двигателя, а не на колеса привода гусениц. Как реализовать, может подскажет статья: http://www.roboclub.ru/master/2005/07/25/sensor_90.html
Посмотрите текст программы по ссылке forum58/topic4392-15.html (текст программы взят оттуда):

'Платформа применения- МИНИБОТ-1.
'Язык - Basic
'Среда - BASCOM-AVR MCS Electronics v1.11.7.7
'Назначение программы - пример для некоммерческого использования.
'Действие программы - уравнивание угловых скоростей колес одноосевой схемы
' с двумя независимыми двигателями.
'Результат работы программы - езда прямо в одном направлении.
'Пояснения - в программе использован ШИМ для управления двигателями
' и прерывание от таймера0 для обработки информации от датчиков
' оборотов двигателей.
'Дата: 10.03.2008
'Автор: Чернышев А.А.

Есть видео: P1130699_toDivX.avi
lvg_brest
 
Сообщения: 1
Зарегистрирован: 20 апр 2011, 17:57


Вернуться в Электроника, электротехника

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

Сейчас этот форум просматривают: Google [Bot] и гости: 27