roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Робот балансер
СообщениеДобавлено: 06 авг 2012, 13:35 
Не в сети
Аватара пользователя

Зарегистрирован: 11 май 2009, 17:39
Сообщения: 20
Откуда: Москва
Skype: spin7ion
прог. языки: Java, PHP, C++
ФИО: Александр 7ion
Здравствуйте!

Сделал робота балансера, использующего комплементарный фильтр и пид регулятор.
Ездит он пока так:


Собственно вопрос, как можно улучшить стабильность?

Я предполагаю следующие варианты:
-поднять центр тяжести
-поиграться еще с PID
-изменить программно угол на который он выравнивается


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

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
чем ниже центр тяжести тем более неустойчивая система.

судя по видео робот чувствует что падает но алгоритм не успевает откорректировать падение и он начинает заваливаться.

удлиннить робота и аккумулятор поднять повыше, или болтов железных на макушку добавить))

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 06 авг 2012, 14:35 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
он слишком резво дёргается и слишком медленно реагирует. на первое забить можно, на второе никак. а с центром тяжести... с одной стороны да, но есть и другие варианты.

http://uarobots.com/build_robot/simple_robots/662-diy_wobblybot_a_simple_balancing_robot_step_by_step_instructions_on_creating


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 06 авг 2012, 18:39 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Такое впечатление, что ни скорость, ни позиция у него не стабилизируются, так? Только держит равновесие, а скорость какая получится? В принципе, устойчивость неплохая, совсем небольшое перерегулирование чувствуется и все - но надо как-то дополнительно застабилизировать скорость. Я так понимаю, нужен регулятор, который по рассогласованию скорости меняет угол нулевого баланса (задание регулятору баланса) и на порядок медленнее самого регулятора баланса, чтоб процессу балансирования не мешать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 06 авг 2012, 18:51 
Не в сети
Аватара пользователя

Зарегистрирован: 11 май 2009, 17:39
Сообщения: 20
Откуда: Москва
Skype: spin7ion
прог. языки: Java, PHP, C++
ФИО: Александр 7ion
WobblyBot это не перевернутый маятник. Wobbly работает как неваляшка ванька-встанька.

Добавлено спустя 2 минуты 15 секунд:
boez писал(а):
Такое впечатление, что ни скорость, ни позиция у него не стабилизируются, так? Только держит равновесие, а скорость какая получится? В принципе, устойчивость неплохая, совсем небольшое перерегулирование чувствуется и все - но надо как-то дополнительно застабилизировать скорость. Я так понимаю, нужен регулятор, который по рассогласованию скорости меняет угол нулевого баланса (задание регулятору баланса) и на порядок медленнее самого регулятора баланса, чтоб процессу балансирования не мешать.


Скорость регулируется PID регулятором, зависит от отклонения от положения равновесия. Разве не так надо?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 06 авг 2012, 19:04 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
ой, и вправду не перевёрнутый. какая печалько. :sorry: а самое неприятное, что он при этом умудряется балансировать.


Последний раз редактировалось Angel71 06 авг 2012, 19:27, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 06 авг 2012, 19:27 
Не в сети

Зарегистрирован: 24 апр 2010, 14:47
Сообщения: 736
Откуда: Уфа
прог. языки: avr asm
Angel71, тогда и вкопанный в землю столб - балансер. Ваще равномерный! И умудряется балансировать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 06 авг 2012, 19:37 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
не угадал. садись, двоечко.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 06 авг 2012, 22:24 
Не в сети
Аватара пользователя

Зарегистрирован: 11 май 2009, 17:39
Сообщения: 20
Откуда: Москва
Skype: spin7ion
прог. языки: Java, PHP, C++
ФИО: Александр 7ion
Кто-нибудь делал балансеры здесь?

Добавлено спустя 1 час 24 минуты 38 секунд:
Я сейчас добился подкруткой pid того, что робот стал лучше стоять, но он колеблется вокруг положения равновесия. Как можно улучшить это?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 06 авг 2012, 23:31 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
вам не приходило в голову, что кроме вас никто не знает, что там за схема и какой код? гиро/аксель есть? мотором управляется с шим или без? а скорость регулируется? и т.д. или вы считаете, что все с отличием закончили курсы гадалок и на бис вам сейчас подскажут где чего как минимум в коде поменять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 07 авг 2012, 00:15 
Не в сети
Аватара пользователя

Зарегистрирован: 11 май 2009, 17:39
Сообщения: 20
Откуда: Москва
Skype: spin7ion
прог. языки: Java, PHP, C++
ФИО: Александр 7ion
Angel71 писал(а):
вам не приходило в голову, что кроме вас никто не знает, что там за схема и какой код? гиро/аксель есть? мотором управляется с шим или без? а скорость регулируется? и т.д. или вы считаете, что все с отличием закончили курсы гадалок и на бис вам сейчас подскажут где чего как минимум в коде поменять?

Да, конечно вы не очень-то хорошо угадываете, как мы заметили :) . Все же настройка pid регулятора вроде имеет закономерности. Как я уже говорил, я добился некоторой стабилизации, но робот сильно осциллирует.

Может код, относящийся к пид и вправду поможет:

Код:
double balanceAt=1.31;//radians
float coeffP=5,coeffI=1,coeffD=2,coeffPID=10;
float lastError=0;
float integral=0;

void loop() {
readAverangeAcc();
 
double actualAngle=comp_filter(getAccAngle(),readAverangeGyroYRate()); 

long pid=updatePID(actualAngle,balanceAt);
lMotorSpeed=-pid;
rMotorSpeed=-pid; 
updateMotors();
lastTime=millis();

delay(10);
}

float updatePID(float current, float target){
   float dt=millis()-lastTime;
 
   float error=target-current;
     
        integral+=error*dt;
        integral=constrain(integral,-10,10);
   float derivative = (error - lastError)*1000/dt;
   Serial.print("D:");
   Serial.println(derivative);
   float output=coeffP*error+coeffI*integral+coeffD*derivative;

   lastError=error;
   
   return constrain(coeffPID*output, -255, 255);
}


Заранее спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 07 авг 2012, 00:37 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
:ROFL:
Датчики-то кто? Может это лучшее что они могут дать :)
Судя по звуку шим, драйвер двигателей - что-то хреново-дешевое


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 07 авг 2012, 00:47 
Не в сети
Аватара пользователя

Зарегистрирован: 11 май 2009, 17:39
Сообщения: 20
Откуда: Москва
Skype: spin7ion
прог. языки: Java, PHP, C++
ФИО: Александр 7ion
шим от arduino Mega(atmega2560) идет на драйвер L293D
Гироскоп: L3G4200D(цифра)
Акселерометер: MMA7361(аналог)

Добавлено спустя 51 секунду:
Моторы: http://amperka.ru/collection/Mehanika/product/Motorchik


Последний раз редактировалось Spin7ion 07 авг 2012, 01:01, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 07 авг 2012, 00:57 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
Spin7ion писал(а):
Да, конечно вы не очень-то хорошо угадываете, как мы заметили

пруф в студию.


Последний раз редактировалось Angel71 07 авг 2012, 00:58, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот балансер
СообщениеДобавлено: 07 авг 2012, 00:59 
Не в сети
Аватара пользователя

Зарегистрирован: 11 май 2009, 17:39
Сообщения: 20
Откуда: Москва
Skype: spin7ion
прог. языки: Java, PHP, C++
ФИО: Александр 7ion
Вот код фильтра.
Код:
/********************************************************************
* Complimentary Filter
********************************************************************/
double filterAngle=1.50;
double dt=0.005;//0.002

double comp_filter(double newAngle, double newRate) {

double filterTerm0;
double filterTerm1;
double filterTerm2;
double timeConstant;

timeConstant=1; // default 1.0

filterTerm0 = (newAngle - filterAngle) * timeConstant * timeConstant;
filterTerm2 += filterTerm0 * dt;
filterTerm1 = filterTerm2 + ((newAngle - filterAngle) * 2 * timeConstant) + newRate;
filterAngle = (filterTerm1 * dt) + filterAngle;

return filterAngle; // This is actually the current angle, but is stored for the next iteration
}


Добавлено спустя 47 секунд:
Angel71 писал(а):
Spin7ion писал(а):
Да, конечно вы не очень-то хорошо угадываете, как мы заметили

пруф в студию, где я угадывал?

Я про неваляшку. Извините, если обидел.


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

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


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

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


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

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