Xây dựng chương trình điều khiển robot hút bụi iRobot trên môi trường ROS Xây dựng chương trình điều khiển robot hút bụi iRobot trên môi trường ROS Xây dựng chương trình điều khiển robot hút bụi iRobot trên môi trường ROS luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Xây dựng chƣơng trình điều khiển robot hút bụi iRobot môi trƣờng ROS TRẦN MINH HẢI tranminhhai26@gmail.com Ngành Hệ thống thông tin Giảng viên hƣớng dẫn: TS Ngô Lam Trung Chữ ký GVHD Viện: Công nghệ Thông tin Truyền thơng HÀ NỘI, 10/2020 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn: Trần Minh Hải Đề tài luận văn: Xây dựng chƣơng trình điều khiển robot hút bụi iRobot môi trƣờng ROS Chuyên ngành: Hệ thống thông tin Mã số HV: CB180153 Tác giả, Ngƣời hƣớng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 31/10/2020 với nội dung sau: STT 3 Yêu cầu hội đồng Phần tổng quan cần trình bày chi tiết sau vào nội dung liên quan Nội dung chỉnh sửa, bổ sung Phần tổng quan trƣớc bắt đầu mục 1.1 đƣợc viết thêm giới thiệu tốn lý chọn đề tài, tính cấp thiết đề tài (P.1) Cuối chƣơng đƣợc thêm phần Trong chƣơng cần kết luận tổng kết tóm tắt tồn nội phải có phần tóm tắt dung, kết đạt đƣợc kết luận chƣơng chƣơng đồng thời dẫn giải đến chƣơng Thay đại từ nhân xƣng “em”, “chúng Chỉnh sửa đại từ nhân ta” thành “tác giả”, “tơi” tồn xƣng, bổ sung phần luận văn hƣớng phát triển tiếp Trong mục kết luận bổ sung thêm theo phần hƣớng phát triển (P.53) Phần tài liệu tham khảo Phần tài liệu tham khảo đƣợc chỉnh cần trình bày quy sửa theo định dạng IEEE định Các chữ đƣợc chèn bên ảnh đƣợc chỉnh sửa theo định dạng Chỉnh sửa lại cỡ chữ Một số ảnh đƣợc thay cho phù hình ảnh theo hợp định dạng Các ảnh chỉnh sửa, thay bao gồm: hình 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.9, 4.6, 5.1, 5.2 Bổ sung khảo sát đối Bổ sung mục 1.1.3 giới thiệu với robot hút bụi thƣơng mại có thị trƣờng mẫu robot có thị trƣờng (P.2) Mục 2.1 bổ sung so sánh công cụ quét đồ iRobot vs mẫu robot thƣơng mại (P.15) Ngày 27 tháng 11 năm 2020 Giáo viên hƣớng dẫn Tác giả luận văn TS Ngô Lam Trung Trần Minh Hải CHỦ TỊCH HỘI ĐỒNG PGS.TS Lê Thanh Hƣơng ĐỀ TÀI LUẬN VĂN Mã đề tài: 2018BKHDL-KH05 Theo QĐ số 138 Hiệu trƣởng Trƣờng Đại học Bách Khoa Hà Nội ký ngày 13 tháng 03 năm 2019 Họ tên học viên: Trần Minh Hải SHHV: CB180153 Chuyên ngành: Hệ thống thông tin Lớp: Khoa học liệu Ngƣời hƣớng dẫn: TS Ngô Lam Trung Đơn vị: môn Kỹ thuật máy tính, viện Cơng nghệ thơng tin truyền thông, Trƣờng Đại học Bách Khoa Hà Nội Tên đề tài: Xây dựng chƣơng trình điều khiển robot hút bụi iRobot môi trƣờng ROS Giáo viên hƣớng dẫn Ký ghi rõ họ tên Lời cảm ơn Trƣớc hết, tác giả xin gửi lời cảm ơn chân thành tới TS Ngô Lam Trung, ngƣời tận tình dạy dỗ hƣớng dẫn trình hồn thành luận văn nhƣ học tập Đồng thời, tác giả xin bày tỏ lòng biết ơn đến thầy cô giáo giảng viên Viện Công nghệ thông tin Truyền thông – trƣờng Đại học Bách Khoa Hà Nội, ngƣời giảng dạy, truyền đạt kiến thức bản, làm tảng cho việc thực luận văn Tác giả xin gửi lời cảm ơn tới anh chị, bạn, em nhóm sinh viên nghiên cứu, ngƣời giúp đỡ, động viên tác giả q trình hồn thành luận văn Tóm tắt nội dung luận văn Luận văn tập trung vào việc xây dựng hệ thống robot (iRobot) có nhiệm vụ quét đồ, hút bụi phòng giúp đỡ ngƣời sống Ứng dụng iRobot đƣợc xây dựng robot kobuki, cảm biến laser Hokuyo UTM-30LX hệ điều hành robot ROS (Robot Operating System) Với môi trƣờng giả lập, tác giả sử dụng phần mềm gazebo Về phƣơng pháp thực Đầu tiên cần qt đồ mơi trƣờng, sau áp dụng thuật toán bao phủ đồ quét Tác giả sử dụng hƣớng tiếp cận dựa lƣới, đồ đƣợc chia làm nhiều ô nhỏ, ô lƣới biểu diễn cho ô vuông thực tế kích thƣớc nxn, mang giá trị thể có vật cản hay khơng Một controller triển khai thuật tốn bao phủ kết hợp với công cụ khác để điều khiển robot hết ô trống Kết thực nhiệm hệ thống iRobot đƣợc trình bày chi tiết luận văn HỌC VIÊN Ký ghi rõ họ tên MỤC LỤC CHƢƠNG 1.1 1.2 TỔNG QUAN Đặt vấn đề 1.1.1 Robot dịch vụ gì? 1.1.2 Các ứng dụng robot dịch vụ 1.1.3 Một số robot hút bụi thƣơng mại có thị trƣờng Giới thiệu số khái niệm 1.2.1 Giới thiệu ROS 1.2.2 Giới thiệu kobuki 12 1.2.3 Giới thiệu hokuyo 13 1.3 Nội dung đề tài 15 1.4 Các kết đạt đƣợc 15 CHƢƠNG 2.1 2.2 2.3 Quét đồ 16 2.1.1 Quét đồ môi trƣờng giả lập 16 2.1.2 Quét đồ môi trƣờng thực tế 17 2.1.3 Tìm hiểu file ảnh pgm file yaml (kết trình quét đồ) 19 Xây dựng đồ lƣới 21 2.2.1 Khái niệm cell đồ lƣới 21 2.2.2 Chuyển đổi đồ quét đƣợc sang đồ lƣới 21 Kết luận 22 CHƢƠNG 3.1 QUÉT BẢN ĐỒ VÀ XÂY DỰNG BẢN ĐỒ LƢỚI 16 ĐIỀU HƢỚNG VÀ ĐỊNH VỊ ROBOT 23 Điều hƣớng robot 23 3.1.1 Twist 24 3.1.2 Odometry 25 3.1.3 Các hàm di chuyển 26 3.2 Định vị robot sử dụng AMCL 28 3.3 Kết luận 31 CHƢƠNG THUẬT TOÁN BAO PHỦ 32 4.1 Thuật toán D* 32 4.2 Thuật toán Path Transform (PT) 35 4.3 Thuật toán CCD* 36 4.3.1 Lý thuyết thuật toán CCD* 36 4.3.2 Phân tích thuật toán CCD* 41 4.4 Áp dụng thuật toán CCD* vào toán iRobot 45 4.5 Kết luận 45 CHƢƠNG 5.1 5.2 5.3 CHƢƠNG TRÌNH ĐIỀU KHIỂN IROBOT 47 Chƣơng trình điều khiển robot hút bụi iRobot 47 5.1.1 Mơ hình chung 47 5.1.2 Hàm xử lý phát vật cản 48 Các trƣờng hợp ngoại lệ 50 5.2.1 Robot di chuyển khơng xác 50 5.2.2 AMCL trả liệu chậm 51 5.2.3 Laser có sai số 52 Kết luận 52 Hình 4.10 Đƣờng sinh pha initial complete b, Pha replanning Trong pha có xuất giá trị thể trạng thái visitedR overlappedR Hai giá trị đƣợc set robot thực qua cell đó, khác với visited overlapped trạng thái biểu thị thuật toán duyệt qua chƣa Các bƣớc pha nhƣ sau: Tính tốn D*(S) (mục đích tính h cell từ chọn đƣợc cell gần nhất) Thực pha initial complete sinh đƣờng P Điều khiển robot theo P Đi đến cell nào, sét cell visitedR overlappedR Nếu phát vật cản, cập nhật đồ quay lại Nếu hết P kết thúc Nếu chƣa hết, lặp lại Giải thuật pha replanning 40 Hình 4.11 Giải thuật pha replanning [15] Kết đƣờng đƣợc sinh lại gặp vật cản Hình 4.12 Kết sinh lại đƣờng pha replanning gặp vật cản [15] 4.3.2 Phân tích thuật tốn CCD* Để tìm kiếm giải thuật sinh đƣờng cho tốn robot hút bụi có nhiều Tuy nhiên, với robot hút bụi, yêu cầu phải quét hết vị trí (bao phủ đồ) tránh lặp lại vị trí qt Mỗi thuật tốn có ƣu điểm, nhƣợc điểm khác nhau, nhƣng để tìm thuật toán đáp ứng đƣợc hai yêu cầu khó Căn mức độ quan trọng yêu cầu, CCD* đƣợc lựa chọn giải thuật bao phủ đƣợc tồn đồ có lặp lại đƣờng 41 a, Thuật tốn CCD* bao phủ tồn đồ Với thuật toán CCD*, cell qua set trạng thái visited Giả sử, CCD* khơng qt đƣợc tồn đồ, tồn cell non-visited Nếu có cell non-visited D* duyệt phát (dòng 11 pha initial complete) sinh đƣờng tới đó, nghĩa cell trƣớc sau đƣợc robot duyệt qua duyệt qua visited Vậy, thuật toán CCD* kết thúc, tất cell visited, có nghĩa thuật tốn CCD* qt tồn đồ b, Thuật toán CCD* lặp lại đƣờng Thuật toán CCD* có lặp lại đƣờng Đây nhƣợc điểm thuật toán nhiên so sánh với thực tế điều khơng thể tránh khỏi (đi vào ngõ cụt) không quan trọng Các robot hút bụi thực tế có lặp lại vị trí quét miễn quét đƣợc toàn đồ Mức độ lặp lại đƣờng thuật toán phụ thuộc vào yếu tố sau: - Hƣớng ƣu tiên: robot tìm đƣợc vị trí thỏa mãn điều kiện (cùng non-visited g nhau) phải ƣu tiên chọn vị trí để sinh đƣờng Ƣu tiên theo hƣớng khác sinh đƣờng khác Đƣờng khác ảnh hƣởng đến mức độ lặp lại Ngoài thân thuật toán D* phải đƣa cell vào hàng đợi phải ƣu tiên theo quy tắc (nhƣ trình bày chƣơng 4.1), điều gây ảnh hƣởng đến mức độ lặp lại CCD* Tuy nhiên, yếu tố hoàn toàn ngẫu nhiên, khơng thể nói theo hƣớng tốt theo hƣớng - Có gặp vật cản động hay không: Nếu mà gặp vật cản, robot phải sinh lại đƣờng Thêm vật cản, đƣờng phải phức tạp từ gây mức độ lặp lại cao - Bản đồ: đồ đơn giản (căn phịng đồ đạc) đƣờng sinh đơn giản, mức độ lặp lại Ngƣơc lại đồ phức tạp đƣờng phức tạp gây mức độ lặp lại cao - Vị trí xuất phát: yếu tố có ảnh hƣởng nhƣng ảnh hƣởng nhỏ Khi robot xuất phát sát tƣờng hay góc phịng đƣờng lặp lại so với robot xuất phát nhà, xuất phát nhà, nhiều khả cell sát tƣờng không đủ mặt nạ robot không đƣợc quét lần mà 42 phải nhờ tới tìm kiếm D* mà dùng D* để tìm đƣờng, chắn có cell bị quét lại Khảo sát: Hình 4.13 Các màu biểu thị mức độ lặp lại Hình 4.14 Mức độ lặp lại ƣu tiên tìm kiếm D* theo thứ tự UPLEFT-DOWN-RIGHT 43 Hình 4.15 Mức độ lặp lại ƣu tiên D* theo thứ tự RIGHTDOWN-LEFT-UP Có thể thấy mức độ lặp lại trƣờng hợp RDLU thấp so với ULDR Tỉ lệ cell x1,x2,x3,x4 trƣờng hợp ULDR lần lƣợt 51%, 31%, 11%, 7% Tỉ lệ cell x1,x2,x3,x4 trƣờng hợp RDLU lần lƣợt 52%, 43%, 5%, 0% Điểm quan trọng cell dòng 4, cột Khi robot đến cell lần đầu tiên, tìm kiếm D* đƣợc gọi Nếu ƣu tiên theo thứ tự ULDR tìm cell bên (dòng 3, cột 6) thỏa mãn điều kiện sinh đƣờng đến bỏ qua cell bên dƣới hệ phải quay lại lần để quét đƣợc cell bên dƣới khiến mức độ lặp lại tăng cao 44 4.4 Áp dụng thuật toán CCD* vào tốn iRobot Áp dụng thuật tốn vào mơ hình robot hút bụi, cần phải thỏa mãn số yêu cầu phần cứng môi trƣờng nhƣ sau: - Dụng cụ quét đƣợc gắn dƣới robot Kích thƣớc dụng cụ quét cần phải lớn kích thƣớc cell Mỗi robot qua cell, coi nhƣ diện tích cell đƣợc hút bụi - Mơi trƣờng qt đƣợc biết trƣớc Vì ngơn ngữ sử dụng ROS C++ python, nên tác giả sử dụng ngôn ngữ C++ để triển khai thuật toán nhƣ toán iRobot Sử dụng cấu trúc struct để mơ tả cell, có biến thể giá trị g, backpoint, visited, overlapped Để lƣu trữ liệu đồ, tác giả sử dụng mảng chiều để biểu diễn Dƣới cấu trúc struct, xây dựng tập hàm để phục vụ thuật tốn nhƣ: findNextCell, checkContainOb, getCellPosition Ngồi để phục vụ cho tốn iRobot, ngồi hàm bản, phải xây dựng hàm chuyên biệt nhƣ: - checkSpecialPoint: hàm sử dụng để tìm điểm đƣờng gấp khúc Bởi để điều khiển robot theo đƣờng dẫn cần xác định đƣợc điểm Từ điểm gâp khúc, suy điểm - findLastCommonPoint: Hàm sử dụng pha replanning, sử dụng để tìm điểm chung cuối đƣờng cũ đƣờng Phải tìm đƣợc điểm chung điều khiển robot quay theo đƣờng - buildObExtend: Việc sinh đƣờng cho robot giống nhƣ việc tìm đƣờng cho cell trung tâm cell trung tâm rõ ràng nằm cách tƣờng khoảng nhỏ bán kính Vì hàm sét tất cell nằm cách tƣờng khoảng nhỏ bán kính ObExtend Việc khiến cho việc tính tốn sinh đƣờng đơn giản nhanh chóng 4.5 Kết luận - Thuật toán CCD* sinh đƣờng bao phủ toàn đồ, đáp ứng đƣợc yêu cầu toán - Đƣờng thuật toán sinh có lặp lại, mức độ lặp lại tùy thuộc vào nhiều yếu tố: độ phức tạp đồ, có gặp vật cản không xác định không… 45 - Việc áp dụng thuật toán vào toán cụ thể iRobot gặp nhiều trƣờng hợp ngoại lệ, địi hỏi phải có xử lý riêng 46 CHƢƠNG CHƢƠNG TRÌNH ĐIỀU KHIỂN IROBOT Sau có đồ, hàm điều khiển thuật toán, cần phải kết hợp thành phần này, công cụ ROS cung cấp sẵn lại với để phục vụ mục tiêu xây dựng iRobot Chƣơng trình thân node, có nhiệm vụ điều khiển thành phần giao tiếp với 5.1 Chƣơng trình điều khiển robot hút bụi iRobot 5.1.1 Mơ hình chung Hình 5.1 Mơ hình chung thành phần trao đổi liệu với phục vụ iRobot Trong ROS, node đƣợc tổ chức dƣới cấu trúc đồ thị Trong toán iRobot, tác giả xây dựng node controller điều khiển thành phần phối hợp trao đổi liệu với để phục vụ toán iRobot Theo thứ tự controller làm công việc sau: Lấy liệu đồ từ map_server chuyển liệu sang đồ lƣới Sử dụng AMCL để lấy vị trí Initial complete sinh P Tìm specialPoint P Gọi AMCL lấy vị trí Sinh góc quay đƣờng từ vị trí đến specialPoint Nếu P rỗng kết thúc 47 Di chuyển đến specialPoint Nếu thành công, lặp lại Nếu phát vật cản đƣờng đi, cập nhật đồ đến 6 Replanning sinh P' Tìm điểm chung cuối P, P' Sinh đƣờng từ vị trí điểm chung Đi đến điểm chung, thành công, quay Nếu không thành công, quay Đầu tiên, robot lấy liệu đồ từ công cụ map_server, chuyển sang mảng chiều, tiến hành loại bỏ phần dƣ thừa, tìm giá trị biên đồ chuyển đồ sang đồ lƣới (chuyển mảng chiều số nguyên sang mảng chiều struct cell) Sau có đồ lƣới, gọi cơng cụ AMCL lấy vị trí làm đầu vào cho thuật toán Pha initial complete đƣợc gọi sinh đƣờng P Trong P, quan tâm đến vị trí đƣờng gấp khúc (specialPoint) muốn robot di chuyển theo đƣờng cần tọa độ specialPoint thơi Tiếp theo, robot tìm specialPoint, lấy vị trí từ AMCL, sinh góc quay sinh quãng đƣờng, điều khiển robot theo tham số góc quay qng đƣờng Q trình liên tục lặp lại đến hết P Nếu trình di chuyển phát vật cản dựa vào liệu laser, controller xác định đƣợc cell có vật cản, từ update map, pha replanning đƣợc gọi Xác định điểm chung hai đƣờng cũ, để tiến hành quay điểm chung này, quay điểm chung theo đƣờng đƣợc 5.1.2 Hàm xử lý phát vật cản Trong pha replanning, làm để robot xác định đƣợc vật cản Từ liệu laser vị trí robot, cần xác định đƣợc đồ lƣới, cell vật cản Hàm laserHander xử lý việc Đây hàm chạy đa luồng chạy song song với chƣơng trình chính, có nhiệm vụ liên tục qt laser, phát vật cản, thông báo cho chƣơng trình để chƣơng trình có hƣớng xử lý 48 Hình 5.2 Vùng phát vật cản laser Đầu tiên, làm robot phát vật cản, cần sét, tia laser trả liệu nhỏ trị số gọi phạm vi phát vật cản controller hiểu robot gặp vật cản Tuy nhiên, robot men theo tƣờng, tia số 720 phát tƣờng vật cản, lúc phải xử lý trƣờng hợp ngoại lệ Thay duyệt 720 tia, chia vùng quét detect OB not detect OB cho phù hợp Để tránh phức tạp, hàm laserhander xử lý liệu robot di chuyển Nếu phát vât cản, khóa đƣợc thiết lập để tránh luồng đến sau nhảy vào gây lỗi, đồng thời thông báo cho controller phát vật cản, nhảy khỏi hàm go đợi laserHander xử lý xong LaserHander xác định vật cản, cập nhật đồ Xong việc thông báo cho controller để controller chạy pha replanning 49 5.2 Các trƣờng hợp ngoại lệ Việc xây dựng hệ thống robot chạy thực tế không tránh khỏi trƣờng hợp ngoại lệ phát sinh khiến robot di chuyển sai số gây lỗi cho thuật toán Để xử lý trƣờng hợp này, tác giả có xây dựng hàm xử lý riêng sửa thuật toán để áp dụng đƣợc vào toán iRobot Trong phần trình bày số ngoại lệ điển hình 5.2.1 Robot di chuyển khơng xác Robot di chuyển khơng xác, có xuất sai số Ví dụ, điều khiển robot mét, robot sai số +-5cm Điều khiển quay 90 độ robot quay 89, 91 độ Điều đƣợc kiểm tra giả lập lẫn thực tế Mặc dù sai số nhỏ, nhƣng không xử lý, sai số cộng dồn vào lần di chuyển khiến robot lệch hẳn đƣờng Ngồi lỗi cịn gây việc nhâm lẫn việc xác định vật cản cố định vật cản di dộng Nguyên nhân có sai số robot có khối lƣợng nên có qn tính Lệnh stop khơng thể khiến robot dừng Giống nhƣ ngƣời xe máy đến đèn đỏ bóp phanh khơng thể dừng vạch đƣợc Nguyên nhân thứ hai hàm go turn, lần pushlish thông tin lên topic /velocity khiến robot di chuyển, quay lƣợng định Vì khơng thể có cách điều khiển robot di chuyển quay xác tuyệt đối tham số đầu vào, giảm sai số xuống mức thấp ➢ Giải pháp: trình nghiên cứu, tác giả nhận thấy sai số phụ thuộc lớn vào tốc độ robot Tốc độ lớn, sai số cao, tốc độ nhỏ, sai số nhỏ Phƣơng án đƣa kiểm tra gần đích giảm tốc độ theo tỉ lệ để đến đích, tốc độ đủ nhỏ để sai số nhỏ đến mức chấp nhận đƣợc Tuy nhiên, cần điều chỉnh để q trình di chuyển khơng q lâu (bởi tốc độ nhỏ nên thời gian di chuyển lâu) Điều so với thực tế Khi xe máy, muốn dừng điểm A, phải giảm tốc độ trƣớc đến A, chay chậm dần để A, tốc độ 50 5.2.2 AMCL trả liệu chậm Thuật toán AMCL trả liệu chậm gây lỗi tính tốn khơng xác vị trí robot Hình 5.3 AMCL trả liệu chậm gây sai số quay Robot cần di chuyển theo đƣờng ABC robot thực đến B, nhƣng AMCL trả dƣ liệu chậm, nói với controller robot B' Controller tính tốn góc quay quãng đƣờng từ liệu AMCL trả B' nextCell C Controller điều khiển robot theo góc quay qng đƣờng Vì vậy, thay đến C, robot lại đến C' Nguyên nhân lỗi AMCL phải xử lý lƣợng thông tin lớn dẫn đến xử lý lâu nhƣng nguyên nhân nhỏ Nguyên nhân phần lớn AMCL khơng có đủ thơng tin từ mơi trƣờng Trong trình nghiên cứu, tác giả nhận thấy, AMCL trả liệu nhanh robot quay trả chậm robot thẳng Điều quay liệu từ mơi trƣờng nhận đƣợc nhiều hơn, trình hội tụ xảy nhanh, thẳng, liệu từ mơi trƣờng khơng có nhiều thay đổi, trình hội tụ xảy chậm ➢ Giải pháp: hàm turn, vừa quay vừa lấy liệu từ AMCL, điều khiển quay góc anpha đến nextCell, nhiên anpha khơng phải tính tốn từ trƣớc truyền cho hàm turn, mà anpha ln đƣợc tính tốn lại bên hàm turn Ban đầu anpha đƣợc tính tốn sai, nhƣng cần robot quay góc nhỏ ban đầu đủ để AMCL trả liệu xác anpha đƣợc tính tốn lại, điều kiện dừng đƣợc thay đổi Hàm turn thay truyền tham số góc muốn quay truyền tọa độ cell muốn quay đến 51 5.2.3 Laser có sai số Nhƣ trình bày mục một, laser Hokuyo có sai số +-5cm Việc gây lỗi trình xác định vật cản (sai số cell) Giả sử cell bị nhầm vật cản đƣợc thăm (visittedR), pha replanning đƣợc gọi, đƣờng khác cell Điều dẫn đến khơng tìm đƣợc điểm chung đƣờng cũ nêu tìm đƣợc, khơng sinh đƣợc đƣờng quay Hình 5.4 Laser phát vật cản khơng xác ➢ Giải pháp: hàm laserhander, xác định vật cản phải kiểm tra điều kiện cell visited hay chƣa Nếu visited bỏ qua cell 5.3 Kết luận - Với kịch điều khiển (qt bình thƣờng mơi trƣờng giả lập thực tế, quét có vật cản không xác định môi trƣờng giả lập thực tế) Chƣơng trình điều khiển thành cơng robot theo đƣờng dẫn thuật tốn sinh phủ kín đồ, tránh vật cản thành công lập lại đƣợc đƣờng - Tuy nhiên robot di chuyển chậm chập, giật, khơng mƣợt - Chƣơng trình chƣa phủ hết đƣợc trƣờng hợp ngoại lệ xẩy ra, thƣờng phát trƣờng hợp gây lỗi phải xử lý riêng 52 KẾT LUẬN Kết đạt đƣợc - Cài đặt thành công ROS phiên indigo môi trƣờng giả lập Gazebo hệ điều hành Ubuntu 14.04 Tìm hiểu đƣợc cơng cụ ROS - Tìm hiểu cơng cụ hector_slam gmapping việc xây dựng đồ - Chuyển đổi đồ sang dạng lƣới - Nghiên cứu thuật tốn CCD* triển khai ngơn ngữ C++ - Tìm hiểu thuật tốn định vị AMCL, sử dụng thành công công cụ amcl việc định vị robot đồ lƣới - Tập trung nghiên cứu việc điều hƣớng robot, giúp việc di chuyển robot đƣợc xác Hạn chế - Kiến thức lập trình nhúng cịn thiếu sót, hiệu tốc độ xử lý robot chƣa thỏa mãn yêu cầu điều kiện khắc nghiệt - Việc xây dựng đồ độ sai số tƣơng đối, phải quét lại đồ nhiều lần để đạt đƣợc độ xác - Việc di chuyển chƣa thực hoàn tồn xác mơi trƣờng rộng lớn - Vẫn chƣa tìm hiểu đƣợc nhiều cơng cụ ROS Hƣớng phát triển - Nghiên cứu cải thiện thuật toán giảm đƣợc mức độ lặp lại đƣờng dẫn - Triển khai hệ thống nhúng - Tiếp tục nghiên cứu, cải tiến controller để bao phủ, xử lý đƣợc nhiều trƣờng hợp ngoại lệ 53 TÀI LIỆU THAM KHẢO [1] wikipedia [Online] https://vi.wikipedia.org/wiki/Robot_phục_vụ [2] TùngAnh (2019, Jan.) cesti [Online] http://cesti.gov.vn/chi-tiet/8981/khcnnuoc-ngoai/robot-dich-vu-co-hoi-cho-startup [3] Đặng xuân kỳ (2019, July) robotdilife.com [Online] https://robotdilife.com/dieu-huong-anh-huong-toi-robot-hut-bui-nhu-the-nao [4] wiki.ros.org [Online] http://wiki.ros.org/ROS/Tutorials [5] kobuki.yujinrobot.com [Online] http://kobuki.yujinrobot.com/about2/ [6] hokuyo-aut.jp [Online] aut.jp/search/single.php?serial=169 https://www.hokuyo- [7] Johannes Meyer and Stefan Kohlbrecher (2014, Apr.) wiki.ros.org [Online] http://wiki.ros.org/hector_slam [8] (2018, Sep.) ihomestore.vn [Online] https://ihomestore.vn/tim-hieu-themve-chuc-nang-lap-ban-do-cua-robot-hut-bui-thong-minh [9] Stefan Kohlbrecher (2012, http://wiki.ros.org/hector_mapping Aug.) wiki.ros.org [Online] [10] Stefan Kohlbrecher (2014, http://wiki.ros.org/hector_geotiff Aug.) wiki.ros.org [Online] [11] Stefan Kohlbrecher (2012, June) https://wiki.ros.org/hector_trajectory_server wiki.ros.org [Online] [12] Dieter Fox, Wolfram Burgardy, Frank Dellaert, and Sebastian Thrun, "Monte Carlo Localization: Efficient Position Estimation for Mobile Robots" [13] Y Gabriely and E Rimon, "Spiral-STC: an on-line coverage algorithm of grid environments by a mobile robot," May 2002 [14] wikipedia.org [Online] https://en.wikipedia.org/wiki/Boustrophedon_cell_decomposition [15] Marija Dakulovic, Sanja Horvatic, and Ivan Petrovic, "Complete Coverage D* Algorithm for Path Planning of a Floor-Cleaning Mobile Robot," Aug 2011 [16] Anthony Stentz, "The D* Algorithm for Real-Time Planning of Optimal Traverses," Sep 1994 54 ... thuật toán CCD* vào toán iRobot 45 4.5 Kết luận 45 CHƢƠNG 5.1 5.2 5.3 CHƢƠNG TRÌNH ĐIỀU KHIỂN IROBOT 47 Chƣơng trình điều khiển robot hút bụi iRobot 47 5.1.1... thơng tin truyền thông, Trƣờng Đại học Bách Khoa Hà Nội Tên đề tài: Xây dựng chƣơng trình điều khiển robot hút bụi iRobot môi trƣờng ROS Giáo viên hƣớng dẫn Ký ghi rõ họ tên Lời cảm ơn Trƣớc hết,... THẠC SĨ Họ tên tác giả luận văn: Trần Minh Hải Đề tài luận văn: Xây dựng chƣơng trình điều khiển robot hút bụi iRobot môi trƣờng ROS Chuyên ngành: Hệ thống thông tin Mã số HV: CB180153 Tác giả,