YDLIDAR GS2 DEVELOPMENT เซ็นเซอร์ LiDAR โซลิดอาร์เรย์เชิงเส้น
กลไกการทำงาน
โหมด
ระบบ YDLIDAR GS2 (ต่อไปนี้จะเรียกว่า GS2) มีโหมดการทำงาน 3 โหมด: โหมดไม่ได้ใช้งาน, โหมดสแกน, โหมดหยุด
- โหมดว่าง: เมื่อเปิดเครื่อง GS2 โหมดเริ่มต้นจะเป็นโหมดไม่ได้ใช้งาน ในโหมดปกติ หน่วยกำหนดระยะของ GS2 จะไม่ทำงานและเลเซอร์จะไม่สว่าง
- โหมดสแกน: เมื่อ GS2 อยู่ในโหมดการสแกน หน่วยกำหนดขอบเขตจะเปิดเลเซอร์ เมื่อ GS2 เริ่มทำงาน มันจะทำงานอย่างต่อเนื่องampสภาพแวดล้อมภายนอกและส่งออกตามเวลาจริงหลังจากการประมวลผลเบื้องหลัง
- โหมดหยุด: เมื่อ GS2 ทำงานโดยมีข้อผิดพลาด เช่น เปิดเครื่องสแกน เลเซอร์ปิด มอเตอร์ไม่หมุน ฯลฯGS2 จะปิดหน่วยวัดระยะทางโดยอัตโนมัติและป้อนกลับรหัสข้อผิดพลาด
หลักการวัด
GS2 เป็นลิดาร์โซลิดสเตตระยะสั้นที่มีช่วง 25-300 มม. ประกอบด้วยเลเซอร์เส้นและกล้องเป็นหลัก หลังจากที่เลเซอร์เส้นเดียวปล่อยแสงเลเซอร์ กล้องก็จะจับภาพไว้ ตามโครงสร้างคงที่ของเลเซอร์และกล้อง รวมกับหลักการวัดระยะทางแบบสามเหลี่ยม เราสามารถคำนวณระยะห่างจากวัตถุถึง GS2 ได้ ตามพารามิเตอร์ที่ปรับเทียบแล้วของกล้อง สามารถทราบค่ามุมของวัตถุที่วัดได้ในระบบพิกัดไลดาร์ เป็นผลให้เราได้รับข้อมูลการวัดที่สมบูรณ์ของวัตถุที่วัดได้
จุด O คือจุดกำเนิดของพิกัด พื้นที่สีม่วงคือมุมของ view ของกล้องด้านขวา และพื้นที่สีส้มคือมุมของ view ของกล้องด้านซ้าย
เมื่อเครื่องหมายวรรคตอน mod เป็นจุดเริ่มต้นของพิกัด ด้านหน้าจะเป็นทิศทางของระบบพิกัด 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 ใช้โหมด Small-Enian โดยเรียงลำดับต่ำก่อน
โปรโตคอลข้อมูล
รับคำสั่งที่อยู่อุปกรณ์
เมื่ออุปกรณ์ภายนอกส่งคำสั่งนี้ไปยัง 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 ซึ่งจำเป็นต้องแปลงเป็นประเภทลอยตัว แล้วหารด้วย 10000 ก่อนที่จะถูกแทนที่ในฟังก์ชันการคำนวณ
- d_compensateK0 = (ลอย)K0/10000.0f;
- d_compensateB0 = (ลอย)B0/10000.0f;
- d_compensateK1 = (ลอย)K1/10000.0f;
- d_compensateB1 = (ลอย)B1/10000.0f;
อคติเป็นประเภท int8 ซึ่งจะต้องแปลงเป็นประเภทลอยตัวและหารด้วย 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 รองรับเฉพาะการตั้งค่าอัตรารับส่งข้อมูลของอุปกรณ์ที่เรียงซ้อนทั้งหมดให้เท่ากัน) ข้อความคือ:
ในหมู่พวกเขา ส่วนข้อมูลคือพารามิเตอร์อัตรารับส่งข้อมูล รวมถึงอัตรารับส่งข้อมูลสี่อัตรา (bps) ตามลำดับ: 230400, 512000, 921600, 1500000 ที่สอดคล้องกับรหัส 0-3 (หมายเหตุ: การเชื่อมต่อแบบอนุกรมสามโมดูลจะต้องเป็น ≥921600, ค่าเริ่มต้นคือ 921600)
ในกรณีของการเรียงซ้อน หากอุปกรณ์ N อุปกรณ์ (รองรับสูงสุด 3) เชื่อมต่อเป็นอนุกรม คำสั่งจะส่งกลับการตอบสนอง N ซึ่งสอดคล้องกับพารามิเตอร์ของแต่ละอุปกรณ์ และที่อยู่คือ: 0x01, 0x02, 0x04
- หลังจากตั้งค่าอัตรารับส่งข้อมูลแล้ว ต้องรีสตาร์ทอุปกรณ์อย่างนุ่มนวล
ตั้งค่าโหมด Edge (โหมดป้องกันการรบกวนที่แข็งแกร่ง)
เมื่ออุปกรณ์ภายนอกส่งคำสั่งนี้ไปยัง GS2 จะสามารถตั้งค่าโหมดป้องกันการรบกวนของ GS2 ได้
- การส่งคำสั่ง: (ที่อยู่การส่ง, ที่อยู่แบบเรียงซ้อน) ข้อความคือ:
การรับคำสั่ง
ที่อยู่คือที่อยู่ของโมดูลที่ต้องกำหนดค่าในลิงก์แบบเรียงซ้อน Mode=0 สอดคล้องกับโหมดมาตรฐาน Mode=1 สอดคล้องกับโหมดขอบ (เต้ารับหงายขึ้น) Mode=2 สอดคล้องกับโหมดขอบ (เต้ารับคว่ำลง) ในโหมด Edge เอาต์พุตคงที่ของ LIDAR คือ 10HZ และเอฟเฟกต์การกรองของแสงโดยรอบจะได้รับการปรับปรุง Mode=0XFF หมายถึงการอ่านค่า lidar จะกลับสู่โหมดปัจจุบัน 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) |
บี0(2บี) | พารามิเตอร์อุปกรณ์ | (uint16) พารามิเตอร์มุมกล้องด้านซ้าย k0 สัมประสิทธิ์ (ดูหัวข้อ 3.3) |
K1(2B) | พารามิเตอร์อุปกรณ์ | (uint16) พารามิเตอร์มุมกล้องด้านขวา k1 สัมประสิทธิ์ (ดูหัวข้อ 3.3) |
บี1(2บี) | พารามิเตอร์อุปกรณ์ | (uint16) พารามิเตอร์มุมกล้องขวา b1 สัมประสิทธิ์ (ดูหัวข้อ 3.3) |
BIAS | พารามิเตอร์อุปกรณ์ | (int8) ค่าสัมประสิทธิ์อคติของพารามิเตอร์มุมกล้องปัจจุบัน (ดูหัวข้อ 3.3) |
อีเอ็นวี(2B) | ข้อมูลสิ่งแวดล้อม | ความเข้มของแสงโดยรอบ |
ศรี(2B) | ข้อมูลการวัดระยะทาง | 9 บิตล่างคือระยะทาง 7 บิตบนคือค่าความเข้ม |
- การวิเคราะห์ระยะทาง
สูตรคำนวณระยะทาง: ระยะทาง = (_ ≪ 8|_) &0x01ff หน่วยเป็น มม.
การคำนวณความแข็งแกร่ง: คุณภาพ = _ ≫ 1 - การวิเคราะห์มุม
ทิศทางของการปล่อยเลเซอร์จะถูกนำมาเป็นด้านหน้าของเซ็นเซอร์ การฉายภาพของจุดศูนย์กลางวงกลมเลเซอร์บนระนาบ PCB จะถูกนำมาเป็นจุดเริ่มต้นของพิกัด และระบบพิกัดเชิงขั้วจะถูกสร้างขึ้นด้วยเส้นปกติของระนาบ PCB เป็น ทิศทาง 0 องศา ตามทิศทางตามเข็มนาฬิกา มุมจะค่อยๆ เพิ่มขึ้น
ในการแปลงข้อมูลต้นฉบับที่ส่งโดย Lidar ไปเป็นระบบพิกัดในรูปด้านบน จำเป็นต้องมีชุดการคำนวณ ฟังก์ชั่นการแปลงมีดังนี้ (สำหรับรายละเอียด โปรดดูที่ SDK):
ตรวจสอบการวิเคราะห์โค้ด
รหัสตรวจสอบใช้การสะสมไบต์เดียวเพื่อตรวจสอบแพ็กเก็ตข้อมูลปัจจุบัน ส่วนหัวของแพ็กเก็ตสี่ไบต์และรหัสตรวจสอบเองไม่มีส่วนร่วมในการดำเนินการตรวจสอบ สูตรการแก้ปัญหารหัสตรวจสอบคือ:
- เช็คซัม = ADD1()
- = 1,2, … ,
ADD1 เป็นสูตรสะสม หมายถึง การสะสมตัวเลขจากตัวห้อย 1 ไปสิ้นสุดในองค์ประกอบ
OTA อัปเกรด
อัปเกรดเวิร์กโฟลว์
ส่งโปรโตคอล
แผนภูมิ 4 รูปแบบโปรโตคอลข้อมูล OTA (ENDIAN ขนาดเล็ก)
พารามิเตอร์ | ความยาว (ไบต์) | คำอธิบาย |
Packet_Header | 4 | ส่วนหัวของแพ็กเก็ตข้อมูล แก้ไขเป็น A5A5A5A5 |
อุปกรณ์_ที่อยู่ | 1 | ระบุที่อยู่ของอุปกรณ์ |
แพ็ค_ไอดี | 1 | ID แพ็กเก็ตข้อมูล (ชนิดข้อมูล) |
Data_Len | 2 | ความยาวข้อมูลของส่วนข้อมูล 0-82 |
ข้อมูล | n | ข้อมูล n = Data_Len |
ตรวจสอบ_ผลรวม | 1 | เช็คซัม คือเช็คซัมของไบต์ที่เหลือหลังจากลบส่วนหัวออกแล้ว |
แผนภูมิ 5 คำแนะนำในการอัปเกรด OTA
ประเภทคำสั่ง | แพ็ค_ไอดี | คำอธิบาย |
เริ่มต้น_IAP | 0x0A | ส่งคำสั่งนี้เพื่อเริ่ม IAP หลังจากเปิดเครื่อง |
กำลังรัน_IAP | 0x0B | เรียกใช้ IAP ส่งแพ็กเก็ต |
เสร็จสิ้น_IAP | 0x0C | สิ้นสุด IAP |
ACK_IAP | ขนาด 0x20 | IAP ตอบกลับ |
รีเซ็ต_ระบบ | ขนาด 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)
รับรูปแบบข้อมูล
- ที่อยู่: ที่อยู่โมดูล
- ยอมรับ: ค่าดีฟอลต์คือ 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
การส่งคำสั่ง
เฟิร์มแวร์จะถูกแบ่งระหว่างการอัพเกรด และสองไบต์แรกของส่วนข้อมูล (ข้อมูล) ระบุออฟเซ็ตของข้อมูลส่วนนี้สัมพันธ์กับไบต์แรกของเฟิร์มแวร์
- ข้อมูล[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
การรับคำสั่ง
- ที่อยู่: iเป็นที่อยู่โมดูล
- ยอมรับ: ค่าดีฟอลต์คือ 0x20 ซึ่งบ่งชี้ว่าแพ็กเก็ตข้อมูลเป็นแพ็กเก็ตการตอบรับ
ข้อมูล[0~1] : Package_Shift = Data[0]+ Data[1]*256 บ่งชี้ถึงข้อมูลเฟิร์มแวร์ที่ชดเชยการตอบสนอง ขอแนะนำให้ตัดสินออฟเซ็ตเป็นกลไกการป้องกันเมื่อตรวจจับการตอบสนองระหว่างกระบวนการอัปเกรด
- Data[2]=0x0B บ่งชี้ว่าคำสั่งตอบสนองคือ 0x0B;
- ข้อมูล[3]=0x01 หมายถึงการรับสัญญาณปกติ 0 หมายถึงการรับสัญญาณที่ผิดปกติ
อ้างอิงเพื่อรับ
A5 A5 A5 A5 01 20 04 00 00 00 0B 01 31
คำสั่ง_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
การรับคำสั่ง
- รับรูปแบบข้อมูล:
- ที่อยู่: คือที่อยู่ของโมดูล
- ยอมรับ: ค่าดีฟอลต์คือ 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 version เพื่อรับหมายเลขเวอร์ชัน
ขั้นตอนที่สาม:
ส่งคำสั่งเพื่อรับพารามิเตอร์อุปกรณ์เพื่อรับพารามิเตอร์มุมของอุปกรณ์เพื่อวิเคราะห์ข้อมูล
ขั้นตอนที่สี่:
ส่งคำสั่งเริ่มสแกนเพื่อรับข้อมูลพอยต์คลาวด์ - คำแนะนำในการออกแบบวัสดุส่งแสงสำหรับหน้าต่างเปอร์สเปคทีฟ GS2:
หากหน้าต่างเปอร์สเปคทีฟของฝาครอบด้านหน้าได้รับการออกแบบมาสำหรับ GS2 ขอแนะนำให้ใช้พีซีที่สามารถซึมผ่านอินฟราเรดได้เป็นวัสดุในการส่งผ่านแสง และพื้นที่ส่งผ่านแสงจะต้องเรียบ (ความเรียบ ≤0.05มม.) และพื้นที่ทั้งหมดใน ระนาบควรมีความโปร่งใสในช่วง 780 นาโนเมตรถึง 1000 นาโนเมตร อัตราแสงมากกว่า 90% - ขั้นตอนการทำงานที่แนะนำสำหรับการเปิดและปิด GS2 ซ้ำๆ ของบอร์ดนำทาง:
เพื่อลดการใช้พลังงานของบอร์ดนำทาง หากจำเป็นต้องเปิดและปิด GS2 ซ้ำๆ ขอแนะนำให้ส่งคำสั่งหยุดสแกน (ดูหัวข้อ 3.5) ก่อนปิดเครื่อง จากนั้นกำหนดค่า TX และ RX ของ บอร์ดนำทางที่มีความต้านทานสูง จากนั้นดึง VCC ลงต่ำเพื่อปิด ครั้งถัดไปที่เปิดเครื่อง ให้ดึง VCC ขึ้นมาก่อน จากนั้นกำหนดค่า TX และ RX เป็นสถานะเอาต์พุตและอินพุตปกติ จากนั้นหลังจากหน่วงเวลา 300ms ให้ดำเนินการโต้ตอบคำสั่งกับเลเซอร์เส้น - เกี่ยวกับเวลารอสูงสุดหลังจากส่งคำสั่ง 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 | เพิ่มโหมด Edge, เสริมคำอธิบายการคำนวณ K, B, BIAS |
2022-04-29 | 1.4 | แก้ไขคำอธิบายของบทที่ 3.2: รับคำสั่งข้อมูลเวอร์ชัน |
2022-05-01 | 1.5 | แก้ไขวิธีการกำหนดค่าที่อยู่ของคำสั่ง soft restart |
2022-05-31 |
1.6 |
1) อัปเดตส่วน 3.7
2) คำสั่ง RESET ส่วนที่ 3.8 เพิ่มการตอบกลับเพียงครั้งเดียว 3) เพิ่มการอัพเกรด OTA บทที่ 5 |
2022-06-02 | 1.6.1 | 1) แก้ไขเวิร์กโฟลว์การอัปเกรด OTA
2) ปรับเปลี่ยนการถามตอบของ OTA |
เอกสาร / แหล่งข้อมูล
![]() |
YDLIDAR GS2 DEVELOPMENT เซ็นเซอร์ LiDAR โซลิดอาร์เรย์เชิงเส้น [พีดีเอฟ] คู่มือการใช้งาน เซ็นเซอร์ LiDAR แบบโซลิดอาร์เรย์การพัฒนา GS2, การพัฒนา GS2, เซ็นเซอร์ LiDAR แบบโซลิดอาร์เรย์เชิงเส้น, เซ็นเซอร์ LiDAR แบบโซลิดอาร์เรย์, เซ็นเซอร์ LiDAR แบบโซลิด, เซ็นเซอร์ LiDAR, เซ็นเซอร์ |