Báo cáo dự án thiết kế mô phỏng robot tự hành với thuật toán slam, amcl, rrt trong matlab và ros

28 16 0
Báo cáo dự án thiết kế mô phỏng robot tự hành với thuật toán slam, amcl, rrt trong matlab và ros

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CƠ KHÍ BỘ MÔN CƠ ĐIỆN TỬ BÁO CÁO DỰ ÁN THIẾT KẾ HỌC PHẦN: ROBOT TỰ HÀNH MÃ HỌC PHẦN: ME4512 Sinh viên thực hiện: Bùi Đức Huy 20184479 Phùng Minh Quang 20184592 Giảng viên hướng dẫn: TS Mạc Thị Thoa TS Phạm Đức An TS Nguyễn Xuân Thuận Đánh giá giảng viên hướng dẫn …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… Kết đánh giá Họ tên Hà Nội, ngày 25 tháng năm 2021 Điểm Giảng viên hướng dẫn Bùi Đức Huy Phùng Minh Quang Lời cảm ơn Được hướng dẫn giúp đỡ nhiệt tình thầy cô TS Mạc Thị Thoa,TS Nguyễn Xuân Thuần TS Phạm Đức An, chúng em hoàn thành tập lớn giao “Mô Robot tự hành với thuật toán SLAM, AMCL, RRT Matlab ROS” Bởi thời gian kiến thức có giới hạn, khơng tránh khỏi sai sót ngồi ý muốn Do chúng em mong bảo đóng góp ý kiến thầy để đề tài hoàn thành Chúng em xin chân thành cảm ơn hướng dẫn TS.Mạc Thị Thoa,TS.Nguyễn Xuân Thuần TS.Phạm Đức An giúp chúng em hoàn thành đề tài MỤC LỤC CHƯƠNG GIỚI THIỆU CHUNG 1.1 Lý chọn đề tài 1.2 Giới thiệu sản phẩm liên quan Kích thước khối lượng Thành phần cấu tạo TurtleBot3 1.3 ROS Mơ hình ROS Tầng ROS Filesystem Tầng ROS Computation Graph Tầng ROS Community CHƯƠNG CƠ SỞ LÝ THUYẾT VỀ ĐỘNG HỌC, SLAM, NAVIGATION 2.1 Động học Thuận 2.2 Động học nghịch .9 2.3 SLAM 10 2.4 Costmap .11 2.5 DWA 13 2.6 AMCL 14 CHƯƠNG KẾT QUẢ MÔ PHỎNG 15 3.1 ĐỘNG HỌC .15 3.2 SLAM 16 3.3 NAVIGATION 18 CHƯƠNG TÀI LIỆU THAM KHẢO 19 DANH MỤC HÌNH VẼ Hình - TurtleBot3 Burger TurtleBot3 Waffle Pi Hình - Kích thước TurtleBot3-Burger Hình - TurtleBot3 Waffle Pi Hình - Cấu tạo Turtlebot3 Burger Hình - Mơ hình ROS Filesystem .5 Hình - Tầng ROS Computation Graph Hình - Giao tiếp nodes Hình - Hệ toạ độ Robot Hình – Quan hệ khoảng cách đến chướng ngại vật giá trị Costmap 12 Hình 10 - Biểu diễn Costmap .12 Hình 11 – Hệ toạ độ v - w .13 Hình 12 – Vận tốc dài vận tốc góc .14 Hình 13 – Quá trình sử dungj AMCL .15 Hình 14 – Mô Matlab .15 Hình 15 – Mơ Simulink 16 Hình 16 - Robot mơi trường gazebo 17 Hình 17 - Cảm biến lazer quét bắt đầu 17 Hình 18 - Bản đồ lưu 17 Hình 19 - Dùng 2D pose đặt robot vị trí ngẫu nhiên 18 Hình 20 - Robot di chuyển theo đường mà thuật tốn chọn .18 Hình 21 - Kết cuối cùng…………………………………………………….19 CHƯƠNG GIỚI THIỆU CHUNG 1.1 Lý chọn đề tài 1.2 Giới thiệu sản phẩm liên quan Khơng tìm thấy mục nhập bảng hình minh họa Hình 1- TurtleBot3 Burger TurtleBot3 Waffle Pi TurtleBot robot tảng tiêu chuẩn ROS Turtle có nguồn gốc từ robot Turtle, điều khiển ngơn ngữ lập trình máy tính giáo dục Logo vào năm 1967 Ngoài ra, xuất lần đầu hướng dẫn ROS, chương trình bắt chước hệ thống lệnh Logo rùa chương trình Nó sử dụng để tạo biểu tượng Rùa biểu tượng ROS Chín chấm sử dụng logo ROS có nguồn gốc từ mai sau rùa TurtleBot, có nguồn gốc từ Logo rùa, thiết kế để dễ dàng dạy người làm quen với ROS thông qua TurtleBot dạy ngơn ngữ lập trình máy tính sử dụng Logo Kể từ TurtleBot trở thành tảng tiêu chuẩn ROS, tảng phổ biến nhà phát triển sinh viên TurtleBot3 robot di động nhỏ, giá phải chăng, lập trình, dựa ROS để sử dụng giáo dục, nghiên cứu, sở thích tạo mẫu sản phẩm Mục tiêu TurtleBot3 giảm đáng kể kích thước tảng hạ giá thành mà hy sinh chức chất lượng nó, đồng thời cung cấp khả mở rộng TurtleBot3 tùy chỉnh theo nhiều cách khác tùy thuộc vào cách bạn tái tạo phận khí sử dụng phận tùy chọn máy tính cảm biến Ngồi ra, TurtleBot3 phát triển với SBC hiệu chi phí kích thước nhỏ, phù hợp với hệ thống nhúng mạnh mẽ, cảm biến khoảng cách 360 độ công nghệ in 3D Công nghệ cốt lõi TurtleBot3 SLAM , Điều hướng Thao tác , làm cho phù hợp với robot dịch vụ gia đình TurtleBot chạy thuật tốn SLAM (bản địa hóa lập đồ đồng thời) để xây dựng đồ lái xe xung quanh phịng bạn Ngồi ra, điều khiển từ xa từ máy tính xách tay, bàn di chuột điện thoại thông minh chạy Android TurtleBot theo dõi chân người họ phịng Ngồi ra, TurtleBot3 sử dụng trình điều khiển di động có khả điều khiển đối tượng cách gắn trình điều khiển OpenMANIPULATOR OpenMANIPULATOR _có ưu điểm tương thích với Waffle TurtleBot3 Waffle Pi Thơng qua khả tương thích bù đắp cho thiếu tự có hoàn thiện robot dịch vụ với SLAM khả điều hướng mà TurtleBot3 có Kích thước khối lượng Hình 2: Kích thước TurtleBot3-Burger Hình 3-TurtleBot3 Waffle Pi Thành phần cấu tạo TurtleBot3 Hình Cấu tạo Turtlebot3 Waffle 1.3 ROS ROS hệ thống framework dùng cho ứng dụng robot Về bản, ROS có đặc tính thiết yếu hệ điều hành khả thực tác vụ (task) song song, giao tiếp, trao đổi liệu với tác vụ, quản lý liệu… ROS phát triển riêng biệt thư viện, công cụ hỗ trợ việc vẽ đồ thị, lưu liệu, hiển thị model 3D robot… ROS phát triển dạng module Từ nhóm nghiên cứu chuyên sâu vào lĩnh vực vẽ đồ hay định vị robot xây dựng hệ thống robot hoàn chỉnh tái sử dụng module phát triển trước Nhóm chọn hệ thống ROS để phát triển robot với khả vẽ đồ định vị dựa ưu điểm sau: • ROS cung cấp nhiều module giúp người dùng tuỳ biến cho phù hợp với yêu cầu phát triển loại robot • Những module hoạt động độc lập với trao đổi thơng qua gói liệu Vì dễ phát sửa lỗi cho module • ROS có mã nguồn mở cộng động nghiên cứu lĩnh vực robot phát triển Lượng người dùng lớn giúp cho hệ thống ROS ngày đa dạng phong phú tính liệu Những lỗi phát sinh trình sử dụng cộng đồng người dùng hỗ trợ xử lý nhanh chóng Về mặt trao đổi liệu giao tiếp ROS: ROS tích hợp vài chuẩn giao tiếp khác nhau, bao gồm giao tiếp đồng theo chuẩn RPC qua services, truyền liệu bất đồng qua topics, lưu trữ liệu Parameter Server Hiện ROS chạy tảng Linix Phần mềm cho ROS chủ yếu thử nghiệm Ubuntu Mac OS X Cho đến cộng đồng ROS bắt đầu xây dựng cho Fedora, Gentoo, Arch Linux tảng Linux khác ROS chưa hỗ trợ Microsoft Windows Hệ điều hành ROS với công cụ thư viện hỗ trợ thường phát hành dạng ROS Distribution, tương tự Linux distribution, cung cấp phần mềm để người dùng sử dụng, xây dựng phát triển Mơ hình ROS Mơ hình ROS chia làm ba tầng: Filesystem, Computation Graph, Community Tầng ROS Filesystem Filesystem nguồn tài nguyên ROS lưu trữ nhớ hệ thống, bao gồm thành phần như: • Packages: chứa lệnh thực thi ROS (các nodes), thư viện phụ thuộc ROS, tập liệu, file cấu hình, liệu cần thiết khác hệ thống • Manifests (manifests.xml): cung cấp sở liệu package, bao gồm license, cờ biên dịch • Stacks: tập hợp packages phối hợp với để thực chức (vd: Navigation stack) • Stack Manifests (stack.xml): cung cấp sở liệu stack, bao gồm license thông số phụ thuộc vào stack khác • Message(msg): cấu trúc liệu cho việc truyền nhận ROS CHƯƠNG CƠ SỞ LÝ THUYẾT VỀ ĐỘNG HỌC, SLAM, NAVIGATION 2.1 Động học Thuận Hình Hệ toạ độ robot Xét hệ qui chiếu cố định I hệ qui chiếu gắn liền với robot R Vị trí robot hệ qui chiếu cố định y I Ma trận cosin hướng cos( ) R( ) sin( ) cos( ) 0 Ma trận vận tốc robot hệ qui chiếu R r R r r 2l Ma trận vận tốc robot hệ qui chiếu cố định 123docz r r 2 r r cos( ) 2 IR()R r sin( ) r 2l 2l Phương pháp Euler y '(t ) f (t , y (t )) Cho y (t ) y0 t n t n => yn yn hf (tn , yn ) h Áp dụng phương pháp Euler, ta xác định vị trí robot hệ qui chiếu cố định thời điểm ti+1 thông qua vị trí thời điểm ti x x (t i y I i t i r ) r i i r i (t ti ) i r ti) ) 2 r i(t i ) cos( i i y sin( i r 2l 2l 2.2 Động học nghịch q Xét điểm Q thân robot có tọa độ theo hệ quy chiếu R x q y Tọa độ điểm Q theo hệ qui chiếu cố định I xI y xI y Q Q I xI cos( ) yP sin( ) Q I tọa độ điểm Q theo hệ qui chiếu I I tọa độ điểm P theo hệ qui chiếu I Q x P sin( )qx PI cos( ) q y với yPI Đạo hàm vế ta có: q x I I x Q I P sin( ) cos( ) I q y Q y cos( ) sin( ) P I v cos( ) x P q x sin( ) qy cos( ) v y I với y q x cos( ) qy sin( ) vcos( ) sin( ) q sin( ) q x cos( ) y y q x cos( ) qy sin( ) q v q Q I q y sin( ) sin( ) q x cos( ) x sin( ) x xQI yI q vsin( ) Q y cos( ) xI P Q q cos( ) x 2.3 SLAM Simultaneous localization and mapping (SLAM) tốn tính tốn xây dựng cập nhật đồ môi trường không xác định đồng thời theo dõi vị trí tác nhân bên Mặc dù ban đầu tốn gà trứng có số thuật tốn biết đến để giải nó, khoảng thời gian giải cho số môi trường định Các phương pháp giải gần phổ biến bao gồm lọc hạt, lọc Kalman mở rộng , giao điểm hiệp phương sai GraphSLAM Các thuật toán SLAM dựa khái niệm hình học tính tốnvà thị giác máy tính , sử dụng điều hướng robot , lập đồ robot đo đường cho thực tế ảo thực tế tăng cường Một số thuật toán SLAM: Gmapping, Kalman filter,… Gmapping: Particle filter thuật toán phổ biến việc object tracking Ví dụ điển hình thuật tốn Monte Carlo localization sử dụng particle filter Bộ lọc Kalman trước đảm bảo độ xác cho hệ thống tuyến tính hệ thống mà nhiễu gassian áp dụng Hầu hết vấn đề giới thực hêj thống phi tuyến Bởi robot cảm biến phi tuyến, Particle filter thường sử dụng để pose estimation Nếu lọc Kalman phương pháp phân tích giả định hệ thống tuyến tính có tham số tuyến tính, Particle filter kỹ thuật để dự đốn thơng qua mô phương pháp thử sai Particle filter đặt tên giá trị ước tính tạo phân bố xác suất hệ thống biểu diễn particle Đây gọi phương pháp Sequential Monte Carlo Particle filter giống thuật tốn pose estimation khác, ước tính pose vât thể với giả định sai số đưuocj bao gốm input Khi sử dụng SLAM, giá trị đo lường robot giá trị đo cảm biến khoảng cách sử dụng để ước tính pose robot Trong phương pháp Particle filter, vị trí không chắn mô tả loạt particle gọi mẫu Chúng di chuyển hạt đến vị trí hướng ước tính dựa mơ hình chuyển động xác suất 10 robot, đồng thời đo trọng lượng particle theo giá trị đo thực tế giảm dần nhiễu để ước tính tư xác Trong trường hợp rơ bốt di động, hạt biểu diễn dạng hạt = pose (x, y, i), trọng lượng hạt particle tùy ý đại diện cho vị trí ước tính hướng rơ bốt biểu thị x, y, i robot độ ảnh hưởng particle Bộ lọc trải qua quy trình sau Ngoại trừ lần khởi chạy bước 1, bước ~ thực lặp lặp lại để ước tính tư rơ bốt Nói cách khác, phương pháp ước tính tư robot cách cập nhật phân bố particle thể xác suất robot mặt phẳng tọa độ X, Y dựa giá trị cảm biến đo Initialization Vì tư ban đầu robot (vị trí, hướng) khơng xác định, particle xếp ngẫu nhiên phạm vi mà tư thu với N particle Mỗi hạt ban đầu nặng / N, tổng trọng lượng hạt N xác định theo kinh nghiệm, thường hàng trăm Nếu vị trí ban đầu biết, hạt đặt gần robot Prediction Update Pose estimation Resampling 2.4 Costmap Tư robot ước tính dựa odemetry thu từ encoder IMU Và khoảng cách robot chướng ngại vật có nhờ cảm biến khoảng cách gắn robot Tư rô bốt cảm biến, thông tin chướng ngại vật đồ lưới thu từ SLAM sử dụng để tải đồ tối ưu khu vực có chướng ngại vật, khu vực trống khu vực không xác định để điều hướng Trong Navigation, costmap tính tốn khu vực chướng ngại vật, khu vực va chạm khu vực di chuyển rô bốt dựa bốn yếu tố nói Tùy thuộc vào loại điều hướng,costmap chia thành hai loại Một ‘global_costmap’, thiết lập kế hoạch đường để điều hướng khu vực tồn cầu đồ Loại cịn lại ‘local_costmap’ sử dụng để lập kế hoạch đường tránh chướng ngại vật khu vực giới hạn xung quanh rơ bốt Mặc dù mục đích chúng khác nhau, hai costmap biểu diễn theo cách Costmap biểu diễn dạng giá tị từu đến 255 Các giá trị tóm tắt sau: 000: Khu vưcj robot di chuyển hoàn toàn tự 001 – 127: Khu vực có khả va chạm thấp 128 – 252: Khu vwcj có khả va chạm cao 253 – 254: Khu vực chắn xảy va chạm 255: Khu vực có chướng ngại vật, robot knoong thể di chuyển 11 ... Thuần TS Phạm Đức An, chúng em hồn thành tập lớn giao “Mơ Robot tự hành với thuật toán SLAM, AMCL, RRT Matlab ROS? ?? Bởi thời gian kiến thức có giới hạn, khơng tránh khỏi sai sót ngồi ý muốn Do chúng... GraphSLAM Các thuật toán SLAM dựa khái niệm hình học tính tốnvà thị giác máy tính , sử dụng điều hướng robot , lập đồ robot đo đường cho thực tế ảo thực tế tăng cường Một số thuật toán SLAM: Gmapping,... điều hành ROS với công cụ thư viện hỗ trợ thường phát hành dạng ROS Distribution, tương tự Linux distribution, cung cấp phần mềm để người dùng sử dụng, xây dựng phát triển Mơ hình ROS Mơ hình ROS

Ngày đăng: 10/02/2023, 05:46

Tài liệu cùng người dùng

Tài liệu liên quan