roboforum.ru

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

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

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

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

Сообщение =DeaD= » 27 мар 2008, 10:33

Виталий писал(а):Я использую такой вариант, но без T. Непонятно зачем нужно время, ведь траектории задаются расстоянием, если у нас не танцы роботов конечно. Хотя в общем случае можно оставить.

Тоже думаю надо оставить :) потому как вдруг надо как раз "танцы роботов" :)

Виталий писал(а):А еще было замечено, что в моем случае не играет роли параметр - начальная скорость, т.к. начальная скорость - всегда текущая скорость робота на момент выдачи команды.

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

По крайней мере ничего недостающего тут уже не видится?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Виталий » 27 мар 2008, 11:25

Мне бы такого протокола наверняка хватило...
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

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

Сообщение steel_monkey » 27 мар 2008, 12:24

Кстати, "собственное движение" в данном случае-спирать. Ну а время... надо сразу написать так, чтобы если оно равно нулю ( передали так ), вообще не участвовует. То есть им вполне можно пренебечь.
Вы (сори, привычка у меня такая) в каком компилере писать собираетесь?
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

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

Сообщение Виталий » 27 мар 2008, 13:09

А вы пишете в компилере? =)
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

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

Сообщение =DeaD= » 27 мар 2008, 13:15

steel_monkey писал(а):Кстати, "собственное движение" в данном случае-спирать.

Это специально непонятно написано? :) "Спираль" что ли?

steel_monkey писал(а):Ну а время... надо сразу написать так, чтобы если оно равно нулю ( передали так ), вообще не участвовует. То есть им вполне можно пренебечь.

Не пренебречь, а рассчитать самим.

steel_monkey писал(а):Вы (сори, привычка у меня такая) в каком компилере писать собираетесь?

WinAVR

Добавлено спустя 1 минуту 5 секунд:
Виталий писал(а):А вы пишете в компилере? =)

Вот ведь лишь бы поглумиться! :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Duhas » 27 мар 2008, 18:50

кхм.. мы же управляем шасси не раз в час? и даже если так то переменная Т должна быть больше часа..

как я вижу работу шасси:
если бот стоит на месте, то первая команда приводит к разгону, пускай алгоритм разгона задан, и его параметры мы можем посчитать относительно заданных расстояния и времени... дальше если мы хотим ехать постоянно, то пока не осталось например 0.25 от заданного времени в первой команде мы кидаем шасси новую...в которой снова указано расстояние и время.. если такая команда пришла до конца выполнения первого задания шасси сглаживает скорости (например в 1 команде 10 см за 1 секунду а во второй 10 за 2 секунды) и после выполнения певого заданияпереходит ко второму...

вопщем, если за некоторое врем до конца выполнения текущей задачи не пришло новых команд, то переходим в замедлению, учитывая что остановиться надо за оставшееся время...

да траектория - окружность...в том числе и в предельном случае.. а в противоположно предельном - точка... так как зная базу колес крутиться на месте не сложно ...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение =DeaD= » 27 мар 2008, 19:43

Duhas писал(а):кхм.. мы же управляем шасси не раз в час? и даже если так то переменная Т должна быть больше часа..

Не понял вообще этой фразы.

Duhas писал(а):как я вижу работу шасси:
если бот стоит на месте, то первая команда приводит к разгону, пускай алгоритм разгона задан, и его параметры мы можем посчитать относительно заданных расстояния и времени... дальше если мы хотим ехать постоянно, то пока не осталось например 0.25 от заданного времени в первой команде мы кидаем шасси новую...в которой снова указано расстояние и время.. если такая команда пришла до конца выполнения первого задания шасси сглаживает скорости (например в 1 команде 10 см за 1 секунду а во второй 10 за 2 секунды) и после выполнения певого заданияпереходит ко второму...

вопщем, если за некоторое врем до конца выполнения текущей задачи не пришло новых команд, то переходим в замедлению, учитывая что остановиться надо за оставшееся время...

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

Вы не могли бы сформулировать формат команд? Тяжело обсуждать то что вы себе придумали и не изложили четко.

Правильно ли я понимаю, что вы предлагаете вводить команды типа (DL,DR,T)? (Где DL=расстояние которое должно пройти левое колесо, DR - правое, а T - желаемое время)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Duhas » 27 мар 2008, 19:48

да, абсолютно правильно... только не расстояние а угол поворота в кликах энкодера... нет можно конечно и расстоние, разницы мало где пересчитывать его в клики...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение =DeaD= » 27 мар 2008, 21:01

Duhas писал(а):да, абсолютно правильно... только не расстояние а угол поворота в кликах энкодера... нет можно конечно и расстоние, разницы мало где пересчитывать его в клики...

Ок, ну хоть тут угадал. Расстояние не важно с принципиальной точки в чем мерять, я тоже считал, что в кликах энкодера меряем для простоты.

Тут ведь какое дело - как скоростью управлять будет шасси, если передаем только расстояние и время? Линейно её менять на отрезке, чтобы вписаться в манёвр или как?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Duhas » 27 мар 2008, 21:06

фишка в том что мы косвенно управлем скоростью ... ведь мы можем задавать отрезки в 1 клик и давать сколь угодномалое время..

фишка в том что мы отдаем в шасси последовательность команд...если тупо едем по прямой то и команды одинауовы.. если нужно изменитьскорость уменьшили\увеличили время выполнения.. все оооочень просто
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение =DeaD= » 27 мар 2008, 23:41

Я повторю свой вопрос - мы линейно меняем скорость на отрезке или нет? Если я знаю сколько прошло левое и правое колесо - я еще не знаю где я нахожусь, я лишь знаю в каком направлении я сейчас, неужели это не очевидно?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Duhas » 28 мар 2008, 01:35

если отрезок не перва и не последня команда то да... то это не мешает делать отрезки маленькими... а можно сделать и сглаживание скорости между командами ...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение =DeaD= » 28 мар 2008, 07:29

Вы еще методы численного нахождения интегралов вспомните... короче вывод один - скорости нам по любому нужны и игнорировать их нельзя, иначе начнем отгребать совсем ненужную нам дополнительную погрешность...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Duhas » 28 мар 2008, 07:57

чесно сказать - забыл уже, хотя недавно были )))

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

1 байт - контрольный: тут биты состояния привода...
2 байт - время
3 байт - задание для левого привода
4 байт - для правого

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

ну и 5 байт той же контрольно суммы... мне кажется вполне полная посылка к приводу ...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Виталий » 28 мар 2008, 09:25

Предлагаю новый революционный подход, управление по кликам...
Верхний уровень говорит колесу, клик-клик-клик-клик-клик-клик-клик, а оно повторяет, че быстрее оно говорит, тем больше скорость. Расстояние - количество кликов
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Пред.След.

Вернуться в Идеи

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

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