การจำลองสถานการณ์และการขับขี่ด้วยตนเอง - วิธี SAE AutoDrive

อัปเดต: 20 พฤษภาคม 2021
การจำลองสถานการณ์และการขับขี่ด้วยตนเอง - วิธี SAE AutoDrive

บทนำ

การแข่งขัน SAE AutoDrive เป็นการแข่งขันออกแบบวิทยาลัย 4 ปีโดยมี 8 ทีมจากสหรัฐอเมริกาและแคนาดาเข้าร่วม เป้าหมายทางเทคนิคระดับสูงสำหรับปีที่ 3 ของการแข่งขันนี้คือการนำทางหลักสูตรการขับขี่ในเมืองในโหมดการขับขี่อัตโนมัติตามที่ SAE ระดับ 4 อธิบายไว้

MathWorks ท้าทายให้ทีมใช้การจำลอง

การจำลองเป็นเครื่องมือที่มีประโยชน์มากสำหรับการพัฒนารถยนต์อัตโนมัติ การทดสอบตามโมเดลสามารถช่วยในการพัฒนาอัลกอริทึมการทดสอบระดับหน่วยและระดับระบบและการทดสอบสถานการณ์ขอบ โลกแห่งความจริง เซ็นเซอร์ ข้อมูลสามารถบันทึกและเล่นกลับเข้าไปในระบบเพื่อปรับแต่งอัลกอริธึมฟิวชั่น สามารถสร้างสภาพแวดล้อมจำลองเพื่อจำลองสภาพแวดล้อมในโลกแห่งความจริงและสามารถใช้เพื่อทดสอบอัลกอริทึมและตำแหน่งเซ็นเซอร์ต่างๆ อัลกอริทึมและตำแหน่งเซ็นเซอร์ที่ดีที่สุดที่ตอบสนองความต้องการของทีมสามารถเลือกได้ตามผลการปฏิบัติ

ในแต่ละปี MathWorks ท้าทายให้ทีมใช้การจำลองสถานการณ์ผ่านทาง Simulation Challenge บล็อกนี้จะสรุปสั้น ๆ เกี่ยวกับผู้ชนะอันดับที่ 1 และ 2 ของการแข่งขัน 2020 Challenge (มหาวิทยาลัยโตรอนโตและมหาวิทยาลัย Kettering) การออกแบบระบบและวิธีที่พวกเขาใช้เครื่องมือ MathWorks เพื่อช่วยให้บรรลุวัตถุประสงค์การแข่งขันโดยรวม ทีมได้รับการตัดสินจากวิธีที่พวกเขาใช้เครื่องมือในการแสดง:

  • การทดสอบการรับรู้แบบวงเปิด - การสังเคราะห์ข้อมูลสำหรับการทดสอบแบบวงเปิดการประเมินความถูกต้องของอัลกอริทึม
  • การทดสอบการควบคุมวงปิด - การสังเคราะห์สถานการณ์วงรอบปิดการประเมินประสิทธิภาพของอัลกอริทึมการควบคุม
  • การสร้างรหัสอัลกอริทึมการควบคุม - การสร้างรหัสสำหรับอัลกอริทึมการรวมโค้ดที่สร้างขึ้นในยานพาหนะ
  • นวัตกรรมโดยใช้เครื่องมือ MathWorks – เทคนิค/เทคโนโลยี แตกต่างอย่างชัดเจนจาก 3 หมวดหมู่ข้างต้น

มหาวิทยาลัยโตรอนโต

ทีมนักศึกษาจาก University of Toronto, aUToronto ได้รับรางวัลที่ 1 ในการแข่งขัน

การทดสอบการรับรู้แบบวงเปิด

ขั้นตอนแรกของทีมนี้คือการสังเคราะห์ข้อมูลสำหรับการทดสอบการรับรู้แบบวงเปิด พวกเขาเลือกที่จะทดสอบอัลกอริธึมฟิวชั่นเซ็นเซอร์ของพวกเขา ในการสังเคราะห์ข้อมูลสังเคราะห์สำหรับการทดสอบพวกเขาใช้ (DSD) แอพนี้ช่วยให้คุณสามารถออกแบบสถานการณ์การขับขี่แบบสังเคราะห์สำหรับทดสอบการขับขี่อัตโนมัติของคุณ ทีมงานใช้เรดาร์และกล้อง 3 ตัวในอัลกอริธึมฟิวชันเซ็นเซอร์ซึ่งกำหนดค่าไว้ดังรูปที่ 1

รูปที่ 1: ตำแหน่งเซนเซอร์ของทีม (© aUToronto)

พวกเขาสร้างแบบจำลองเซ็นเซอร์ของกล้องพร้อมกับตำแหน่งการวางแนวและการกำหนดค่าในแอป DSD เพื่อสังเคราะห์ข้อมูลเซ็นเซอร์เพื่อป้อนเข้าสู่อัลกอริธึมฟิวชันเซ็นเซอร์ DSD จำลองเอาต์พุตของกล้องหลังจากการประมวลผลภาพของทีมและอัลกอริธึมการมองเห็นของคอมพิวเตอร์และเพิ่มสัญญาณรบกวนและค่าผิดปกติให้กับข้อมูล

บล็อก Scenario Reader ถูกใช้เพื่ออ่านข้อมูลสถานการณ์จำลองที่สร้างขึ้นโดยใช้ DSD โพสท่าของนักแสดงถูกส่งไปยังเครื่องกำเนิดการตรวจจับหลายตัว จากนั้นการตรวจจับสำหรับเซ็นเซอร์ต่างๆเหล่านี้จะถูกบรรจุเป็นอาร์เรย์ข้อความ ROS (Robot Operating System) ที่มีขนาดตัวแปรและส่งเป็นข้อความ ROS ที่กำหนดเองไปยังหัวข้อ ROS ที่เฉพาะเจาะจง (รูปที่ 2)

รูปที่ 2: Simulink model สำหรับการทดสอบ open-loop (© aUToronto)

ทีมงานได้เปรียบเทียบผลลัพธ์จากตัวติดตามวัตถุกับค่าความจริงพื้นดินของยานพาหนะ เมตริก RMSE (Root Mean Square Error) ใช้สำหรับการประเมินประสิทธิภาพ

การทดสอบการควบคุมวงปิด

จุดสนใจหลักของทีมคือการทดสอบผู้วางแผนที่ปรับเปลี่ยนสำหรับความสามารถใหม่ ๆ เช่นการกำหนดเส้นทางใหม่สำหรับพื้นที่ก่อสร้างและการเขยิบไปรอบ ๆ สิ่งกีดขวาง ผู้วางแผนได้รับการออกแบบใหม่ให้ใช้โครงสร้างตาข่ายโดยที่ขอบจะถูกตัดออกจากแผนที่เพื่อค้นหาเส้นทางรอบวัตถุตามความจำเป็น (รูปที่ 3) DSD ถูกนำมาใช้เพื่อสร้างสถานการณ์อีกครั้ง นอกจากนี้ยังเพิ่มอุปสรรคและสัญญาณไฟจราจรในสถานการณ์

รูปที่ 3: โครงสร้างตาข่ายสำหรับการค้นหาเส้นทาง (© aUToronto)

ทีมงานได้จำลองผู้เผยแพร่สัญญาณไฟจราจรโดยใช้ Stateflow (รูปที่ 4) เมื่อรถอีโก้อยู่นอกระยะสัญญาณไฟจราจร (> 50 เมตร) จะมีการเผยแพร่สถานะที่ไม่รู้จัก เมื่ออาตมาอยู่ในระยะจะมีการเผยแพร่ข้อความแสงสีแดง ข้อความจะเปลี่ยนเป็นไฟเขียวหลังจากอาตมาหยุดไป 5 วินาที

รูปที่ 4: Stateflow to model controller (© aUToronto)

เปิดตัวโหนดคอนโทรลเลอร์ผู้วางแผนและโมเดล ROS ของยานพาหนะแล้ว หากสิ่งกีดขวางอยู่ในระยะ 50 เมตรของรถอีโก้ตำแหน่งของมันจะถูกส่งเป็นข้อความ ROS ไปยังโมเดล Simulink (รูปที่ 5)

รูปที่ 5: ลอจิกเพื่อส่งข้อความตำแหน่ง (© aUToronto)

อัลกอริธึมการควบคุมการสร้างรหัส

ทีมงานสร้างโค้ดสำหรับอัลกอริทึมการจัดการป้ายหยุด (รูปที่ 6) Simulink Coder ใช้เพื่อแปลง Stateflow เป็นโค้ด C++ แบบสแตนด์อโลน โมดูล ถูกสร้างขึ้นโดยใช้ฟังก์ชันการบรรจุโค้ด โมดูลที่สร้างขึ้นนั้นถูกรวมเข้ากับโค้ดเบสของทีม

รูปที่ 6: Stop light control logic Stateflow (© aUToronto)

นวัตกรรมโดยใช้เครื่องมือ MathWorks - การปรับเทียบกล้อง Lidar

ในการตีความวัตถุในฉากอย่างแม่นยำด้วยอินพุตจาก lidar และเซ็นเซอร์กล้องจำเป็นต้องรวมเอาท์พุทเซ็นเซอร์เข้าด้วยกัน ดังนั้นทีมงานจึงทำการเปลี่ยนแปลงระหว่าง Lidar และกล้องของทีมเพื่อฉายจุด Lidar ไปยังภาพหรือในทางกลับกันสำหรับฟิวชั่นเซ็นเซอร์ แทนที่จะใช้การวัดด้วยมือและหมุนกล้องจนกว่าการคาดการณ์จะดูดีทีมงานใช้เครื่องมือปรับเทียบกล้อง Lidar ที่พัฒนาขึ้นใหม่จากกล่องเครื่องมือประมวลผล Lidar เครื่องมือนี้ประมาณการเมทริกซ์การแปลงแบบแข็งที่สร้างความสัมพันธ์ระหว่างจุดในระนาบไลดาร์ 3 มิติและพิกเซลในระนาบภาพ

พวกเขาสร้างบอร์ดสอบเทียบขนาดใหญ่ขึ้นเนื่องจากปัจจุบันมีขนาดเล็กเกินไปสำหรับเครื่องมือ เครื่องมือปรับเทียบกล้องถูกใช้เพื่อรับเมทริกซ์ที่แท้จริงสำหรับกล้องของพวกเขา พบมุมของกระดานหมากรุกในแต่ละภาพและข้อมูล Lidar พบเมทริกซ์การแปลงแบบแข็งระหว่าง Lidar และกล้อง กระบวนการนี้จะแสดงผลการเปลี่ยนแปลงที่สามารถใช้เพื่อฉายข้อมูล point cloud ไปยังรูปภาพหรือในทางกลับกัน ขั้นตอนเหล่านี้แสดงในรูปที่ 7

รูปที่ 7: (a) เมทริกซ์ภายในของกล้อง (b) มุมกระดานหมากรุก (c) เมทริกซ์การแปลง Lidar เป็นกล้อง (© aUToronto)

Kettering University

พื้นที่ ทีมนักเรียน จาก Kettering University คว้าอันดับ 2 ในการแข่งขัน

การทดสอบการรับรู้แบบวงเปิด

ทีมงานใช้ Unreal Engine เพื่อสร้างสถานการณ์ต่างๆ มีการเพิ่มกล้องให้กับรถอีโก้ใน Unreal โดยใช้บล็อกกล้องจำลอง 3 มิติ มีการใช้แบบจำลอง Simulink เพื่อตรวจจับเลนโดยใช้ภาพที่ไม่จริง (รูปที่ 8) ช่องสี่เหลี่ยมสีน้ำเงินแสดงถึงฟังก์ชันการตรวจจับเลนและสีเหลืองแสดงผลลัพธ์ในแต่ละขั้นตอน ตัวเลขผลลัพธ์เหล่านี้แสดงในรูปที่ 9

รูปที่ 8: Simulink model สำหรับการทดสอบ open loop (© Kettering University)

รูปที่ 9: เอาต์พุตการตรวจจับเลน (© Kettering University)

การทดสอบการควบคุมวงปิด

การออกแบบระบบของทีมประกอบด้วยเครื่องจักร 2 สถานะ - ตามยาวและด้านข้าง เครื่องแสดงสถานะเหล่านี้ที่แสดงในรูปถูกใช้เพื่อสร้างแบบจำลองตรรกะของการเลือกคอนโทรลเลอร์ตามเซ็นเซอร์และข้อมูลการตัดสินใจ พวกเขาเชื่อมโยงกันและใช้เพื่อเปิดใช้งานและเริ่มต้นระบบย่อยคอนโทรลเลอร์

รูปที่ 10: เครื่องจักรของรัฐ (© Kettering University)

การจำลองคอนโทรลเลอร์แบบรวมโดยใช้แบบจำลอง Simulink ในรูปที่ 11 ทำขึ้นเพื่อตรวจสอบการทำงานของคอนโทรลเลอร์ในทีมทั้งหมด อินพุตไปยังคอนโทรลเลอร์เหล่านี้จัดเตรียมโดยใช้แถบเลื่อนและมาตรวัด

รูปที่ 11: Simulink model สำหรับการทดสอบวงปิด (© Kettering University)

ระบบย่อยคอนโทรลเลอร์ของเครื่องแสดงสถานะตามยาวประกอบด้วยตัวควบคุมความเร็วตามยาวและระบบเบรกฉุกเฉินอัตโนมัติ (AEB) สถานะถูกกำหนดโดยพลวัตของยานพาหนะตามยาวเช่นการเร่งความเร็วการล่องเรือการชะลอตัวการหยุดนิ่งและการจอด

ระบบย่อยคอนโทรลเลอร์ของเครื่องด้านข้าง ได้แก่ Lane Keep Assist (LKA), Lane Change และ Turn controllers สถานะถูกกำหนดตามการเปลี่ยนแปลงของยานพาหนะด้านข้าง (รูปที่ 12) ความเร็วตามยาวการเปลี่ยนเลนและตัวควบคุม LKA จะกล่าวถึงด้านล่าง

รูปที่ 12: สถานะตัวควบคุมด้านข้าง (© Kettering University)

ตัวควบคุมตามยาว

รูปที่ 13 แสดงโมเดล Simulink ที่ใช้ในการสร้างโมเดลคอนโทรลเลอร์ตามยาว ประกอบด้วย PID ตามความเร็ว อัตราแรงบิดอ้างอิงและเอาต์พุตถูก จำกัด ให้อยู่ในอัตราเร่งของการแข่งขันและขีด จำกัด การกระตุก อินพุตของระบบได้รับการเตรียมใช้งานและแก้ไขด้วยแถบเลื่อนและใช้ขอบเขตเพื่อดูข้อมูล รูปที่ 14 แสดงเป้าหมายและเอาต์พุตความเร็วตามยาวจริง

รูปที่ 13: โมเดล Simulink คอนโทรลเลอร์ตามยาว (© Kettering University)

รูปที่ 14: การเปรียบเทียบความเร็วตามยาว (© Kettering University)

ตัวควบคุมการเปลี่ยนเลน

ตัวควบคุมการเปลี่ยนเลนของทีมใช้ MPC แบบปรับได้ (Model Predictive Control) เส้นทางอ้างอิงถูกสร้างขึ้นโดยใช้ฟังก์ชันพาราเมตริกพร้อมอินพุตการเปลี่ยนเลนเช่นความเร็วรถและความกว้างของเลน เอาต์พุตไปยังคอนโทรลเลอร์อ้างอิงตำแหน่งด้านข้างและ Yaw มีการใช้โมเดล 3DOF (Degree of Freedom) เพื่อจำลองตัวถังรถ รูปที่ 15 แสดงแบบจำลอง Simulink ที่ใช้สำหรับการจำลอง รูปที่ 16 แสดงผลลัพธ์ของการจำลองที่มีการอ้างอิงและเส้นทางการเปลี่ยนเลนจำลองพร้อมกับเส้นทางที่ได้รับหลังจากการทดสอบในรถ

รูปที่ 15: ตัวควบคุมการเปลี่ยนเลนรุ่น Simulink (© Kettering University)

รูปที่ 16: การเปรียบเทียบเส้นทางการเปลี่ยนเลน (© Kettering University)

โมเดลรถ

ทีมงานได้พัฒนาและตรวจสอบโมเดลรถ 3DOF แบบรางเดี่ยวและรางคู่ การตรวจสอบความถูกต้องเบื้องต้นดำเนินการโดยใช้โมเดลจักรยานเชิงเส้น การตรวจสอบขั้นสุดท้ายดำเนินการกับข้อมูลการทดสอบทางกายภาพ รูปแสดงผลลัพธ์การเปรียบเทียบความเร่งด้านข้างพร้อมการตรวจสอบความถูกต้องเริ่มต้นและขั้นสุดท้ายโดยไม่มีและข้อมูลการทดสอบ

รูปที่ 17: (a) การเปรียบเทียบความเร่งด้านข้าง (b) การเปรียบเทียบกับข้อมูลการทดสอบ (© Kettering University)

นวัตกรรมโดยใช้เครื่องมือ MathWorks - เมืองที่ไม่จริง

ทีมงานใช้ Unreal สำหรับการทดสอบวงปิดของคอนโทรลเลอร์ทั้งหมด พวกเขาสร้างเมือง Unreal ที่มีการเคลื่อนไหวของคนเดินเท้าที่ควบคุมได้และสัญญาณไฟจราจร นักแสดงที่ปรับแต่งได้ถูกสร้างขึ้นและข้อมูลของพวกเขาเช่นชื่อนักแสดงประเภทนักแสดงรายละเอียดนักแสดงรายละเอียดภาพเคลื่อนไหวและแท็กจะถูกเก็บไว้เพื่อให้เข้าถึงได้อย่างรวดเร็ว นอกจากนี้ยังมีการสร้างแผนที่สัญญาณไฟจราจรพร้อมกับตำแหน่งไฟที่มีข้อความรูปที่ 18

รูปที่ 18: แผนที่สัญญาณไฟจราจรที่ไม่เป็นจริง (© Kettering University)

รูปที่ 19 แสดงโครงสร้างการสื่อสารระบบ Simulink-Unreal การตัดสินใจสำหรับฉาก Unreal ซึ่งประกอบด้วยตำแหน่งของรถการเคลื่อนที่ของคนเดินเท้าสถานะสัญญาณไฟจราจร ฯลฯ ทำได้โดยใช้ Stateflow และส่งเป็นอินพุตไปยังคอนโทรลเลอร์ (รูปที่ 20)

รูปที่ 19: โครงสร้างการสื่อสารระบบ Simulink Unreal (© Kettering University)

รูปที่ 20: Stateflow สำหรับการตัดสินใจในฉากที่ไม่เป็นจริง (© Kettering University)

สรุปได้ว่าทีมนักศึกษาจาก University of Toronto และ Kettering University สามารถใช้ประโยชน์จาก MATLAB และ Simulink เพื่อออกแบบสร้างทดสอบและประเมินอัลกอริธึมการฟิวชั่นการติดตามและการนำทางเพื่อเข้าใกล้การสร้างยานยนต์ขับเคลื่อนอัตโนมัติระดับ SAE ระดับ 4 ใน การจำลอง พวกเขาเขียนสถานการณ์ที่ซับซ้อนด้วยสัญญาณไฟจราจรและตัวแสดงหลายตัวในสภาพแวดล้อมจำลองที่แตกต่างกันรวมสภาพแวดล้อมเข้ากับ Simulink และปรับใช้และทดสอบอัลกอริทึมที่เลือกไว้ในสถานการณ์เหล่านี้ อัลกอริธึมการรับรู้วงเปิดและวงปิดได้รับการจำลองและทดสอบโดยใช้ Simulink และรหัสถูกสร้างขึ้นสำหรับระบบเหล่านี้ ทีมยังออกแบบและทดสอบอัลกอริทึมคอนโทรลเลอร์ต่างๆโดยใช้ Simulink และ Stateflow เครื่องมือ MathWorks ถูกนำมาใช้อย่างสร้างสรรค์และกว้างขวางโดยทีมแชมป์ทั้งสองนี้