В данной статье мы рассказываем о том, как беспроводные сети могут помочь беспилотным машинам справляться с некоторыми “edge case” ситуациями и описываем подход для упрощения операции поиска объектов, влияющие на свойства беспроводных каналов.  Итак, начнем! Существующие инженерные и научные достижения в сфере сетей нового поколения 5G указывают на то, что будущие беспроводные технологии имеют огромный потенциал для улучшения безопасности управления автономными транспортными средствами [https://habr.com/ru/company/seagate/blog/552356/]. По сети 5G автомобили могут «общаться» между собой сигналами и передавать друг другу необходимую информацию, например: сообщение о резком торможении или неожиданной поломке, о столкновении или аварийной ситуации. Такого рода сообщения позволят избежать многих аварийных сценариев (edge cases), в которых алгоритмы ИИ, основанные на парадигме компьютерного зрения, являются бессильными.  предупреждение о дорожных работах; помощь на поворотах с плохим обзором; запрет обгона; помощь при повороте направо (налево); предупреждение о пешеходе; помощь на перекрестках с плохим обзором. Классическую концепцию беспилотного автомобиля можно описать следующим образом: сенсоры собирают информацию об окружающем мире, передают её в компонент системы управления, который планирует действия на основе этой информации, а также данных карт и локализации. А затем система управления передает принятые решения компоненту «управление автомобилем», который контролирует автомобиль и направляет его по заданной траектории или тормозит при определенных условиях. Сенсоры — это обычно камеры, радары и лидары. По отдельности каждый из них не позволяет четко определить расстояние до объектов, их скорость и форму, но комбинация приборов устраняет индивидуальные минусы и усиливает плюсы.  Полученные данные управляющий компьютер объединяет с высокоточными картами, такими как Google, Apple, Openstreetmap итд., что позволяет ему избегать аварийных ситуаций и соблюдать правила дорожного движения (ПДД). И лидар является ключевым элементом базовой концепции. Радары являются «глазами» авто и позволяют мгновенно реагировать на любые изменения ситуации. Камеры нужны прежде всего для классификации объектов вокруг беспилотника. У камер небольшой угол обзора, поэтому на беспилотнике их, как правило, много, 4 или более. (https://habr.com/ru/company/yandex/blog/585444/) Процесс движения беспилотника — это непрерывное выполнение нескольких подзадач в реальном времени. Локализация: для этого используются данные с сенсоров и высокоточные карты. В них уже заложена масса полезной информации; например, данные о разметке, светофорах и знаках. Поэтому, к примеру, отсутствие разметки на зимней трассе не смущает ПО беспилотника. Восприятие (алгоритмы беспилотника) идентифицирует окружающие объекты. Беспилотник фиксирует их, определяет скорость и направление движения.  Предсказание — (основываясь на восприятии) беспилотник пытается спрогнозировать движение других участников дорожного движения. Вероятно, это самый сложный этап на данный момент: действия живых водителей часто плохо поддаются логике.  Планирование — (исходя из трех предыдущих задач) алгоритмы беспилотника «определяют» собственные действия и отдают команды системам управления.  Несовершенные сенсоры (радары, лидары, камеры). Радары эффективны в применимости, но они выдают мало доступной информации. Они похожи на обычные дальномеры с узким полем зрения. Лидар не умеет распознавать и различать выхлопные газы, снег и т.д., поэтому в облаке точек лидара это воспринимается как препятствие. Ограниченная зона видимости. Сейчас беспилотники оснащены 5-8 камерами. Но чем больше камер, тем выше требования к вычислительной мощности. Современные алгоритмы обработки изображений только повышают требования к вычислительным мощностям. Искусственный интеллект. В ИИ стоит фундаментальная проблема. У человека обобщающая способность намного выше чем в ИИ, следовательно, обучение сверхточной нейронной сети дается трудно. Для того чтобы она умела распознавать объекты, нужно подать коллекцию из миллиона, а то и больше логических записей. Энергоэффективность. Современные алгоритмы обработки данных и управления требуют серьезных вычислительных мощностей, что ведет к снижению энергоэффективности автомобиля. Это довольно серьезная технологическая проблема. Навигация. Актуальность карт в навигаторе. Большинство водителей сталкивалось с неактуальными картами в навигаторе, когда на дороге ремонт или что-то поменяли, человек сталкивается с некорректными данными на карте, что несет потенциальную опасность за собой. Есть HD maps (high definition maps) — это карты, построенные с высоким разрешением, с точностью до сантиметра: базовая станция корректирует GPS-сигнал автомобиля, и таким образом данные GPS учитываются с сантиметровой точностью. Но обновление карт высокого разрешения сложнее, чем обычные для навигатора. Вывод: Мы считаем, что массовое внедрение беспилотников на дорогах не предвидится в ближайшие 10 лет, потому как нужно обеспечивать децентрализованную диспетчеризацию взаимодействия, т.е. нужно совмещать обычный транспорт и беспилотный, а также, пока обычные машины с водителями превосходят автономные машины, вряд ли в ближайшем будущем мы увидим массовое появление беспилотных машин, так как ни алгоритмы, ни инфраструктура не развиты на должном уровне. Машины могут сообщать заранее об опасных ситуациях на дорогах, что ведёт к улучшению планирования. Информация о трафике и загруженности улиц будет сообщаться водителям, которые смогут выбирать маршрут таким образом, чтобы избежать перегруженных или ремонтирующихся участков дороги; Умные светофоры, определяющие длительность света в зависимости от транспортной загрузки улиц, могут оптимизировать транспортный поток; Сенсоры будут сообщать по беспроводному соединению информацию, поступающую в машину, которая будет передавать водителю о снижении скорости (или снизить скорость самому). Из вышеперечисленного становится понятно, что вся идея внедрения БО упирается в проблему ненадежности коммуникации между машинами. Таким образом, встает вопрос об ультра надежности и низкой задержки передачи данных беспроводным способом.  Существующие протоколы связи LTE и WiFi имеют достаточно большие задержки (в среднем около 50 мс, а то и выше, особенно в случае с WiFi) и не могут быть применены в сценариях улучшения безопасности движения транспортных средств. Таким образом, на данный момент не придуманы протоколы связи для машин, которые позволяли бы нужную задержку  для общения с требуемой надежностью. Чтобы сделать такие протоколы связи, нам нужны знания о каналах распространения беспроводных сигналов (характеристики каналов) Как можно узнать свойства каналов? Свойства каналов можно получить с помощью реальных измерений (инженеры проводят измерения в городах и особо оживленных местах). После накопления достаточного количества измерительных данных и их анализа, можно строить реалистичные каналы для симуляционных платформ, в которых можно проводить виртуальные эксперименты, и далее изучать свойства каналов.  Использование моделей каналов,  то есть, симулирование, позволяет анализировать свойствами канала, основываясь на которых  можно делать подходящие протоколы в будущем. В данной статье мы рассматриваем вопрос  как сделать модель каналов «реалистичными». Как сейчас делают модель каналов реалистичными? В основном это выполняется  силами исследовательских групп инженеров из университетов и технологических компаний в средах программирования MATLAB или Python. Мы же предлагаем сделать это в игровом движке (ИД) Unity 3D. Unity 3D - это среда для разработки игр, где объединены программные средства такие, как текстовый редактор, компилятор, отладчик, которые используются при создании ПО (программное обеспечение). В нём удобно работать в трёхмерном пространстве, легче управление трехмерными объектами, проще создавать объекты, можно симулировать каналы связи в реальном времени за счет высокой параллелизации вычислительных процессов. Также данный ИД можно скачать бесплатно, что делает его доступным для начинающих разработчиков. Поэтому мы решили работать с ИД Unity 3D. В независимости от вычислительных мощностей и среды программирования, сложность моделей должна быть оптимизирована для обеспечения моделирования беспроводных каналов в реальном времени. Поэтому существует множество разновидностей моделей каналов. Сложность моделирования каналов заключается  в том, что многолучевость возникает как результат многократного отражения передаваемого сигнала от зданий и других препятствий на пути распространения радиоволн. Отраженные сигналы могут интерферировать с прямым лучом, имеющим наибольшую интенсивность. В данной работе мы будем базироваться на подходе трассировки лучей (теория оптики) для моделирования канала.  Сигналы разных лучей сдвинуты по времени друг относительно друга, что обусловлено различной длиной путей их прохождения. Поскольку всегда существует несколько путей распространения радиоволн от передатчика к приемнику, то в точке приема разные копии одного и того же сигнала интерферируют друг с другом, создавая глубокие замирания радиоволны, которые в основном и влияют на качество передачи информации и пропускную способность системы . В классической теории беспроводных сетей, модель канала можно представить в следующем виде: где * - операция свертки, h - канальный фильтр (импульсная характеристика канала), t -  время наблюдения, ai - коэффициент ослабления (По формуле  Free Space Loss model: где D(r), D(t) - коэффициенты усиления приёмной и передающей антенн,  - длина радиоволны на передаваемой частоте), d(i) - дистанция между передатчиком и препятствиями,  δ - дельта функция Дирака,  c - скорость света.   Основываясь на измерениях, в данное время инженеры используют полу-стохастические модели [https://ieeexplore.ieee.org/document/8950362], в которых сигналы отражаются не от самих тел (как при идеальном отражении от поверхности), а от рефлекторов вокруг них (концепт не идеально-отражающих поверхностей), распределение которых вокруг объектов определяется статистическими методами на основе измерений, что показано на рисунках 3 и 4. Такой подход обусловлен стохастической природой окружающей среды, где все отражающие поверхности не идеальны, соответственно, отражение от таких поверхностей не подчиняется законам идеального отражения (The Low of Reflection). Свойства распределения этих рефлекторов вокруг отражающих объектов выводится из реальных измерений. Здесь можно справедливо заметить, что свойства распределения рефлекторов будут меняться от места к месту в зависимости от физических свойств материала и геометрии окружающей среды. Когда машины движутся, количество видимых рефлекторов каждый раз меняется. Отсюда следует, что сложность модели распространения радиосигналов зависит от количества элементов и путей распространения: как поведут себя пешеходы и другие машины, есть дорожные знаки, светофоры, полосы движения и многое другое.     В данной работе мы рассматриваем вопрос упрощения поиска видимых рефлекторов. Мы объясним, как упростить операцию поиска находящихся в области видимости беспилотника рефлекторов. Область видимости - это определенная область, в рамках которой программа может использовать переменную. Стандартный подход - вычисление расстояний до видимых рефлекторов; Наш подход - решать неравенства, попадают ли рефлекторы в зону анализа или нет. В стандартном подходе алгоритм решения задачи начинается с вычисления расстояния, но для снижения затрат машинного ресурса мы сначала определяем, где находятся рефлекторы, отражающие лучи распространения сигнала передатчика. Для этого мы используем простейшие операции. Элементарная операция — простейшее, обозначенное в машинном языке действие, совершаемое вычислительной машиной, то есть такое действие, которое не может быть представлено совокупностью более простых. Мы определяем за элементарными операциями операции сравнения, сложения, вычитания, abs, умножения, деления, модуль, exp, sqrt, sin, cos, tan, asin, acos, atan, pow (определение сложности элементарных операций). Таблица 1. Сложности элементарных операций, то есть затраты процессора в виде единицы машинного ресурса для выполнения той или иной операции Пример: допустим, что точки — это рефлекторы, от которых отражаются радиосигналы. Нам нужно найти расстояние от машины до рефлекторов. Для этого мы должны сначала определить, находятся ли они в области видимости (или, другими словами, зона анализа) или нет, только потом вычисляем расстояние.  Опишем вокруг центра машины квадрат, не окружность (чтобы не считать расстояния). Отметим границы этого квадрата как Xmin, Xmax, Ymin и  Ymax; эти точки будут лежать на осях X и Y, показывая минимальное или максимальное значения; сравним с вышеперечисленными точками. Для N рефлекторов понадобится 4*N машинного ресурса. Из этих N рефлекторов мы выделяем M рефлекторов, попадающих в область видимости. Чтобы найти расстояние от машины до видимых рефлекторов, используется стандартный подход подсчета расстояния: c²=a²+b². Один из способов ускорения вычисления этой операции, в смысле машинного вычисления — это замена exp на умножение: с=sqrt(a*a+b*b), где a = (x1 - x0) и b = (y1 - y0). Посчитаем сложность операции подсчета расстояния: две единицы машинного ресурса для вычисления разности, два раза по 4 единицы машинного ресурса для умножения a*a и b*b и одна операция взятия корня дает нам 55 единиц. В сумме получим 2+2*4+55 = 65. То есть для подсчета расстояния до  одной точки потребуется 65 машинного ресурса (табл. 1). Соответственно, для M рефлекторов внутри области видимости получим 65*M единиц машинного ресурса. Таким образом, для анализа всех точек и нахождения рефлекторов внутри области нам потребуется 4*N + 65*M единиц машинного ресурса.  Теперь же посмотрим на стандартный подход с областью видимости окружность. Для подсчета расстояния мы используем все те же самые 65 единиц, но также, мы должны сравнить все расстояния с радиусом круга Ro. Это даст нам в итоге 66 единиц для анализа одной точки, но мы имеем N кандидатов на рассмотрение, из которых только M попадают в область видимости. Таким образом, количество операций становится 66*N против 4*N + 65*M. При предположении большего N и фиксированного M, асимптотическое сравнение двух подходов дает выигрыш подхода с квадратной областью. Выигрыш легко подсчитать, устремляя N к бесконечности:  То есть подход с квадратной областью, тоже самое что и решение неравенств, видимости дает ускорение в 16.5 раз при анализе рефлекторов на предмет вхождения их в область видимости. Другими словами, для реализации моделирования в реальном времени имеет смысл использовать оптимизированный подход анализа рефлекторов.  В качестве технического зрения для беспилотных машин лучше выбрать областью видимости квадрат, чем круг, так как с точки зрения машинного вычисления этот подход имеет наибольшую эффективность, то есть наименьшую сложность. При этом, разница с точки зрения отличия результирующего моделированного канала пренебрежимо мало.  На Графике 1 мы представляем сложность анализа всего лишь для одной машины, но в реальной жизни на дорогах мы встречаем гораздо больше машин. Поэтому мы задаемся вопросом:  что будет, если взять 10, 100, и в общем K машин?  Например, если компьютер мощный, то для 5 машин вполне можно использовать окружность, но как только количество машин становится приблизительно 5000, то сложность «окружности» становится неподъемной для расчета, поэтому выбираем «квадрат». Для непрерывного выполнения нескольких подзадач в реальном времени, чтобы процесс движения беспилотника был надежным и с низкой задержкой передачей данных, нужна высокоскоростная сеть. Технологии 5G позволят повысить качество работы (машин) и объем полезной информации, которая будет поступать автомобилю. Это, соответственно, повысит общую безопасность, а также, возможно, скорость передвижения, если позволит пропускная способность автомобильных дорог. Нашей главной задачей было упрощение операции поиска рефлекторов, находящихся в области видимости беспилотника, с помощью нахождения, входят ли они в зону анализа или нет. Мы рассмотрели и оценили сложность существующих на процессоре операций. Выявили, что один и тот же алгоритм может решаться разными подходами. И пришли к заключению, что для эффективной масштабируемости следует использовать эффективные подходы, то есть решения с минимальной сложностью. В качестве примера было рассмотрено эффективное решение для технического зрения беспилотных машин. Таким образом, для анализа координат рефлекторов лучше всего областью видимости использовать квадрат, чем круг. В целях повышения безопасности не только пассажиров, но и других участников движения, следует использовать беспилотные автомобили, на которые являющийся причиной большинства аварий человеческий фактор не влияет. Для того чтобы беспилотник эффективно оценил ситуацию и принял правильное решение, следует использовать (добавить к существующему компьютерному зрению) беспроводное общение между машинами. Тогда машины не столкнутся (смогут избежать многих аварийных ситуаций), так как они будут предупреждены в порядке настоящего времени о скорости, а также направлении перемещения друг друга. Они смогут подобрать верную скорость и необходимую траекторию движения в соответствии с системой перемещения в данном месте. Им не нужен светофор, не нужно блокировать перемещение на перекрёстке, так как машины сами контактируют между собой, принимая во внимание перемещение других машин, тем самым избегая столкновений. Бесспорно, необходимо принимать к сведению перспективу формирования беспилотного транспорта в среднесрочной, а также долговременной перспективе, поскольку без помощи должной инфраструктуры это почти невозможно. Беспилотный транспорт без специально оснащенных дорог обойдется весьма недешево, так как осуществить беспилотное перемещение в обыкновенной городской среде на самом деле весьма трудно. Удовиченко, Р. Алгоритмы построения пути для беспилотного автомобиля. Лекция Яндекса  / Р. Удовиченко. — Текст : электронный // habr : [сайт]. — URL: https://habr.com/ru/company/yandex/blog/340674/. How expensive is an operation on a CPU?. — Текст : электронный // streamhpk : [сайт]. — URL: https://streamhpc.com/blog/2012-07-16/how-expensive-is-an-operation-on-a-cpu/. Имитация многолучевого канала на основе IEEE 802.11b. — Текст : электронный // habr : [сайт]. — URL: https://habr.com/ru/post/122544/ Глеб, Каланов Как устроены беспилотные автомобили и кто их делает / Каланов Глеб. — Текст : электронный // auto.ru : [сайт]. — URL: https://mag.auto.ru/article/selfdrivingsetup/. Область видимости. Основы. — Текст : электронный // jsflow : [сайт]. — URL: http://jsflow.org/docs/scope-fundamentals/. Руслан, Нигматулин Беспилотные автомобили для начинающих / Нигматулин Руслан. — Текст : электронный // habr : [сайт]. — URL: https://habr.com/ru/post/431758/. 36 проектов беспилотных автомобилей. — Текст : электронный // habr : [сайт]. — URL: https://habr.com/ru/post/395663/. Анатолий, Ализар «Яндекс» запустит до 1000 беспилотных машин за два года / Ализар Анатолий. — Текст : электронный // habr : [сайт]. — URL: https://habr.com/ru/news/t/464187/. Как Яндекс делает обычные автомобили беспилотными. — Текст : электронный // habr : [сайт]. — URL: https://habr.com/ru/company/yandex/blog/585444/. Беспилотные автомобили: новая нефть, искусственный интеллект и 5G. — Текст : электронный // habr : [сайт]. — URL: https://habr.com/ru/company/seagate/blog/552356/.