Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Калибровка датчиков. Подсчет перекрестков. Следование по инверсной линии.

Лекция



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

калибровка датчиков . подсчет перекрестков . следование по инверсной линии .

 

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

1 датчик (следование по одному краю)

Калибровка датчиков. Подсчет перекрестков. Следование по инверсной линии.

Для данного способа следования по линии необходим только один датчик. На самом деле робот следует не по самой линии, а по ее границе, постоянно  переходя от темного к светлому. На роботе также устанавливается  два привода, один двигатель включается, когда линия видна, но выключается, когда линия не видна, другой  активируется, когда линия не видна, но выключается, когда линия видна. И таким образом робот, виляя из стороны в сторону, двигается вдоль границы черного и белого. Это отлично работает на более медленных скоростях, но становится непригодным для использования в скоростном боте. Если датчик пересекает  линию, он может развернуться и поехать в обратном направлении,  если робот теряет линию, он начинает постоянно вращаться. Из–за простоты, такой тип  датчика редко используется в схемах ботов с микроконтроллерами.  Датчик может быть в одном из двух возможных состояний 1 или 0 (см. рисунок)

Условия работы сенсора:
0 – линия не видна
1 – линия видна

2 датчика (исключение линии)

Калибровка датчиков. Подсчет перекрестков. Следование по инверсной линии.

Принцип работы похож  на первый датчик, но  каждый датчик контролирует свой  двигатель. Линия находится между датчиков, а они в свою очередь стараются избегать ее.  На большой скорости эта схема работает лучше, чем предыдущая. Но если линия будет  потеряна, то робот начнет блуждать.  Это происходит потому, что бот не может отличить границы линии,  и ее потерю. Этот недостаток можно устранить программно, если в качестве мозга робота используется микроконтроллер. Чем меньше зазор между линией и датчиком, тем аккуратнее робот будет следовать по линии.

Условия работы сенсора:
00 - граница линии потеряна
01- линия справа  
10 - линия слева
11 - Не используется, если расстояние между датчиками больше чем ширина линии.

3 Датчика (предвидение линии)

Калибровка датчиков. Подсчет перекрестков. Следование по инверсной линии.

При добавлении третьего датчика к предыдущему дизайну,  бот может, определять  линии и ее края.  Тем самым робот может замечать съезд с линии.  Также данная схема, легче адаптируется  к меняющимся условиям, можно  увеличить скорость на прямой, или настроить управление более тонко.
Это одна из наиболее распространенных конструкций, мозгом робота с таким количеством сенсоров в основном является микроконтроллер.

Условия работы сенсора:
001 - линия слева
010 -линия по центру
011 - линия ушла немного влево
100 - линия справа
101 -  не используется
110 -  линия ушла немного вправо
111 - Не используется  (но  может использоваться для слежения линии в лабиринте или на сложных трассах с перекрестками)

5 Датчиков ("пляски" по линии)

Трех датчиков, очевидно, достаточно, чтобы эффективно  следовать линии, так почему же мы хотим добавить еще два? Ответ на этот вопрос сводится к главному качеству роботов для следования по линии - скорость. Добавление еще ​​двух датчиков повышает чувствительность, и датчики могут с большим разрешением  распознавать положение  линии под бампером робота. Когда бот  движется не слишком быстро, есть много времени для регулировки направления и скорости, чтобы  удержаться на линии. Что же происходит, когда скорость значительно увеличивается? Вместо того чтобы изящно следовать линии,  бот начинает избыточно поворачиваться  и может вылететь с трассы.

Калибровка датчиков. Подсчет перекрестков. Следование по инверсной линии.

С этим можно бороться двумя различными способами:

  1. Уменьшить скорость, пока бот не станет управляемым.  
  2. Планировать и компенсировать скорость.

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

Калибровка датчиков. Подсчет перекрестков. Следование по инверсной линии.

В примере на фото выше, робот потерял линию, когда  вошел в поворот. Так как он начал поворачивать налево, когда линия из под него ушла, он знает, что нужно повернуть  налево, пока не найдет полосу, крайним левым датчиком (на довольно остром углу) перед любым другим датчиком. В нормальных условиях только левый датчик, видя линию, будет поворачивать робота до упора влево. Но только для того чтобы привести его к линии не включаясь в нее. Это вернет бота обратно на трассу, и не даст ему перелететь через полосу. В отличие от предыдущей схемы  здесь очень важно наличие еще двух дополнительных  датчиков. Они служат для более точного управления и быстрого реагирования на выброс и избыточную поворачиваемость. Кликните здесь, чтобы посмотреть видео моего робота Arty.

Как и в других проектах, давайте посмотрим  возможные условия работы с пятью датчиками (я перечислил только полезные):
00000 - Потеря линии от превышения скорости или разрыв в линии.
00001 – Робот почти потерял линию, необходимо полностью повернуть на право и снизить скорость.
00011 – линия с правого края, повернуть на право.
00010 – линия ушла вправо, держаться правого края.  
00110 - чуть правее от центра линии, небольшая коррекция на право.
00100 - по центру линии, увеличить скорость для прямых участков.
01100 - Чуть левее от центра линии, небольшая коррекция влево.
01000 - Линия ушла влево, держаться левого края.
11000 - линия с левого края, повернуть налево.
10000 - Робот почти потерял линию, необходимо полностью повернуть налево и снизить скорость.
11111 - пересечение линии или круг в конце лабиринта.

Как вы можете видеть, если мы используем 5 датчиков, у нас получается гораздо более тонкий контроль движения бота,. Глядя на состояние датчиков в виде двоичных чисел, мы можем легко запрограммировать логику нашего робота.
Ниже приведен фрагмент кода от Arty, моего последнего робота для следования по линии. Это основной цикл логики, который управляет и рулевым управлением и скоростью и учитывает выброс за пределы линии, а также пытается компенсировать избыточную поворачиваемость. Об этом говорит сайт https://intellect.icu . Он написан на BASCOM для DevBoard-M8.

Lineflag это переменная, которая содержит двоичное представление состояния 5 датчиков.
Servo (1) ШИМ канал сервоприводов рулевого управления.
Servo (2) ШИМ канал приводных сервоприводов.
Overshoot флаг, указывающий на то что бот потерял линию в повороте.

Bascom Основной сегмент кода для Arty:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Case &B00000 'No line
 'If the bot loses the line, make steering changes
 Servo(2) = Slow - Progspeed
 If Lastlineflag < 4 Then
 Overshoot = 1 'Overshot a righthand corner
 Elseif Lastlineflag > 4 Then
 Overshoot = 1 'Overshot a left hand corner
 End If
 
Case &B00100 'Line under center sensor
 Overshoot = 0
 Servo(1) = Center
 Servo(2) = Mediumfast - Progspeed
 
Case &B00110
 Overshoot = 0
 Servo(1) = Smallright
 Servo(2) = Mediumfast - Progspeed
 
Case &B00010
 Overshoot = 0 'Line under midright sensor
 Servo(1) = Mediumright
 Servo(2) = Mediumfast - Progspeed
 
Case &B00011 'Line between midright and right sensor
 If Overshoot = 0 Then
 Servo(1) = Largeright
 Servo(2) = Medium - Progspeed
 Else
 Servo(1) = Mediumright
 Servo(2) = Medium - Progspeed
 End If
 
Case &B00001 'Line under right sensor
 If Overshoot = 0 Then
 Servo(1) = Hardright
 Servo(2) = Mediumslow - Progspeed
 Else
 Servo(1) = Largeright
 Servo(2) = Mediumslow - Progspeed
 End If
 
Case &B01100 'Line between center and midleft sensor
 Overshoot = 0
 Servo(1) = Smallleft
 Servo(2) = Mediumfast - Progspeed
 
Case &B01000 'Line under midleft sensor
 Overshoot = 0
 Servo(1) = Mediumleft
 Servo(2) = Mediumfast - Progspeed
 
Case &B11000 'Line between midleft and left sensor
 If Overshoot = 0 Then
 Servo(1) = Largeleft
 Servo(2) = Medium - Progspeed
 Else
 Servo(1) = Center
 Servo(2) = Medium - Progspeed
 End If
 
Case &B10000 'Line under left sensor
 If Overshoot = 0 Then
 Servo(1) = Hardleft
 Servo(2) = Mediumslow - Progspeed
 Else
 Servo(1) = Largeleft
 Servo(2) = Mediumslow - Progspeed
 End If
 
End Select

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

Заключение
Какая из четырех представленных схем подходит для вашего робота? Это зависит от вас. Наиболее простой является схема с парой датчиков. Больше датчиков даст вам больше контроля, но скорее всего, придется использовать микроконтроллер для обработки данных со всех датчиков. Используйте метод, который соответствует вашим потребностям и уровню квалификации - каждая конструкция имеет свои преимущества.

Добавление
Ниже представлена полная программа, используемая Arty 1.0. Мой первый робот, следующий по линии, имеющий шарнирно- сочлененную раму. Он включает в себя код для автоматической калибровки  датчиков линии.
Эта программа была написана для ATMega8 на Bascom-AVR. Серво команда используется для управления сервоприводом  рулевого управления и контроля скорости.

 

5.1.5. Движение по линии
Калибровка датчиков. Подсчет перекрестков. Следование по инверсной линии.

Рис. 5.5.
 

Поначалу это может показаться странным, но движение по границе черного и белого тоже можно построить на П-регуляторе. Хотя внешне задача представляется решаемой только с помощью релейного регулятора, поскольку в системе присутствует всего два видимых человеческому глазу состояния: черное и белое. Но робот все видит иначе, для него отсутствует резкая граница между этими цветами.

 

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

 

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

 
while(true)
    {
      up=k*(s1-grey);
      motor[MotorB]=50+up; 
      motor[MotorC]=50-up; 
      wait1msec(1);
    }
    
 

Коэффициент Калибровка датчиков. Подсчет перекрестков. Следование по инверсной линии. может быть достаточно мал (от 1 до 3) для маневренного устройства.

 

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

 

А как ты думаешь, при улучшении калибровка датчиков, будет лучше нам? Надеюсь, что теперь ты понял что такое калибровка датчиков, подсчет перекрестков, следование по инверсной линии, и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Робототехника

создано: 2014-08-18
обновлено: 2024-11-15
977



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


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

Робототехника

Термины: Робототехника