Академический Документы
Профессиональный Документы
Культура Документы
на тему
Разработка лабораторного стенда и методики исследования датчиков
ориентации беспилотных летательных аппаратов
по направлению подготовки/
15.03.06 Мехатроника и робототехника
специальности
код наименование направления подготовки/ специальности
наименование направленности
Санкт-Петербург 2020
2
ЗАДАНИЕ НА ВЫПОЛНЕНИЕ
ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЫ БАКАЛАВРА
студенту группы
номер фамилия, имя, отчество
на тему
Цель работы:
Аннотация
Данная работа посвящена исследованию задачи инерциальной
навигации, ориентирования и реализации метода оценки точности движения,
используемого в беспилотных летательных аппаратах, в реальном времени.
В ходе работы были решены следующие задачи:
- Реализация подхода к использованию автономной инерциальной
системы навигации, с помощью встроенных инерциальных
датчиков навигации и ориентирования;
- Анализ и устранение возможных ошибок в определении
местоположения с использованием инерциальных систем;
- Описание ошибок и негативных факторов, которые свойственны
данному виду навигационных систем;
- Оценка точности определения координат с помощью
поворотного стенда СИО-1;
Ключевые слова: система инерциальной навигации, беспилотные
летательные аппараты, локальная навигация, глобальная навигация,
микроэлектрические системы, инерциальные датчики, акселерометр,
гироскоп, магнитометр
4
Список сокращений
ЛН – Локальная навигация
АИС – Автономная инерциальная система
ГН – Глобальная навигация
ГСК – Глобальная система координат
СКУ – Система координат устройства
МЭМС – Микроэлектрические системы
БИНС – Бесплатформенная система
БЛА – беспилотные летательные аппараты
Vdd - Voltage drain drain
SPI – Serial Peripheral Interface
I2C – Inter-Integrated Circuit
АЦП – Аналогово-цифровой преобразователь
ФНЧ – Фильтр нижних частот
ФВЧ – Фильтр верхних частот
LGA – Land Grid Array
QFN - Quad Flat No-leads
LSB - Least Significant Bit (младший значимый бит)
ГУ – Главное устройство
ПУ – Подчинённое усройство
5
ОГЛАВЛЕНИЕ
1 Существующие методы навигации ........................................................... 7
1.1 Используемый в данной работе метод ориентации посредством
МЭМС сенсоров............................................................................................... 8
2. Используемые датчики ............................................................................. 10
2.1 Принцип работы акселерометров ..................................................... 11
2.1.1 МЭМС-акселерометр ADXL345: обзор устройства, технические
характеристики .......................................................................................... 14
2.1.2 МЭМС-акселерометр ADXL345: описание регистров ................. 16
2.2 Принцип работы гироскопов ................................................................ 28
2.2.1 МЭМС-гироскоп ITG-3200: обзор устройства, технические
характеристики .......................................................................................... 29
2.2.2 МЭМС-гироскоп ITG-3200: обзор регистров ................................ 31
2.3 Принцип работы магнитометров .......................................................... 38
2.3.1 Магнитометр HMC5883L: обзор устройства, технические
характеристики .......................................................................................... 39
2.3.3 Магнитометр HMC5883L: обзор регистров................................... 40
3. Определение ориентации с помощью МЭМС датчиков ........................ 48
3.1 Определение ориентации устройства по показаниям акселерометра
и магнитометра.............................................................................................. 48
3.2 Определение ориентации по показаниям гироскопа ......................... 50
4. Алгоритм реализации эксперимента ........................................................ 51
4.1 Обзор модуля HW-579 ............................................................................. 51
4.2 Обзор микроконтроллера Arduino Uno ................................................ 52
4.3. Обзор одноосного поворотного стенда СИО-1 ................................... 55
4.4 Протокол передачи данных I2C ............................................................ 56
5. Результаты .................................................................................................... 64
5.1 Листинг программы акселерометра ADXL345 ................................... 64
5.2 Листинг программы гироскопа ITG-3200 ........................................... 66
5.3 Листинг программы магнетометра HMC5883L ................................. 69
6
Введение
Область применения современных автономных и мобильных РТС в наше
время становится всё более обширной. Данные устройства используются, как
в военных или медицинских целях, так и в повседневном быту. Требования к
данным системам становятся всё строже, и один из наиболее важных вопросов
в соответствующих целях – обеспечение РТС совершенными навигационными
средствами для точной оценки координат положения физического тела в
пространстве.
В конкретных задачах оценка перемещения и ориентации при помощи
внешних датчиков и источников сигнала (например: GPS, ГЛОНАСС)
становится невозможной, поэтому, чтобы обеспечить устройство
навигационными возможностями, требуется использовать соответствующие
навигационные средства для решения вопросов комплексирования и
обработки информации, учёта особенностей кинематики, динамики
устройства и т.д. В таком случае становится необходимо создание
универсального навигационного комплекса, способного решить
соответствующие задачи для устройств любых размеров.
В данной работе использовался метод локальной навигации, в основе
которого лежат показания датчиков, встроенных в сам объект исследования.
Целью данной работы является исследование существующих задач АИС,
методов оценки перемещения исследуемого объекта в реальном времени, а так
же методов устранения систематических и случайных ошибок показаний,
закреплённого на исследуемом объекте модуля HW-579, включающий в себя
комплекс микроэлектромеханических датчиков: акселерометра, гироскопа,
магнитометра. Все исследования будут проведены посредством одноосного
поворотного стенда СИО-1.
7
2. Используемые датчики
– МЭМС-акселерометр ADXL345;
2) Термальные акселерометры.
Архитектура данных типов МЭМС-акселерометров
подразумевает использование пузырька воздуха, которое при
ускорении отклоняется от своего первоначального положения, что
фиксируется датчиками, а затем используется при расчёте ускорения.
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 Suppress TAP_X TAP_Y TAP_Z
enable enable enable
В регистре TAB_AXES можно задать оси X, Y, Z, по которым будут
отслеживаться толчки, для этого необходимо установить биты TAP_x enable.
Если бит TAP_x сброшен, то соответствующая ось не участвует в
обнаружении толчков. При установке бита Suppress, событие двойного толчка
не фиксируется, при условии, что время задержки (Latent) после обнаружения
первого толчка, возникает ускорение, превышающее значение уставки в
регистре THRESH_TAP.
Регистры THRESH_ACT и THRESH_INACT содержат пороговое значение
для обнаружения активности. Формат данных не подписан, поэтому величина
события активности сравнивается со значением в регистре THRESH_ACT.
Расчётный коэффициент составляет 62,5 мг / LSB. Значение 0 может привести
к нежелательному поведению, если включено прерывание активности.
D7 D6 D5 D4 D3 D2 D1 D0
0 ACT_X ACT_Y ACT_Z Asleep TAP_X TAP_Y TAP_Z
source source source source source source
Биты ACT_x Source and TAP_x Source регистра ACT_TAP_STATUS
указывают первую ось, вовлеченную в событие касания или активности.
Значение 1 бита Asleep соответствует участию в событии, а значение 0
соответствует отсутствию участия. Когда новые данные доступны, эти биты
не очищаются, а перезаписываются новыми данными. Регистр
ACT_TAP_STATUS должен быть прочитан перед очисткой прерывания.
Отключение оси от участия очищает соответствующий бит источника, когда
происходит следующее действие или одно касание / двойное касание.
20
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 LOW_POWER Rate
Установка 0 в бите LOW_POWER регистра BW_RATE выбирает
нормальную работу, а установка 1 выбирает работу с пониженной мощностью,
которая имеет несколько более высокий уровень шума. Биты RATE регистра
BW_RATE выбирают полосу пропускания устройства и скорость передачи
данных (подробности см. В таблице 7 и таблице 8). Значение по умолчанию -
0x0A, что соответствует выходной скорости 100 Гц. Должна быть выбрана
скорость передачи данных, соответствующая выбранному протоколу связи и
частоте. Выбор слишком высокой скорости выходных данных с низкой
скоростью передачи данных приводит к отбрасыванию выборок.
0 0 8 Гц
0 1 4 Гц
1 0 2 Гц
1 1 1 Гц
D1 D0
0 0 ±2 g
0 1 ±4 g
1 0 ±8 g
1 1 ±16 g
Регистры DATAX0, DATAX1, DATAY0, DATAY1, DATAZ0, DATAZ1
составляют восемь битов каждый и содержат выходные данные для каждой
оси. Регистр 0x32 и регистр 0x33 содержат выходные данные для оси x,
24
регистр 0x34 и регистр 0x35 содержат выходные данные для оси y, а регистр
0x36 и регистр 0x37 содержат выходные данные для оси z.
Выходные данные дополняются двумя, с DATAx0 в качестве младшего
значащего байта и DATAx1 в качестве старшего значащего байта, где x
представляет X, Y или Z. Регистр DATA_FORMAT (адрес 0x31) управляет
форматом данных. Рекомендуется выполнить многобайтовое чтение всех
регистров, чтобы предотвратить изменение данных между чтениями
последовательных регистров.
FIFO_TRIG 0 Entries
Регистр FIFO_STATUS необходим для отображения состояния буфера.
Единица в бите FIFO_TRIG соответствует возникновению события
запуска, а 0 означает, что событие запуска FIFO не произошло.
Биты Entries сообщают, сколько значений данных хранится в FIFO.
Доступ к сбору данных из FIFO предоставляется через регистры
DATAX, DATAY и DATAZ. Чтения FIFO должны выполняться в пакетном
или многобайтовом режиме, поскольку каждый уровень FIFO очищается
после любого чтения (одного или нескольких байтов) FIFO. FIFO хранит
максимум 32 записи, что соответствует максимум 33 записям, доступным в
любой момент времени, потому что дополнительная запись доступна в
выходном фильтре устройства.
26
-1 g 896 (0x380)
-1 g 960 (0x3C0)
28
-1 g 992 (0x3E0)
Технические характеристики:
- Цифровой выход отсчетов по X-, Y- и Z-осям, при чувствительности
14,375 LSB на °/с и диапазоном измерения до ±2000 °/с;
- Три 16-разрядных АЦП обеспечивают непрерывное преобразование
без использования внешнего мультиплексора;
- Программируемый ФНЧ;
- Широкий диапазон напряжения питания аналоговой части (VDD):
2,1…3,6 В;
- Не требуются ФВЧ;
- Время готовности: 50 мс;
- Датчик температуры с цифровым выходом;
- Заводская калибровка;
- I2C-интерфейс (400 кГц);
- Генератор тактовой частоты со стабильностью ±2% во всем
температурном диапазоне;
- Дополнительные входы внешнего тактового сигнала частотой 32,768
кГц или 19,2 МГц;
корпус QFN-24 (4x4x0,9 мм).
30
0 0 WHO_AM_I R/W
15 21 SMPLRT_DIV R/W
16 22 DLPF_FS R/W
17 23 INT_CFG R/W
1A 26 INT_STATUS R
1B 27 TEMP_OUT_H R
1C 28 TEMP_OUT_L R
1D 29 GYRO_XOUT_H R
1E 30 GYRO_XOUT_L R
1F 31 GYRO_YOUT_H R
20 32 GYRO_YOUT_L R
21 33 GYRO_ZOUT_H R
22 34 GYRO_ZOUT_L R
3E 62 PWR_MGM R/W
Параметры регистра:
H_RESET - Сброс устройства и внутренних регистров до настроек по
умолчанию.
SLEEP - Включить режим сна с низким энергопотреблением.
STBY_XG - Перевести гироскоп X в режим ожидания (1 = режим ожидания,
0 = нормальный режим).
STBY_YG - Перевести гироскоп Y в режим ожидания (1 = режим ожидания,
0 = нормальный режим).
STBY_ZG - Перевести гироскоп Z в режим ожидания (1 = режим ожидания, 0
= нормальный режим).
CLK_SEL - Выбрать источник данных часов устройства.
38
Технические характеристики:
Напряжение питания VCC: 3,3 - 6 В
Точность направления от 1 ° до 2 °
Диапазон магнитного поля от -8 до +8 Гаусс
Интерфейс: I2C
Адрес: 0x1E (7-битный адрес)
Максимальная скорость передачи данных: 160 Гц
Уровень цифрового напряжения: 3,3 В
Размеры: (18,2x13,3x2,2мм)
Вес: 0,95г.
40
Доступ к регистрам
Устройство использует адресный указатель, чтобы указать, в какое
место регистра следует читать или записывать. Эти местоположения указателя
отправляются от ведущего устройства к этому ведомому устройству и им
следуют 7-битный адрес плюс 1-битный идентификатор чтения / записи.
Чтобы свести к минимуму вмешательство пользователя, указатель
адреса обновляется автоматически. Автоматическое обновление указателя
адреса имеет две дополнительные функции: когда разрешен доступ к адресу
12 или выше, указатель обновляется до адреса 00, и при достижении адреса 08,
указатель возвращается к адресу 03. Логическое функционирование указателя
адреса показано ниже:
If (address pointer = 08) then address pointer = 03
Else if (address pointer >= 12) then address pointer = 0
Else (address pointer) = (address pointer) + 1
Значение указателя адреса не может быть прочитано через шину I2C.
Любая попытка прочитать несуществующий указатель адреса
возвращает 0, а любая попытка записи в несуществующий указатель адреса
будет проигнорирована устройством.
Чтобы переместить указатель адреса к случайному регистру, сначала
следует выполнить в этом регистре «запись» без данных.
Рекомендуемый Усиление
Диапазон
GN2 GN1 GN0 диапазон (LSB/
выхода
датчика поля Gauss)
0xF800–
0x07FF
0 0 0 ± 0.88 Ga 1370
(-2048–
2047)
0xF800–
1090 (по- 0x07FF
0 0 1 ± 1.3 Ga
умолчанию) (-2048–
2047)
0xF800–
0x07FF
0 1 0 ± 1.9 Ga 820
(-2048–
2047)
0xF800–
0x07FF
0 1 1 ± 2.5 Ga 660
(-2048–
2047)
0xF800–
1 0 0 ± 4.0 Ga 440 0x07FF (-
2048–2047)
0xF800–
0x07FF
1 0 1 ± 4.7 Ga 390
(-2048–
2047)
0xF800–
0x07FF
1 1 0 ± 5.6 Ga 330
(-2048–
2047)
0xF800–
0x07FF
1 1 1 ± 8.1 Ga 230
(-2048–
2047)
45
0 0 1 1 0 1 0 0
0 0 1 1 0 0 1 1
Таблица 2.3.3.15 - Стандартные значения регистра Identification Register C
48
Технические характеристики:
- 9 степеней свободы
- Сверхнизкая мощность: всего 23 мкА в режиме измерения
- Фиксированное 10-битное разрешение
- Полное разрешение до 13-битного разрешения при ± 16 g.
- Обнаружение свободного падения
- Диапазон напряжения питания: от 3,0 до 5,0 В
- Цифровые интерфейсы: I2C
- 4 инерциальных датчика в составе
Технические характеристики:
Микроконтроллер: ATmega328P - 8-битный микроконтроллер семейства
AVR
Рабочее напряжение: 5V
Рекомендуемое входное напряжение: 7-12V
Пределы входного напряжения: 6-20V
Выводы аналогового входа: 6 (A0 - A5)
Цифровые выводы ввода / вывода: 14 (из которых 6 обеспечивают выход
ШИМ)
Постоянный ток на контактах ввода / вывода: 40 мА
Постоянный ток на контакте 3.3 В: 50 мА
Флэш-память: 32 КБ (0,5 КБ используется для загрузчика)
SRAM: 2 КБ
EEPROM: 1 КБ
Частота (тактовая частота): 16 МГц
14 цифровых входов / выходов можно использовать в качестве входных
или выходных контактов с помощью функций pinMode (), digitalRead () и
digitalWrite (). Каждый вывод работает на напряжении 5В и максимально
доступный ток, который плата может обеспечивать или принимать - 40 мА.
Также имеет внутренний подтягивающий резистор 20-50 кОм, который
отключен по умолчанию. Из этих 14 контактов некоторые контакты имеют
определенные функции, перечисленные ниже:
54
Технические характеристики:
Ориентация оси вращения: вертикально
Крутящий момент двигателя: 12 Н/м
Нестабильность угловой скорости вращения: 0,01%
Максимальная скорость вращения: 60 об/мин
Интерфейс управления: ПУ / RS-232 / usb
Максимально потребляемая мощность, Вт: 300
Габариты, мм: 350x350x350
Масса устройства, кг: 30
Напряжение питающей сети, В: 220 ± 22
Частота питающей сети, Гц: 50 ± 1
Относительная влажность воздуха, %: 65 ± 15
Температура окружающей среды, °С: 20 ± 2
Минимальный срок службы, лет: 5
4.4 Протокол передачи данных I2C
I2C сочетает в себе лучшие функции SPI и UART. С помощью I2C
возможно подключить несколько ведомых устройств к одному ведущему
устройству (например, SPI), в таком случае может быть несколько ведущих
устройств, управляющих одним или несколькими подчиненными
устройствами. Это становится полезно, если встаёт необходимость, чтобы
несколько микроконтроллеров записывали данные на одну карту памяти или
отображали текст на одном ЖК-дисплее.
Так же, как и протокол связи UART, I2C использует только два провода
для передачи данных между устройствами:
57
5. Результаты
В данном разделе продемонстрированы готовые решения проблем датчиков
систем инерциальной навигации в виде программных кодов, считывающих
данные ориентации, а также устраняющих шумы и погрешности показаний
датчиков модуля HW-579 с помощью фильтра нижних частот. Для упрощения
кода будем использовать готовые библиотеки: ADXL345.h, HMC5883l.h,
ITG3200.h.
#include <ADXL345.h>
ADXL345 accelerometer;
void setup(void)
Serial.begin(9600);
Serial.println("Initialize ADXL345");
if (!accelerometer.begin())
delay(500);
accelerometer.setRange(ADXL345_RANGE_16G);
void loop(void)
// Фильтрация значений
// Вывод
Serial.print(pitch);
Serial.print(roll);
// Вывод (отфильтрованный)
Serial.print(fpitch);
Serial.print(froll);
Serial.println();
delay(100);
#include <ITG3200.h>
float x, y, z;
void setup(void) {
Serial.begin(9600);
delay(1000);
gyro.init(ITG3200_ADDR_AD0_LOW);
Serial.print("zeroCalibrating...");
gyro.zeroCalibrate(2500, 2);
Serial.println("done.");
void loop(void) {
while (gyro.isRawDataReady()) {
/*
gyro.readGyroRaw(&ix,&iy,&iz);
Serial.print("X1:");
Serial.print(ix);
Serial.print(" Y:");
Serial.print(iy);
Serial.print(" Z:");
67
Serial.println(iz);
*/
/*
gyro.readGyroRawCal(&ix,&iy,&iz);
Serial.print("X2:");
Serial.print(ix);
Serial.print(" Y:");
Serial.print(iy);
Serial.print(" Z:");
Serial.println(iz);
*/
Serial.print("X3:");
Serial.print(x);
Serial.print(" Y:");
Serial.print(y);
Serial.print(" Z:");
Serial.println(z);
delay(50);
}
68
#include <HMC5883L.h>
HMC5883L compass;
void setup()
Serial.begin(9600);
// инициализация HMC5883L
Serial.println("Initialize HMC5883L");
while (!compass.begin())
delay(500);
compass.setRange(HMC5883L_RANGE_1_3GA);
compass.setMeasurementMode(HMC5883L_CONTINOUS);
// 0.75Hz: HMC5883L_DATARATE_0_75HZ
// 1.50Hz: HMC5883L_DATARATE_1_5HZ
// 3.00Hz: HMC5883L_DATARATE_3HZ
// 7.50Hz: HMC5883L_DATARATE_7_50HZ
// 30.00Hz: HMC5883L_DATARATE_30HZ
// 75.00Hz: HMC5883L_DATARATE_75HZ
compass.setDataRate(HMC5883L_DATARATE_15HZ);
// 2 probki: HMC5883L_SAMPLES_2
// 4 probki: HMC5883L_SAMPLES_4
// 8 probki: HMC5883L_SAMPLES_8
compass.setSamples(HMC5883L_SAMPLES_1);
void loop()
Serial.print(raw.XAxis);
Serial.print(raw.ZAxis);
Serial.print(norm.XAxis);
Serial.print(norm.YAxis);
Serial.print(norm.ZAxis);
Serial.println();
delay(100);
6 Выводы
В данной работе был рассмотрен способ ориентирования устройства в
пространстве с помощью инерциальных датчиков навигации и
ориентирования, были описаны положительные стороны и сложности в
реализации автономных инерциальных систем, используемых в разработке
современных беспилотных летательных аппаратов.
Подробно описаны технические, программные подробности и принципы
работы инерциальных датчиков ADXL345, ITG3200, HMC5885L, входящих в
состав модуля HW-579, были рассмотрены преимущества и механизм
действия используемого в работе протокола связи I2C.
По итогам анализа метода навигации, использующего пассивные датчики,
можно сделать вывод, что данный подход совмещает в себе простоту
проектирования, автономность и отличительную точность, вызванную
отсутствием какого-либо воздействия элементов друг на друга.
Был поставлен эксперимент, в ходе которого реализован метод программного
устранения систематических, случайных погрешностей и шумов в показаниях
инерциальных датчиков, используемых в системах навигации БЛА. Были
сняты показания датчиков до и после фильтрации, по которым заметно
частичное устранение погрешностей выходных данных, по сравнению с
данными, не прошедшими данную обработку. В рамках проведения описанной
работы, в качестве управляющего звена, была использована
микроконтроллерная плата Arduino Uno, к которой по протоколу связи I2C
был соединён инерциальный модуль HW-579.
73
Литература:
Черноножкин В.А., Половко С.А. Система локальной навигации для
наземных мобильных роботов //Научно-технический вестник СПбГУ ИТМО.
2008. №57. С. 13-22.
Пьезоэлектрические акселерометры с двумя динамическими и частотными
диапазонами [Текст] / Янчич, Джения, Янчич // Известия высших учебных
заведений. Поволжский регион. Технические науки. — 2013.— №3.— С. 127-
134
В.В.Мелешко, О.И.Нестеренко. Бесплатформенные инерциальные
навигационные системы. Учебное пособие. – Кировогорад.: ПОЛИМЕД –
Сервис.2011. – 171 с
В.В.Матвеев, В.Я.Распопов. Основы построения бесплатформенных
инерциальных навигационных систем. - СПб: ГНЦ РФ ОАО «Концерн
«ЦНИИ «Электроприбор», 2009 – 280с.
Документация ADXL345 [Электронный ресурс]. -
https://www.alldatasheet.com/datasheet-pdf/pdf/254714/AD/ADXL345.html
Документация ITG3200 [Электронный ресурс]. -
https://www.alldatasheet.com/datasheet-pdf/pdf/1140869/TDK/ITG-3200.html
Документация HMC5885L [Электронный ресурс]. -
Документация одноосного поворотного стенда СИО-1 [Электронный ресурс].
- https://www.alldatasheet.com/datasheet-
pdf/pdf/428790/HONEYWELL/HMC5883L.html