roboforum.ru

Технический форум по робототехнике.

Универсальный протокол для управления шасси робота - вар. 1

Re: Универсальный протокол для управления шасси робота - вар. 1

Виталий » 02 сен 2008, 11:32

Очередь...
А вот интересно, зачем она?

Re: Универсальный протокол для управления шасси робота - вар. 1

=DeaD= » 02 сен 2008, 12:00

Виталий писал(а):Очередь... А вот интересно, зачем она?

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

Добавлено спустя 12 минут 37 секунд:
2vintch: Ты окончательно взорвал мой мозг. Я не понял как планировать движение твоим способом. Если у меня левое колесо прошло 10м и правое 10м - из этого невозможно точно определить где я сейчас, из этого можно только определить куда я сейчас повернут и отрезок в пространстве где я могу находится. И что за многовариантность пакетов тоже не понял, если ты считаешь что какой-то пакет может быть избыточен - ок, тогда напиши самый избыточный пакет и формулы как будет зависеть пройденное расстояние каждым колесом с начала маневра, скорость каждого колеса в каждый момент времени и продолжительность маневра от параметров твоей команды.

Моя команда (Ls,Rs,Lf,Rf,T);
Время выполнения команды: T
В момент времени t из отрезка [0,T] скорости левого и правого колёс speedL(t)=(Lf-Ls)*t/T+Ls и speedR(t)=(Rf-Rs)*t/T+Rs соответственно. Аналогично - расстояния пройденные колесами с начала маневра: distL(t)=t*Ls+t*t*(Lf-Ls)/2/T и distR(t)=t*Rs+t*t*(Rf-Rs)/2/T.

А у тебя как?

Re: Универсальный протокол для управления шасси робота - вар. 1

vintch » 02 сен 2008, 12:58

2vintch: Ты окончательно взорвал мой мозг.

Я старался :ROFL: :D :crazy:

Смотри. Давай условно представим очередь:
|0/дистанция колеса 1||1/дистанция колеса 1||2/дистанция колеса 1|
|0/дистанция колеса 2||1/дистанция колеса 2||2/дистанция колеса 2|
0, 1 и 2 - это просто номера элементов очереди.
А теперь давай её поместим на некую шкалу времени t. (Это только условно, просто для объяснения, т.к. время здесь не играет никакой роли.) И что мы получаем - у нас есть три отрезка времени, в каждом из которых колёса начинают одновременно и равномерно ускоряться до конечной скорости, а после, в зависимости от дистанции, начинают замедляться и останавливаться. Если дистанции были равны, то и бот проедет прямой отрезок пути. Если же не равны - будет дуга. Если какае-то из них нулевая - будет поворот (ну тоже дуга по-сути). Если какае-то отрицательна - будет просто разворот. То есть маневр разбивается на вот такие участки и передаётся контроллеру. После завершения каждого такого участка мы точно знаем где находится бот. Где здесь проблема?

Re: Универсальный протокол для управления шасси робота - вар. 1

=DeaD= » 02 сен 2008, 13:07

2vintch: Да здесь целых 5 проблем:
1. Невозможно осуществить поворот на ходу;
2. Невозможно совершать ряд маневров допустимых в моём варианте;
3. Движение будет рубленным. То есть с кучей остановок, разгонов и торможений, а это тупо неэффективно, хотя и примитивно;
4. Мой протокол может эмулировать твой, а наоборот нет;
5. Мой протокол проще в реализации на МК.

Из всего этого делается вывод - твой протокол надо реализовывать надстройкой программной над моим протоколом на контроллере верхнего уровня, если такое вообще надо будет.

Re: Универсальный протокол для управления шасси робота - вар. 1

vintch » 02 сен 2008, 13:17

2=DeaD=

Тупо согласен. Точка. :Bravo: :beer: :friends:

Re: Универсальный протокол для управления шасси робота - вар. 1

=DeaD= » 02 сен 2008, 14:42

А вот ты знаешь, че-то даже как-то скучно в этом случае :crazy: :ROFL: :ROFL: :ROFL:

Re: Универсальный протокол для управления шасси робота - вар. 1

vintch » 02 сен 2008, 18:12

:ROFL: :ROFL: да уж :D
Нет, ну правда, мне даже сказать нечего) ты просто прав :) А свои взгляды и мысли я естесственно пересмотрел, иначе вот так вот бы легко не согласился :crazy:

Re: Универсальный протокол для управления шасси робота - вар. 1

Виталий » 04 сен 2008, 13:24

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

Re: Универсальный протокол для управления шасси робота - вар. 1

=DeaD= » 04 сен 2008, 13:58

Виталий писал(а):Я предлагаю траекторию задавать полиномом любого порядка.

Это как конкретно? Если x(t) и y(t) принять вида a0+t*a1+t^2*a2+t^3*a3+...+t^n*an - так чтоли?

Re: Универсальный протокол для управления шасси робота - вар. 1

Виталий » 04 сен 2008, 20:29

Да.

Re: Универсальный протокол для управления шасси робота - вар. 1

=DeaD= » 04 сен 2008, 20:37

И чего теперь аппроксимировать окружности полиномами на ходу? Да-ссс, вы батенька гурман-ссс.... :)

Добавлено спустя 2 минуты 16 секунд:
Страшно представить функцию проверяющую допустимость команды (т.е. что нигде скорость не превышает заданную) ну или оценивающую время выполнения команды - это ж интегрирование численое надо мутить...

В общем очень надеюсь что это была загадочная шутка про такое предложение :)

Re: Универсальный протокол для управления шасси робота - вар. 1

Виталий » 04 сен 2008, 22:42

Да. Это была шутка такая. =)
Но не без смысла естественно. =)

Re: Универсальный протокол для управления шасси робота - вар. 1

vintch » 05 сен 2008, 15:02

Слушай, =DeaD=, а я тут вот что подумал... Как-то раньше совсем пропустил мимо. А как насчёт точности?
Ведь скорость может определяться с достаточной погрешностью, и если мы будем задавать дистанции только по времени, мы будем сильно мазать. Может как-то всё-же добавить контроль по расстоянию?

Может на небольших шасси это не будет сильно заметно, но что-то мне подсказывает, что на большом боте погрешность будет очеень значительной. Ну хотя-бы моменты разгон-остановка. Там ведь скорость нелинейна и даже если достаточно часто её корректировать (измерять) - то погрешность будет не маленькой.
Последний раз редактировалось vintch 05 сен 2008, 15:05, всего редактировалось 1 раз.

Re: Универсальный протокол для управления шасси робота - вар. 1

=DeaD= » 05 сен 2008, 15:06

2vintch: А я где-то сказал, что мы не следим за расстоянием которое должны были пройти? :)
У меня наоборот даже с предыдущего маневра если он закончился с погрешностью - она переходит к следующему маневру, чтобы мы там выровнялись, если следующий маневр есть в очереди.

Добавлено спустя 58 секунд:
Фиг бы у меня без этого RealRobot гонял по траектории четко.

Re: Универсальный протокол для управления шасси робота - вар. 1

vintch » 05 сен 2008, 15:06

2=DeaD=

Нет. Ты просто нигде не сказал, что мы за ним следим :D
Каким образом, если не секрет?


Rambler\'s Top100 Mail.ru counter