roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 00:56 
Не в сети
Аватара пользователя

Зарегистрирован: 24 апр 2013, 12:47
Сообщения: 32
Ребенок в школе делает самостоятельную работу - "Исследование простейших алгоритмов группового поведения роботов при прохождении незнакомых объектов типа лабиринт".

В итоге будем моделировать алгоритм Крейга Рейнольдса.
Правила алгоритма:
1. Держать скорость как у соседа
2. Сохранять до ближайших соседей одно расстояние
3. Постараться ни с кем не столкнуться.
Вообще из-за сложности проект разбит на две части:
1 часть (10 класс) - разработка и создание одного из группы роботов, разработка алгоритма прохождения одиночным роботом простого лабиринта.
2 часть (11 класс) - исследование простейших алгоритмов группового поведения роботов при прохождении незнакомых объектов типа лабиринт.

Сначала думали купить платформы на АЭ.
Но потом спроектировали свою - побольше и поменьше. Остановились на той, что поменьше - тестовый лабиринт будет меньше места занимать.
Корпус распечатан на 3D принтере.
Диаметр итогового ройбота - 80мм.

На скрине все три платформы.
Вложение:
Roybot_01.jpg
Roybot_01.jpg [ 41.75 КиБ | Просмотров: 3104 ]
Слева направо: итоговый вариант, промежуточный, магазинный

Пока готов только тестовый - 1 черный
Вложение:
Roybot_02.jpg
Roybot_02.jpg [ 97.19 КиБ | Просмотров: 3101 ]

Вложение:
Roybot_03.jpg
Roybot_03.jpg [ 41.59 КиБ | Просмотров: 3111 ]


Небольшое видео.

В предосмотре почему-то не видно, но надеюсь, что нормально в сообщение вставится (модераторы - поправьте пожалуйста).
Если не вставится, то вот ссылка на Ютуб.

Будущая группа.
Вложение:
Roybot_04.jpg
Roybot_04.jpg [ 71.59 КиБ | Просмотров: 3118 ]


Группа в большом лабиринте.
Вложение:
Roybot_05.jpg
Roybot_05.jpg [ 49.58 КиБ | Просмотров: 3106 ]

Вложение:
Roybot_06.jpg
Roybot_06.jpg [ 52.65 КиБ | Просмотров: 3101 ]


Тестовый лабиринт (из спроектированных деталей можно собрать несколько вариантов)
Вложение:
Roybot_07.jpg
Roybot_07.jpg [ 50.3 КиБ | Просмотров: 3094 ]


Фото/видео тестового подготовлю позже, если будет интерес у сообщества. 8)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 04:58 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
на первое время с физическими ботами, ориентироваться не сильно сложно будет? на компьютере можно простенькую программу написать. сходу делать в каком игровом движе, может и не стоит (может уйти больше времени на изучение движка). форму и на ней отрисовывать. ещё кстати processing есть, по подобным алгоритмам в сети есть ряд скетчей. введите, к примеру такой запрос "processing boids".
с физической реализацией для упрощения ориентации можно использовать одну или несколкьо внешних камер. сверху на каждого бумажку с визуальным кодо, по которому идентифицировать каждого робота, определять его положение и направление. или esp32 + камера, кадры передавать или на ботах обрабатывать или отправлять на компьютер. на ботах где-то выше дальномеров, по периметру корпуса 4, 5 или 6ти гранник, на сторонах которых визуальные метки, по которым хотя бы расстояние определять. с камерой на боте для ориентации ещё можно, допустим примерно как тут два варианта маркировки
Вложение:
Roybot_07.jpg
Roybot_07.jpg [ 67.62 КиБ | Просмотров: 3063 ]

или ещё какую маркировку продумать
из компактных платформ ещё можно шагающего (два мотора - одним поворачивает, вторым шагает вперёд/назад). вот одного в банку поймал, пока не убежал
Вложение:
2.jpg
2.jpg [ 527.88 КиБ | Просмотров: 3068 ]

вот кстати человек так реализовал
Вложение:
3.jpg
3.jpg [ 65.88 КиБ | Просмотров: 3067 ]

только сразу предупреждаю, такую конструкцию чуть сложней (по крайней мере первого) и дольше делать. хотя некоторые и покупных переделывают
Вложение:
4.jpg
4.jpg [ 59.18 КиБ | Просмотров: 3062 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 09:44 
Не в сети
Аватара пользователя

Зарегистрирован: 24 апр 2013, 12:47
Сообщения: 32
Angel71 писал(а):
на первое время с физическими ботами, ориентироваться не сильно сложно будет?
Нет.
Первый Черный уже вовсю бегает среди лабиринта из книг.
Проблема с фотиком - сломался. Новый будет только на неделе - тогда и сфотаем/сделаем видео.
Ну и еще лабиринт не доделан - сохнут покрашенные стенки (фанера).
У каждого робота по несколько сенсоров:
Один HC-SR04 - дальняя зона
Два TCRT5000L - средняя зона
4 датчика касания (концевик) - ближняя зона
Думаем, что этого им для "общения" будет достаточно.
На крайний случай, любому роботу из группы можно будет "подсказать" по WiFi куда бежать, кроме того они могут по WiFi общаться между собой.
А о своем состоянии робот сможет сообщать при помощи пищика и/или светодиода.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 11:01 
Не в сети

Зарегистрирован: 23 июл 2012, 15:24
Сообщения: 1480
В школе. Роевое поведение роботов.
Хмм... А как успехи с холодным термоядом? ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 11:13 
Не в сети
Аватара пользователя

Зарегистрирован: 24 апр 2013, 12:47
Сообщения: 32
"Занимаюсь на труде синхрофазотроном." (с) :crazy:

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

Это у нас была халява - а сейчас или мозги или деньги (или все вместе).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 17:24 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
в том-то и дело, что все датчики видел и есть небольшое опасение, что ориентация для данной задачи может оказаться немного проблемной. в лабиринте один то нормально бегать будет. а для группы с учётом задач вроде многовато косвенных и не очень точных данных. хотя сильно зависит от подхода. должны карту строить, понимать где они сейчас находятся и в каком направлении ориентированы или на полуощупь тыкаться, как-то пытаться понять перед ним стена или другой бот. и т.д., т.е. в том числе и как воспринимать ваши пункты 1 и 2. та же скорость зависит от шима и напряжения аккумуляторов. энкодеров нет, данных об абсолютном положении других нет, относительные кое как косвенно и неточно. т.е. как скорость и расстояние выдерживать? даже данные о скорости в додумываемых попугаях - с разно просевшими акуумуляторами, простым заданием шима реальная скорость будет немного отличаться. до некоторой степени это может и не будет проблемой. ещё двигаются же они не по виртуальным клеткам, перепрыгивая из текущей в одну из 8ми соседних (и обсчёт всех за один тик), а по разным путям с асинхронно работающим кодом на каждом.
Вложение:
1.jpg
1.jpg [ 71.56 КиБ | Просмотров: 2951 ]

и т.д. в общем много от подхода и желаемого поведения зависит и в отличии от виртуальной реализации, для физической при реализации всякие интересные или труднорешаемые особенности могут нарисоваться.
кстати если со временем (хоть потом, уже после школы) решите использовать более-менее точное абсолютное положение и карту/карты, можно будет реализовывать некоторые интересные роевые алгоритмы. допустим с картой запахов некоторые муравьиные алгоритмы.
про ик сходу не скажу, а уз мешать друг другу сильно могут. если с уз будут трудность, можно сделать согласование. к примеру у первого тймаут по времени и если последний долго не сообщал о сканировании, начинать скан. включил уз, измерял, отключил и в эфир "первый закончил"/"второй давай сканируй". второй закончил скан, сообщает третьему. и т.д. или как в вашем коде и как вы выпускать их бдете (когда добавляете и убираете, делать самонастройку может и интересно, но пока может стоит и повременить с этим) по другому удобней будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 18:56 
Не в сети
Аватара пользователя

Зарегистрирован: 24 апр 2013, 12:47
Сообщения: 32
Все будет без карты.
С условием построения карты сильно дорожает каждый робот и усложняется общий алгоритм взаимодействия.

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

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

Angel71 писал(а):
а уз мешать друг другу сильно могут. если с уз будут трудность, можно сделать согласование. к примеру у первого тймаут по времени и если последний долго не сообщал о сканировании, начинать скан. включил уз, измерял, отключил и в эфир "первый закончил"/"второй давай сканируй". второй закончил скан, сообщает третьему. и т.д.
Думали сделать "плавающий" период опроса. Но этот вопрос решим как будут несколько роботов.
Сейчас надо все, что сделали оформить и сдать сделанное (это прохождение одиночным роботом лабиринта).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 19:11 
Не в сети
Аватара пользователя

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

какой драйвер (микросхема) используется? в каких-то наверно можно по некоторому протоколу частоту шима или ещё что задавать. в некоторых отдельный пин для шима. в некоторых можно шимить через два управляющих пина. для примера drv8833 (отличий между разными decay режимами заметить не удалось)
Вложение:
1.jpg
1.jpg [ 58.93 КиБ | Просмотров: 3101 ]


Последний раз редактировалось Angel71 10 фев 2019, 19:22, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 19:19 
Не в сети
Аватара пользователя

Зарегистрирован: 24 апр 2013, 12:47
Сообщения: 32
Драйвер "TZT teng.5A"
Вложение:
TZT teng.5A.jpg
TZT teng.5A.jpg [ 50.74 КиБ | Просмотров: 2917 ]

Карта управления
Вложение:
Card_TZT teng.5A.jpg
Card_TZT teng.5A.jpg [ 179.24 КиБ | Просмотров: 2922 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 19:25 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 19:28 
Не в сети
Аватара пользователя

Зарегистрирован: 24 апр 2013, 12:47
Сообщения: 32
Пробовали - реакция только на наличие/отсутствие сигнала, т.е. управление "1" или "0". Но с ШИМом тоже работает - 125 как "0", выше как "1" воспринимается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 19:38 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
Код:
void SetPwm(uint16_t pwm1, uint16_t pwm2)
{
  __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, pwm1);
  __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, pwm2);
}

void Servo::stopMotor()
{
  SetPwm(1, 1); //slow decay
}

//direction 0 - to minimum of potentiometr value, 1 - to maximum
void Servo::runMotor(bool direction, uint16_t pwm)
{
   bool decayMode = 0; //decay 0 - fast, 1 - slow
  if(config.invertRotation)
      direction = !direction;
   
  if(pwm > pwmMaxPulseWidth)
    pwm = pwmMaxPulseWidth;
  if(direction)
  {
    pwm1 = decayMode; // TIM_CHANNEL_1
    pwm2 = pwm; // TIM_CHANNEL_2
  }
  else
  {
    pwm1 = pwm; // TIM_CHANNEL_1
    pwm2 = decayMode; // TIM_CHANNEL_2
  }
  SetPwm(pwm1, pwm2);
}

не помню, почему так и переделывал ли потом. на всякий, может для вашего мк и прочего так тоже подойдёт.
да не, похоже просто код причесать нужно и заработает шим. на всякий перепроверить, привильно ли собственно шим настроен и задаётся. скважность это не прямое линейное управление скоростью. т.е. задали 3% или 95%, не будет вращать прям на 3% или 95% от максимальной скорости. до некоторой скважности вращения не будет совсем. потом еле-еле будет пытаться вращать, но всё ещё "мощности" не хватит. потом постепенно (зависимость не линейная) скорость должна увеличиваться. в определённый момент будет максимальной, но шим ещё сколько-то там докручивать можно. тут с этим всем ещё с нагрузкой момент.
допустим потенциометр подключить к мк, на один пин единицу, а второй шимить в зависимости от того как выкручен потенциометр. из простого, можно скважность через консоль в уарт отправлять.
с шимом скорость калибровать. или замерять, допустим оптопрерывателями в двух точках на "трассе". или на вал/колесо метку как сделать и оптопарой частоту замерять. потом сделать массив из нескольких значений соответствия скоростей шиму и промежуточные интерполировать по простому вычислять, ну или засисимость определить и более точно вычислять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 19:48 
Не в сети
Аватара пользователя

Зарегистрирован: 24 апр 2013, 12:47
Сообщения: 32
Angel71 писал(а):
просто код причесать нужно и заработает шим. во-первых скважность это не прямое линейное управление скоростью. т.е. задали 3% или 95%, не будет вращать прям на 3% или 95% от максимальной скорости. до некоторой скважности вращения не будет совсем.

Управляющий канал понимает только наличие/отсутсвие сигнала на нем.
Пробовали разную скважность ШИМ (меняли по 1%) - не работает с этим драйвером как хотелось бы.
Ну, или мы не умеем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 19:55 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
пока из догадок, что нужно перепроверить (мультиметром и/или даталоггером), настроен ли шим правильно, как потом скважность задаётся, может попробовать другие частоты шима. с этим драйвером не сталкивался и даташит что-то не наодится (маркировку микросхемы драйвера трудно понять, у китавайцев в лотах вплоть до всякой дичи на подобии l298 упоминается), но возможно как и с drv8833 ещё какой нюанс с шимом. в drv8833 там внутренний генератор для шима на 50кгц (не приятно на некоторых моторах, пищит и дополнительных муторных телодвижений), т.е. внешний шим накладывается на внутренний.
п.с. альтернативный вариант, если не захочется возиться или с тем драйвером что-то не так, это использовать другие драйверы. тот же drv8833 или что на подобии из недорогого и компактного. из вариантов не очень (короткое легко устроить), хоть на транзисторах (посмотрите схему и код той же openservo).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ройботы - роботы для исследования группового поведения
СообщениеДобавлено: 10 фев 2019, 20:11 
Не в сети
Аватара пользователя

Зарегистрирован: 24 апр 2013, 12:47
Сообщения: 32
Angel71 писал(а):
с этим драйвером не сталкивался и даташит что-то не наодится (маркировку микросхемы драйвера трудно понять
Даташит тоже не нашли. Только вот такое видео - ссылка.

Вторая причина, по которой не использовали что-то другое - дефицит свободных выводов на Ардуино. Мультиплексоры ставить не выход - места мало на теле робота.

В принципе, как писал уже выше, мы все проблемы отсутствия регулирования скорости моторов решили.


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

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


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

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


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

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