YDLIDAR GS2 РАЗРАБОТКА Линеен матрица Solid LiDAR сензор
РАБОТЕН МЕХАНИЗЪМ
Режим
Системата YDLIDAR GS2 (наричана по-нататък GS2) има 3 работни режима: режим на празен ход, режим на сканиране, режим на спиране.
- Режим на готовност: Когато GS2 е включен, режимът по подразбиране е неактивен. В неактивен режим измервателният уред на GS2 не работи и лазерът не свети.
- Режим на сканиране: Когато GS2 е в режим на сканиране, измервателният уред включва лазера. Когато GS2 започне да работи, той непрекъснато sampизвежда външната среда и я извежда в реално време след фонова обработка.
- Режим на спиране: Когато GS2 работи с грешка, като например включване на скенера, лазерът е изключен, моторът не се върти и т.н. GS2 автоматично ще изключи устройството за измерване на разстояние и ще изпрати обратна връзка за кода на грешката.
Принцип на измерване
GS2 е лидар в твърдо състояние с малък обсег и обхват 25-300 mm. Състои се основно от линеен лазер и камера. След като еднолинейният лазер излъчи лазерната светлина, тя се улавя от камерата. Според фиксираната структура на лазера и камерата, комбинирана с принципа на триангулационно измерване на разстоянието, можем да изчислим разстоянието от обекта до GS2. Според калибрираните параметри на камерата може да се знае стойността на ъгъла на измервания обект в лидарната координатна система. В резултат на това получихме пълните данни от измерванията на измервания обект.
Точка O е началото на координатите, лилавата област е ъгълът на 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 байта, а SN номерът е с дължина 16 байта.
Получаване на команда за параметри на устройството
Когато външно устройство изпрати тази команда до GS2, GS2 ще върне параметрите на устройството си и съобщението е:
При каскадиране, ако N устройства (поддържани до 3) са нишки, командата връща N отговора, съответстващи на параметрите на всяко устройство.
K и B, получени от протокола, са от тип uint16, които трябва да бъдат преобразувани в тип float и след това разделени на 10000 XNUMX, преди да бъдат заменени в изчислителната функция.
- 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: устройство No.3 е каскадно и адресът е 0x04.)
Сегментът от данни е данните от облака от точки, сканирани от системата, които се изпращат към серийния порт в шестнадесетичен формат към външното устройство съгласно следната структура на данните. Дължината на данните на целия пакет е 322 байта, включително 2 байта данни за околната среда и 160 точки за обхват (S1-S160), всяка от които е 2 байта, горните 7 бита са данни за интензитета, а долните 9 бита са данни за разстоянието . Единицата е mm.
Команда за спиране
Когато системата е в състояние на сканиране, GS2 изпраща данни от облак от точки към външния свят. За да деактивирате сканирането в този момент, изпратете тази команда, за да спрете сканирането. След изпращане на командата за спиране, модулът ще отговори на командата за отговор и системата незабавно ще влезе в режим на готовност. В този момент локаторът на устройството е в режим на ниска консумация на енергия и лазерът е изключен.
- Изпращане на команда: (адрес за изпращане 0x00, без значение дали е каскадно или не, всички устройства ще бъдат затворени).
В случай на каскадно свързване, ако N (максимум 3) устройства са свързани последователно, тази команда ще върне само отговор, където адресът е адресът на последното устройство, напр.ample: ако 3 устройства са каскадно свързани, адресът е 0x04.
Задайте командата за скорост на предаване
Когато външното устройство изпрати тази команда към GS2, изходната скорост на предаване на GS2 може да бъде зададена.
- Изпратена команда: (адрес за изпращане 0x00, поддържа само настройка на еднаква скорост на предаване на всички каскадни устройства), съобщението е:
Сред тях сегментът с данни е параметърът за скорост на предаване, включително четири скорости на предаване (bps), съответно: 230400, 512000, 921600, 1500000, съответстващи на код 0-3 (забележка: серийната връзка с три модула трябва да бъде ≥921600, по подразбиране е 921600).
В случай на каскадно свързване, ако N устройства (максимална поддръжка 3) устройства са свързани последователно, командата ще върне N отговора, съответстващи на параметрите на всяко устройство, а адресите са: 0x01, 0x02, 0x04.
- След като зададете скоростта на предаване, трябва да рестартирате меко устройството.
Задаване на режим Edge (силен режим против заглушаване)
Когато външното устройство изпрати тази команда към GS2, може да се настрои режимът против заглушаване на GS2.
- Изпращане на команда: (адрес за изпращане, каскаден адрес), съобщението е:
приемане на команди
Адресът е адресът на модула, който трябва да бъде конфигуриран в каскадната връзка. Mode=0 съответства на стандартния режим, Mode=1 съответства на режима на ръба (гнездото обърнато нагоре), Mode=2 съответства на режима на ръба (гнездото обърнато надолу). В режим на край, фиксираният изход на лидара е 10 HZ и ефектът на филтриране на околната светлина ще бъде подобрен. Mode=0XFF означава четене, лидарът ще се върне в текущия режим. Lidar работи в стандартен режим по подразбиране.
- Задайте модул 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) |
BIAS | Параметри на устройството | (int8) Коефициент на отклонение на параметъра за текущия ъгъл на камерата (вижте раздел 3.3) |
ENV (2B) | Данни за околната среда | Интензитет на околната светлина |
Si(2B) | Данни за измерване на разстояние | Долните 9 бита са разстоянието, горните 7 бита са стойността на интензитета |
- Анализ на разстоянието
Формула за изчисляване на разстоянието: Разстояние = (_ ≪ 8|_) &0x01ff, единицата е mm.
Изчисляване на якостта: Качество = _ ≫ 1 - Ъглов анализ
Посоката на лазерното излъчване се приема като предната част на сензора, проекцията на центъра на лазерния кръг върху равнината на печатната платка се приема като начало на координатите, а полярната координатна система се установява с нормалната линия на равнината на печатната платка като посоката на 0 градуса. Следвайки посоката на часовниковата стрелка, ъгълът постепенно се увеличава.
За да преобразувате оригиналните данни, предадени от Lidar, в координатната система на фигурата по-горе, са необходими поредица от изчисления. Функцията за преобразуване е както следва (за подробности, моля, вижте SDK):
Проверете анализа на кода
Кодът за проверка използва еднобайтово натрупване, за да провери текущия пакет данни. Самият четирибайтов хедър на пакета и кодът за проверка не участват в операцията за проверка. Формулата за решение на кода за проверка е:
- Контролна сума = ADD1()
- = 1,2, … ,
ADD1 е кумулативната формула, означава да се натрупат числата от индекс 1 до края на елемента.
OTA НАДЗОР
Работен процес за надграждане
Изпращане на протокол
ГРАФИКА 4 ФОРМАТ НА ПРОТОКОЛА ЗА ДАННИ OTA (МАЛЪК ENDIAN)
Параметър | Дължина (BYTE) | Описание |
Packet_Header | 4 | Заглавка на пакет с данни, фиксирана като A5A5A5A5 |
Device_Address | 1 | Указва адреса на устройството |
Pack_ID | 1 | ID на пакета данни (тип данни) |
Data_Len | 2 | Дължина на данните на сегмент от данни, 0-82 |
данни | n | Данни, n = Data_Len |
Контролна_сума | 1 | Контролна сума, контролната сума на оставащите байтове след премахване на заглавката |
ГРАФИКА 5 ИНСТРУКЦИИ ЗА НАДГРЕЙД НА OTA
Тип инструкция | Pack_ID | Описание |
Старт_IAP | 0x0A | Изпратете тази команда, за да стартирате IAP след включване |
Изпълнява се_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, забавянето на връщането е дълго и варира между 80ms и 700ms)
Получаване на формат на данни
- адрес: адреса на модула;
- ACK: По подразбиране е 0x20, което показва, че пакетът с данни е пакет за потвърждение; Данни[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: Успешното изпълнение може да се прецени според пакета отговор на командата за нулиране; препоръчително е да добавите 500ms забавяне след получаване на отговора, преди да извършите последващи операции.
- Въпрос: Модул 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 mm) и всички области в равнината трябва да бъде прозрачна в лентата от 780nm до 1000nm. Степента на осветеност е по-голяма от 90%. - Препоръчителната оперативна процедура за многократно включване и изключване на GS2 на навигационното табло:
За да се намали консумацията на енергия от навигационната платка, ако GS2 трябва да се включва и изключва многократно, се препоръчва да изпратите команда за спиране на сканирането (вижте раздел 3.5) преди изключване и след това да конфигурирате TX и RX на навигационната платка към висок импеданс. След това дръпнете VCC ниско, за да го изключите. При следващото включване на захранването първо издърпайте VCC, след това конфигурирайте TX и RX като нормални изходни и входни състояния и след това след забавяне от 300 ms изпълнете командно взаимодействие с линейния лазер. - Относно максималното време на изчакване след изпращане на всяка GS2 команда:
- Вземете адрес: забавяне 800ms, вземете версия: забавяне 100ms;
- Получаване на параметри: забавяне 100ms, стартиране на сканиране: забавяне 400ms;
- Спиране на сканирането: забавяне 100ms, задаване на скорост на предаване: забавяне 800ms;
- Задаване на крайния режим: забавяне 800ms, стартиране на OTA: забавяне 800ms;
REVISE
Дата | Версия | Съдържание |
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) Променете Q&A на OTA |
Документи / Ресурси
![]() |
YDLIDAR GS2 РАЗРАБОТКА Линеен матрица Solid LiDAR сензор [pdf] Ръководство за потребителя GS2 DEVELOPMENT Linear Array Solid LiDAR сензор, GS2 DEVELOPMENT, Linear Array Solid LiDAR сензор, Array Solid LiDAR сензор, Solid LiDAR сензор, LiDAR сензор, сензор |