Giới thiệu
Chào các ae Tinh tế.Video này mình mang đến cho ae một thuật toán được sử dụng trong công nghệ điều khiển xe tự hành. Video mang tính giới thiệu thôi chứ không có gì là cao siêu cả, ai cũng xem được. AE sẽ được thấy cách thức và nguyên lí mà thuật toán hoạt động.
Đây là thuật toán được sử dụng thực trong một startup của Việt Nam do mình và team đang xây dựng. Sản phẩm đã lọt top 10 Qualcomm Vietnam Inovative Challenge 2020 rồi.
Mong nhận được ủng hộ và phản hồi từ ae tinh tế.
Tâm sự:
Mình thấy rất nhiều anh em chê tại sao trên các mạng xã hội Youtube, Tiktok, FB, … toàn “clip nhảm shit”. Đơn giản là những người làm clip có đầu tư thì lại rất ít được sự ủng hộ từ ae. Hôm trước mình có thấy một bạn cũng làm video youtube chia sẻ trên tinh tế là bạn ấy cũng làm được 10 tháng nhưng bỏ vì không có mấy ai quan tâm. Mình còn làm được hơn 2 năm rồi, nhưng cũng chỉ lẹt đẹt. Nếu ae là người mong muốn các MXH sạch hơn 1 chút thì nên ủng hộ những nội dung có chất lượng nhé. Môt like, share, subcribe chỉ mất 1-2 phút, còn người làm clip có nội dụng thì mất cả ngày luôn chứ không phải là ít.
Chúc ae Tinh tế sẽ mãi tinh tế.
Cập nhật 25/4:
Cảm ơn tất cả những bình luận đóng góp, những ủng hộ, những subcribe kênh & like cho video. Cảm ơn anh em Tinhte rất nhiều.
Mình chưa giỏi trong việc làm video, nội dung chưa hay và cách trình bày chưa được hấp dẫn, nên video của mình chưa được mọi người đón nhận. Mình thú nhận điều này và đây cũng là lí do mình chưa từ bỏ mà vẫn đang tiếp tục tìm cách để cải thiện bản thân.
Phần tâm sự đơn giản là một vài suy nghĩ của người làm video thôi chứ không có gì là quá serious đâu. Ae xem thấy video nào mà làm với mục tiêu mong mọi người tốt hơn, có tâm thì cho một like. Không ai bắt ép được bạn nên tuỳ tâm mà.
Giới thiệu về thuật toán
Đây là một thuật toán điều khiển tối ưu (Optimal Control). Nó chỉ là một mảnh ghép trong autonomous driving chứ không phải là tất cả. Nó sử dụng tối ưu hoá (Optimization) trong điều khiển (Control): tìm ra giá trị điều khiển tối ưu cho mục tiêu mà mình mong muốn (Objective).Mục tiêu:
- Vận tốc càng cao càng tốt. Đi nhanh hơn thì tốt hơn chứ autonomous driving mà xe chạy như rùa bò thì autonomous làm gì.
- Xe càng ở giữa lane càng tốt. Lái xe giữa lane là chuẩn chỉnh rồi.
- Gia tốc (tịnh tiến & góc) càng trơn chu càng tốt. Đây là điểm khác biệt giữa tay lái lụa và tay lái mới tập đi. Ngồi trên xe của pro nó êm như thế nào thì anh em cũng biết rồi.
Quảng cáo
Lái xe thật cũng vậy thôi, cũng phải quan tâm, suy xét các yếu tố kể trên.
Giải bài toán tối ưu sẽ cho ta giá trị điều khiển thoả mãn các mục tiêu trên.
Trả lời @riletan:
Mà nếu bác có ý thì cho em hỏi luôn là để đạt được vận tốc cao như vậy thì thách thức mà team bác gặp phải là gì? các bác đã giải quyết vấn đề đó ntn?
Em thấy bác đề cập các tham số và các bộ tham số có sẵn, bác có thể giải thích thêm không? Từ đâu mà ra mấy cái số này, đơn vị tính của từng tham số là như nào, mối quan hệ giữ chúng ra sao? Khi tăng giảm tốc độ thì dựa vào công thức gì để tích ra mấy cái thông số liên quan?
- Thách thức: Thực ra thách thức là thách thức chung của bài toán của autonomous driving. Về mặt điều khiển thì có một số thách thức chủ yếu đến từ đầu vào (inputs) của bài toán điều khiển, ngoài ra còn có vận tốc càng cao càng khó kiểm soát (time critical), hay yêu cầu về thời gian thực (real-time). Như đã thấy trong video là vận tốc có thể đạt 150 km/h như thế là ok về phần Control rồi. Những thách thức lớn nằm ở Perception & Localization. Tức là đi xe trên đường thì phải phát hiện được xe xung quanh, người xung quanh, đèn báo giao thông, … và handle.
- Giải quyết: như đã nói ở trên, về mặt điều khiển thì cơ bản là đã giải quyết được rồi (sử dụng optimal control). Ngoài ra những thách thức về real-time thì liên quan đến hardware, optimize code, …
- Tham số có sẵn là bộ tham số em tune từ trước rồi, bộ tham số này giúp xe chạy được 54 mph. Đây là các hệ số của các thành phần mục tiêu kể trên. Vì các mục tiêu này sẽ gộp lại thành 1 objective function, nên các tham số này cơ bản là trade-off giữa các mục tiêu đó. VD: tôi muốn anh tập trung vào việc tăng tốc nhiều hơn, tôi muốn anh tập trung đưa xe giữa lane hơn, tôi muốn anh lái xe pro hơn (tăng tốc giảm tốc ít hơn, đừng có đánh lái liệng qua liệng lại). Vậy đó.
Mấy tham số này không có đơn vị. Nó dựa vào các thành phần của hàm mục tiêu. Vd: sai số vận tốc lớn, muốn cho nó nhỏ đi thì tăng hệ số của nó lên. Giải thuật (solver) hiểu là nó cần tìm giá trị cho vận tốc làm sao khiến sai số này nhỏ đi. - Khi tăng giảm tốc độ thì dựa vào công thức gì để tích ra mấy cái thông số liên quan? Thực ra em không hiểu câu hỏi này của bác lắm. Đơn giản cái em show ra cho ae xem là cách em tune cái trade-off giữa các mục tiêu thôi. Còn đi sâu vào sẽ cần mô hình động lực học của xe để tính toán.
Trả lời @kixx
Quảng cáo
nếu xe tự hành thì chắc chắn sẽ canh giữa lane để chạy
còn đua ,để tăng top speed thì dec fai thêm yếu tố về apex ,vị trí vào cua.. ,mấy cái này sẽ giúp cải thiện đáng kể vận tốc
- Bác nói đúng, canh giữa lane để chạy là một phần của thuật toán.
- apex, vị trí vào cua cũng là 1 phần của thuật toán luôn. Ưu điểm của Optimal Control là có thể predict long horizon. Tức là tính toán giá trị điều khiển không phải chỉ ngay lúc đó mà còn cho N steps tiếp theo (2 giây sau chẳng hạn). Thế nên các yếu tố như apex cũng được suy sét (một hiệu ứng kéo theo thôi chứ không phải trực tiếp).