YDLIDAR-GS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-傳感器-LOGO

YDLIDAR GS2 DEVELOPMENT 線陣固體激光雷達傳感器

YDLIDARGS2-研發-線陣-固體-激光雷達-傳感器-產品

工作機制

模式
YDLIDAR GS2(以下簡稱GS2)系統有3種工作模式:空閒模式、掃描模式、停止模式。

  • 空閒模式: GS2 開機時,默認模式為空閒模式。 在空閒模式下,GS2 的測距單元不工作,激光也不亮。
  • 掃描方式: 當 GS2 處於掃描模式時,測距單元打開激光。 當 GS2 開始工作時,它會持續發出amp對外界環境進行採樣,經過後台處理後實時輸出。
  • 停止模式: 當GS2運行出現錯誤時,如掃描儀開啟、激光關閉、電機不轉等,GS2會自動關閉測距單元並反饋錯誤代碼。

測量原理YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-1
GS2 是一種短程固態激光雷達,範圍為 25-300 毫米。 它主要由一個線激光器和一個攝像頭組成。 單線激光器發出激光後,被攝像頭捕捉到。 根據激光器和攝像頭的固定結構,結合三角測距原理,我們可以計算出物體到GS2的距離。 根據相機的標定參數,可知被測物體在激光雷達坐標系中的角度值。 由此,我們獲得了被測對象的完整測量數據。

O點為坐標原點,紫色區域為角度 view 右側相機的角度,橙色區域是 view 左邊的相機。

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-2

以mod標點為坐標原點,前方為坐標系0度方向,角度順時針遞增。 輸出點雲時,數據(S1~S160)的順序為L1~L80,R1~R80。 SDK計算出來的角度和距離都是在坐標系中順時針表示的。

系統通訊

通訊機制
GS2 通過串行端口與外部設備通信命令和數據。 當外部設備向GS2發送系統命令時,GS2解析系統命令並返回相應的回复信息。 GS2根據指令內容切換相應的工作狀態。 外部系統可以根據消息的內容解析消息並獲取響應數據。YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-3

系統命令
外部系統可以通過發送相關的系統命令來設置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位元組

字節偏移量YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-4

  • 包頭: GS2 的消息包標頭標記為 0xA5A5A5A5。
  • 設備地址: GS2設備地址,根據級聯數分為:0x01、0x02、0x04;
  • 數據包類型: 系統命令類型見表1。
  • 響應長度: 表示響應的長度
  • 數據段: 不同的系統命令響應不同的數據內容,其數據協議也不同。
  • 檢查代碼: 檢查代碼。

筆記: GS2數據通信採用小端模式,低位在前。

數據協議

獲取設備地址命令
當外部設備向GS2發送該命令時,GS2返回一個設備地址包,報文為:

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-5

級聯時,如果串接N個設備(最多支持3個),則返回0x01、0x02、0x04處的N個應答,分別對應1-3個模塊。

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-6

定義: 模塊1的地址為0x01,模塊2的地址為0x02,模塊3的地址為0x04。

獲取版本信息命令
當外部設備向 GS2 發送掃描命令時,GS2 返回其版本信息。 回复信息是:

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-7

在級聯的情況下,如果串聯了 N(最多 3)台設備,則該命令將返回 N 條響應,其中地址為最後一台設備的地址。
版本號是3字節長,SN號是16字節長。

獲取設備參數命令
當外部設備向GS2發送該命令時,GS2會返回其設備參數,報文為:

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-8 YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-9

級聯時,如果串接N個設備(最多支持3個),命令返回N個應答,對應每個設備的參數。
協議接收到的K和B是uint16類型,需要轉成float類型再除以10000代入計算函數。

  • d_compensateK0 = (浮動)K0/10000.0f;
  • d_compensateB0 = (浮動)B0/10000.0f;
  • d_compensateK1 = (浮動)K1/10000.0f;
  • d_compensateB1 = (浮動)B1/10000.0f;

bias是int8類型,代入計算函數前需要轉成float類型除以10。

  • bias = (float)偏差/10;

命令

掃描命令

當外部設備向GS2發送掃描命令時,GS2進入掃描模式並不斷反饋點雲數據。 消息是:命令發送:(發送地址0x00,級聯與否,將啟動所有設備)

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-10

命令收到: (在級聯情況下,該命令只返回一個響應,地址為最大地址,例如ample:3號設備級聯,地址為0x04。)

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-11

數據段是系統掃描得到的點雲數據,按照如下數據結構,以十六進制形式通過串口發送給外接設備。 整個數據包的數據長度為322 Bytes,包括2 Bytes環境數據和160個測距點(S1-S160),每個2 Bytes,高7位為強度數據,低9位為距離數據. 單位是毫米。YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-12

停止命令

當系統處於掃描狀態時,GS2一直在向外界發送點雲數據。 此時要禁用掃描,發送此命令停止掃描。 發送停止命令後,模塊會回复響應命令,系統立即進入待機休眠狀態。 此時設備的測距單元處於低功耗模式,激光器關閉。

  • 命令發送: (發送地址0x00,無論是否級聯,所有設備都會關閉)。

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-16

在級聯的情況下,如果串聯了N(最多3個)設備,該命令只會返回一個響應,其中地址為最後一個設備的地址,例如ample:如果3台設備級聯,地址為0x04。

設置波特率命令

當外部設備向GS2發送該命令時,可以設置GS2的輸出波特率。

  • 命令發送: (發送地址0x00,只支持設置所有級聯設備波特率相同),報文為:

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-11

其中數據段為波特率參數,包括四種波特率(bps),分別為:230400、512000、921600、1500000對應code 0-3(注意:三模塊串口必須≥921600,默認為 921600)。

在級聯的情況下,如果串聯N台(最多支持3台)設備,則該命令將返回N個響應,對應每個設備的參數,地址分別為:0x01、0x02、0x04。

  • 設置好波特率後,需要軟重啟設備。

設置邊緣模式(強抗干擾模式)
當外部設備向GS2發送該命令時,可以設置GS2的抗干擾模式。

  • 命令發送:(發送地址,級聯地址),報文為:

命令接收

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-15

Address為級聯鏈路中需要配置的模塊地址。 Mode=0對應標準模式,Mode=1對應邊緣模式(插座朝上),Mode=2對應邊緣模式(插座朝下)。 邊緣模式下,激光雷達固定輸出10HZ,增強對環境光的過濾效果。 Mode=0XFF表示讀取,激光雷達會回到當前模式。 激光雷達默認工作在標準模式。

  • 設置模塊 1: 地址=0x01
  • 設置模塊 2: 地址=0x02
  • 設置模塊 3: 地址=0x04

系統重置命令
當外部設備向GS2發送此命令時,GS2將進入軟重啟,系統將復位並重啟。
命令發送:(發送地址,只能是準確的拼接地址:0x01/0x02/0x04)

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-16

Address為級聯鏈路中需要配置的模塊地址。

  • 重置模塊 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節)
環境(2B) 環境數據 環境光強度
矽(2B) 測距數據 低9位為距離,高7位為強度值
  • 距離分析
    距離計算公式: 距離 = (_ ≪ 8|_) &0x01ff,單位為毫米。
    強度計算: 質量 = _ ≫ 1
  • 角度分析
    以激光發射方向為傳感器正面,以激光圓心在PCB平面上的投影為坐標原點,以PCB平面法線為坐標原點建立極坐標系0 度方向。 按照順時針方向,角度逐漸增加。 YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-17

要將激光雷達傳輸的原始數據轉換到上圖中的坐標系中,需要進行一系列的計算。 轉換函數如下(詳見SDK):

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-28 YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-29

檢查代碼分析
校驗碼採用單字節累加方式對當前數據包進行校驗。 四字節包頭和校驗碼本身不參與校驗操作。 校驗碼解算公式為:

  • 校驗和 = ADD1()
  • = 1,2, … ,

ADD1是累加公式,表示累加元素中從下標1到末尾的數。

在線升級

升級工作流程

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-19

發送協議

圖 4 OTA 數據協議格式(小端)

範圍 長度(字節) 描述
包頭 4 數據包頭,固定為A5A5A5A5
設備地址 1 指定設備地址
包ID 1 數據包ID(數據類型)
數據長度 2 數據段的數據長度,0-82
數據 n 數據,n = Data_Len
校驗和 1 Checksum,去掉header後剩餘字節的校驗和

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-21

圖 5 OTA 升級說明

指令類型 包ID 描述
開始_IAP 0x0A 上電後發送此命令啟動IAP
正在運行_IAP 0x0B 運行 IAP,傳輸數據包
完成_IAP 0x0C 內購結束
ACK_IAP 0x20 內購回复
重置系統 0x67 在指定地址復位並重啟模塊

Start_IAP指令

命令發送

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-20

  • 數據段數據格式:
  • 數據[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之間)

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-23

接收數據格式

  • 地址: 模塊地址;
  • 確認: 默認為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指令

命令發送

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-24

固件在升級過程中會被拆分,數據段(Data)的前兩個字節表示該段數據相對於固件第一個字節的偏移量。

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-25

  • 數據[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]) + Check_Sum

命令接收

  • 地址:我s 模塊地址;
  • 確認: 默認為0x20,表示該數據包為確認包;

數據[0~1] : Package_Shift = Data[0]+ Data[1]*256 表示響應的固件數據偏移量。 建議在升級過程中檢測響應時判斷offset作為一種保護機制。

  • Data[2]=0x0B表示響應命令為0x0B;
  • Data[3]=0x01表示正常接收,0表示接收異常;

參考接收
A5 A5 A5 A5 01 20 04 00 00 00 0B 01 31

Complete_IAP 指令

命令發送

YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-26

  • 數據[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

命令接收YDLIDARGS2-DEVELOPMENT-Linear-Array-Solid-LiDAR-Sensor-FIG-27

  • 接收數據格式:
  • 地址: 是模塊地址;
  • 確認: 默認為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 系統復位命令。

問答

  • Q:發送復位命令後如何判斷復位成功? 是否需要延遲?
    • A: 可以根據reset命令的響應包來判斷是否執行成功; 建議在收到響應後增加500ms的延時,再進行後續操作。
  • Q:模塊4復位後收到一些不符合協議的串口數據,如何處理?
    • A: 模塊上電日誌是一串帶4個0x3E頭的ASCII數據,不影響正常解析帶4個0xA5頭的數據,可以忽略。 由於物理鏈路原因,無法接收到1號和2號模塊的日誌。
  • Q:升級過程斷電重啟中斷怎麼處理?
    • A: 重新發送 Start_IAP 命令重新升級。
  • Q:級聯狀態下升級功能異常的可能原因是什麼?
    • A: 確認物理鏈接是否正確,比如三個模塊的點雲數據是否可以接收;
    • 確認三個模塊的地址不衝突,可以嘗試重新分配地址;
    • 重置待升級模塊,然後重啟試試;
  • Q: 為什麼級聯昇級後讀取的版本號為0?
    • A: 表示模塊升級不成功,用戶需要重新設置模塊後再升級。

注意力

  1. 與GS2進行命令交互時,除stop scan命令外,scan模式下無法交互其他命令,容易導致報文解析錯誤。
  2. GS2 不會在開機時自動開始測距。 需要發送開始掃描命令進入掃描模式。 當需要停止測距時,發送停止掃描命令停止掃描並進入休眠模式。
  3. 正常啟動GS2,我們推薦的流程是:
    第一步:
    發送Get Device Address命令獲取當前設備的地址和級聯數,並配置地址;
    第二步:
    發送get version 命令獲取版本號;
    第三步:
    發送獲取設備參數命令獲取設備的角度參數進行數據分析;
    第四步:
    發送開始掃描命令獲取點雲數據。
  4. GS2透視窗透光材料設計建議:
    如果前蓋透視窗是為GS2設計的,建議使用透紅外線的PC作為其透光材料,透光區域要求是平整的(平面度≤0.05mm),所有區域都在平面在 780nm 到 1000nm 波段應該是透明的。 出光率大於90%。
  5. GS2導航板反復開關機推薦操作流程:
    為了降低導航板的功耗,如果GS2需要反復開關機,建議在關機前先發送停止掃描命令(見3.5節),然後配置好導航板的TX和RX導航板為高阻抗。 然後將 VCC 拉低以將其關閉。 下次上電時,先拉高VCC,然後配置TX和RX為正常輸出和輸入狀態,再延時300ms後,與線激光器進行命令交互。
  6. 關於每條GS2命令發送後的最大等待時間:
    • 獲取地址:延時800ms,獲取版本:延時100ms;
    • 獲取參數:延時100ms,開始掃描:延時400ms;
    • 停止掃描:延時100ms,設置波特率:延時800ms;
    • 設置邊沿模式:延時800ms,啟動OTA:延時800ms;

修改

日期 版本 內容
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) Section 3.8 RESET命令增加了一個回复

3) 新增第5章OTA升級

2022-06-02 1.6.1 1)修改OTA升級流程

2)修改OTA問答

www.ydlidar.com

文件/資源

YDLIDAR GS2 DEVELOPMENT 線陣固體激光雷達傳感器 [pdf] 使用者手冊
GS2 DEVELOPMENT 線陣固體激光雷達傳感器, GS2 DEVELOPMENT, 線陣固體激光雷達傳感器, 陣列固體激光雷達傳感器, 固體激光雷達傳感器, 激光雷達傳感器, 傳感器

參考

發表評論

您的電子郵件地址不會被公開。 必填欄位已標記 *