roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Навигация
СообщениеДобавлено: 01 дек 2006, 10:42 
Не в сети
Аватара пользователя

Зарегистрирован: 28 ноя 2005, 12:05
Сообщения: 583
Откуда: Москва
Имеется робот:
два независимых колеса, третье подруливающее.

Начальное местоположение x0, y0, робот находится под углом u0

подаем на колеса скорость s0, s1 на время dt (база между колесами d)

Вопрос:
местоположение робота (x1, y1, u1)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 дек 2006, 20:34 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 дек 2006, 23:46 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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

во первых под углом к чему?? к холодильнику или дивану??
или у него это азимут такой?

во вторых
подавать скорость на колёса =)))
скорость можно измерить, а подать затруднительно, можно разве что вращающий момент приложить...
к тому же не задан диаметр колёс а это важно.

и в третьих
чё за dt ???? как можно умножать время на колёсную базу? :shock:

и в пятых
третье колесо действительно подруливающее??
тоесть оно во время движения подруливает?? тады надо добавить в формулу s2 скорость подруливания.
но я думаю тут просто ошибка и третье колесо на самом деле просто обычное опорное=)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2006, 09:53 
Не в сети
Аватара пользователя

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

Эт с чего?

Myp писал(а):
во первых под углом к чему?? к холодильнику или дивану?? или у него это азимут такой?

А есть разница? Да хоть к экватору.

Myp писал(а):
во вторых
подавать скорость на колёса =)))
скорость можно измерить, а подать затруднительно, можно разве что вращающий момент приложить...
к тому же не задан диаметр колёс а это важно.

Педант!  :lol:

Myp писал(а):
и в третьих
чё за dt ???? как можно умножать время на колёсную базу? :shock:

Всегда вроде dt было приращением по времени, а не произведением D*T, как вам неожиданно показалось. Опять же - с чего вы тогда тут решили что t это время? может это вообще коэффициент у него такой? :)))

Myp писал(а):
и в пятых
третье колесо действительно подруливающее??
тоесть оно во время движения подруливает?? тады надо добавить в формулу s2 скорость подруливания.
но я думаю тут просто ошибка и третье колесо на самом деле просто обычное опорное=)

Это что еще за фуфел - скорость подруливания? :) сами придумали? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2006, 11:35 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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


Цитата:
на время dt (база между колесами d)

но ведь так написано спецально в скобочках что d это не дельта как может показатся а именно колёсная база :lol:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2006, 12:25 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Ну задачка-то простая, только условие, мягко говоря, корявое.
Ответ:
Х1=Х0; У1=У0; U1=S1*t/d (радиан) (ответ строго в соответствии с условием задачи!)
Объяснение: если введены Х0 и У0 значит S0 тоже ноль, следовательно робот просто поворачивается на месте в точке Х0 и У0  на угол U1 который высчитывается по приведённой, выше, формуле.
Примечание:
если есть желание получить корректный ответ на заданный вопрос, рекомендую задавать корректный вопрос, причём желательно, в соответствии с общепринятыми обозначениями, такими как скорость она и в Африке V, путь он и в Азии S, радиус он на всей Земле R, углы (ну нет тут шрифта альфа, бета, гамма...) уж ладно a,b и т.д... к времени (t) претензий нет :)
Если же ответ не интересует, то вопрос лучше не задавать. :D
___________
С уважением
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Навигация
СообщениеДобавлено: 02 дек 2006, 14:27 
Не в сети

Зарегистрирован: 01 окт 2005, 00:56
Сообщения: 157
Откуда: С.-Петербург
mandigit писал(а):
Имеется робот:
два независимых колеса, третье подруливающее.

Начальное местоположение x0, y0, робот находится под углом u0

подаем на колеса скорость s0, s1 на время dt (база между колесами d)

Вопрос:
местоположение робота (x1, y1, u1)?


Если это то, что я подумал, то помоему решение такое (см. рис., радиус колеса R, омеги - угловые скорости, которые имеют колеса, фи - угол наклона системы)


Вложения:
coleso.gif
coleso.gif [ 16.51 КиБ | Просмотров: 3095 ]


Последний раз редактировалось GraphD 02 дек 2006, 21:15, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2006, 15:23 
Не в сети
Аватара пользователя

Зарегистрирован: 28 мар 2006, 17:28
Сообщения: 486
Откуда: Пенза
вот это тоже посмотри


Вложения:
Комментарий к файлу: Динамика мобильных роботов
Динамика мобильных роботов.pdf [146.65 КиБ]
Скачиваний: 195
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2006, 19:14 
Не в сети
Аватара пользователя

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

Если s0,s1 - скорости колеса в смысле по поверхности (то есть скорость движения точки на поверхности колеса), тогда ответ такой:

u1=u0+(s0-s1)*dt/d;
x1=x0+cos((u1+u0)/2)*dt*(s1+s2)/2
y1=y0+sin((u1+u0)/2)*dt*(s1+s2)/2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2006, 20:43 
Не в сети

Зарегистрирован: 01 окт 2005, 00:56
Сообщения: 157
Откуда: С.-Петербург
=DeaD= писал(а):
Ну вот вам мой вариант приближенного ответа при малом dt :)

Если s0,s1 - скорости колеса в смысле по поверхности (то есть скорость движения точки на поверхности колеса),


это относительно чего скорость?


Последний раз редактировалось GraphD 02 дек 2006, 21:05, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2006, 20:58 
Не в сети
Аватара пользователя

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

Если s0,s1 - скорости колеса в смысле по поверхности (то есть скорость движения точки на поверхности колеса),


что за скорость?????????
точнее относительно чего?

Ну левое колесо катится вперед со скоростью 1м/с - вот это скорость.
Соответственно когда назад, то -1м/с.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2006, 21:08 
Не в сети

Зарегистрирован: 01 окт 2005, 00:56
Сообщения: 157
Откуда: С.-Петербург
=DeaD= писал(а):
Ну левое колесо катится вперед со скоростью 1м/с - вот это скорость.
Соответственно когда назад, то -1м/с.

а понятно. линейная, все правильно.
у меня ошибка
u1 = u0 + R(w2-w1)t/d - так должно быть в случае угловых скоростей.
а весь вывод свой можешь запостить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2006, 23:42 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
GraphD писал(а):
а понятно. линейная, все правильно.
у меня ошибка
u1 = u0 + R(w2-w1)t/d - так должно быть в случае угловых скоростей.
а весь вывод свой можешь запостить?

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 дек 2006, 08:50 
Не в сети

Зарегистрирован: 01 окт 2005, 00:56
Сообщения: 157
Откуда: С.-Петербург
=DeaD= писал(а):
А что именно вызывает вопросы? У меня нет никакого вывода, это я сразу написал исходя из общих рассуждений, но какие нужно части могу подробно расписать.

>> u1=u0+(s0-s1)*dt/d;
ну это понятно

>> x1=x0+cos((u1+u0)/2)*dt*(s1+s2)/2
>> y1=y0+sin((u1+u0)/2)*dt*(s1+s2)/2
а тут в чем логика... как такое вывести из интуиции непонятно. я б такое сразу не вывел, а тем более как приближенное решение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 дек 2006, 10:27 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
GraphD писал(а):
>> x1=x0+cos((u1+u0)/2)*dt*(s1+s2)/2
>> y1=y0+sin((u1+u0)/2)*dt*(s1+s2)/2
а тут в чем логика... как такое вывести из интуиции непонятно. я б такое сразу не вывел, а тем более как приближенное решение.

Ну как в чем - мы аппроксимируем траекторию отрезком.
Угол его наклона - это средний угол наклона по траектории. Так как он меняется плавно, то берем среднее арифметическое между начальным и конечным углом, то есть (u1+u0).

Дальше - откуда я нарыл (s1+s2)/2:

Чуть сложнее. Будем считать что наш минимальный квант движения мы разложим на 3 микрохода:
1. Развернуться на месте на половину угла;
2. Проехаться по прямой;
3. Развернуться на оставшуюся половину угла;

То есть (s1,s2) мы раскладываем на (a,-a)+(b,b)
и делаем ходы (a/2,-a/2), (b,b), (a/2,-a/2).

Из уравнения очевидным образом вытекает, что b=(s0+s2)/2

Кстати, именно эти 3 микрохода и приведут к указанным мною выше формулам.

Это как я оценивал из интуиции.

Теперь точное решение.

Скорость средней точки отрезка есть среднее скоростей её концов, легко считается из уравнений физической связи:

d(yCenter)=d((y0+y1)/2)=(d(y0)+d(y1))/2


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

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


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

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


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

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