Академический Документы
Профессиональный Документы
Культура Документы
На правах рукописи
УДК 629.33
ДИССЕРТАЦИЯ
на соискание ученой степени
доктора технических наук
Москва - 2017
2
СОДЕРЖАНИЕ
Стр.
Введение……………………………………………………………………... 5
ГЛАВА 1. ОБЗОР И АНАЛИЗ РАБОТ В ОБЛАСТИ
АВТОМАТИЗАЦИИ ДВИЖЕНИЯ АВТОМОБИЛЯ……...……………... 13
1.1. История развития исследований………………….…………….. 13
1.2. Автономное АТС в составе кооперативных
интеллектуальных транспортных систем……………...…………… 28
1.3. Обзор подходов к созданию математических моделей
движения автотранспортных средств………………………………. 32
1.4. Стандартизация в исследуемой области……………………….. 52
1.4.1. Анализ стандарта SAE J3016 «Системы
автоматизированного управления движением АТС.
Классификация, термины и определения»…………………... 57
1.4.2. Обзор стандартов SAE J3018 и SAE J3092……………. 79
1.5. Выводы, постановка цели и задач диссертации……………….. 80
ГЛАВА 2. КОНЦЕПЦИЯ СОЗДАНИЯ СИСТЕМ УПРАВЛЕНИЯ
ДВИЖЕНИЕМ АВТОНОМНЫХ КОЛЕСНЫХ ТРАНСПОРТНЫХ
СРЕДСТВ……………………………………………………………………. 83
2.1. Структура системы «Водитель – Система Автономного
Вождения – Автомобиль – Дорога – Транспортная Среда –
Информационное Поле»……………………………………………... 83
2.2. Концепция системы управления движением автомобиля……. 86
2.3. Архитектура сети и состав системы автономного вождения… 107
2.4. Актуализация технических задач………………………………. 109
2.5. Общие проблемы создания автономных колесных
транспортных средств……………………………………………….. 113
2.6. Выводы по главе 2………………………………………………. 115
3
Стр.
ГЛАВА 3. ПРЕДЛОЖЕНИЯ ПО СОЗДАНИЮ СИСТЕМЫ
УПРАВЛЕНИЯ ДВИЖЕНИЕМ АВТОНОМНОГО КОЛЕСНОГО
ТРАНСПОРТНОГО СРЕДСТВА…………………………………………... 116
3.1. Математическое моделирование управляемого движения
автомобиля……………………………………………………………. 116
3.2. Методика уточнения параметров математической модели
на основе результатов дорожных испытаний………………………. 150
3.3. Проверка адекватности математической модели……………… 156
3.3.1. Дорожные испытания микроавтобуса (задний
привод, категория М2)………………………………………… 156
3.3.1.1. Объект и программа испытаний………………. 156
3.3.1.2. Измерительное оборудование…………………. 161
3.3.1.3. Обработка экспериментальных данных………. 166
3.3.1.4. Оценка точности результатов моделирования.. 188
3.3.2. Дорожные испытания легкового автомобиля
(полный привод, категория М1)………………………………. 201
3.3.2.1. Объект и программа испытаний………………. 201
3.3.2.2. Измерительное оборудование…………………. 202
3.3.2.3. Обработка экспериментальных данных………. 204
3.3.2.4. Оценка точности результатов моделирования.. 213
3.3.3. Дорожные испытания легкового автомобиля
(передний привод, категория М1)…………………………….. 220
3.3.3.1. Объект и программа испытаний………………. 220
3.3.3.2. Измерительное оборудование…………………. 221
3.3.3.3. Обработка экспериментальных данных………. 223
3.3.3.4. Оценка точности результатов моделирования.. 227
3.4. Математическая модель расчета закона управления рулевым
колесом при движении по заданной траектории…………………… 234
4
Стр.
3.5. Экспериментально-расчетная методика определения типа
опорного покрытия в режиме реального времени…………………. 239
3.6. Адаптация математической модели управляемого движения
для использования в составе предикторной системы управления... 243
3.7. Выводы по главе 3……………………………………………….. 245
ГЛАВА 4. МЕТОДЫ ИНТЕГРАЦИИ АВТОНОМНЫХ КОЛЕСНЫХ
ТРАНСПОРТНЫХ СРЕДСТВ В ИНТЕЛЛЕКТУАЛЬНУЮ
ТРАНСПОРТНУЮ СРЕДУ………………………………………………… 247
4.1. Декодирование данных, передаваемых по бортовым сетям
современных колесных транспортных средств…………………….. 247
4.2. Использование данных бортовых сетей автомобилей
при проведении дорожных испытаний, в задачах ИТС и
автоматизации управляемого движения, обоснование
применимости……………………………………………………….... 260
4.2.1. Дорожные испытания легкового полноприводного
автомобиля (категория М1)…………………………………… 267
4.2.2. Дорожные испытания легкового переднеприводного
автомобиля (категория М1)…………………………………… 276
4.3. Информационное обеспечение взаимодействия автономных
КТС с интеллектуальной транспортной средой……………………. 279
4.4. Выводы по главе 4……………………………………………….. 285
ГЛАВА 5. РАЗРАБОТКА И ИСПЫТАНИЯ ОПЫТНЫХ ОБРАЗЦОВ
АВТОНОМНЫХ КОЛЕСНЫХ ТРАНСПОРТНЫХ СРЕДСТВ…………. 287
5.1. Платформа микроавтобуса……………………………………… 287
5.2. Платформа легкового автомобиля……………………………… 298
5.3. Выводы по главе 5……………………………………………….. 332
ОСНОВНЫЕ РЕЗУЛЬТАТЫ И ВЫВОДЫ………………………………... 333
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ……………………………. 335
ПРИЛОЖЕНИЕ……………………………………………………………... 354
5
ВВЕДЕНИЕ
Актуальность работы
Повышение эффективности транспортного обслуживания населения за счет
применения инновационных организационных и технических решений связано с
развитием и внедрением интеллектуальных транспортных систем,
интеллектуальных (автономных) транспортных средств, а также с уменьшением
степени влияния человеческого фактора на процессы управления транспортными
средствами. Естественным является то обстоятельство, что автономные колесные
транспортные средства, в зависимости от степени автоматизации, будут уменьшать
нагрузку, оказываемую на водителей, не будут ухудшать дорожную ситуацию, но
будут улучшать эффективность транспортного обслуживания и повышать
безопасность дорожного движения. Снижение тяжести дорожно-транспортных
происшествий, сохранение и поддержание трудоспособности населения,
повышение производительности труда, в том числе, за счет автоматизации
технологических процессов, всегда находилось в сфере государственных
интересов Российской Федерации.
Вместе с тем, при выполнении специальных транспортно-технологических
операций с использованием колесных транспортных средств имеют место
ситуации, когда участие водителя в процессе управления связано с риском для его
жизни, например, при ликвидации чрезвычайных ситуаций, при проведении
войсковых операций, в т.ч. при противодействии терроризму.
В то же время, общемировая тенденция показывает, что современные
автомобили и дорожная транспортная техника все в меньшей мере остаются
одиночными транспортными средствами, все более интегрируясь в
информационную транспортную среду.
Таким образом, разработка методологии создания систем управления
движением автономных колесных транспортных средств, интегрированных в
интеллектуальную транспортную среду, имеет и гражданскую, и военную
направленности, является актуальной и соответствует приоритетным
6
где:
- среднее арифметическое значение углов поворота управляемых колес;
1 и 2 - углы увода передней и задней оси соответственно.
характеристика);
В результате проведенных испытаний делается вывод о том, что автомобиль
не может быть использован для полностью автоматизированного движения по
заданной траектории из-за трудностей определения положения автомобиля на
дороге, невозможности оптимизации скорости движения в зависимости от
кривизны траектории и условий по сцеплению шин с опорной поверхностью,
сложности учета упругих связей в рулевом механизме и приводе, сложности учета
кинематических характеристик систем подрессоривания и других причин.
Отметим, что указанный вывод был сделан исходя из развития уровня техники и на
тот момент времени был правомерен. Также в диссертационной работе [18] была
предложена методика определения точности движения автомобиля по заданной
траектории на основании оценки дисперсий отклонений, курсовых колебаний
автомобиля на траектории и ширины полосы движения.
В диссертационной работе [49] проводится исследование траекторной
управляемости автомобиля на основании оценки параметров бокового смещения и
ускорения центра масс, устанавливается взаимосвязь геометрических параметров
автомобиля, режимов движения и дорожных условий от выбранных
контролируемых параметров, предлагается к использованию безразмерный
коэффициент управляемости, рассчитываемый на основании сопоставления
боковых смещений и ускорений центра масс автомобиля при движении по
фактической траектории по отношению к таким же параметрам, рассчитанным
теоретически по упрощенной математической модели квазистатического движения
автомобиля. Применительно к рассматриваемому вопросу решения задачи
16
Рисунок 1.3. Автономное АТС Boss – победитель DARPA Grand Challenge 2007
[51, 54, 58, 59, 62], а также многих других. Тактический уровень управления связан
с вопросами психофизиологии [63] и в большей части зависит от правильности
функционирования системы технического зрения [56, 57, 62, 64, 65], которая также
непосредственно не входит в предметную область настоящего исследования.
Итак, не акцентируя внимание на состав системы технического зрения
автономного АТС Boss, состоящей из множества радаров, лидаров и видеокамер,
можно отметить, что все вычисления проводились с помощью 10 двуядерных
процессоров Intel Core2Duo с тактовой частотой 2,16 Гц, оперативной памятью 2
Гб и флэш-накопителем 4 Гб каждый, объединенные двумя гигабитными сетями
Ethernet. Также в состав вычислительной системы входили два твердотельных
накопителя по 500 Гб каждый и импульсный генератор для обеспечения временной
синхронизации всех процессоров. Система электропитания дополнительного
оборудования состояла из двух независимых контуров с напряжениями 12В и 24В
соответственно: источниками питания первой линии были 12-вольтовый АКБ с
генератором повышенной мощности; во второй линии использовался
дополнительный АКБ с напряжением 24В и дополнительный генератор [54].
Операционное управление (на исполнительном уровне) движением
автономным АТС Boss осуществлялось следующим образом: желаемая траектория
движения задавалась набором точек X C , каждая из которых содержала координаты
( xC , yC ) и угол ориентации главной продольной оси автомобиля C в неподвижной
X F ( p, x) X I x ( p, x)dt (1.5)
0
21
где:
k , k soft , k yaw , k steer , k ag - индивидуально настраиваемые под конкретный автомобиль
константы;
v(t ) - скорость движения автомобиля;
соответственно;
meas (i), meas (i 1) - средний угол поворота управляемых колес в текущий и
где:
L - колесная база автомобиля;
где:
k , k 0 , Q, P - положительные константы, индивидуально настраиваемые под
конкретный автомобиль;
l - колесная база автомобиля;
v r - скорость движения автомобиля;
u y
Объект
G (q) g (k ) q k ; q 1 u (t ) u (t 1) (1.15)
k 1
где:
F (q) 1 f1 q 1 f nf q nf
где:
D(q) 1 d1 q 1 d nd q nd
возрастает, а z уменьшается.
В работе [2] установлена взаимосвязь линейной боковой скорости V y и ее
производных V y , V y ; угловой скорости z и ее производных z , z с углом поворота
и скоростью его изменения . Также, рассматривая круговое движение
автомобиля, А.С.Литвинов вывел зависимость между коэффициентом
поворачиваемости K ПВ и коэффициентом чувствительности к повороту z / ,
зависящим от скорости V x . При недостаточной поворачиваемости автомобиля
чувствительность стремится к некоторому максимальному значению, при
избыточной поворачиваемости чувствительность стремится к бесконечности, а при
нейтральной имеет линейную зависимость от скорости.
В ранних теоретических исследованиях курсового движения автомобиля [4,
32, 83] связь пневматической шины с опорной поверхностью описывалась
линейной зависимостью, определяющей боковую реакцию в пятне контакта
пневматической шины с опорной поверхностью прямопропорциональной
произведению коэффициента сопротивления боковому уводу на соответствующий
угол увода. В дальнейших работах [2, 3, 7, 8, 10] получила развитие теория
нелинейного увода [10], учитывающая влияние углов установки колеса,
44
Рисунок 1.11. Развитие боковой силы при внезапном повороте колеса: 1,2 –
обороты колеса; А,Б – нестационарное и стационарное качение, В – колебания
силы, вызванные неоднородностью шины
R y
C sy , принимается const - частная производная боковой реакции по
S y
0.5
Ry, [Н]
-0.5
Переставка, 63 км/ч
-1
Переставка, 56 км/ч
Змейка
Поворот, 75 км/ч
-1.5
-15 -10 -5 0 5 10 15
Угол увода, [град]
с опорной поверхностью;
FYC i - боковая реакция, которая могла бы быть при стационарном качении колеса с
Таблица 2 – окончание.
РГ 15 Система безопасности eSafety
РГ 16 Кооперативные системы ИТС
Воздействие на рулевое
Система Водитель и система Водитель управление и процесс
разгона / торможения
Уровни автоматизации АТС
Контроль за условиями
Водитель Водитель Водитель
движения
Выполнение задачи
Водитель Водитель Водитель динамического
управления автомобилем
Возможности системы
Некоторые режимы движения Некоторые режимы движения Не определено
(режимы движения)
2 1 0 Уровень NHTSA
5 4 3
Выполнение
Постоянное выполнение
специфических для
автоматизированной Выполнение специфических для
условий движения задач
системой вождения всех условий движения задач
автоматизированной
аспектов задачи автоматизированной системой
системой вождения для
управления динамикой вождения для всех аспектов
всех аспектов задачи
движения автомобиля задачи управления динамикой
управления динамикой
для всех дорог и движения автомобиля, даже если
движения автомобиля с
условий движения водитель не реагирует
ожиданием
(окружающей соответствующим образом на
соответствующей реакции
обстановки) вместо запрос вмешательства
водителя на запрос
водителя
Автоматизированная система вождения
вмешательства
(«система» контролирует условия движения)
60
Время перехода от
управления
Да Нет Нет Не определено водителем к
65
управлению
«системой»
Постоянная
возможность
Нет Нет Нет Не определено создания условий
ДОРОЖНУЮ ОБСТАНОВКУ
минимального риска
разными уровнями автоматизации
Необходимость в
Да Да Да Да водителе при
включенной системе
Условия движения
ВОДИТЕЛЬ КОНТРОЛИРУЕТ ДОРОЖНУЮ ОБСТАНОВКУ
автоматизация
повышенная
Уровень 4:
Некоторые
Система
Система
Нет
Да
Да
автоматизация
Уровень 5:
Система
Система
полная
Нет
Все
Да
Да
В стандарте SAE J3016 вводятся следующие понятия и приводятся к ним
определения:
1) АВТОМАТИЗИРОВАННАЯ СИСТЕМА ВОЖДЕНИЯ – аппаратное и
программное обеспечение, которое в совокупности способно к выполнению всех
аспектов задачи управления динамикой движения автомобиля (либо временно,
либо постоянно).
2) ВОЖДЕНИЕ – управление движущимся или неподвижным автомобилем на
общественных или частных дорогах в любом местоположении между местом
отправления и местом назначения.
3) УСЛОВИЯ ДВИЖЕНИЯ – тип сценария движения с характерными
требованиями задачи управления динамикой движения (например, выезд на
скоростную автостраду, движение с высокой скоростью, движение на малой
скорости в дорожных заторах и т.п.).
4) ЗАДАЧА УПРАВЛЕНИЯ ДИНАМИКОЙ ДВИЖЕНИЯ АВТОМОБИЛЯ –
все функции реального времени, необходимые для управления автомобилем в
условиях дорожного движения, за исключением выбора места назначения и
промежуточных остановок (например, навигация или планирование маршрута), и
включающие без ограничений следующее:
• обнаружение, распознавание и классификация объектов и событий;
• реакция на объект или событие;
67
• планирование маневра;
• маневрирование, выполнение поворотов, удержание автомобиля в полосе
движения и смена полосы движения;
• ускорение и замедление;
• проявление видимой активности (управление светом фар, звуковым
сигналом, указателями поворотов и т.д.).
5) ВОДИТЕЛЬ – человек, управляющий и находящийся внутри отдельно
взятого автомобиля, оснащенного автоматизированной системой вождения, в
процессе управления по мере необходимости попеременно с такой системой
решающий задачу управления динамикой движения автомобиля.
6) УСЛОВИЯ МИНИМАЛЬНОГО РИСКА – условия управления
автотранспортным средством с минимальным риском, которые
автоматизированная система вождения автоматически организует либо при сбое
системы, либо в случае, когда водитель после соответствующего запроса системы
не принимает управление автомобилем на себя.
ПРИМЕЧАНИЕ: Условия минимального риска будут изменяться в зависимости от
типа и масштаба определенной ошибки. Организация условий минимального риска
может повлечь за собой автоматическую остановку автомобиля, предпочтительно
вне активной полосы движения – на обочине (при наличии).
7) МОНИТОР – функции и/или автоматизированные процедуры, которые
целиком выполняют обнаружение, распознавание и классификацию объектов и
событий, а также подготовку соответствующей реакции, необходимой для
правильного решения задачи управления динамикой движения автомобиля.
ПРИМЕЧАНИЕ: При управлении автомобилями, которые не оснащены
автоматизированными системами вождения, водители достаточно точно визуально
оценивают дорожную обстановку для полного решения задачи управления
динамикой движения автомобиля, при этом, успевая решать второстепенные
задачи, которые требуют кратковременного прерывания контроля за дорогой
(например, настройка системы климат-контроля, чтение дорожных указателей,
68
ограниченного
тизации лизированная ванная самоуправления
само-
(Уровень 0) автоматизация автоматизация (Уровень 4)
управления
(Уровень 1) (Уровень 2)
(Уровень 3)
Информационное поле
физическое взаимодействие
информационное взаимодействие
Рисунок 2.1. Схема современной системы «В-А-Д-С»
Мобильное
устройство
V2P V2I
V2V
Другие транспортные средства (автомобили, мотоциклы и пр.)
Водитель
Восприятие Анализ, Действия
Органы чувств: принятие
- зрение; решений
Окружающее
пространство
Автомобиль
- слух;
Моторика
Центральная
- обоняние;
- осязание;
- вестибулярный
аппарат.
системами автомобиля
решений
Модуль управления
Окружающее
пространство
Автомобиль
Датчики,
автономного
камеры,
вождения
Модуль
излучатели,
анализаторы
1.1. Зрение
К основным задачам функции восприятия (в которые мы условно включили
и функции обработки/распознавания), реализуемым посредством зрения, в
процессе управления автомобилем при движении по дорогам общего пользования
можно отнести:
- распознавание дорожной разметки;
- распознавание дорожных знаков;
- распознавание сигналов светофоров/семафоров/регулировщиков дорожного
движения;
- распознавание систем контроля проезда (например, шлагбаумы, цепи, тросы);
- распознавание границ дорожного полотна;
- распознавание типа покрытия дорожного полотна;
- распознавание искусственных и естественных неровностей дорожного полотна;
- распознавание других участников дорожного движения, в т.ч. пешеходов;
- распознавание световых сигналов участников дорожного движения (сигналы
поворотов, аварийная сигнализация, проблесковые маячки, «моргание» дальним
светом);
- распознавание действий (жестов) сотрудников дорожной полиции;
- распознавание непредвиденных неподвижных препятствий на пути следования
(например, упавшее дерево, открытый канализационный люк, рассыпавшиеся
строительные материалы и пр.);
- распознавание непредвиденных подвижных объектов по пути следования
(например, дикие животные или непредвиденные предметы);
- распознавание погодных условий (снег, дождь, туман, порывы ветра и пр.).
Указанные выше задачи человек решает, в общем случае, с помощью двух
глаз, центральной нервной системы и зеркал заднего вида, установленных в
автомобиле.
90
Автомобиль
Водитель
Исполнительные
Узлы и агрегаты
управления
Окружающая,
Органы
автомобиля
устройства
транспортная,
информационная
автомобиля
управления
системами
среды и водитель
Модуль
Программное управление
Рулевое
управление
Изменение входных Управление
управляющих сигналов ЭБУ штатной системой
Управление электромотором
усилителя рулевого управления
Воздействие на педаль
тормоза
Внешний привод
Врезка в контуры
тормозного привода
Программное управление
Тормозное
управление
Управление модулятором
АБС
Воздействие на педаль
Внешний привод
акселератора
Программное управление
Управление дроссельной
заслонкой (бензиновые ДВС)
Воздействие на переключатель
режимов (АТ)
Внешний привод
Модуль автономного вождения
Программное управление
Трансмиссия
электрические цепи
оборудование
Диагностические
Система технического восприятия
процедуры
Инженерный
систем
доступ к
бортовым сетям
Мониторинг состояния
100
101
Процессор
Штатный (АЦП- Штатный
Оптопара Оптопара
датчик обработка- ЭБУ
ЦАП)
«Шлюзовое устройство»
Коммутатор проводной
сети
автомобиля;
xW , yW , zW - оси систем координат, связанных с центрами колес автомобиля;
где:
FZ - вертикальное усилие, с которым колесо воздействует на опорную поверхность;
VWFL ,VWFR ,VWRL ,VWRR - скорости переднего левого, переднего правого, заднего левого и
- угол между главной продольной осью xCoG и вектором скорости центра масс
автомобиля VCoG (в иностранной литературе для обозначения рассматриваемого
угла используется термин «vehicle body side slip angle», в отечественной литературе
встречаются разные термины – угол дрейфа [25, 65, 70], курсовой угол [125], угол
траекторного увода [26], направляющий угол [126]).
Таким образом, исходя из геометрических соображений:
rFL (l F n LFL cos W n SFL sin W ) 2 (0.5 bF n SFL cos W n LFL sin W ) 2
rFR (l F n LFR cos W n SFR sin W ) 2 (0.5 bF n SFR cos W n LFR sin W ) 2
(3.2)
rRL (l R n LRL ) 2 (0.5 bR n SRL ) 2
rRR (l R n LRR ) 2 (0.5 bR n SRR ) 2
Рисунок 3.7. Схема для расчета угла увода переднего левого колеса
Рисунок 3.8. Блок расчета скорости движения и угла увода переднего левого
колеса
Таблица 10.
Значения коэффициентов ci
Тип дорожного покрытия c1 c2 c3
сухой асфальт 1,2801 23,99 0,52
мокрый асфальт 0,857 33,822 0,347
сухой бетон 1,1973 25,168 0,5373
сухой гравий 1,3713 6,4565 0,6691
мокрый гравий 0,4004 33,708 0,1204
снег 0,1946 94,129 0,0646
лед 0,05 306,39 0
траектории движения).
Коэффициенты сцепления в направлении вектора скорости колеса VW ( L ) и
перпендикулярно ему ( S ) могут быть рассчитаны по зависимостям (3.7), (3.10),
(3.12), что, в свою очередь, позволит рассчитать силы сцепления FWL и FWS в этих
же направлениях (см. Рисунок 3.16) по уравнению (3.8).
SS
FWS S FZ Re s k S FZ (3.16)
S Re s
135
SS S
FS ( Re s k S cos Re s L sin ) FZ (3.20)
S Re s S Re s
Обратим внимание на то, что в состав параметра угла поворота колеса Wij
схождения toein,ij , который может быть постоянной величиной или функцией хода
подвески, т.е.:
Wij Wij
*
toein,ij (3.23)
Аналогично получаем проекции сил сцепления в системе координат «Un» для
задних колес с тем отличием, что в состав параметров углов поворота колес будут
входить только углы схождения:
FXRL FLRL cos WRL FSRL sin WRL
FYRL FSRL cos WRL FLRL sin WRL
(3.24)
FXRR FLRR cos WRR FSRR sin WRR
FYRR FSRR cos WRR FLRR sin WRR
FS (t ) c(t ) (t ) , (3.26)
где:
c(t ) - адаптированный коэффициент сопротивления боковому уводу.
где:
k y1 , k y 2 - динамические коэффициенты сопротивления боковому уводу, методика
где:
rstat - статический радиус колеса;
139
скорости движения ( k f 7 10 6 ).
Методика определения приведенного коэффициента сопротивления
движению и коэффициента аэродинамического сопротивления автомобилей,
находящихся в эксплуатации, изложена в [134] и будет приведена в п.3.2.
На Рисунке 3.19 показана реализация расчета угловой и окружной скоростей,
а также силы сопротивления качению переднего левого колеса.
140
Блоки расчетов, показанные на Рисунках 3.3, 3.6, 3.8, 3.15, 3.18, 3.19,
объединяются в модель качения одиночного колеса с соответствующими связями,
изображенными на Рисунке 3.20.
(3.32)
где:
mCoG - масса автомобиля;
координат «CoG»;
TUIn - матрица поворота для переноса соответствующих векторов из системы
FGX , FGY , FGZ - проекции вектора силы тяжести автомобиля на оси системы
координат, связанной с неподрессоренными массами автомобиля;
I X , I Y , I Z - главные моменты инерции автомобиля (методика определения изложена
в [70]);
hCoG - высота центра масс автомобиля (при отсутствии возможности
экспериментального-расчетного определения для легкового автомобиля можно
воспользоваться эмпирической зависимостью hCoG 0.125 (bF bR ) ).
143
(3.33)
Отметим, что порядок перемножения матриц поворота будет оказывать
влияние на конечный результат, поэтому в технической литературе распространена
следующая последовательность – Z-Y-X, т.е.:
TUIn TRotZ TRotY TRotX (3.34)
И тогда:
cos cos sin cos cos sin sin sin sin cos sin cos
TUIn sin cos cos cos sin sin sin cos sin sin sin cos
sin cos sin cos cos
(3.35)
Для того, чтобы выполнить обратный перенос вектора, например, из
инерциальной системы отсчета «In» в систему координат, связанную с центром
масс автомобиля, необходимо выполнить повороты осей в обратной
последовательности, т.е. X-Y-Z и, благодаря геометрической особенности матриц
поворота, будет справедливо следующее выражение:
1
TInCoG TRotX TRotY TRotZ TRotZYX TRotZYX
T
TRotZYX , ( road ), ( road ) ,
(3.36)
где:
road - продольный угол наклона профиля опорной поверхности (дорожного
полотна);
road - поперечный уклон профиля опорной поверхности.
144
FwindZ 0
(3.37)
где:
c airX , c airY - коэффициенты аэродинамического сопротивления в продольном и
где:
g - ускорение свободного падения ( g 9.81 м / с 2 ).
а) б)
Рисунок 3.35. Объект испытаний ГАЗ-322132 и участки экспериментального
автополигона МАДИ: а – «Умная дорога»; б – участок скоростных испытаний
157
6. «Змейка, 18м» – 27 заездов, из них по 3 заезда на скоростях 7, 10, 15, 20, 25, 30,
35 км/ч без нарушений разметки, 6 заездов с максимально реализуемой скоростью
158
Второй день
Скорость, Доп.
Время Тип испытания Имя файла Комментарий
км/ч комментарий
на месте, не завед калибровка TANS3
10:47 0 Shadrin.029
ДВС
10:51 на месте, idle 0 Shadrin.030 15 секунд шум оборудования
20 сек; руль из нейтрального
на месте, idle,
10:58 0 Shadrin.031 положения выкрутили до упора влево,
калибровка троса
замерили 92мм перемещения тросика
//S11:11 означает
время записи
Shadrin.032 пробная прибором
11:11 переставка
+S11:11 переставка Scanmatik
параметров с K-
линии а/м
Shadrin.033
11:15 змейка пробная змейка
+S11:14
проверка кнопки
11:41 на месте, idle 0 Shadrin.036
метки (CAN7)
11:42 переставка 7 Shadrin.037 1-ый заезд
змейка (5 конусов, через каждые 18м,
вход в "змейку" с левой стороны от
11:45 змейка 7 Shadrin.038
первого конуса, нажатие кнопки CAN7
у 1 конуса)
11:48 переставка 7 Shadrin.039
11:48 змейка 7 Shadrin.041 змейка
11:52 переставка 7 Shadrin.042
11:53 змейка 7 Shadrin.043
11:53 переставка 10 Shadrin.044
змейка 10 Shadrin.045
переставка 10 Shadrin.046
змейка 10 Shadrin.047
переставка 10 Shadrin.048
11:54 змейка 10 Shadrin.049
11:56 переставка 15 Shadrin.050
11:57 змейка 15 Shadrin.051
12:00 переставка 15 Shadrin.052
12:02 змейка 15 Shadrin.053
12:04 переставка 15 Shadrin.054
12:06 змейка 15 Shadrin.055
12:13 переставка 20 Shadrin.056
12:14 змейка 20 Shadrin.057
12:14 переставка 20 Shadrin.058
12:14 змейка 20 Shadrin.059
12:15 переставка 20 Shadrin.060
12:16 змейка 20 Shadrin.061
12:17 переставка 25 Shadrin.062
160
Таблица 11 – продолжение.
может не быть
змейка 25 Shadrin.063
метки
переставка 25 Shadrin.064
змейка 25 Shadrin.065
переставка 25 Shadrin.066
змейка 25 Shadrin.067
12:20 переставка 30 Shadrin.068
метка с
змейка 30 Shadrin.069
опозданием
переставка 30 Shadrin.070
змейка 30 Shadrin.071
переставка 30 Shadrin.072
змейка 30 Shadrin.073
12:30 переставка 35 Shadrin.074
змейка 35 Shadrin.075 сбили покрышку
переставка >35 Shadrin.076
сильный занос
змейка 35 Shadrin.077
задней оси
переставка >35 Shadrin.078
сбили 3-ью
змейка 35 Shadrin.079 покрышку
(центральную)
переставка 35 Shadrin.080
12:40 прямая 40 Shadrin.081 разгон до 40 км/ч и движение накатом
12:40 переставка 30 Shadrin.082 ошибочный
вышли за границы разметки и сбили
змейка max Shadrin.083 покрышку зоны переставки, долго не
выключали запись
переставка 30 Shadrin.084 ошибочный
змейка 30 Shadrin.085
Shadrin.086
13:02 переставка >30 без метки CAN7
+S13:02
Shadrin.087
змейка
+S13:04
Shadrin.088
переставка 48 накатом (т.е. сама переставка на N)
+S13:06
Shadrin.089 не проехали 2 последних конуса,
змейка
+S13:07 потеря управляемости
по ГОСТ 52302-2004 (на 3-ей
13:20 переставка 50 Shadrin.090
передаче, "без газа")
** - разметка та же, только вход в
змейка** 30 Shadrin.091 "змейку" с правой стороны от первого
конуса
13:25 прямая 40 Shadrin.092 разгон + накат + торможение
прямая Shadrin.093 разгон + накат + торможение
разгон из-за поворота + прямая +
экстр. торможение Shadrin.094
торможение
13:29 экстр. торможение Shadrin.095 разгон + прямая + торможение
произвольное
Shadrin.096 вернулись в место старта
маневрирование
задним ходом, по
Shadrin.098 разгон задним ходом + торможение
прямой
161
Таблица 11 – окончание.
разгон задним ходом + накат по
задним ходом, по
Shadrin.099 прямой + торможение (не остановил
прямой
вовремя запись)
диаметр 20м (R10м), движение против
движение по кругу, часовой стрелки (+ въезд/выезд с
14:00 против часовой max 33 Shadrin.100 круга); свист резины при скорости
стрелки выше 27 км/ч; скорость повышали
ступенчато
диаметр 20м (R10м) по часовой
стрелке (+ въезд/выезд с круга); свист
резины при скорости выше 27 км/ч;
движение по кругу,
14:04 max 28 Shadrin.101 скорость повышали ступенчато; от
по часовой стрелке
конусов до внутреннего колеса
примерно 1м; плохая видимость
конусов для водителя
разгон по кругу (движение против
движение по кругу,
часовой стрелки) до 32 км/ч,
14:09 против часовой 32 Shadrin.102
дальнейшее движение по кругу
стрелки
накатом
разгон по кругу (движение по часовой
движение по кругу,
14:11 28 Shadrin.103 стрелке) до 28 км/ч, дальнейшее
по часовой стрелке
движение по кругу накатом
Из XBO X :
XB XO X BO X k 2 r 2
2 2
(3.45)
Из AC 0 OC :
AB CD 2 (b n) 2
BD m AC AOC C0 OC ( ) C0 OC c2
2 2 2
(3.46)
2 4
(b n) 2
k2 r2 c 2 XD 2
4 2c k
П arccos( ) arctan( ) arctan( ) (3.48)
(b n) 2 bn r
2 (k 2 r 2 ) ( c2 )
4
b 2 2 m 2 n 2 2 b m cos( П )
CAD arccos( ) (3.53)
2 m b 2 m 2 2 b m cos( П )
Из C0 AB запишем:
m sin( П )
Л arctan( )
b m cos( П )
(3.55)
b 2 2 m 2 n 2 2 b m cos( П )
arccos( )
2 m b 2 m 2 2 b m cos( П )
45
40
35
30
25
Угол поворота колеса, град
20
15
10
5
0
-5320 345 370 395 420 445 470 495 520 545 570
-10
-15
-20
-25
-30
-35
-40
-45
fa - коэффициент коррекции;
Os - осевое смещение.
Для калибровки датчика перемещений, был выполнен замер показаний
датчика, при котором рулевое колесо, соответствующее прямолинейному
положению управляемых колес, было повернуто на максимальное количество
оборотов влево, при этом по меткам было измерено фактическое изменение
длины вытянутого из датчика тросика (файл записи «Shadrin.031», Таблица 11).
Отметим, что расчетная длина тросика XD (Рисунок 3.49) датчика
перемещений не соответствует фактической длине тросика l тр в виду
погрешностей измерения геометрии рулевой трапеции и положения крепления
датчика перемещений, а также того, что конец тросика был намотан на шарнир
172
где:
AB CD 2 bn 2
XD0 ( BO X ) (C0 OC XO X ) 2 (r ) (c k ) 2 ;
2 2
Pв - вес водителя;
B - колесная база;
174
1 68,2
60,8
2 , кг
3 14,9
4 26,1
K K2 K K2
Rz 2 K1 Rz 3 ( 1 ) Rz 4 ( 1 ) (3.65)
YC 2 2
4
i 1
R zi
где:
- направление вектора скорости антенны относительно продольной оси
автомобиля;
- географическое направление движения;
Вектор VC может быть записан в виде: VC (VCX ,VCY ,0)
Радиус-вектор: r ( X C c2 , c1 ,0)
Скорость V AC от вращательного движения: V AC z r
V AC z r (0,0, z ) ( X C c2 , c1 ,0) ( z c1 , z ( X C c2 ), 0)
Тогда:
V A VC V AC (VCX z c1 ,VCY z ( X C c2 ),0)
Откуда следует:
VCX V AX z c1
(3.69)
V V ( X c )
CY AY z C 2
(a y ,дат ) (Рисунок 3.60) позволяют сделать вывод о том, что зависимость угла
Таким образом:
Широта – угол между местным направлением зенита и плоскостью
экватора, отсчитываемый от 0° до 90° в обе стороны от экватора. Географическую
широту точек, лежащих в северном полушарии (северную широту), принято
считать положительной, широту точек в южном полушарии — отрицательной.
183
1 , 2 - географические широты;
1 , 2 - географическая долгота.
где:
- географическое направление движения.
60
50
40
Y, [м]
30
20
10
0
0 10 20 30 40 50 60 70 80 90
X, [м]
n
S xi
x i 2
n 1
n
, (3.76)
S yi
y
i 2
n 1
где:
S xi S cos( 2 )
- расстояния между соседними измеренными точками,
S S sin( )
yi 2
60
50
40
Y, [м]
30
20
10
0
0 10 20 30 40 50 60 70 80 90 100
X, [м]
Траектория1 Траектория2
'$GNRMC,063624.000,A,5600.0177,N,03603.8893,E,68.45,94.63,211013,,,D*79
'$GNRMC,063625.000,A,5600.0162,N,03603.9230,E,68.43,94.39,211013,,,D*77
Для анализа параметров движения автомобиля по скоростным
автомагистралям была выполнена серия экспериментальных заездов по
федеральной трассе М9, один из которых показан на Рисунке 3.91.
где:
W - угол поворота управляемых колес;
l - колесная база;
R - радиус поворота (соответственно R 1 - кривизна траектории);
V
2
l 1 CoGX
Vch
W , (3.82)
VCoGX
где:
Vch - характеристическая скорость автомобиля, т.е. параметр, в котором обобщены
формуле (3.82) будут показаны далее, формула (3.82) будет обозначена на графиках
как «формула Bosch».
f rd va v f vr
sx , (3.85)
va vr
где:
f - усредненная угловая скорость вращения передних колес;
продольном направлении;
md g - сцепной вес автомобиля (изменяется в динамике и рассчитывается по
зависимостям (3.1.39)).
Уточняя зависимости, входящие в состав уравнения (3.5.4), получим:
mCoG xCoG x md g f 01 k f xCoG
2
mCoG g 0.5 cairX AL xCoG
2
(3.88)
И выразим коэффициент сцепления в продольном направлении, реализуемый
в настоящий момент времени:
x (mCoG xCoG f 01 k f xCoG
2
mCoG g 0.5 cairX AL xCoG
2
) /( md g ) (3.89)
Для проверки справедливости изложенных положений был спланирован,
подготовлен и проведен натурный эксперимент с использованием следующего
241
Где:
SOF (start-of-frame) bit – индикатор начала CAN сообщения;
Arbitration ID – идентификатор CAN сообщения, определяющий его
приоритетность (существуют 2 разных формата сообщений: с 11-битным
идентификатором или 29-битным, так называемым «расширенным»
идентификатором);
IDE (identifier extension) bit – позволяет определить формат используемого
идентификатора CAN сообщения;
RTR (remote transmission request) bit – индикатор, отличающий сообщение запроса
(«логический 0») от CAN сообщения с передаваемыми данными («логическая 1»);
DLC (data length code) – определяет количество передаваемых байт данных;
Data Field – поле, содержащее от 0 до 8 байт передаваемых данных;
CRC (cyclic redundancy check) – поле, состоящее из 15 бит контрольной суммы и 1
рецессивного бита-разделителя (поле CRC используется для определения ошибок
в передаче данных);
ACK (ACKnowledgement) slot – электронный блок управления (ЭБУ), успешно
принявший необходимое для его работы CAN сообщение, посылает в конце
данного сообщения ACK бит и, в таком случае, передающий ЭБУ получает
подтверждение об успешной доставке сообщения, в противном случае, повторяет
трансляцию.
Итак, основными интересующими нас частями CAN сообщения являются
поля с идентификатором и непосредственно данными.
Для каждого CAN сообщения существуют правила конвертации
содержащихся в поле данных (Data Field) байт в инженерные единицы. Правила
для всех CAN сообщений соединены в общую базу данных декодирования CAN
сообщений конкретного автомобиля. Информация, необходимая для
декодирования CAN сообщения:
- идентификатор сообщения;
- номер первого бита и количество бит для конкретного сигнала в поле
данных;
250
- тип нумерации бит в поле данных сообщений (слева направо или справа
налево – соответственно формат Intel или Motorola);
- тип сигнала (число, показатель и т.д.);
- коэффициент пересчета (scaling factor) и параметр смещения (offset);
- единица измерений;
- диапазон измерений;
- значение по умолчанию;
- комментарии.
На Рисунке 4.2 показан пример конвертации изначально абстрактных байт
поля данных CAN сообщения с идентификатором 0х10 (шестнадцатеричный
формат) в инженерные значения.
Рисунок 4.3. Трафик высокоскоростной шины CAN а/м Land Rover Discovery 3
% = steer_wheel_speed_calc_abs
% Результат Curve Fitting Toolbox при определении значения коэффициента k1:
%Linear model Poly1:
% f(x) = p1*x + p2
%Coefficients (with 95% confidence bounds):
% p1 = 3.967 (3.96, 3.974)
% p2 = 0 (fixed at bound)
%Goodness of fit:
% SSE: 8.439e+007
% R-square: 0.9459
% Adjusted R-square: 0.9459
% RMSE: 48.1
Объект испытаний
Измерительное оборудование
268
направляющие блоки
видеокамера
электромотор
ноутбук, Wi-Fi
Программное управление
Рулевое
управление
Изменение входных Управление
управляющих сигналов ЭБУ штатной системой
Управление электромотором
усилителя рулевого управления
Воздействие на педаль
тормоза
Внешний привод
Врезка в контуры
тормозного привода
Программное управление
Тормозное
управление
Управление модулятором
АБС
Воздействие на педаль
Внешний привод
акселератора
Программное управление
Управление дроссельной
заслонкой (бензиновые ДВС)
Воздействие на переключатель
режимов (АТ)
Внешний привод
Модуль автономного вождения
Программное управление
Трансмиссия
электрические цепи
оборудование
Диагностические
Система технического восприятия
процедуры
Инженерный
Рисунок 5.16. Схема системы управления движением экспериментального автомобиля Chevrolet Orlando
систем
доступ к
бортовым сетям
Мониторинг состояния
300
301
474
2 = 37 + 888 cos M SWE - arccos - (5.4)
888
FLASH – 256 Кбайт; RAM – 64 Кбайт; каналов АЦП– 16; разрядов АЦП– 12 бит;
скорость АЦП – 1 МГц.
Схема печатной платы разработанного модуля управления системами
автомобиля (Рисунок 5.17) показана на Рисунке 5.32.
G185 G79
ВЫХОДНОЕ НАПРЯЖЕНИЕ, В
0
0 10 20 30 40 50 60 70 80 90 100
НАЖАТИЕ ПЕДАЛИ АКСЕЛЕРАТОРА ,%
Инерциальная Расчетно-
Спутниковая
навигационная аналитическая
навигация
система навигация
Положение
автомобиля в
пространстве
Корректировка Определение
местоположения местоположения
спутниковой и расчетно-
инерциальной аналитическим
навигациями способом
Оценка
накопления
расчетной ошибки
а) б)
Рисунок 5.55. Кадр с видеокамеры правого борта: а – черно-белое изображение;
б – с нанесенной калибровочной сеткой.
а) б)
Рисунок 5.56. Примеры распознавания дорожной разметки в движении модулем
камеры левого борта (г.Москва, Ленинградский пр-кт, ≈90 км/ч, пасмурная
снежно-дождливая погода): а – двойная сплошная; б – одинарная сплошная в
процессе перестроения.
37. Pacejka H.B. The wheel shimmy phenomenon: A theoretical and experimental
investigation with particular reference to the non-linear problem: dissertation … doctoral
thesis. Technical University of Delft. 1966. 192 p.
38. Pacejka H.B. Non-linearities in Road Vehicl Dynamics // Vehicle System
Dynamics. 1986. №15(5). P. 237-254.
39. Pacejka H.B. Reseach in Vehicle Dynamics and Tyre Mechanics. DGT PROGB
REPT 7. 1982. P. 3-4.
40. Ветлинский В.Н., Осипов А.В. Автоматические системы управления
движением автотранспорта. Л.: Машиностроение, Ленинградское отделение, 1986.
216 с.
41. Дик Д.И. Метод предотвращения попутных столкновений автомобилей: дис.
… канд. техн. наук. Тюмень. 2005. 242 с.
42. Иванов А.Л. Обеспечение регулируемого действия рабочей тормозной
системы автомобиля в эксплуатации: дис. … канд. техн. наук. Омск. 2003. 127 с.
43. Хасанов Р.И. Управление скоростным режимом автомобиля в эксплуатации
на основе бортовых средств оперативной оценки состояния дорожного полотна:
дис. … канд. техн. наук. 05.22.10 [Место защиты: Оренбург. гос. ун-т]. Оренбург.
2012. 203 с.
44. Козлов И.В. Исследование и моделирование процессов автоматизированного
контроля параметров движения транспортных средств, влияющих на дорожно-
транспортные происшествия: дис. … канд. техн. наук. 05.13.06. Орел. 2005. 153 с.
45. Андриков Д.А. Интеллектуальная система повышения управляемости
колесного транспортного средства при торможении на основе Н∞-оптимизации:
дис. … канд. техн. наук. 05.13.01 [Место защиты: Моск. гос. техн. ун-т им. Н.Э.
Баумана]. Москва. 2008. 156 с.
46. Кисуленко Б.В. Бочаров А.В. Интеллектуальные системы безопасности
автомобилей // Автомобильная промышленность. 2008. №3. С. 16-18.
47. Кузьмин В.В. Шпатенк Т.В. Опыт создания и эксплуатации
интеллектуальных транспортных систем. М.: МАДИ(ГТУ), 2009. 287 с.
339
61. Gonzalez R., Rodriguez F., Guzman JL. Autonomous Tracked Robots in Planar
Off-Road Conditions. Modelling, Localization, and Motion Control. Springer. 2014. 122
p.
62. Cheng H. Autonomous Intelligent Vehicles. Theory, Algorithms, and
Implementation. Springer. 2011. 163 p.
63. Жанказиев С.В. Научные основы и методология формирования
интеллектуальных транспортных систем в автомобильно-дорожных комплексах
городов и регионов: дис. … докт. техн. наук. 05.22.01. М. 2012. 449 с.
64. Жанказиев С.В., Власов В.М. Научные подходы к формированию
государственной стратегии развития интеллектуальных транспортных систем //
Автотранспортное предприятие. 2010. №7. С. 2-8.
65. Иванов А.М., Шадрин С.С. Разработка системы межобъектного
взаимодействия интеллектуальных транспортных средств // Известия ВолгГТУ.
Серия «Наземные транспортные системы». Вып. 7 : межвуз. сб. науч. ст. /
Волгоград : ВолгГТУ, 2013. № 21 (124). C. 74-77.
64. Иванов А.М., Шадрин С.С., Карпухин К.Е. Интеллектуальное транспортное
средство. Адаптация подсистемы определения взаимного положения движущихся
транспортных средств // Известия МГТУ «МАМИ». 2013. Т. 1, №2(16). С. 57-62.
65. Автомобильный справочник Bosch. Пер. с англ. ООО «СтарСПб» 3-е изд.,
перераб. и доп. М.: ООО «Книжное издательство «За рулем», 2012. 1280 с.: ил.
66. MARTIN T.C., ORCHARD M.E., SANCHEZ P.V. Design and simulation of
control strategies for trajectory tracking in an autonomous ground vehicle // IFAC
Proceedings Volumes (IFAC-PapersOnline). 2013. P. 118-123.
67. Долгов И.А. Анализ управляемого движения автомобиля в системе
"ВОДИТЕЛЬ-АВТОМОБИЛЬ-ДОРОГА" математическими методами: дис. …
канд. техн. наук. 05.05.03. М. 2013. 214 с.
68. Иванов А.М., Шадрин С.С. Обоснование выбора ключевых технологий
функционирования системы межобъектного взаимодействия интеллектуальных
транспортных средств при движении по скоростным автомагистралям // Вестник
МАДИ. 2013. Вып. 1(32). С. 7-13.
341
127. Тарг С.М. Краткий курс теоретической механики. Учебн. для втузов. М.:
Высш. шк., 1998. 416 с.
128. M. Burckhardt. Fahrwerktechnik: Radschlupf-Regelsysteme. Vogel Fachbuch,
Würzburg. 1993.
129. J. Reimpell and P. Sponagel. Fahrwerktechnik: Reifen und Räder. Vogel Fachbuch,
Würzburg. 1995.
130. M. Mitschke and H. Wallentowitz. Dynamik der Kraftfahrzeuge. Berlin: Springer
Verlag. 4th edition. 2004.
131. D. Ammon. Radlastschwankungen, Seitenführungsvermögen und Fahrsicherheit,
volume 1088 of VDI Fortschrittberichte. VDI Verlag, Düsseldorf, 1993.
132. Экспериментальная проверка методов оценки эффективности систем
динамической стабилизации АТС / С.С. Шадрин [и др.]. // Автомобильная
промышленность. 2009. №7. С. 31-33.
133. Cornering stiffness adaptation for improved side slip angle observation / M.
Hiemer [et al.]. // Proceedings of the First IFAC Symposium on advances in Automotive
Control (AAC04). Italy. 2004. P 667-672.
134. Шадрин С.С. Идентификация параметров сопротивления движению
колесных транспортных средств в эксплуатации // Известия МГТУ «МАМИ». 2013.
Т. 1, №2(16). С. 248-251.
135. Свидетельство о государственной регистрации программы для ЭВМ
№2015614464. Российская Федерация. Программа имитационного моделирования
динамики движения двухзвенного автопоезда (тягач с полуприцепом) [Текст] /
Иванов Андрей Михайлович, Солнцев Александр Николаевич, Шадрин Сергей
Сергеевич ; заявитель и патентообладатель федеральное государственное
бюджетное образовательное учреждение высшего профессионального образования
«Московский автомобильно-дорожный государственный технический университет
(МАДИ)» (RU). № 2015611317 ; заявл. 04.03.2015 ; опубл. 20.04.2015.
136. Sergey Sergeevich Shadrin, Andrey Mikhailovich Ivanov, Vyacheslav
Mikhailovich Prikhodko. Usage of Smartphones in the Education Process of MADI
348
during Vehicle Road Tests Conduction // Modern Applied Science. 2015. Vol. 9, No. 1.
P. 83-88.
137. Шадрин С.С., Иванов А.М. Использование смартфонов в образовательном
процессе МАДИ при проведении дорожных испытаний автотранспортных средств
// Известия ВолгГТУ. Серия «Наземные транспортные системы». Вып. 9 : межвуз.
сб. науч. ст. / Волгоград : ВолгГТУ, 2014. № 19 (146). C. 81-85.
138. Руководство по эксплуатации. Автомобили семейства ГАЗель. Второе
издание. Нижний Новгород: ООО «Автозавод «ГАЗ», 2010. 79 с.
139. ГОСТ 31507-2012. Автотранспортные средства. Управляемость и
устойчивость. Технические требования. Методы испытания. М.: Стандартинформ,
2013. 51 с.
140. International Standard ISO 14230-2. Road vehicles Diagnostic systems Keyword
Protocol 2000 Part 2: Data link layer. Switzerland: ISO, 1999. 34 p.
141. Шадрин С.С. Расчетно-экспериментальный метод определения углов
поворота управляемых колес транспортного средства при проведении полигонных
испытаний // Вестник МАДИ. 2013. Вып. 4(35). С. 13-17.
142. ECE/TRANS/180/Add.8 31.07.2008 Организация Объединенных Наций.
Соглашения о введении глобальных технических правил для колесных
транспортных средств, предметов оборудования и частей, которые могут быть
установлены и/или использованы на колесных транспортных средствах.
Глобальные технические правила №8. Электронные системы контроля
устойчивости.
143. BAE I., KIM J.H., KIM S. Steering rate controller based on curvature of trajectory
for autonomous driving vehicles // IEEE Intelligent Vehicles Symposium, Proceedings.
2013. P. 1381-1386.
144. Фадин А.М., Иванов А.М., Шадрин С.С. Методика оценки алгоритмов
управления автомобилем в автоматическом режиме // Вестник МАДИ. 2013. Вып.
3(34). С. 3-7.
349
145. Фадин А.М., Иванов А.М., Шадрин С.С. Методика расчета углов поворота
рулевого колеса по координатам движения автомобиля // Естественные и
технические науки. 2013. Вып. 4. С. 198-201.
146. Экспериментально-расчетная методика определения сцепных свойств
пневматических шин в эксплуатации / С.С. Шадрин [и др.]. // Естественные и
технические науки. 2014. Вып. 5(73). С. 107-109.
147. Шадрин С.С., Иванов А.М. Экспериментально-расчетная методика
определения сцепных свойств пневматических шин легкового автомобиля в
эксплуатации // Известия МГТУ «МАМИ». 2014. Т. 1, №3(21). С. 65-68.
148. Sergey Sergeevich Shadrin, Andrey Mikhailovich Ivanov, Vyacheslav
Mikhailovich Prikhodko. Experimental and calculated procedure for determining the
adhesion properties of the vehicle pneumatic tires in use // Adv. Environ. Biol. 2014.
№8(13). P. 294-297.
149. Нгуен Т.Н. Бортовая информационно-измерительная и управляющая система
беспилотного автомобиля для циклических тестовых заездов: дис. ... канд. техн.
наук. 05.11.16, 05.13.01. Рязань. 2014. 190 с.
150. Дыгало В.Г. Методология виртуально-физических испытаний
автоматизированных тормозных систем колесных машин: дис. ... докт. техн. наук.
05.05.03. Волгоград. 2015. 348 с.
151. Рязанцев В.И. Прогнозирование устойчивости движения автомобиля с
активно управляемым схождением колес: дис. … докт. техн. наук. 05.05.03. М.
2008. 359 с.
152. ГОСТ Р 52051‑2003. Механические транспортные средства и прицепы.
Классификация и определения. М.: Стандартинформ, 2006. 15 с.
153. SAE STANDARD J1939-71. SURFACE VEHICLE RECOMMENDED
PRACTICE. VEHICLE APPLICATION LAYER. U.S.A.: SAE, 06/2006. 686 p.
154. FMS-Standard Working Group. FMS-Standard. Interface description. Vers. 02.00,
11.11.2010.
350
ПРИЛОЖЕНИЕ
П.1. Технические характеристики объектов испытаний и измерительного
оборудования
Таблица П.1.2.
Технические характеристики Land Rover Discovery 3
Параметр Значение
Колесная формула 4х4
Двигатель Дизельный ДВС с турбонаддувом
6 цилиндров, V-образный, 4 клапана на
ДВС: тип, количество цилиндров
цилиндр
ДВС: система питания Common Rail
ДВС: рабочий объем, см3 2720
ДВС: номинальная мощность, л.с. /
190 / 4000
об/мин.
ДВС: максимальный крутящий
440 / 1900
момент, Н∙м / об/мин.
ДВС: экологический класс ЕВРО-4
ДВС: применяемое топливо Дизельное топливо
ДВС: расход топлива в смешанном
10,4
цикле, л/100 км
Коробка передач Автоматическая, 6 ступенчатая
Постоянный полный привод,
раздаточная КПП с понижающим
Тип привода
рядом, блокировка заднего
дифференциала
Пневматическая, независимая, на
двойных поперечных рычагах со
Передняя подвеска
стабилизатором поперечной
устойчивости
Пневматическая, независимая, на
двойных поперечных рычагах со
Задняя подвеска
стабилизатором поперечной
устойчивости
Шины 255/60R18 M+S (Good Year Wrangler)
Реечный рулевой механизм с
Рулевое управление
гидроусилителем + servotronic
Все тормозные механизмы – дисковые,
Рабочая тормозная система вентилируемые; привод
гидравлический
Каждый контур рабочей тормозной
Запасная тормозная система
системы
Электромеханическая, с приводом на
Стояночная тормозная система
тормозные механизмы задних колес
Масса автомобиля без нагрузки, кг 2718
Полная масса автомобиля, кг 3230
360
z0=[zeros(1,a1/step),0:step*tan(u1):h1,zeros(1,a3/step)+h1,h1:-
step*tan(u2):0];
fix1=size(x);
fix2=size(z0);
z=[z0,zeros(1,fix1(1,2)-fix2(1,2))];
Z=meshgrid(z,y);
C=Z*0+1;
C(1:(y02-y01)/step/2,(a1/step-1):(a1/step+2))=7;
C(((y02-y01)/step/2+1):(y02-y01)/step,(a1/step+4):(a1/step+5))=7;
C(1:(y02-y01)/step/2,(a1/step+7):(a1/step+10))=6;
C(1:(y02-y01)/step/2,(fix2(1,2)-2):(fix2(1,2)+2))=7;
C(((y02-y01)/step/2+1):(y02-y01)/step,(fix2(1,2)-
1):(fix2(1,2)+1))=6;
terr = C-1;
surf(X,Y,Z,C,'CDataMapping','direct');
axis equal;
L = l_F + l_R;
x_k = [l_F l_F -l_R -l_R];
y_k = [b_F/2 -b_F/2 -b_R/2 b_R/2];
r_k = rd;
% Рисуем траекторию
x_tr_1 = visual_data(1 : i, 1) + x_k(1) * cos(visual_data(1 : i,
3));
y_tr_1 = visual_data(1 : i, 2) + x_k(1) * sin(visual_data(1 : i,
3));
x_tr_2 = visual_data(1 : i, 1) + x_k(4) * cos(visual_data(1 : i,
3));
y_tr_2 = visual_data(1 : i, 2) + x_k(4) * sin(visual_data(1 : i,
3));
set(tr_1, 'XData', x_tr_1, 'YData', y_tr_1);
set(tr_2, 'XData', x_tr_2, 'YData', y_tr_2);
% Рисуем корпус
x_rect = x + x_k * cos(teta) + y_k * cos(pi/2 + teta);
y_rect = y + x_k * sin(teta) + y_k * sin(pi/2 + teta);
set(korpus, 'XData', [x_rect x_rect(1)], 'YData', [y_rect
y_rect(1)]);
% Рисуем колеса
x_1 = x_rect(1) + [r_k -r_k] * cos(teta + teta_k(1));
x_2 = x_rect(2) + [r_k -r_k] * cos(teta + teta_k(2));
x_3 = x_rect(3) + [r_k -r_k] * cos(teta + teta_k(3));
x_4 = x_rect(4) + [r_k -r_k] * cos(teta + teta_k(4));
y_1 = y_rect(1) + [r_k -r_k] * sin(teta + teta_k(1));
y_2 = y_rect(2) + [r_k -r_k] * sin(teta + teta_k(2));
y_3 = y_rect(3) + [r_k -r_k] * sin(teta + teta_k(3));
y_4 = y_rect(4) + [r_k -r_k] * sin(teta + teta_k(4));
set(koleso_1, 'XData', x_1, 'YData', y_1);
set(koleso_2, 'XData', x_2, 'YData', y_2);
set(koleso_3, 'XData', x_3, 'YData', y_3);
set(koleso_4, 'XData', x_4, 'YData', y_4);
calc_data2(:,9) = calc_data2(:,9).*cos(to_print_betta) +
(calc_data2(:,4).^2).*calc_data2(:,7).*sin(to_print_betta);
calc_data2(:,9) = smooth(calc_data2(:,9),5); % продольное
ускорение ЦМ а/м, м/с^2
clearvars diff_step i temp;
for i=2:1:data_end3 % убираем скачки ускорения
if abs(calc_data2(i,9)-calc_data2(i-1,9))/(calc_data2(i,1)-
calc_data2(i-1,1))>100
calc_data2(i,9)=calc_data2(i-1,9);
end
end
calc_data2(:,15) =
atan((l_F+tan(to_print_betta)./calc_data2(:,7)).*calc_data2(:,7));
V_ch_fix = mean(V_ch);
Q_steer =
to_print_omega_z(:,1)*(l_F+l_R).*(1+((to_print_V_kmh(:,2)/3.6)./V_ch
_fix).^2)./(to_print_V_kmh(:,2)/3.6);
formatSpec =
'%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%[^\n\r]';
fileID = fopen(filename,'r');
fclose(fileID);
exper_data = [dataArray{1:end-1}];
i=1;
while exper_data(i,14)==0
i=i+1;
end
start = i-1;
while exper_data(i,14)~=0
i=i+1;
if i==data_end
break
end
end
stop = i;
if start==0
start = 1;
end
exper_data((stop+1):data_end,:)=[];
exper_data(1:(start-1),:)=[];
data_array_dimension = size(exper_data);
data_end = data_array_dimension(1,1);
% (ГТП8 ООН)
[b,a] = butter(12,2*6/20);
ay_butter = filter(b,a,exper_data(:,7));
wz_butter = filter(b,a,exper_data(:,9));
-acos((454486.5-
632739.3*cos(1.2606+exper_data(:,28)))./(409.54*sqrt(2428955.7-
632739.3*cos(1.2606+exper_data(:,28))))); % угол поворота левого
колеса, рад
exper_data(:,30) = (exper_data(:,28)+exper_data(:,29))/2; %
усредненный угол поворота управляемых колес, рад
exper_data(:,31) = exper_data(:,30)*16.6*180/pi; % угол поворота
рулевого колеса, град
i=1;
while exper_data(i,20)==0
exper_data(i,32)=0;
i=i+1;
end
track_0 = exper_data(i,20);
exper_data(i,32)=0;
k=data_end;
while exper_data(k,20)==0
exper_data(k,32)=0;
k=k-1;
end
for j=(i+1):1:k
if exper_data(j,20)-exper_data(j-1,20)>300
track_0=track_0+360;
elseif exper_data(j,20)-exper_data(j-1,20)<-300
track_0=track_0-360;
else
%track_0=track_0;
end
exper_data(j,32)=exper_data(j,20)-track_0;
end
if k==(data_end-1)
exper_data(k+1,32)=exper_data(k,32);
end
clearvars i j k track_0;
B_matrix = [(Pv+Pi)*lx
(Pv+Pi)*(l_a-lx)
Pv*(b_F-ly1)+Pi*ly2
Pv*ly1+Pi*(b_F-ly2)];
Delta = A_matrix\B_matrix;
Iz = (Fz0_FL/g)*((Xc/1000)^2+(Yc/1000)^2) + ...
(Fz0_FR/g)*((Xc/1000)^2+((b_F-Yc)/1000)^2) + ...
(Fz0_RR/g)*(((l_a-Xc)/1000)^2+((b_F-Yc-(b_F-b_R)/2)/1000)^2) +
...
(Fz0_RL/g)*(((l_a-Xc)/1000)^2+((Yc-(b_F-b_R)/2)/1000)^2);
% момент инерции а/м относительно оси Oz, [кг*м^2]
% Iz_1 = m_a*(5.475^2+2.075^2)/12; % проверка расчета
Iy = ((Fz0_FL+Fz0_FR)/g)*(Xc/1000)^2 + ...
((Fz0_RR+Fz0_RL)/g)*((l_a-Xc)/1000)^2;
% момент инерции а/м относительно оси Oy, [кг*м^2]
% Iy_1 = m_a*(5.475^2+2.3^2)/12; % проверка расчета
relax_length = 0.28352;
%% Аэродинамическое сопротивление
c_air_x = 0.6; % коэффициент аэродинамического сопротивления в
продольном направлении
c_air_y = 0.76; % ... в поперечном направлении
rho_air = 1.22625; % плотность воздуха, [кг/м^3]
A_L = 2.075*2.3*0.9; % лобовая площадь автомобиля, [м^2]
A_S = 5.475*2.3*0.8; % боковая площадь автомобиля, [м^2]
%% Начальные интегрирования
V_y_0 = 0;
V_z_0 = 0;
%% Подключение к COM-порту
BU353_Glonass = instrfind('Type', 'serial', 'Port', 'COM5', 'Tag',
'');
if isempty(BU353_Glonass)
BU353_Glonass = serial('COM5');
else
fclose(BU353_Glonass);
BU353_Glonass = BU353_Glonass(1);
end
for i=1:1:oper_end
data='';
while isempty(strmatch('$GNRMC',data))
BU353_data_original{i,1} = fscanf(BU353_Glonass);
data = BU353_data_original{i,1};
end
disp({status,lat,nsCardinal,long,ewCardinal,velocity,track});
clearvars Air_suspension_height_FL_wheel
Air_suspension_height_FR_wheel Air_suspension_height_RL_wheel
Air_suspension_height_RR_wheel Air_suspension_position Brake_pedal
Engine_RPM Gearbox_position header Kick_down Pedal_of_acceleration
Steering_wheel_speed;
exper_data(:,2) = interp1(Vehicle_speed.time,
Vehicle_speed.signals.values/3.6, ...
Steering_wheel_angle.time,'linear','extrap'); % скорость а/м,
м/с
exper_data(:,5) = interp1(Omega_z.time, (-
0.2*Omega_z.signals.values+100)*pi/180, ...
Steering_wheel_angle.time,'linear','extrap'); % угловая скорость
"рысканья" а/м, рад/с
exper_data(:,8) = (-1.099e+09 +
1.099e+09*cos(Steering_wheel_angle.signals.values*1.266e-07) ...
- 4.725e+05*sin(Steering_wheel_angle.signals.values*1.266e-
07))*pi/180; % угол поворота правого управляемого колеса, рад
exper_data(:,9) = interp1(front_left_wheel.time,
front_left_wheel.signals.values/3.6, ...
Steering_wheel_angle.time,'linear','extrap'); % линейная
скорость переднего левого колеса, м/с
381
exper_data(:,10) = interp1(front_right_wheel.time,
front_right_wheel.signals.values/3.6, ...
Steering_wheel_angle.time,'linear','extrap'); % линейная
скорость переднего правого колеса, м/с
exper_data(:,11) = interp1(rear_left_wheel.time,
rear_left_wheel.signals.values/3.6, ...
Steering_wheel_angle.time,'linear','extrap'); % линейная
скорость заднего левого колеса, м/с
exper_data(:,12) = interp1(rear_right_wheel.time,
rear_right_wheel.signals.values/3.6, ...
Steering_wheel_angle.time,'linear','extrap'); % линейная
скорость заднего правого колеса, м/с
while exper_data(i,2)~=0
i=i+1;
if i==data_end
break
end
end
stop = i;
if start==0
start = 1;
end
exper_data((stop+1):data_end,:)=[];
exper_data(1:(start-1),:)=[];
data_array_dimension = size(exper_data);
data_end = data_array_dimension(1,1);
exper_data(:,9)=exper_data(:,9)-exper_data(1,9);
exper_data(:,10)=exper_data(:,10)-exper_data(1,10);
exper_data(:,11)=exper_data(:,11)-exper_data(1,11);
exper_data(:,12)=exper_data(:,12)-exper_data(1,12);
end
exper_data(:,13) = cumtrapz(exper_data(:,1),exper_data(:,2)); %
пройденный путь, м
exper_data(:,14) = exper_data(:,4)*0.9;
clearvars diff_step i;
%% Аэродинамическое сопротивление
c_air_x = 0.41; % коэффициент аэродинамического сопротивления
% в продольном направлении (после оптимизации)
c_air_y = 0.7; % ... в поперечном направлении
rho_air = 1.22625; % плотность воздуха, [кг/м^3]
A_L = 1.915*1.887*0.9; % лобовая площадь автомобиля, [м^2]
A_S = 4.835*1.887*0.8; % боковая площадь автомобиля, [м^2]
%% Начальные интегрирования
V_x_0 = exper_data(1,2)+0.01; % начальная скорость движения
(начальная интегрирования), [м/с]
V_y_0 = 0;
V_z_0 = 0;
w_wheel_0 = V_x_0/rd;
% угол поворота РК
left_wheel_matrix(:,1) = [-450,-360,-270,-180,-
90,0,90,180,270,360,450,475]; % град, угол поворота "налево"
положительный, "направо" - отрицательный
% угол поворота левого управляемого колеса, определенный графически
left_wheel_matrix(:,2) = [-29.07,-22.92,-17.52,-11.52,-
5.97,0,5.87,12.21,18.7,25.93,34.82,37.42]; % град
385
exper_data(:,7) = (interp1(left_wheel_matrix(:,1),
left_wheel_matrix(:,2), ...
exper_data(:,6),'linear','extrap'))*pi/180; % угол поворота
левого управляемого колеса, рад
% угол поворота РК
right_wheel_matrix(:,1) = left_wheel_matrix(:,1);
% угол поворота правого управляемого колеса, определенный графически
right_wheel_matrix(:,2) = [-34.39,-25.93,-18.71,-11.95,-
5.94,0,5.92,11.49,17.22,23.11,28.7,30.46]; % град
exper_data(:,8) = (interp1(right_wheel_matrix(:,1),
right_wheel_matrix(:,2), ...
exper_data(:,6),'linear','extrap'))*pi/180; % угол поворота
правого управляемого колеса, рад
while exper_data(i,1)<35
i=i+1;
if i==data_end
break
end
end
stop = i;
if start==0
start = 1;
end
exper_data((stop+1):data_end,:)=[];
exper_data(1:(start-1),:)=[];
data_array_dimension = size(exper_data);
data_end = data_array_dimension(1,1);
386
exper_data(:,13) = cumtrapz(exper_data(:,1),exper_data(:,2)); %
пройденный путь, м
exper_data(:,14) = exper_data(:,4)*0.9;
clearvars diff_step i;
%% Аэродинамическое сопротивление
c_air_x = 0.32; % коэффициент аэродинамического сопротивления
% в продольном направлении (после оптимизации)
c_air_y = 0.6; % ... в поперечном направлении
rho_air = 1.22625; % плотность воздуха, [кг/м^3]
A_L = 1.835*1.635*0.9; % лобовая площадь автомобиля, [м^2]
A_S = 4.665*1.635*0.8; % боковая площадь автомобиля, [м^2]
%% Начальные интегрирования
V_x_0 = exper_data(1,2)+0.01; % начальная скорость движения, [м/с]
V_y_0 = 0;
V_z_0 = 0;
w_wheel_0 = V_x_0/rd;
temp = uint8(zeros(37,1));
cut = uint8(zeros(37,1));
data_good = data_old_good;
if data_cut(1,1)>0
temp(1:data_cut(1,1),1) = data_cut(2:(data_cut(1,1)+1),1);
temp((data_cut(1,1)+1):37,1) = data_in(1:(37-data_cut(1,1)),1);
if uint16(sum(uint16(temp(1:34)))) ==
uint16(bitor((bitsll(uint16(temp(35,1)),8)),(uint16(temp(36,1)))))
data_good = temp;
for i=(38-data_cut(1,1)):1:33
if data_in(i,1)==73 && data_in(i+1,1)==78 &&
data_in(i+2,1)==70 && data_in(i+3,1)==49 && data_in(i+4,1)==32
cut(1,1) = uint8(38-i);
cut(2:(39-i),1)= data_in(i:37,1);
break
else
if i==33
cut(:,1) = uint8(zeros(37,1));
389
end
end
end
else
for i=1:1:33
if data_in(i,1)==73 && data_in(i+1,1)==78 &&
data_in(i+2,1)==70 && data_in(i+3,1)==49 && data_in(i+4,1)==32
if i==1
cut(:,1) = uint8(zeros(37,1));
if uint16(sum(uint16(data_in(1:34)))) ==
uint16(bitor((bitsll(uint16(data_in(35,1)),8)),(uint16(data_in(36,1)
))))
data_good = data_in;
else
data_good = data_old_good;
end
else
cut(1,1) = uint8(38-i);
cut(2:(39-i),1)= data_in(i:37,1);
data_good = data_old_good;
end
break
else
if i==33
cut(:,1) = uint8(zeros(37,1));
data_good = data_old_good;
end
end
end
end
else
for i=1:1:33
if data_in(i,1)==73 && data_in(i+1,1)==78 &&
data_in(i+2,1)==70 && data_in(i+3,1)==49 && data_in(i+4,1)==32
if i==1
cut(:,1) = uint8(zeros(37,1));
if uint16(sum(uint16(data_in(1:34)))) ==
uint16(bitor((bitsll(uint16(data_in(35,1)),8)),(uint16(data_in(36,1)
))))
data_good = data_in;
else
data_good = data_old_good;
end
else
cut(1,1) = uint8(38-i);
cut(2:(39-i),1)= data_in(i:37,1);
data_good = data_old_good;
end
break
else
if i==33
cut(:,1) = uint8(zeros(37,1));
390
data_good = data_old_good;
end
end
end
end
end
header = int16(data(1:5,1));
brake_CAN = (single(data(6,1)))*0.3921568627; % brake pedal
CAN, %
brake_motor = int16(data(7,1)); % brake motor position sensor, %
accel_CAN = (single(data(8,1)))*0.3921568627; % accelerator
pedal CAN, %
accel_ext = int16(data(9,1)); % accelerator pedal external
request, %
steer_CAN =
(single(bitor((bitsll(int16(data(10,1)),8)),(int16(data(11,1))))))*0
.0625; % steering wheel angle CAN, grad ("+" to the left, "-" to
the right)
str_t_ch1 =
int16(bitor((bitsll(int16(data(12,1)),8)),(int16(data(13,1))))); %
steering torque sensor - channel 1
str_t_ch2 =
int16(bitor((bitsll(int16(data(14,1)),8)),(int16(data(15,1))))); %
steering torque sensor - channel 2
str_t_ch1_e =
int16(bitor((bitsll(int16(data(16,1)),8)),(int16(data(17,1))))); %
steering torque sensor external request (ch1)
str_t_ch2_e =
int16(bitor((bitsll(int16(data(18,1)),8)),(int16(data(19,1))))); %
steering torque sensor external request (ch2)
velocity_CAN =
(single(bitor((bitsll(int16(data(20,1)),8)),(int16(data(21,1))))))*0
.03; % vehicle velocity from CAN, km/h
engine_CAN =
(single(bitor((bitsll(int16(data(22,1)),8)),(int16(data(23,1))))))*0
.25; % engine speed from CAN, RPM
391
wz_CAN =
(single(bitor((bitsll(int16(data(24,1)),8)),(int16(data(25,1))))))*0
.0625; % yaw speed (wz) from CAN, grad/s
ay_CAN =
(single(bitor((bitsll(int16(data(26,1)),8)),(int16(data(27,1))))))*0
.0161; % lateral acceleration from CAN (ay), m/s^2
horn_etc = int16(data(28,1)); % status of horn, turning
signals, etc.
gbox_pos_CAN = int16(data(29,1)); % gearbox position from CAN, (1-
P, 2-R, 3-N, 4-D)
gbox_motor = int16(data(30,1)); % gearbox motor position sensor,
%
reserve =
uint16(bitor((bitsll(int16(data(31,1)),8)),(int16(data(32,1))))); %
reserve
time_RX =
uint16(bitor((bitsll(uint16(data(33,1)),8)),(uint16(data(34,1)))));
% time stamp of vehicle control ECU
check_sum =
int16(bitor((bitsll(int16(data(35,1)),8)),(int16(data(36,1))))); %
package check sum
hex_0D = int16(data(37,1)); % packages separator, hex'0D'
end
inputImg = video;
dimension = size(inputImg);
x_end = dimension(1,2);
y_end = dimension(1,1);
laneImg = double(zeros(y_end,x_end));
gridImg = double(zeros(y_end,x_end));
line1 = insertShape(gridImg,'line',[0 120 270 0])>0;
line2 = insertShape(gridImg,'line',[180 180 320 0])>0;
line3 = insertShape(gridImg,'line',[320 0 490 180])>0;
line4 = insertShape(gridImg,'line',[380 0 640 120])>0;
gridImg = gridImg + line1(:,:,1) + line2(:,:,1) + line3(:,:,1) +
line4(:,:,1);
for y=1:1:y_end
392
peaks = zeros(2,4);
x_start = round(-2.25*y+270);
if x_start<=0
x_start = 1;
end
x_finish = round(-0.7778*y+320);
dInt = diff(double(inputImg(y,x_start:x_finish)))*255;
[peaks(1,1:2),peaks(2,1:2)]=findpeaks(dInt,'SortStr','descend','NPea
ks',2);
[peaks(1,3:4),peaks(2,3:4)]=findpeaks(-
dInt,'SortStr','descend','NPeaks',2);
peaks(1,3:4) = -peaks(1,3:4);
peaks=(sortrows(peaks',2))';
for i=1:1:3
if peaks(1,i)>=7 && peaks(1,i+1)<=-7 && (peaks(2,i+1)-
peaks(2,i))<(0.1354*y+6.979)
laneImg(y,x_start+peaks(2,i+1)) = 1;
end
end
peaks = zeros(2,4);
x_start = round(0.9444*y+320);
x_finish = round(2.167*y+380);
if x_finish>x_end
x_finish = x_end;
end
dInt = diff(double(inputImg(y,x_start:x_finish)))*255;
[peaks(1,1:2),peaks(2,1:2)]=findpeaks(dInt,'SortStr','descend','NPea
ks',2);
[peaks(1,3:4),peaks(2,3:4)]=findpeaks(-
dInt,'SortStr','descend','NPeaks',2);
peaks(1,3:4) = -peaks(1,3:4);
peaks=(sortrows(peaks',2))';
for i=1:1:3
if peaks(1,i)>=7 && peaks(1,i+1)<=-7 && (peaks(2,i+1)-
peaks(2,i))<(0.1354*y+6.979)
laneImg(y,x_start+peaks(2,i)) = 1;
end
end
end
map_vehicle_axes(1,:)=xw_tr.*(xw_tr<=40);
map_vehicle_axes(2,:)=-1*yw_tr.*(-yw_tr>=-6).*(-yw_tr<=6);
map_vehicle_axes(:,~map_vehicle_axes(1,:)~=0)=[];
map_vehicle_axes(:,~map_vehicle_axes(2,:)~=0)=[];
mapImg = double(zeros(400,121));
map = double(zeros(400,120));
dimension3 = size(map_vehicle_axes);
data_end3 = dimension3(1,2);
for j=1:1:data_end3
mapImg(400-
round(map_vehicle_axes(1,j)*10),round(map_vehicle_axes(2,j)*10+61))
= 1;
end
mapImg(400-40,:) = 1;
map = mapImg(:,1:120);
end
inputImg = video;
dimension = size(inputImg);
x_end = dimension(1,1);
y_end = dimension(1,2);
laneImg = (zeros(x_end,y_end));
lane_search = zeros(1,y_end);
temp_i_start = 0;
for x=1:1:x_end
max_int = max(inputImg(x,:));
lines_count = 0;
for y=y_end:-1:1
if (inputImg(x,y)>0.75*max_int) && (temp_i_start==0)
temp_i_start = y;
end
394
if (-temp_i_end+temp_i_start)>=20 && (-
temp_i_end+temp_i_start)<=50
lines_count = lines_count+1;
if lines_count<=2
laneImg(x,temp_i_start) = 1;
temp_i_start = 0;
else
temp_i_start = 0;
end
else
temp_i_start = 0;
end
end
end
end
lane_search(1,:)=sum(laneImg);
temp_i_start=0;
approx_lines = [0 0];
k=1;
for y=1:1:y_end
if lane_search(1,y)>4 && (temp_i_start==0)
temp_i_start = y;
end
if lane_search(1,y)<=4 && (temp_i_start~=0)
temp_i_end = y;
if sum(lane_search(1,temp_i_start:temp_i_end))>50 &&
(approx_lines(k)==0)
approx_lines(k) = y_end-
round(mean(temp_i_start:temp_i_end));
elseif sum(lane_search(1,temp_i_start:temp_i_end))>50 &&
(approx_lines(k)~=0)
if (round(mean(temp_i_start:temp_i_end))-
approx_lines(k))<50
approx_lines(k) = y_end-
round(0.5*(approx_lines(k)+round(mean(temp_i_start:temp_i_end))));
else
k = k+1;
approx_lines(k) = y_end-
round(mean(temp_i_start:temp_i_end));
end
end
temp_i_start=0;
end
end
if approx_lines(2)~=0
395
lanes_count = uint8(2);
else
if approx_lines(1)~=0
lanes_count = uint8(1);
else
lanes_count = uint8(0);
end
end
lanes_count = uint8(lanes_count+1);
dist_sm = uint8(round(0.0007136*approx_lines(1)^2 +
0.2313*approx_lines(1))); % расстояние до ближайшей линии, см
end
X_local = double(0);
Y_local = double(0);
data_set = double([0 0 0 0 0 0]);
wz_out_0 = double(0);
if t_old==0
dt = 0;
else
if t<t_old
dt = t + 65535 - t_old;
else
dt = t - t_old;
end
end
dt = dt/1000; % delta time, s
if gbox==1
396
wz_out_0 = wz;
else
wz_out_0 = wz_in_0;
end
wz = wz - wz_out_0;
if abs(wz)>=0.01 && abs(wz)<0.1 % wz calibration
wz = wz*1.1;
elseif abs(wz)>=0.1
wz = wz*1.03;
end
end
coder.extrinsic('textscan');
coder.extrinsic('cell2mat');
temp_lat = double([0 0]);
temp_long = double([0 0]);
data_out = double(zeros(7,1));
zero_pos_out = double(zero_pos_in);
data = uint8(zeros(1,160));
k=0;
for i=1:1:160
if data_in(i)==13 || data_in(i)==10
397
else
k=k+1;
data(1,k) = data_in(i);
end
end
for i=1:1:(80-5)
if data(1,i)==36 && data(1,i+1)==71 && data(1,i+2)==80 && ...
data(1,i+3)==82 && data(1,i+4)==77 && data(1,i+5)==67
data_GNRMC = data(1,i:(i+79));
GNRMC = char(data_GNRMC);
[time_utc,GNRMC] = strtok(GNRMC,',');
[time_utc,GNRMC] = strtok(GNRMC,',');
[status,GNRMC] = strtok(GNRMC,',');
[lat_nmea,GNRMC] = strtok(GNRMC,',');
[nsCardinal,GNRMC] = strtok(GNRMC,',');
[long_nmea,GNRMC] = strtok(GNRMC,',');
[ewCardinal,GNRMC] = strtok(GNRMC,',');
[velocity_knots,GNRMC] = strtok(GNRMC,',');
[track,GNRMC] = strtok(GNRMC,',');
stat = [status-0];
temp_lat = cell2mat(textscan(lat_nmea, '%2n %n'));
lat = temp_lat(1) + temp_lat(2)/60;
temp_long = cell2mat(textscan(long_nmea, '%3n %n'));
long = temp_long(1) + temp_long(2)/60;
velocity = cell2mat(textscan(velocity_knots, '%n'))*1.852;
track2 = cell2mat(textscan(track, '%n'));
if zero_pos_in(1)==0 && stat(1)==65
zero_pos_out = [long; lat];
end
X_gps = (long-zero_pos_out(1))*62547.1826;
Y_gps = (lat-zero_pos_out(2))*110595.5433;
data_out = [stat; long; lat; velocity; track2; X_gps; Y_gps];
end
end
398
399
400