YDLIDAR GS2 DEVELOPMENT Лінійний масивний твердотільний датчик LiDAR
РОБОЧИЙ МЕХАНІЗМ
Режим
Система YDLIDAR GS2 (надалі GS2) має 3 режими роботи: режим очікування, режим сканування, режим зупинки.
- Режим очікування: Коли GS2 увімкнено, режимом за замовчуванням є режим очікування. У режимі очікування дальномер GS2 не працює, а лазер не світиться.
- Режим сканування: Коли GS2 знаходиться в режимі сканування, дальномер вмикає лазер. Коли GS2 починає працювати, він безперервно sampзавантажує зовнішнє середовище та виводить його в режимі реального часу після фонової обробки.
- Режим зупинки: Коли GS2 працює з помилкою, як-от увімкнення сканера, лазер вимкнено, двигун не обертається тощо. GS2 автоматично вимкне пристрій вимірювання відстані та повідомить код помилки.
Принцип вимірювання
GS2 — це твердотільний лідар ближнього радіусу дії з діапазоном 25-300 мм. В основному він складається з лінійного лазера та камери. Після того як однолінійний лазер випромінює лазерне світло, воно фіксується камерою. Відповідно до фіксованої структури лазера та камери в поєднанні з принципом тріангуляційного вимірювання відстані ми можемо обчислити відстань від об’єкта до GS2. Відповідно до каліброваних параметрів камери можна дізнатися значення кута вимірюваного об'єкта в системі координат лідара. В результаті ми отримали повні дані вимірювання вимірюваного об'єкта.
Точка О — початок координат, фіолетова область — кут view правої камери, а помаранчева область – це кут view лівої камери.
З модною пунктуацією як початком координат, фронт є напрямком системи координат 0 градусів, а кут збільшується за годинниковою стрілкою. Коли виводиться хмара точок, порядок даних (S1~S160) такий: L1~L80, R1~R80. Кут і відстань, обчислені SDK, представлені в системі координат за годинниковою стрілкою.
СИСТЕМА КОМУНІКАЦІЇ
Механізм зв'язку
GS2 передає команди та дані зовнішнім пристроям через послідовний порт. Коли зовнішній пристрій надсилає системну команду до GS2, GS2 виконує системну команду та повертає відповідне повідомлення. Відповідно до змісту команди GS2 перемикає відповідний робочий статус. На основі вмісту повідомлення зовнішня система може проаналізувати повідомлення та отримати дані відповіді.
Системна команда
Зовнішня система може встановлювати відповідний робочий статус GS2 і надсилати відповідні дані, надсилаючи відповідні системні команди. Системні команди, які видає GS2, такі:
ДИАГРАММА 1 КОМАНДА СИСТЕМИ YDLIDAR GS2
Системна команда | опис | Перемикання режимів | Режим відповіді |
0×60 | Отримання адреси пристрою | Режим зупинки | Одна відповідь |
0×61 | Отримання параметрів пристрою | Режим зупинки | Одна відповідь |
0×62 | Отримання інформації про версію | Режим зупинки | Одна відповідь |
0×63 | Розпочніть сканування та виведіть дані хмари точок | Режим сканування | Безперервна відповідь |
0x64 | Зупинити пристрій, припинити сканування | Режим зупинки | Одна відповідь |
0x67 | М'який перезапуск | / | Одна відповідь |
0×68 | Встановіть швидкість передачі даних послідовного порту | Режим зупинки | Одна відповідь |
0×69 | Встановити крайовий режим (антишумовий режим) | Режим зупинки | Одна відповідь |
Системні повідомлення
Системне повідомлення — це повідомлення-відповідь, яке система повертає на основі отриманої системної команди. Відповідно до різних системних команд режим відповіді та вміст відповіді системного повідомлення також відрізняються. Існує три типи режимів відповіді: відсутність відповіді, одноразова відповідь, безперервна відповідь.
Відсутність відповіді означає, що система не повертає жодних повідомлень. Одна відповідь означає, що довжина повідомлення системи обмежена, і відповідь завершується один раз. Коли система каскадується з кількома пристроями GS2, деякі команди отримуватимуть відповіді від кількох пристроїв GS2 послідовно. Безперервна відповідь означає, що довжина системного повідомлення є нескінченною та потребує безперервного надсилання даних, наприклад, під час входу в режим сканування.
Повідомлення з одноразовою відповіддю, багаторазовою відповіддю та безперервною відповіддю використовують однаковий протокол даних. Вміст протоколу: заголовок пакета, адреса пристрою, тип пакета, довжина даних, сегмент даних і контрольний код, і виводяться через шістнадцяткову систему послідовного порту.
ДІАГРАМА 2 СХЕМА ПРОТОКОЛУ ДАНИХ СИСТЕМНИХ ПОВІДОМЛЕНЬ YDLIDAR GS2
Заголовок пакета | Адреса пристрою | Тип пакета | Довжина відповіді | Сегмент даних | Перевірте код |
4 байт | 1 байт | 1 байт | 2 байт | N байтів | 1 байт |
Байтовий зсув
- Заголовок пакета: Заголовок пакету повідомлення для GS2 позначено як 0xA5A5A5A5.
- Адреса пристрою: Адреса пристрою GS2 за кількістю каскадів поділяється на: 0x01, 0x02, 0x04;
- Тип пакету: Перегляньте таблицю 1 для типів системних команд.
- Тривалість відповіді: Позначає довжину відповіді
- Сегмент даних: Різні системні команди реагують на різний вміст даних, і їхні протоколи даних відрізняються.
- Перевірити код: перевірити код.
Примітка: Для передачі даних GS2 використовується режим малого порядку байтів, спочатку молодший.
ПРОТОКОЛ ДАНИХ
Отримайте команду адреси пристрою
Коли зовнішній пристрій надсилає цю команду до GS2, GS2 повертає пакет адреси пристрою, таке повідомлення:
У каскадному підключенні, якщо N пристроїв (підтримується до 3) є потоковими, команда повертає N відповідей у 0x01, 0x02, 0x04, що відповідає 1-3 модулям відповідно.
визначення: Адреса модуля 1 – 0x01, модуля 2 – 0x02, а модуля 3 – 0x04.
Команда «Отримати інформацію про версію».
Коли зовнішній пристрій надсилає команду сканування до GS2, GS2 повертає інформацію про свою версію. Повідомлення у відповідь:
У випадку каскадування, якщо послідовно з’єднано N (максимум 3) пристроїв, ця команда поверне N відповідей, де адреса є адресою останнього пристрою.
Довжина номера версії становить 3 байти, а номер серії – 16 байтів.
Отримати команду параметрів пристрою
Коли зовнішній пристрій надсилає цю команду до GS2, GS2 поверне параметри свого пристрою, а таке повідомлення:
У каскадному підключенні, якщо N пристроїв (підтримується до 3) об’єднано, команда повертає N відповідей, що відповідають параметрам кожного пристрою.
K і B, отримані протоколом, мають тип uint16, який потрібно перетворити на тип float, а потім розділити на 10000 перед тим, як замінити його у функцію обчислення.
- d_compensateK0 = (float)K0/10000.0f;
- d_compensateB0 = (float)B0/10000.0f;
- d_compensateK1 = (float)K1/10000.0f;
- d_compensateB1 = (float)B1/10000.0f;
Bias має тип int8, який потрібно перетворити на тип float і розділити на 10 перед підставою у функцію обчислення.
- зміщення = (плаваюча) зміщення /10;
Команда
Команда сканування
Коли зовнішній пристрій надсилає команду сканування до GS2, GS2 переходить у режим сканування та постійно передає дані хмари точок. Повідомлення: Команда надіслана: (Надіслати адресу 0x00, каскадно чи ні, запустить усі пристрої)
Отримано наказ: (У каскадних випадках ця команда повертає лише одну відповідь, і адреса є найбільшою адресою, наприкладample: пристрій №3 каскадовано, а адреса 0x04.)
Сегмент даних — це дані хмари точок, скановані системою, які надсилаються на послідовний порт у шістнадцятковому вигляді на зовнішній пристрій відповідно до наведеної нижче структури даних. Довжина даних усього пакету становить 322 байти, включаючи 2 байти даних про навколишнє середовище та 160 точок діапазону (S1-S160), кожна з яких має 2 байти, старші 7 біт – це дані інтенсивності, а нижні 9 біт – дані про відстань. . Одиниця виміру мм.
Команда зупинки
Коли система перебуває в стані сканування, GS2 надсилає дані хмари точок у зовнішній світ. Щоб вимкнути сканування в цей час, надішліть цю команду, щоб зупинити сканування. Після надсилання команди зупинки модуль відповість на команду відповіді, і система негайно перейде в режим очікування. У цей час дальномер приладу знаходиться в режимі низького енергоспоживання, а лазер вимкнений.
- Відправка команди: (адреса надсилання 0x00, незалежно від каскадного чи ні, усі пристрої будуть закриті).
У випадку каскадування, якщо N (максимум 3) пристроїв підключено послідовно, ця команда поверне лише відповідь, де адреса є адресою останнього пристрою, напр.ample: якщо каскадно підключено 3 пристрої, адреса 0x04.
Встановіть команду швидкості передачі даних
Коли зовнішній пристрій надсилає цю команду до GS2, можна встановити вихідну швидкість передачі даних GS2.
- Команда надіслана: (адреса надсилання 0x00, підтримується лише встановлення однакової швидкості передачі всіх каскадованих пристроїв), повідомлення таке:
Серед них сегмент даних є параметром швидкості передачі даних, включаючи чотири швидкості передачі даних (біт/с), відповідно: 230400, 512000, 921600, 1500000, що відповідає коду 0-3 (примітка: тримодульне послідовне з’єднання має бути ≥921600, за замовчуванням 921600).
У випадку каскадування, якщо N пристроїв (максимальна підтримка 3) з’єднані послідовно, команда поверне N відповідей, що відповідають параметрам кожного пристрою, а адреси: 0x01, 0x02, 0x04.
- Після встановлення швидкості передачі даних потрібно м’яко перезавантажити пристрій.
Встановіть режим Edge (режим сильного захисту від перешкод)
Коли зовнішній пристрій надсилає цю команду до GS2, можна встановити режим захисту від перешкод GS2.
- Надсилання команди: (адреса надсилання, каскадна адреса), повідомлення:
прийом команди
Адреса – це адреса модуля, який потрібно налаштувати в каскадному посиланні. Mode=0 відповідає стандартному режиму, Mode=1 відповідає крайовому режиму (розетка вгору), Mode=2 відповідає крайньому режиму (розетка вниз). У граничному режимі фіксована вихідна частота лідара становить 10 Гц, і ефект фільтрації навколишнього світла буде посилений. Mode=0XFF означає зчитування, лідар повернеться до поточного режиму. За замовчуванням Лідар працює в стандартному режимі.
- Встановити модуль 1: Адреса =0x01
- Встановити модуль 2: Адреса =0x02
- Встановити модуль 3: Адреса =0x04
Команда скидання системи
Коли зовнішній пристрій надсилає цю команду до GS2, GS2 увійде в режим м’якого перезапуску, а система перезавантажиться.
Надсилання команди: (адреса надсилання може бути лише точною об’єднаною адресою: 0x01/0x02/0x04)
Адреса – це адреса модуля, який потрібно налаштувати в каскадному посиланні.
- Скинути модуль 1: Адреса =0x01
- Скинути модуль 2: Адреса =0x02
- Скинути модуль 3: Адреса =0x04
АНАЛІЗ ДАНИХ
ДІАГРАМА 3 ОПИС СТРУКТУРИ ДАНИХ
Зміст | Ім'я | опис |
K0(2B) | Параметри пристрою | (uint16) Коефіцієнт параметра кута лівої камери k0 (див. розділ 3.3) |
B0(2B) | Параметри пристрою | (uint16) Коефіцієнт параметра кута лівої камери k0 (див. розділ 3.3) |
K1(2B) | Параметри пристрою | (uint16) Коефіцієнт параметра правого кута камери k1 (див. розділ 3.3) |
B1(2B) | Параметри пристрою | (uint16) Параметр b1 правого кута камери (див. розділ 3.3) |
БІАС | Параметри пристрою | (int8) Коефіцієнт зсуву поточного параметра кута камери (див. розділ 3.3) |
ENV(2B) | Дані середовища | Інтенсивність навколишнього освітлення |
Si(2B) | Дані вимірювання відстані | Молодші 9 біт - це відстань, старші 7 біт - значення інтенсивності |
- Аналіз відстані
Формула розрахунку відстані: Відстань = (_ ≪ 8|_) &0x01ff, одиниця вимірювання — мм.
Розрахунок міцності: Якість = _ ≫ 1 - Аналіз кутів
Напрямок лазерного випромінювання береться за передню частину датчика, проекція центру лазерного кола на площину друкованої плати береться за початок координат, а полярна система координат встановлюється з нормаллю площини друкованої плати як напрямок 0 градусів. За годинниковою стрілкою кут поступово збільшується.
Для перетворення вихідних даних, переданих Лідаром, у систему координат, зображену на малюнку вище, потрібна серія обчислень. Функція перетворення виглядає наступним чином (докладніше дивіться в SDK):
Перевірте аналіз коду
Контрольний код використовує однобайтове накопичення для перевірки поточного пакета даних. Чотирибайтовий заголовок пакета та сам контрольний код не беруть участь в операції перевірки. Формула рішення контрольного коду така:
- Контрольна сума = ADD1()
- = 1,2, … ,
ADD1 — це кумулятивна формула, яка означає накопичення чисел від нижнього індексу 1 до кінця елемента.
OTA ОНОВЛЕННЯ
Робочий процес оновлення
Відправити протокол
ДІАГРАМА 4 ФОРМАТ ПРОТОКОЛУ ДАНИХ OTA (МАЛИЙ ENDIAN)
Параметр | Довжина (байти) | опис |
Packet_Header | 4 | Заголовок пакету даних, виправлений як A5A5A5A5 |
Device_Address | 1 | Вказує адресу пристрою |
Pack_ID | 1 | Ідентифікатор пакета даних (тип даних) |
Data_Len | 2 | Довжина сегмента даних, 0-82 |
Дані | n | Дані, n = Data_Len |
Контрольна_сума | 1 | Контрольна сума, контрольна сума байтів, що залишилися після видалення заголовка |
ДИАГРАММА 5 ІНСТРУКЦІЇ З ОНОВЛЕННЯ OTA
Тип інструкції | Pack_ID | опис |
Start_IAP | 0x0A | Надішліть цю команду, щоб запустити IAP після ввімкнення |
Running_IAP | 0x0B | Запуск IAP, передача пакетів |
Complete_IAP | 0x0C | Кінець IAP |
ACK_IAP | 0x20 | Відповідь IAP |
RESET_SYSTEM | 0x67 | Скинути та перезапустити модуль за вказаною адресою |
Інструкція Start_IAP
Відправка команди
- Сегмент даних Формат даних:
- Дані [0~1]: За замовчуванням 0x00;
- ДАНІ [2~17]: Це фіксований код перевірки символів:
- 0x73 0x74 0x61 0x72 0x74 0x20 0x64 0x6F 0x77 0x6E 0x6C 0x6F 0x61 0x64 0x00 0x00
- Зверніться до надсилання повідомлення
- A5 A5 A5 A5 01 0A 12 00 00 00 73 74 61 72 74 20 64 6F 77 6E 6C 6F 61 64 00 00 C3
Прийом команд: Через операції сектора FLASH затримка повернення є великою та коливається між 80 мс і 700 мс)
Формат отримання даних
- Адреса: адреса модуля;
- ACK: За замовчуванням 0x20, що вказує на те, що пакет даних є пакетом підтвердження; Data[0~1]: за умовчанням 0x00;
- Дані[2]: 0x0A вказує, що команда відповіді 0x0A;
- Дані[3]: 0x01 вказує на нормальний прийом, 0 вказує на ненормальний прийом;
- Довідка для отримання:
A5 A5 A5 A5 01 20 04 00 00 00 0A 01 30
Інструкція Running_IAP
Відправка команди
Під час оновлення мікропрограмне забезпечення буде розділено, і перші два байти сегмента даних (Data) вказують на зсув цього сегмента даних відносно першого байта мікропрограмного забезпечення.
- Дані[0~1]:Package_Shift = Дані[0]+ Дані[1]*256;
- Дані[2]~Дані[17]: це фіксований код підтвердження рядка:
- 0x64 0x6F 0x77 0x6E 0x6C 0x6F 0x61 0x64 0x69 0x6E 0x67 0x00 0x00 0x00 0x00 0x00 Data[18]~Data[81]: дані мікропрограми;
- Зверніться до надсилання повідомлення
- A5 A5 A5 A5 01 0B 52 00 00 00 64 6F 77 6E 6C 6F 61 64 69 6E 67 00 00 00 00 00 +
(Дані[18]~Дані[81]) + Контрольна_сума
Командний прийом
- Адреса: is адреса модуля;
- ACK: За замовчуванням 0x20, що вказує на те, що пакет даних є пакетом підтвердження;
Дані[0~1] : Package_Shift = Data[0]+ Data[1]*256 вказує зміщення даних мікропрограми відповіді. Рекомендується оцінювати зсув як механізм захисту під час виявлення відповіді під час процесу оновлення.
- Data[2]=0x0B вказує, що команда відповіді 0x0B;
- Data[3]=0x01 вказує на нормальний прийом, 0 вказує на ненормальний прийом;
Довідка для отримання
A5 A5 A5 A5 01 20 04 00 00 00 0B 01 31
Complete_IAP Інструкція
Відправка команди
- Дані [0~1]: За замовчуванням 0x00;
- Дані[2]~Дані[17]: Це фіксований код підтвердження рядка:
0x63 0x6F 0x6D 0x70 0x6C 0x65 0x74 0x65 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Дані[18]~Дані[21]: прапор шифрування, тип uint32_t, зашифрована мікропрограма — 1, незашифрована мікропрограма — 0;
Зверніться до надсилання повідомлення:
A5 A5 A5 A5 01 0C 16 00 00 00 63 6F 6D 70 6C 65 74 65 00 00 00 00 00 00 00 00 + (прапор шифрування uint32_t) + Check_Sum
Командний прийом
- Формат отримання даних:
- Адреса: – адреса модуля;
- ACK: За замовчуванням 0x20, що вказує на те, що пакет даних є пакетом підтвердження;
- Дані [0~1]: За замовчуванням 0x00;
- Дані[2]: 0x0C вказує, що команда відповіді 0x0C;
- Дані[3]: 0x01 вказує на нормальний прийом, 0 вказує на ненормальний прийом;
- Зверніться до отриманого повідомлення:
A5 A5 A5 A5 01 20 04 00 00 00 0C 01 32
Інструкція RESET_SYSTEM
Будь ласка, зверніться до розділу 3.8 Команда скидання системи для отримання додаткової інформації.
Питання та відповіді
- З: Як визначити, що скидання успішне після надсилання команди скидання? Чи потрібна затримка?
- A: Про успішне виконання можна судити згідно з пакетом відповіді на команду скидання; рекомендується додати затримку 500 мс після отримання відповіді перед виконанням наступних операцій.
- Питання: Модуль 4 отримує деякі дані послідовного порту, які не відповідають протоколу після скидання, як із цим впоратися?
- A: Журнал увімкнення модуля — це рядок даних ASCII із 4 заголовками 0x3E, які не впливають на звичайний аналіз даних із 4 заголовками 0xA5, і їх можна ігнорувати. Через фізичний зв’язок журнали модулів № 1 і № 2 не можуть бути отримані.
- З: Як діяти, якщо процес оновлення переривається через збій живлення та перезавантаження?
- A: Повторно надішліть команду Start_IAP для повторного оновлення.
- З: Яка можлива причина ненормальної функції оновлення в каскадному стані?
- A: Перевірте правильність фізичного зв’язку, наприклад, чи можна отримати дані хмари точок трьох модулів;
- Переконайтеся, що адреси трьох модулів не конфліктують, і ви можете спробувати перепризначити адреси;
- Скиньте модуль, який потрібно оновити, а потім повторіть спробу;
- Q: Чому після каскадного оновлення зчитується номер версії 0?
- A: Це означає, що оновлення модуля не вдалось, користувачам потрібно скинути налаштування модуля, а потім оновити його знову.
УВАГА
- Під час взаємодії команд із GS2, крім команди зупинки сканування, інші команди не можуть взаємодіяти в режимі сканування, що може легко призвести до помилок аналізу повідомлення.
- GS2 не почне автоматично вимірювати дальність після ввімкнення. Для входу в режим сканування потрібно надіслати команду запуску сканування. Коли потрібно припинити визначення діапазону, надішліть команду зупинити сканування, щоб зупинити сканування та перейти в сплячий режим.
- Запустіть GS2 звичайним способом, рекомендований нами процес:
Перший крок:
надішліть команду Get Device Address, щоб отримати адресу поточного пристрою та кількість каскадів, і налаштуйте адресу;
Другий крок:
надішліть команду get version, щоб отримати номер версії;
Третій крок:
відправити команду для отримання параметрів пристрою для отримання кутових параметрів пристрою для аналізу даних;
Четвертий крок:
відправити команду запуску сканування, щоб отримати дані хмари точок. - Пропозиції щодо дизайну світлопроникних матеріалів для перспективних вікон GS2:
Якщо перспективне вікно передньої кришки розроблено для GS2, рекомендується використовувати ПК, що пропускає інфрачервоне випромінювання, як світлопропускаючий матеріал, а світлопропускаюча область повинна бути плоскою (площинність ≤0.05 мм), а всі ділянки в площина має бути прозорою в діапазоні від 780 до 1000 нм. Освітленість більше 90%. - Рекомендована процедура багаторазового вмикання та вимкнення навігаційної панелі GS2:
Щоб зменшити енергоспоживання навігаційної плати, якщо GS2 потрібно вмикати та вимикати неодноразово, рекомендується надіслати команду зупинки сканування (див. розділ 3.5) перед вимкненням, а потім налаштувати TX і RX навігаційної плати до високого опору. Потім потягніть VCC на низький рівень, щоб вимкнути його. Під час наступного ввімкнення живлення спочатку підніміть VCC, потім налаштуйте TX і RX як звичайні вихідні та вхідні стани, а потім після затримки в 300 мс виконайте командну взаємодію з лінійним лазером. - Про максимальний час очікування після надсилання кожної команди GS2:
- Отримати адресу: затримка 800 мс, отримати версію: затримка 100 мс;
- Отримати параметри: затримка 100 мс, почати сканування: затримка 400 мс;
- Зупинити сканування: затримка 100 мс, встановити швидкість передачі даних: затримка 800 мс;
- Встановити крайовий режим: затримка 800 мс, запуск OTA: затримка 800 мс;
ПЕРЕВІРКА
Дата | Версія | Зміст |
2019-04-24 | 1.0 | Складіть першу чернетку |
2021-11-08 |
1.1 |
Змінити (Змінити структуру протоколу для об’єднання даних лівої та правої камер; Пропозиції щодо додавання матеріалів перспективного вікна; Додавання швидкості передачі даних
налаштування команди) |
2022-01-05 | 1.2 | Змінити опис отримання команди для отримання адреси пристрою та опис лівої та правої камер |
2022-01-12 | 1.3 | Додайте режим краю, доповніть K, B, опис розрахунку BIAS |
2022-04-29 | 1.4 | Змінити опис розділу 3.2: Команда отримання інформації про версію |
2022-05-01 | 1.5 | Змініть метод конфігурації адреси команди м’якого перезапуску |
2022-05-31 |
1.6 |
1) Оновити розділ 3.7
2) Розділ 3.8 Команда RESET додає одну відповідь 3) Додано оновлення розділу 5 OTA |
2022-06-02 | 1.6.1 | 1) Змініть робочий процес оновлення OTA
2) Змініть запитання та відповіді OTA |
Документи / Ресурси
![]() |
YDLIDAR GS2 DEVELOPMENT Лінійний масивний твердотільний датчик LiDAR [pdfПосібник користувача GS2 DEVELOPMENT Linear Array Solid LiDAR Sensor, GS2 DEVELOPMENT, Linear Array Solid LiDAR Sensor, Array Solid LiDAR Sensor, Solid LiDAR Sensor, LiDAR Sensor, Sensor |