[Video] Người vs. Máy | Thuật toán điều khiển xe tự hành chạy >150km/h

defwar
19/4/2021 16:36Phản hồi: 48
[Video]  Người vs. Máy | Thuật toán điều khiển xe tự hành chạy >150km/h

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).
48 bình luận
Chia sẻ

Xu hướng

Chúc bác và team thành công nhé. Mình người ngoại đạo nhưng thích mấy cái kỹ thuật xe tự hành này. 1 subscribe cho bác nhé.
Các content nhảm thì dễ thu hút hơn, cũng như viết báo vậy. Nhưng mình hay follow mấy kênh khoa học, 1 clip cũng nhiều triệu view mà, quan trọng là vẫn phải làm content ngon và tốt, vì đây là youtube 😁.
Như clip này hơi dài so với đại đa số, người xem clip để thưởng thức và tìm hiểu như mình thì chắc chắn tua mà ko thể xem hết dc.
@mrdrg10 Cảm ơn bác đã góp ý. Thực ra đây là video dài nhất mà em làm. Các video khác ngắn hơn nhiều.
Các kênh cung cấp kiến thức chuyên sâu thường kén người xem. Yêu thích thì cứ tiếp thôi bạn
Chưa bàn về hàm lượng chất xám. Chỉ thấy là bạn dẫn giải nội dung lững thững buồn ngủ quá. Thu âm thì ồn. Lại còn lồng nhạc nền hơn lớn.
Một vấn đề nữa là những nội dung kỹ thuật như thế này chắc chắn sẽ có nhiều thuật ngữ rất chuyên ngành. Mỗi khi bạn nói tới những thuật ngữ đó, thì nên kèm thêm chú thích bằng chữ, hình ảnh để người nghe có thể tiếp thu nhanh chóng hơn.
Chúc các bạn thành công hơn.
@truongthanhdo Mình cũng đồng ý với điều này, nếu bạn nhắm đến đối tượng xem là những người hiểu biết cùng vấn đề với bạn thì có lẽ sẽ ít người dẫn đến lượt view thấp. Còn nếu bạn muốn người bình thường ai cũng xem được video này thì cần làm nó gọn lại chút, nói điều người ta muốn biết gây tò mò hay gì đó thôi, làm như kiểu mỳ ăn liền ai cũng ăn được thì dễ tiếp cận hơn. Như bản thấn mình không biết gì mà cũng tò mò nên mở lên xem thử thấy video 32 phút là muốn bỏ qua rồi, vẫn xem thử thì thấy chỉ việc chào và giới thiệu ban đầu của bạn đã chậm và mất thời gian không vô thẳng vấn đề, nên mình nghĩ video này thông tin không nhiều chỉ là mọi thứ đang bị kéo dài ra quá, nên mình cũng lười xem luôn.
Cảm ơn cả hai bác đã góp ý. Em cũng đang cố gắng cải thiện các video của mình để phù hợp cho tất cả mọi người.
Ủng hộ ad
"Mình còn làm được hơn 2 năm rồi, nhưng cũng chỉ lẹt đẹt."
Mình gần 5 năm rồi :v
Mình không chê các Dev ở Việt Nam, cũng như luôn mong muốn tìm được những anh tài phát triển CNTT trong nước và làm những thứ hay ho. Tuy nhiên, nếu chúng ta chấp nhận là người đi sau, và thừa nhận đang tận dụng, "hưởng sái" những gì mà thế giới đã đi trước và mang lại cho mình, thì mới khá nổi. Nói thẳng ra là nếu đã sử dụng những cái có sẵn, thì nên liệt kê đầy đủ và đừng "nhận công" của mình tự phát triển 100%.
@riletan Xin phép được trả lời tất cả các bác trong post này (@riletan, @joethinh, @kochichi96).
- Dây chỉ là demo nên một cái simulator tốt, trực quan để mọi người nhìn thấy là quan trọng. Cái simulator của udacity là cái đáp ứng được tiêu chí đó. Đây là opensource, public nên em dùng nó. Nó cũng không phải là cái quan trọng lắm vì thuật toán phát triển không phải để chạy trên chương trình mô phỏng.
- Mình không copy work của người khác. Cái mà bác @riletan show dùng DNN, cái em làm dùng optimal control (Model Predictive Contouring Control). Các bác có thể so sánh performance của 2 bên (>95 mph vs 22 mph).

Các bác cần em giải đáp gì thì cứ nói nhé.

P/s: Em không phải dev ở VN.
Ok bác, vì bác xưng em-bác nên em cũng thay đổi cho phù hợp.
Em xin góp ý là mấy cái vấn đề này bác nên đề cập luôn trong bài viết, anh em đỡ phải hiểu lầm.
Vì trong video bác cũng chẳng nói nhiều về kĩ thuật nên em không góp ý về mấy vấn đề này. Mục đích chỉ để giới thiệu chơi thì em không đòi hỏi gì cả.

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?
@defwar Mình tính bỏ qua vụ này rồi. Nhưng vì câu cuối, "Em không phải dev ở VN" nên gửi đến bạn link tham khảo.

https://github.com/darienmt/CarND-MPC-Project-P5

Tiện thể mình cũng xin lỗi về chuyện "vơ đũa của nắm", oan cho Dev ở Việt Nam.
@riletan https://github.com/darienmt/CarND-MPC-Project-P5

Bạn có thể tham khảo thử.
Cái này mà dc nhiều view hay like mới là MẮC CƯỜI nè
@Minhhien.chef Tò mò bấm vào kênh mới thấy bình luận này chí phải.
Video nội dung nghèo nàn, chất lượng hình ảnh, âm thanh kém. Tự nhận có đầu tư mà cái background khi quay trong nhà cũng không chọn được cái góc nào sạch sẽ.
toàn “clip nhảm shit”.
Vì những nội dung này ít người có thể hiểu được
Làm khoa học thì ai lại làm trên youtube, fb, tiktok?
Hơn nữa ngành này là ngành hẹp, 10 người đọc cái post này thì bạn nghĩ bao nhiêu người hiểu bạn nói gì?

Tại sao bạn lại bắt người ta xem cái người ta không hiểu?
@riletan Không ai bắt ai làm gì cả nhé.
@defwar Vâng, câu đó cũng chỉ là 1 cách nói thôi bác ạ, nghĩa đen đâu có phải là như vậy.
Như em đã nói, nội dung bác làm rất ích người quan tâm, và cũng chẳng bao nhiêu người hiểu. Nên ít lượt view là điều hiển nhiên, và chắc cũng không thể thay đổi được đâu nên chẳng cần phải đặt vấn đề làm gì !
Tuy hơi phũ nhưng mà sự thật là như vậy, space x live stream phóng tên lửa mà có mấy chục k view thôi chứ mấy 😁
Sau một ngày làm việc vất vả thì ai cũng muốn đầu óc được thư giãn nghỉ ngơi. Đó là lúc dành cho các clips hài hước, các nội dung mang tính giải trí, xả stress (từ bác nông dân cho đến ông giám đốc đều thế...). Còn các clips mang kiến thức thì chỉ 1 số người cần họ mới xem thôi.
Theo quan điểm của mình làm Youtube để chia sẻ thì làm, còn làm vì mục đích kiếm tiền thì k nên. Mặc dù k có triệu views nhưng mình cũng có thể giúp được 1 vài ngàn người thêm kiến thức.
@Alexandrosssss Chính xác như bạn nói, các kênh như youtube, facebook,... chủ yếu để giải trí. Còn kiến thức cho dù có đầu tư hay không đầu tư thì cũng ít người xem, đơn giản vì người trong ngành thì người ta đã biết kiến thức đó rồi, người ngoài ngành thì xem khó hiểu đâm ra chán không xem. Cái hay của những clip nhảm mà chủ topic nói là họ nắm được tâm lý số đông tò mò, giải trí nên ngta xem nhiều, cho dù youtube có đề xuất video kiên thức lên top thì họ cũng next và tìm nội dụng khác thôi 😆
@Alexandrosssss Mình cũng đồng ý với bạn. HỒi xưa mình cũng nghĩ, ui ba cái giải trí, hay ho gì. Nhưng mình đã sai. Ai cũng cần giải trí, kể cả mình, và YouTube là nơi cực kì phù hợp để xả stress, giải trí là chủ yếu, nên cũng không ngạc nhiên khi nội dung giải trí được chọn xem và được sản xuất nhiều.

Còn làm nội dung giáo dục, chuyên sâu etc... thì chấp nhận lượng người xem ít thôi, cần kiếm tiền theo cách khác (nếu YouTube không ra được tiền). Nhưng nếu bạn làm đủ tốt, thì cũng có thể có view rất cao. MÌnh coi Wendover Productions, họ hay làm các phim dạng tổng hợp kiến thức, tổng hợp thông tin, view cũng cao ngất, và kiến thức học được cũng ngon lắm.
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 😁
Cái này của bác khác gì so với mấy game đua xe kiểu F1, Cars... ạ? Thuật toán của mấy game đó thấy lái lên đến 300km/h có vẻ mượt lắm 😁
@longprof Cái này để mang ra chạy thật bác ạ. Mấy cái đó mang ra ngoài đời thật mà chạy được như thế thì Waymo, Uber, ... tèo hết rồi
Vl. Mũi to vậy
Cười ra nước mắt
thích kiểu chuyên sâu như v
chúc bác thành công nhé
Giả lập đường phố VN cho nó chạy thử 🤣
Người học thì ít mà giải trí thì nhiều, nên video học tập thì ít nguoi xem

Mình đang nghiên cứ về robot hình người, đi 2 chân, bạn có làm AI về mảng này k, mình đang thiết kế phần cơ khí
@maychuzin Mình làm điều khiển & AI cho robotics. Bạn muốn trao đổi cứ reach out nhé.

Xu hướng

Bài mới










  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019