YDLIDAR GS2 UTVIKLING Lineær Array Solid LiDAR-sensor
ARBEIDSMEKANISME
Modus
YDLIDAR GS2 (heretter referert til som GS2)-systemet har 3 arbeidsmoduser: hvilemodus, skannemodus, stoppmodus.
- Hvilemodus: Når GS2 er slått på, er standardmodusen hvilemodus. I hvilemodus fungerer ikke GS2s avstandsenhet, og laseren er ikke lett.
- Skannemodus: Når GS2 er i skannemodus, slår avstandsenheten på laseren. Når GS2 begynner å fungere, er den kontinuerligamples det eksterne miljøet og sender det ut i sanntid etter bakgrunnsbehandling.
- Stoppmodus: Når GS2 kjører med en feil, for eksempel å slå på skanneren, laseren er av, motoren roterer ikke osv. GS2 vil automatisk slå av avstandsmåleren og gi tilbakemelding om feilkoden.
Måleprinsipp
GS2 er en kortdistanse solid-state lidar med en rekkevidde på 25-300 mm. Den består hovedsakelig av en linjelaser og et kamera. Etter at enlinjelaseren sender ut laserlyset, fanges det opp av kameraet. I henhold til den faste strukturen til laseren og kameraet, kombinert med prinsippet om trianguleringsavstandsmåling, kan vi beregne avstanden fra objektet til GS2. I henhold til de kalibrerte parametrene til kameraet, kan vinkelverdien til det målte objektet i lidar-koordinatsystemet være kjent. Som et resultat har vi innhentet fullstendige måledata for det målte objektet.
Punkt O er opprinnelsen til koordinatene, det lilla området er vinkelen til view av høyre kamera, og det oransje området er vinkelen på view av venstre kamera.
Med mod-tegnsettingen som koordinatorigo, er fronten retningen til koordinatsystemet 0 grader, og vinkelen øker med klokken. Når punktskyen sendes ut, er rekkefølgen på dataene (S1~S160) L1~L80, R1~R80. Vinkelen og avstanden beregnet av SDK er alle representert i koordinatsystemet med klokken.
SYSTEMKOMMUNIKASJON
Kommunikasjonsmekanisme
GS2 kommuniserer kommandoer og data med eksterne enheter gjennom den serielle porten. Når en ekstern enhet sender en systemkommando til GS2, løser GS2 systemkommandoen og returnerer en tilsvarende svarmelding. I henhold til kommandoinnholdet bytter GS2 tilsvarende arbeidsstatus. Basert på innholdet i meldingen kan det eksterne systemet analysere meldingen og hente svardataene.
Systemkommando
Det eksterne systemet kan stille inn tilsvarende arbeidsstatus for GS2 og sende tilsvarende data ved å sende relaterte systemkommandoer. Systemkommandoene utstedt av GS2 er som følger:
SKJEMA 1 YDLIDAR GS2 SYSTEMKOMMANDO
Systemkommando | Beskrivelse | Modusbytte | Svarmodus |
0×60 | Innhenting av enhetsadressen | Stopp-modus | Enkelt svar |
0×61 | Innhenting av enhetsparametere | Stopp-modus | Enkelt svar |
0×62 | Innhenting av versjonsinformasjon | Stopp-modus | Enkelt svar |
0×63 | Begynn å skanne og sende ut punktskydata | Skannemodus | Kontinuerlig respons |
0x64 | Stopp enheten, stopp skanningen | Stopp-modus | Enkelt svar |
0x67 | Myk omstart | / | Enkelt svar |
0×68 | Still inn overføringshastigheten for seriell port | Stopp-modus | Enkelt svar |
0×69 | Still inn kantmodus (anti-støymodus) | Stopp-modus | Enkelt svar |
Systemmeldinger
Systemmeldingen er en svarmelding som systemet sender tilbake basert på den mottatte systemkommandoen. I henhold til forskjellige systemkommandoer er svarmodusen og svarinnholdet i systemmeldingen også forskjellige. Det er tre typer responsmoduser: ingen respons, enkeltrespons, kontinuerlig respons.
Ingen respons betyr at systemet ikke returnerer noen meldinger. Et enkelt svar indikerer at systemets meldingslengde er begrenset, og svaret avsluttes én gang. Når systemet er koblet sammen med flere GS2-enheter, vil noen kommandoer motta svar fra flere GS2-enheter etter hverandre. Kontinuerlig respons betyr at systemets meldingslengde er uendelig og må sende data kontinuerlig, for eksempel når du går inn i skannemodus.
Enkeltsvar-, flersvars- og kontinuerlige svarmeldinger bruker samme dataprotokoll. Innholdet i protokollen er: pakkehode, enhetsadresse, pakketype, datalengde, datasegment og kontrollkode, og sendes ut gjennom det heksadesimale systemet for serieporter.
SKJEMA 2 YDLIDAR GS2 SKJEMATISK DIAGRAM OVER SYSTEMMELDINGSDATAPROTOKOLL
Pakkeoverskrift | Enhetsadresse | Pakketype | Svarlengde | Datasegment | Sjekk koden |
4 byte | 1 byte | 1 byte | 2 byte | N byte | 1 byte |
Byte offset
- Pakkeoverskrift: Meldingspakkeoverskriften for GS2 er merket 0xA5A5A5A5.
- Enhetsadresse: GS2-enhetsadresse, i henhold til antall kaskader, er delt inn i: 0x01, 0x02, 0x04;
- Pakketype: Se diagram 1 for typer systemkommandoer.
- Svarlengde: Representerer lengden på svaret
- Datasegment: Ulike systemkommandoer reagerer på forskjellig datainnhold, og deres dataprotokoller er forskjellige.
- Sjekk kode: sjekk koden.
Note: GS2-datakommunikasjonen tar i bruk small-endian-modus, lav orden først.
DATAPROTOKOLL
Få enhetsadressekommandoen
Når en ekstern enhet sender denne kommandoen til GS2, returnerer GS2 en enhetsadressepakke, meldingen er:
I kaskade, hvis N enheter (opptil 3 støttes) er gjenget, returnerer kommandoen N svar på 0x01, 0x02, 0x04, tilsvarende 1-3 moduler.
Definisjon: Adressen til modul 1 er 0x01, modul 2 er 0x02, og modul 3 er 0x04.
Hent versjonsinformasjonskommando
Når en ekstern enhet sender en skannekommando til GS2, returnerer GS2 sin versjonsinformasjon. Svarmeldingen er:
I tilfelle av kaskade, hvis N (maksimalt 3) enheter er koblet i serie, vil denne kommandoen returnere N svar, hvor adressen er adressen til den siste enheten.
Versjonsnummeret er 3 byte lengde, og SN nummeret er 16 byte lengde.
Få enhetsparameterkommando
Når en ekstern enhet sender denne kommandoen til GS2, vil GS2 returnere enhetens parametere, og meldingen er:
I kaskade, hvis N enheter (opptil 3 støttes) er gjenget, returnerer kommandoen N svar, tilsvarende parameterne til hver enhet.
K og B mottatt av protokollen er av typen uint16, som må konverteres til flytetype og deretter divideres med 10000 XNUMX før de erstattes i beregningsfunksjonen.
- d_compensateK0 = (flytende)K0/10000.0f;
- d_compensateB0 = (float)B0/10000.0f;
- d_compensateK1 = (flytende)K1/10000.0f;
- d_compensateB1 = (float)B1/10000.0f;
Bias er av typen int8, som må konverteres til flytetype og divideres med 10 før den erstattes i beregningsfunksjonen.
- skjevhet = (flyte)Bias /10;
Kommando
Skannekommando
Når en ekstern enhet sender en skannekommando til GS2, går GS2 inn i skannemodus og mater kontinuerlig tilbake punktskydata. Meldingen er: Kommando sendt: (Send adresse 0x00, kaskade eller ikke, vil starte alle enheter)
Kommando mottatt: (I overlappende tilfeller returnerer denne kommandoen bare ett svar, og adressen er den største adressen, for eksempelample: No.3-enhet er i kaskade, og adressen er 0x04.)
Datasegmentet er punktskydata skannet av systemet, som sendes til den serielle porten i heksadesimal til den eksterne enheten i henhold til følgende datastruktur. Datalengden til hele pakken er 322 byte, inkludert 2 byte med miljødata og 160 avstandspunkter (S1-S160), som hver er 2 byte, de øverste 7 bitene er intensitetsdata, og de nederste 9 bitene er avstandsdata . Enheten er mm.
Stoppkommando
Når systemet er i skannetilstand, har GS2 sendt punktskydata til omverdenen. For å deaktivere skanningen på dette tidspunktet, send denne kommandoen for å stoppe skanningen. Etter å ha sendt stoppkommandoen, vil modulen svare på svarkommandoen, og systemet vil gå inn i hvilemodus umiddelbart. På dette tidspunktet er enhetens avstandsenhet i lavt strømforbruksmodus, og laseren er slått av.
- Kommandosending: (send adresse 0x00, uansett om de er i kaskade eller ikke, alle enheter vil bli stengt).
Ved cascading, hvis N (maksimalt 3) enheter er koblet i serie, vil denne kommandoen bare returnere et svar, der adressen er adressen til den siste enheten, f.eks.ample: hvis 3 enheter er i kaskade, er adressen 0x04.
Angi kommandoen Baud Rate
Når den eksterne enheten sender denne kommandoen til GS2, kan utgangsoverføringshastigheten til GS2 stilles inn.
- Kommando sendt: (sendeadresse 0x00, støtter kun innstilling av overføringshastigheten til alle kaskadede enheter til å være den samme), meldingen er:
Blant dem er datasegmentet overføringshastighetsparameteren, inkludert fire overføringshastigheter (bps), henholdsvis: 230400, 512000, 921600, 1500000 som tilsvarer kode 0-3 (merk: den tremodulers seriekoblingen må være ≥921600, standard er 921600).
I tilfelle av kaskade, hvis N enheter (maksimalt støtte 3) enheter er koblet i serie, vil kommandoen returnere N svar, tilsvarende parameterne til hver enhet, og adressene er: 0x01, 0x02, 0x04.
- Etter å ha angitt overføringshastigheten, må du mykstarte enheten.
Still inn Edge-modus (sterk anti-jamming-modus)
Når den eksterne enheten sender denne kommandoen til GS2, kan anti-jamming-modusen til GS2 stilles inn.
- Kommandosending: (sendingsadresse, kaskadeadresse), meldingen er:
kommandomottak
Adresse er adressen til modulen som må konfigureres i kaskadekoblingen. Modus=0 tilsvarer standardmodus, Modus=1 tilsvarer kantmodus (beholder vendt opp), Modus=2 tilsvarer kantmodus (beholder vendt ned). I kantmodus er den faste utgangen til lidaren 10HZ, og filtreringseffekten til omgivelseslyset vil bli forbedret. Mode=0XFF betyr lesing, lidaren vil gå tilbake til gjeldende modus. Lidar fungerer i standardmodus som standard.
- Sett modul 1: Adresse =0x01
- Sett modul 2: Adresse =0x02
- Sett modul 3: Adresse =0x04
Kommando for tilbakestilling av system
Når en ekstern enhet sender denne kommandoen til GS2, vil GS2 gå inn i en myk omstart, og systemet vil nullstille og starte på nytt.
Kommandosending: (sendingsadresse, kan bare være den nøyaktige sammenkoblede adressen: 0x01/0x02/0x04)
Adresse er adressen til modulen som må konfigureres i kaskadekoblingen.
- Tilbakestill modul 1: Adresse =0x01
- Tilbakestill modul 2: Adresse =0x02
- Tilbakestill modul 3: Adresse =0x04
DATAANALYSE
SKJEMA 3 DATASTRUKTURBESKRIVELSE
Innhold | Navn | Beskrivelse |
K0(2B) | Enhetsparametere | (uint16) Venstre kameravinkelparameter k0 koeffisient (se avsnitt 3.3) |
B0(2B) | Enhetsparametere | (uint16) Venstre kameravinkelparameter k0 koeffisient (se avsnitt 3.3) |
K1(2B) | Enhetsparametere | (uint16) Høyre kameravinkelparameter k1 koeffisient (se avsnitt 3.3) |
B1(2B) | Enhetsparametere | (uint16) Høyre kameravinkelparameter b1 koeffisient (se avsnitt 3.3) |
BIAS | Enhetsparametere | (int8) Gjeldende kameravinkelparameter forspenningskoeffisient (se avsnitt 3.3) |
ENV(2B) | Miljødata | Omgivelseslysintensitet |
Si(2B) | Avstandsmåledata | De nederste 9 bitene er avstanden, de øverste 7 bitene er intensitetsverdien |
- Avstandsanalyse
Formel for avstandsberegning: Avstand = (_ ≪ 8|_) &0x01ff, enheten er mm.
Styrkeberegning: Kvalitet = _ ≫ 1 - Vinkelanalyse
Retningen til laseremisjonen tas som fronten av sensoren, projeksjonen av lasersirkelsenteret på PCB-planet tas som origo for koordinatene, og det polare koordinatsystemet etableres med normallinjen til PCB-planet som 0-graders retningen. Ved å følge med klokken øker vinkelen gradvis.
For å konvertere de originale dataene som er overført av Lidar til koordinatsystemet i figuren ovenfor, kreves det en rekke beregninger. Konverteringsfunksjonen er som følger (for detaljer, se SDK):
Sjekk kodeanalyse
Sjekkkoden bruker enkeltbyte-akkumulering for å sjekke gjeldende datapakke. Selve firebyte-pakkehodet og kontrollkoden deltar ikke i kontrolloperasjonen. Sjekkkodeløsningsformelen er:
- Sjekksum = ADD1()
- = 1,2, … ,
ADD1 er den kumulative formelen, det betyr å samle tallene fra subscript 1 til ende i elementet.
OTA OPPGRADERING
Oppgrader arbeidsflyt
Send protokoll
KJART 4 OTA DATAPROTOKOLLFORMAT (LITEN ENDIAN)
Parameter | Lengde (BYTE) | Beskrivelse |
Pakkehode | 4 | Datapakkeoverskrift, fast som A5A5A5A5 |
Device_Address | 1 | Angir adressen til enheten |
Pakke_ID | 1 | Datapakke-ID (datatype) |
Data_Len | 2 | Datalengde for datasegment, 0-82 |
Data | n | Data, n = Data_Len |
Sjekk_Sum | 1 | Kontrollsum, kontrollsummen for de gjenværende bytene etter at overskriften er fjernet |
KJART 5 OTA OPPGRADERINGSINSTRUKSJONER
Instruksjonstype | Pakke_ID | Beskrivelse |
Start_IAP | 0x0A | Send denne kommandoen for å starte IAP etter at strømmen er slått på |
Running_IAP | 0x0B | Kjør IAP, send pakker |
Complete_IAP | 0x0C | Slutt på KIA |
ACK_IAP | 0x20 | IAP-svar |
RESET_SYSTEM | 0x67 | Tilbakestill og start modulen på nytt på den angitte adressen |
Start_IAP-instruksjon
Kommando sending
- Datasegment Dataformat:
- Data[0~1]: Standard er 0x00;
- DATA[2~17]: Det er en bekreftelseskode med fast tegn:
- 0x73 0x74 0x61 0x72 0x74 0x20 0x64 0x6F 0x77 0x6E 0x6C 0x6F 0x61 0x64 0x00 0x00
- Se sending av melding
- 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
Kommandomottak: På grunn av operasjoner i FLASH-sektoren er returforsinkelsen lang og svinger mellom 80 ms og 700 ms)
Motta dataformat
- Adresse: moduladressen;
- ACK: Standard er 0x20, noe som indikerer at datapakken er en bekreftelsespakke; Data[0~1]: Standard er 0x00;
- Data[2]: 0x0A indikerer at responskommandoen er 0x0A;
- Data[3]: 0x01 indikerer normalt mottak, 0 indikerer unormalt mottak;
- Referanse å motta:
A5 A5 A5 A5 01 20 04 00 00 00 0A 01 30
Running_IAP-instruksjon
Kommando sending
Fastvaren vil bli delt under oppgraderingen, og de to første bytene til datasegmentet (Data) indikerer forskyvningen av dette datasegmentet i forhold til den første byten til fastvaren.
- Data[0~1]:Package_Shift = Data[0]+ Data[1]*256;
- Data[2]~Data[17]: er en fast streng bekreftelseskode:
- 0x64 0x6F 0x77 0x6E 0x6C 0x6F 0x61 0x64 0x69 0x6E 0x67 0x00 0x00 0x00 0x00 0x00 Data[18]~Data[81]: fastvaredata;
- Se sending av melding
- 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 +
(Data[18]~Data[81]) + Check_Sum
Kommandomottak
- Adresse: is moduladressen;
- ACK: Standard er 0x20, noe som indikerer at datapakken er en bekreftelsespakke;
Data[0~1] : Package_Shift = Data[0]+ Data[1]*256 indikerer fastvaredataforskyvningen for svaret. Det anbefales å vurdere forskyvningen som en beskyttelsesmekanisme når du oppdager responsen under oppgraderingsprosessen.
- Data[2]=0x0B indikerer at responskommandoen er 0x0B;
- Data[3]=0x01 indikerer normalt mottak, 0 indikerer unormalt mottak;
Referanse å motta
A5 A5 A5 A5 01 20 04 00 00 00 0B 01 31
Complete_IAP Instruction
Kommando sending
- Data[0~1]: Standard er 0x00;
- Data[2]~Data[17]: Det er en fast strengbekreftelseskode:
0x63 0x6F 0x6D 0x70 0x6C 0x65 0x74 0x65 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Data[18]~Data[21]: krypteringsflagg, uint32_t type, kryptert fastvare er 1, ikke-kryptert fastvare er 0;
Se sending av melding:
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 krypteringsflagg) + Check_Sum
Kommandomottak
- Motta dataformat:
- Adresse: er moduladressen;
- ACK: Standard er 0x20, noe som indikerer at datapakken er en bekreftelsespakke;
- Data[0~1]: Standard er 0x00;
- Data[2]: 0x0C indikerer at responskommandoen er 0x0C;
- Data[3]: 0x01 indikerer normalt mottak, 0 indikerer unormalt mottak;
- Se mottatt melding:
A5 A5 A5 A5 01 20 04 00 00 00 0C 01 32
RESET_SYSTEM Instruksjon
Se kapittel 3.8 System Reset Command for detaljer.
Spørsmål og svar
- Spørsmål: Hvordan bedømme at tilbakestillingen er vellykket etter å ha sendt tilbakestillingskommandoen? Om forsinkelse er nødvendig?
- A: Den vellykkede utførelsen kan bedømmes i henhold til svarpakken til tilbakestillingskommandoen; det anbefales å legge til en forsinkelse på 500 ms etter å ha mottatt svaret før du utfører påfølgende operasjoner.
- Spørsmål: Modul 4 mottar noen serieportdata som ikke samsvarer med protokollen etter tilbakestilling, hvordan håndteres det?
- A: Oppstartsloggen til modulen er en streng med ASCII-data med 4 0x3E-overskrifter, som ikke påvirker normal dataparsing med 4 0xA5-overskrifter, og kan ignoreres. På grunn av den fysiske koblingen kan ikke loggene til modul nr. 1 og nr. 2 mottas.
- Spørsmål: Hvordan håndtere hvis oppgraderingsprosessen blir avbrutt av et strømbrudd og omstart?
- A: Send Start_IAP-kommandoen på nytt for å oppgradere på nytt.
- Spørsmål: Hva er den mulige årsaken til den unormale oppgraderingsfunksjonen i kaskadetilstanden?
- A: Bekreft om den fysiske koblingen er riktig, for eksempel om punktskydataene til de tre modulene kan mottas;
- Bekreft at adressene til de tre modulene ikke er i konflikt, og du kan prøve å tildele adressene på nytt;
- Tilbakestill modulen som skal oppgraderes, og start deretter forsøket på nytt;
- Q: Hvorfor er den leste versjonsnummer 0 etter kaskadeoppgraderingen?
- A: Det betyr at moduloppgraderingen mislykkes, brukere må tilbakestille modulen og deretter oppgradere på nytt.
OPPMERKSOMHET
- Under kommandointeraksjon med GS2, bortsett fra stopp skanningskommandoen, kan ikke andre kommandoer samhandles i skannemodus, noe som lett kan føre til meldingsanalysefeil.
- GS2 starter ikke automatisk avstand når strømmen slås på. Den må sende en start skanningskommando for å gå inn i skannemodus. Når du trenger å stoppe rekkevidden, send en stopp skanningskommando for å stoppe skanningen og gå inn i hvilemodus.
- Start GS2 normalt, vår anbefalte prosess er:
Første trinn:
send kommandoen Get Device Address for å få adressen til gjeldende enhet og antall kaskader, og konfigurer adressen;
Andre trinn:
send get version-kommandoen for å få versjonsnummeret;
Tredje trinn:
sende en kommando for å få enhetsparametere for å oppnå vinkelparametrene til enheten for dataanalyse;
Fjerde trinn:
send en start skanningskommando for å hente punktskydata. - Forslag til utforming av lystransmitterende materialer for GS2 perspektivvinduer:
Hvis frontdekselets perspektivvindu er designet for GS2, anbefales det å bruke infrarød-permeabel PC som sitt lystransmitterende materiale, og det lystransmitterende området må være flatt (flathet ≤0.05 mm), og alle områder i Planet skal være gjennomsiktig i 780nm til 1000nm båndet. Lyshastigheten er større enn 90 %. - Den anbefalte operasjonsprosedyren for å slå GS2 på og av navigasjonskortet gjentatte ganger:
For å redusere strømforbruket til navigasjonskortet, hvis GS2 må slås på og av gjentatte ganger, anbefales det å sende en stoppskanningskommando (se avsnitt 3.5) før du slår av, og deretter konfigurere TX og RX for navigasjonsbrett til høy impedans. Trekk deretter VCC lavt for å slå den av. Neste gang strømmen slås på, trekk først opp VCC, konfigurer deretter TX og RX som normale utgangs- og inngangstilstander, og utfør deretter kommandointeraksjon med linjelaseren etter en forsinkelse på 300 ms. - Om maksimal ventetid etter hver GS2-kommando er sendt:
- Hent adresse: forsinkelse 800ms, hent versjon: forsinkelse 100ms;
- Hent parametere: forsinkelse 100ms, start skanning: forsinkelse 400ms;
- Stopp skanning: forsinkelse 100ms, angi overføringshastighet: forsinkelse 800ms;
- Sett kantmodus: forsinkelse 800ms, start OTA: forsinkelse 800ms;
REVIDERE
Dato | Versjon | Innhold |
2019-04-24 | 1.0 | Skriv et første utkast |
2021-11-08 |
1.1 |
Endre (Endre protokollrammeverket for å slå sammen venstre og høyre kameradata; Forslag for å legge til perspektivvindusmateriale; Legge til baudhastigheten
innstillingskommando) |
2022-01-05 | 1.2 | Endre mottaksbeskrivelsen av kommandoen for å få enhetens adresse, og beskrivelsen av venstre og høyre kamera |
2022-01-12 | 1.3 | Legg til kantmodus, suppler K, B, BIAS beregningsbeskrivelse |
2022-04-29 | 1.4 | Endre beskrivelse av kapittel 3.2: Hent versjonsinformasjon Kommando |
2022-05-01 | 1.5 | Endre adressekonfigurasjonsmetoden for myk omstart-kommandoen |
2022-05-31 |
1.6 |
1) Oppdater avsnitt 3.7
2) Seksjon 3.8 RESET-kommandoen legger til et enkelt svar 3) Lagt til kapittel 5 OTA-oppgradering |
2022-06-02 | 1.6.1 | 1) Endre arbeidsflyten for OTA-oppgradering
2) Endre spørsmål og svar fra OTA |
Dokumenter / Ressurser
![]() |
YDLIDAR GS2 UTVIKLING Lineær Array Solid LiDAR-sensor [pdfBrukerhåndbok GS2 DEVELOPMENT Linear Array Solid LiDAR-sensor, GS2 DEVELOPMENT, Linear Array Solid LiDAR-sensor, Array Solid LiDAR-sensor, Solid LiDAR-sensor, LiDAR-sensor, sensor |