Đồ án tốt nghiệp chuyên ngành robot tự động gọi món và phục vụ trong quán cà phê: Thuật toán định vị và điều hướng

MỤC LỤC

LỜI MỞ ĐẦU

ĐỊNH VỊ VÀ ĐIỀU HƯỚNG (NAVION STACK)

    Trong các ng d ng robot lứ ụ ớn hơn, robot và hệ thống s có nhi u khung tẽ ề ọa độ hơn, các biến đổi giữa các hệ tọa độ ẽ phức t s ạp hơn và thường là các ma trận biến đổi Affine bao gồm cả phép t nh tiị ến và phép xoay (x’y’z’ = Amatrix * xyz). Những dữ liệu c m bi n này sả ế ẽ được thu th p và truy n tậ ề ới các node khác để thực hiện tính toán thông qua các sensor topics (thông thường tên topic là “scan”). Ta sẽ cập nhập thông tin (Update) tính toán 𝐾𝑘và phương sai 𝑃𝑘 c a xác suủ ất vị trí tối ưu 𝑦𝑘∗, từ đó tính được vị trí tối ưu 𝑦𝑘∗ dựa vào tính toán xác suấ ớt l n nh ất.

    Thuật toán cung cấp hai cách để tăng hiệu năng của vi c t o l p bệ ạ ậ ản đồ là: Đưa ra một phân phối đề xuất xem xét độ chính xác c a các c m biủ ả ến đo lường robot và cho phép vẽ các hạt với độ chính xác cao, theo sau là kỹ thuật lấy m u tẫ hích ng, giúp duy trì sứ ố lượng l n hạt và giớ ảm nguy cơ cạn kiệ ạt. Như hình duới ta có khôi đa giác đỏ là v trí robot, các dị ải ô đỏ là thông tin v v t cề ậ ản thu đượ ừc t tín hi u laser (không gian bệ ị chiếm đóng), màu xám nhạt ở trong tượng trưng cho vị trí trống (không gian trống) và màu xám đậm là những thông tin chưa biết về môi trường (không gian chưa biết). Thông thường đối với vấn đề điều hướng robot, sẽ có hai công đoạn để tính toán ra các tín hiệu điều khiển cho các thiết bị truyền động (motor) đó là: Lập kế hoạch đường đi (Path planning) thường là một vấn đề toàn cục, nó sẽ tạo ra một con đường cho phép robot di chuy n tể ừ điêmmr này đến điểm mong mu n, tiố ếp sau đó là lập kế hoạch chuyển động (motion planning) thường là một vấn đề cục bộ, dùng để tính toán các lệnh hoạt động cần thiết để bán vào đường đi thu được từ lập kế hoạch đường đi.

    Việc lập kế hoạch chuyển động phụ thuộc vào mô hình chuyển động của robot (Chương 2) kết hợp v i các thuớ ật toán điều khiển tối ưi và các yếu t ố tác động của môi trường, t ừ đó tính toán các đơn vị điều khiển robot như vậ ốc, góc xoay bánh n t lái, hoặc gia tốc, .v.v. Các thuị ố ật toán tìm đường ngắn nhất ph ổ biến như Djikstra sẽ giúp ta khám phá toàn bộ tất cả tuyến đường có thể có trong biểu đồ cho đến khi tìm thấy đường dẫn t i nút mớ ục tiêu, sau đó tiế ục cố gằng tìm tuyến p t đường ng n nh t. TEB local planner là một thuật toán tri n khai công c l p k ho ch quể ụ ậ ế ạ ỹ đạo cục bộ tối ưu trực tuyến để điều hướng và điều khiển robot di động như một plugin cho gói điều hướng ROS giúp suy ra các tính hiệu điều khiển.

    Vấn đề ối ưu hóa cơ bản đượ t c xác định trong các thuật ngữ của một vectơ tham số ữu hạn chiều bao gồm trình tự tùy ý h của n cấu hình robot (𝑠𝑘)𝑘= 1,2,3 … Phương pháp TEB kết hợp thông tin t m th i trạ ờ ực tiếp vào vấn đề ối ưu hóa và do đó giả t i quyết việc gi m thi u th gian chuyả ể ời ển đổi theo hạn chế cơ học. Phương pháp tối ưu Approximative Least-Squares Optimization ( Tối ưu hóa Bình Phương Ít nhất Gần đúng) được dùng để ối ưu hóa trong bài toán này: Việ t c giải các chương trình phi tuyến với các ràng buộc khó tính toán rất tốn kém. Chương trình phi tuyến chính xác (NLP) được chuyển đổi hành vấn đề ối ưu hóa bình phương phi tuyế t n tính gần đúng là được giải một cách hiệu quả khi bộ giải xấp xỉ Hessian bằng các dẫn xuất bậc nhất trong khi nó khai thác mô hình thưa thớ ủt c a vấn đề.

    Closed-loop Predictive Control ( Ki m soát dể ự đoán vòng kín) : Phương pháp TEB xác định chiến lược kiểm soát dự đoán để giải quyết các xáo trộn, sự không chắc chắn c a bủ ản đồ và mô hình cũng như các môi trường động hướng dẫn robot khỏi tư thế hiện t i sạ c hướng tới tư thế ụ m c tiêu s. Sự điều chỉnh độ dài của đường chân trời cho một vấn đề đường chân trời thu hẹp mang l i l i th chính cạ ợ ế ủa chiều dài đường d n tách và th i gian chuyẫ ờ ển đổ ổng i t thể: S ố tư thế cũng như số lần đảo ngược chuyển động được yêu cầu để đáp ứng (2.6) là không xác định và thay đổ ới chưới v ng ngại vật động.

    Hình 3. 2 Ví d  minh h a cho robot.  ụ ọ
    Hình 3. 2 Ví d minh h a cho robot. ụ ọ

    THIẾT KẾ ROBOT TỰ HÀNH HOẠT ĐỘNG TRONG QUÁN CÀ PHÊ

    • Thiết lập robot tự động
      • Thiết kế giao di n cho robot ệ

        Mục tiêu đặt ra là cần có một thiết bị để dễ dàng điều khiển xe tới/lui, xoay trái/phải và chuyển tín hi u t c m biệ ừ ả ến đó thành giá trị tương tự cmd_vel để Mobile base có th ể hoạt động được. Trược tiên cần xác định vị trí đế ởn trên bản đồ có d ng toạ ạn độ (x,y), từ đó chúng tôi dung các tọa độ này để xác định nhi m vệ ụ điều hướng mà chúng tôi gửi đến ngăn xếp điều hướng của robot thực hiện nhiệm vụ đó. Ở đây, để xây dựng được qu o di chuyỹ đạ ển thì nhóm đã xây dựng một giải thuật Global planner[9] d a vào tín hiự ệu đầu vào là cảm biến laser và đầu cuối là giá tr ị điểm cần đến trên bản đồ, từ đó giải thuật global plenner sẻ vẽ ra một quỷ đạo tối ưu nhất robot có thể đến được vịtrí cuối cùng.

        Khi người dùng tác động vào các biểu tưởng trên giao di n trong lúc hoệ ạt động, thì hệ thống MATLAB sẽ thực hi n các câu lệ ệnh được người dùng viết trong các hàm “Callback_function” của mỗi biểu tượng. • Radio Button : Là một dạng nút nhấn được kết hợp chung với “Button Group”, các radio button nằm chung trên một button group chỉ được phép chọn một, không thể chọn cùng lúc hai radio button. - Tạo nút Set nhìn bên trái màn hình và kéo nút Push Button vào giao diện, kích đúp vào ô Push Button để hiện lên ch ế độ Inspector sau đó đổi tên phần tag thành set, đổi ph n String thành ầ Set, đổi màu ô BackgroundColor theo ý ở muố ởn đây sử ụng màu xanh.

        - Tạo nút Up b ng cách kéo nút ằ Push Button sau đó đổi tag thành up1, đổi String thành U, đổi BackgroundColor thành màu xanh sau đó viết code cho nút Up có tác dụng điều khiển xe đi về phía trước (code). - Tạo nút Right b ng cách kéo nút ằ Push Button sau đó đổi tag thành right1, đổi String thành R, đổi BackgroundColor thành màu xanh sau đó viết code cho nút Right có tác dụng điều khiển xe đi qua bên phải (code). - Tạo nút Down b ng cách kéo nút ằ Push Button sau đó đổi tag thành down1, đổi String thành D, đổi BackgroundColor thành màu xanh sau đó viết code cho nút Down có tác dụng điều khiển xe đi lùi (code).

        - Tạo nút Left b ng cách kéo nút ằ Push Button sau đó đổi tag thành left1, đổi String thành L, đổi BackgroundColor thành màu xanh sau đó viết code cho nút Left có tác dụng điều khiển xe đi qua bên trái (code). - Tạo nút Stop b ng cách kéo nút ằ Push Button sau đó đổi tag thành stop1, đổi String thành S, đổi BackgroundColor thành màu vàng sau đó viết code cho nút Stop có tác dụng điều khi n xe d ng l i (code). - Tạo nút Turn left b ng cách kéo nút ằ Push Button sau đó đổi tag thành tleft1, đổi String thành TL, đổi BackgroundColor thành màu xanh sau đó viết code cho nút Turn left có tác dụng điều khiển xe cua trái (code).

        - Tạo nút Turn right b ng cách kéo nút ằ Push Button sau đó đổi tag thành tright1, đổi String thành TR, đổi BackgroundColor thành màu xanh sau đó viết code cho nút Turn right có tác dụng điều khiển xe cua phải (code). - Tạo nút Home b ng cách kéo nút ằ Push Button sau đó đổi tag thành home1, đổi String thành Home, đổi BackgroundColor thành màu xanh sau đó viết code cho nút Home có tác dụng điều khiển xe quay lạ ị trí ban đầu (code).

        Bảng 3 B ng thông s  robot  ả ố
        Bảng 3 B ng thông s robot ả ố

        KẾT QUẢ THỰC NGHIỆM

        Chúng ta cũng có thể tự vẽ l i mạ ột bản đồ theo đo đạc thực tế để cung cấp cho Navigation stack, nhưng có thể nó sẽ không hoạt động chính xác như ta mong đợi. 4 Bản đồ được dựng trong môi trường có nhi u về ật cản 5.3 Đinh vị robot trên bản đồ. Chúng ta sẽ thử áp d ng gói AMCL và lý thuyụ ết đã nêu ở trên để định v robot ị trên bản đồ môi trường thử nghiệm đã thu thập được.

        Ta sẽ di chuyển robot theo các hướng để bộ lọc hạt AMCL hoạt động và hội tụ (định vị robot). Các thông s này số ẽ ảnh hưởng tới độ dao động của robot xung quanh quỹ o toàn cục.

        Hình 5. 2Không gian thực tế để ự    d ng b ản đồ
        Hình 5. 2Không gian thực tế để ự d ng b ản đồ

        TỔ NG KẾT NH ẬN XÉT VÀ HƯỚ NG PHÁT TRI N Ể

        Có thể dùng robot tự hành thay cho nhân viên, thực hiện các công việc như order, giao đồ ăn thức uống, d n d p,.