Езда по линии на ПИД-регуляторе. Проезд перекрестка с плавным поворотом

Ard
Offline
Зарегистрирован: 20.04.2020

Всем привет!

Имеется тележка, которая ездит по линии с ПИД регулированием с помощью двух аналоговых ИК датчиков.

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

Помогите пожалуйста с идеями, как это можно реализовать? Сколько датчиков аналоговых или цифровых добавить для решения?

У меня пока есть только одна идея - это тормозить левое колесо перед поворотом. Правый аналоговый датчик соответственно заедет на линию, которая идет прямо. Отслеживаем пока датчик с нее не съедет, и дальше продолжаем движение по обычному алгоритму.

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

Поэтому нужен более универсальный алгоритм.

 

rkit
Offline
Зарегистрирован: 23.11.2016

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

Ard
Offline
Зарегистрирован: 20.04.2020

Тогда дополню условия:
нужно использовать только ИК датчики линии, аналоговые или цифровые. А все расчеты и управление должна осуществлять плата ардуино.

rkit
Offline
Зарегистрирован: 23.11.2016

тогда никак

Гриша
Offline
Зарегистрирован: 27.04.2014

Ard пишет:
Тогда дополню условия: нужно использовать только ИК датчики линии, аналоговые или цифровые. А все расчеты и управление должна осуществлять плата ардуино.

rkit пишет:

тогда никак

совсем даже как, видеокамера это набор фотоэлементов, учитывая объект отслеживания упрощенную матрицу можно собрать и из ИК датчиков + сканирующий механизм. Вот без сканера действительно сложно.  

rkit
Offline
Зарегистрирован: 23.11.2016

Сумничал? Пирожок дать?

Гриша
Offline
Зарегистрирован: 27.04.2014

rkit пишет:

Сумничал? Пирожок дать?

Пирожок дашь тому, кто алгоритм обработки напишет... я только вариант решения предложил, есть чего по существу возразить?   

ЗЫ не претендую на то, что решение не ошибочное.

NikShel
Offline
Зарегистрирован: 21.01.2018

Примите, как идею:

нужно прерывать линию!

НО: тогда нужен путевой лист. В котором последовательно указаны повороты или пропуск поворотов!

Если пропуск то: в нужном месте на заранее определённое время датчики движения отключаются, а движение продолжается по прямой.

Нужные места можно попробовать определять доп.разметкой (может быть доп.датчиком). По аналогии с разметкой перекрёстков на автодорогах.

Если получится скетч пришлёте?

Гриша
Offline
Зарегистрирован: 27.04.2014
-NMi-
Offline
Зарегистрирован: 20.08.2018

Видос классный, раза три смотрел... Эхх, мне бы такую машинку да лет ннадцать назад.

А программисты из них никакие - ПИД регулирование дёрганое и уже в конце, когда вторая машинка выталкивает первую - первая продолжает ехать "вслепую" , что вааще ниправильно.

-NMi-
Offline
Зарегистрирован: 20.08.2018

rkit пишет:

тогда никак

Как вариант - одна дурдуина "присматривает" за траекторией движения а вторая "рулит". Помому мощщи должно хватить.

Гриша
Offline
Зарегистрирован: 27.04.2014

-NMi- пишет:

А программисты из них никакие - ПИД регулирование дёрганое 

Так в этом и соль всех этих гонок и прочего: идея + алгоритм + реализация этого всего. Чего толку спрашивать на сетевых ресурсах - "как?" , если вся цель поиграться и своим мозгом сделать... Ну разве что получить базовые знания, ежели совсем новичок. 

kalapanga
Offline
Зарегистрирован: 23.10.2016

А покакому правилу машинка должна определить, что на таком перекрёстке ей надо сворачивать, а не ехать прямо?

Гриша
Offline
Зарегистрирован: 27.04.2014

kalapanga пишет:

А покакому правилу машинка должна определить, что на таком перекрёстке ей надо сворачивать, а не ехать прямо?

вот Вам, лично, на каком перекрестке нужно повернуть в незнакомом городе? И как вы это делаете? Вот и научите машинку тому же (в самом примитивном понимании).

kalapanga
Offline
Зарегистрирован: 23.10.2016

Гриша пишет:

вот Вам, лично, на каком перекрестке нужно повернуть в незнакомом городе? И как вы это делаете? Вот и научите машинку тому же (в самом примитивном понимании).

Я на карту посмотрю или спрошу кого. Но вроде как в "езде по линии" ни того ни другого не подразумевается. Мне просто интересно, ведь по такой езде соревнования проводят. Там используются подобные развилки (не перпендикулярные)? И куда машинка должна ехать? 

Ard
Offline
Зарегистрирован: 20.04.2020

NikShel пишет:

Примите, как идею:

нужно прерывать линию!

Нужные места можно попробовать определять доп.разметкой (может быть доп.датчиком). По аналогии с разметкой перекрёстков на автодорогах.

В принципе идея рабочая. Главное определить перекресток ли перед тобой, или обычный поворот? При чем надо бы это определить до того, как тележка начала поворачивать.

 

Ard
Offline
Зарегистрирован: 20.04.2020

kalapanga пишет:

А покакому правилу машинка должна определить, что на таком перекрёстке ей надо сворачивать, а не ехать прямо?

Впереди стоят 3 цифровых ИК датчика, один слева, другой посередине(на линии), третий справа. Если сработает левый и средний одновременно, то перед нами перекресток с левым поворотом. Если средний и правый - то с правым.

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

kalapanga
Offline
Зарегистрирован: 23.10.2016

Чего-то я видать косноязычен стал. Не могу понятно вопрос сформулировать. Последний раз попробую.

В начальном сообщении приведён кусочек трассы - некоторая развилка. Следуя по линии машина может ехать или налево или прямо. Где цель - неизвестно. Но вопрос задан так, что из него следует - машина определённо должна поворачивать налево, проблема только в качестве прохождения поворота. А я пытаюсь выяснить, как машине объяснили что правильный маршрут налево, а не прямо. Она что, запрограммирована так, что никогда перекрёсток прямо не проезжает? Или в неё зашита какая-то информация о маршруте? Или какой-то случайный выбор запрограммирован?

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

Ard
Offline
Зарегистрирован: 20.04.2020

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

NikShel
Offline
Зарегистрирован: 21.01.2018

Ard пишет:

NikShel пишет:

Примите, как идею:нужно прерывать линию!

Нужные места можно попробовать определять доп.разметкой (может быть доп.датчиком). По аналогии с разметкой перекрёстков на автодорогах.

В принципе идея рабочая. Главное определить перекресток ли перед тобой, или обычный поворот? При чем надо бы это определить до того, как тележка начала поворачивать.

Cделайте чередующуюся разметку. Так можно понять поворот правый или левый. Если перекрёстков не очень много, то в кол-во меток можно зашифровать их номера; чёт/нечет = право/лево; скорость прохождения конкретных поворотов; может чё ещё...

Гриша
Offline
Зарегистрирован: 27.04.2014

пост 19 не пойдет - это значительно усложняет сканирование, вернее сам механизм. т.е. в этом случае действительно нужна камера низкого разрешения аля opto mouse  и безусловно проблемы с оптикой для такого решения. В данном случае требуется несколько увеличить кол-во датчиков (пробовать нужно), но 3 это самый минимум мне видится к ним нужно добавить еще 2... 5шт должно хватить так сказать необходимый минимум. ИМХО