Microsoft Word Nhóm2 Baocao docx 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[.]
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 .1 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 .7 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 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 .3 Hình - Mơ hình ROS Filesystem Hình - Tầng ROS Computation Graph Hình - Giao tiếp nodes Hình - Hệ toạ độ Robot .8 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 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 Ngồ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 hồ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 chi tiết chuyên biệt, hệ thống điều khiển robot thường bao gồm nhiều nodes Ví dụ, node điều khiển hệ thống cảm biến, node điều khiển động bánh xe, node thực việc tác vụ định vị, node hoạch định đường đi, node vẽ quỹ đạo hệ thống… Mỗi node ROS xây dựng nhờ sử dụng ROS client library, chẳng hạn roscpp rospy • Master: cung cấp tên đăng ký tra cứu đến node lại Nếu khơng có Master, node khơng thể tìm thấy nhau, trao đổi thông tin, hay gọi services không thực • Parameter Server: phần Master • Messages: Các node giao tiếp với thơng qua message Một message đơn giản cấu trúc liệu, bao gồm trường định kiểu (integer, floating point, array ) • Topics: Messages định tuyến thông qua hệ thống trao đổi (transport system), phân loại thơng điệp thành dạng: publish (đưa tin) subcribe (đăng ký nhận thông tin) Một node gửi message việc đưa thông tin tới topic (chủ đề) Tên topic dùng để quy định nội dung message • Service: thực yêu cầu tương tác theo kiểu request/reply • Bags: định dạng để lưu phát lại liệu từ ROS messages Bags chế quan trọng để lưu trữ liệu, chẳng hạn liệu cảm biến Hình Giao tiếp nodes Tầng ROS Community Tầng định nghĩa tài nguyên phần mềm kiến thức chia cộng đồng phát triển ROS bao gồm: Distributions, Respositories, The ROS Wiki, Mailing lists 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 x I = Ma trận cosin hướng cos( ) sin( ) R( ) = sin( ) cos( ) Ma trận vận tốc robot hệ qui chiếu R 2 = R r1 + r2 r 1+ 2l 2l r Ma trận vận tốc robot hệ qui chiếu cố định r1 r2 cos( ) 2r1 r22 = R( ) = + sin( ) I R 2 r2l 1 r2l 2 + + Phương pháp Euler y '(t) = f (t, y(t)) Cho y(t ) = y 0 n +1t = tn + h => y = y + hf (t , y ) n+1 n n n Á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 + (t i t ) i +1 r1 i x i +1 I = yi +1 = y i + (ti +1 ti ) i +1 r2 + r2 + r i + (ti +1 ti ) + 2l 2.2 Động học nghịch cos( ) r i sin( ) i r 2l Xét điểm Q thân robot có tọa độ theo hệ quy chiếu R qx y q Tọa độ điểm Q theo hệ qui chiếu cố định I xI ) xI cos( sin( ) q + sin( ) cos( ) q x với y y Q P y I Q x yI tọa độ điểm Q theo hệ qui chiếu I Q Q I = P I xPI tọa độ điểm P theo hệ qui chiếu I I y P Đạo hàm vế ta có: xQ I xI y I= P +y I P Q sin( ) cos( cos( ) sin( ) q ) q x y Q)xI = y I Q v ) = v = cos( sin( ) x sin( ) y qq cos( ) x cos( xP I v cos( ) với yI = v sin( ) P q sin( ) q cos( ) v sin( ) y 1 q sin( ) q cos( ) x I x y qy cos( ) sin( ) qx 1 sin( ) qx QI y Q qy sin( ) + cos( qx 1 q ) x cos( ) q y sin( ) cos( qx ) xI Q y I Q 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 tố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 tốn phổ biến việc object tracking Ví dụ điển hình thuật toá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 toá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 tơi 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 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 toàn cầu đồ Loại 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 Hình 9: Quan hệ khoảng cách đến chướng ngại vật giá trị costmap Hình 10: Biểu diễn Costmap 2.5 DWA Dynamic Window Approach (DWA) phương pháp phổ biến để lập kế hoạch tránh chướng ngại vật tránh chướng ngại vật Đây phương pháp lựa chọn tốc độ nhanh chóng đến điểm mục tiêu tránh chướng ngại vật va chạm với robot khơng gian tìm kiếm vận tốc Trong ROS, Trajectory planner sử dụng để lập kế hoạch đường cục bộ, DWA thay hiệu suất vượt trội Đầu tiên, Robot khơng hệ trục toạ đọ x-y, thay vào trọng hệ toạ độ với trục vận tốc dài vận tốc góc Trong hệ toạ độ robot có giá trị tối đa vận tốcbởi có hạn chế phần cứng, gọi Dynamic Window Trong Dynamic Window, Hàm G(v,w) sử dụng để tính v,w Giá trị tối ưu hoá để robot tránh chướng ngại vật đến với địch nhanh Hình 11: Hệ toạ độ v-w ... Thị Thoa,TS Nguyễn Xuân 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... đ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. .. 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