(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library

80 4 0
(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library

Đ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

(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ ĐÀO HỒNG PHONG XÂY DỰNG BẢN ĐỒ 2D CHO ROBOT DI ĐỘNG SỬ DỤNG POINT CLOUD LIBRARY NGÀNH: KỸ THUẬT ĐIỆN TỬ - 605270 Hướng dẫn khoa học: TS Ngơ Văn Thun Tp Hồ Chí Minh, năm 2014 MỤC LỤC Chương 1: TỔNG QUAN 1.1 Giới thiệu .1 1.2 Kết nghiên cứu nước 1.3 Mục tiêu đề tài 1.4 Nội dung thực đề tài Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu chung Kinect Xbox 360 Point Cloud Library 2.1.1 Kinect Xbox 360 2.1.2 Point Cloud Library .9 2.2 Các bước ghép đám mây 11 2.3 Ghi liệu đám mây sử dụng phương pháp dời tọa độ .13 2.3.1 Chuyển từ tham chiếu cục thành tham chiếu toàn cục dùng ma trận biến đổi 13 2.3.2 Khởi tạo offset 15 2.4 Ghi đám mây sử dụng ICP (Iterative Closest Points) .16 2.4.1 Thuật toán ICP .16 2.4.2 Ghép đám mây điểm chồng phần sử dụng ICP 19 2.5 Ghi đám mây sử dụng SAC-IA 20 2.6 Quyết định lồng đám mây điểm 22 2.7 Xử lí cuối 23 2.8 Chuẩn bị cho lần lặp 23 2.9 Kỹ thuật lọc đám mây để giảm số lượng điểm ảnh 24 I 2.9.1 Lọc thông dải .24 2.9.2 Giảm số lượng mẫu (Down Sampling) 25 2.9.3 Loại bỏ Outliers 25 2.9.4 Xây dựng lại bề mặt .26 2.10 Kỹ thuật xác định cặp điểm tương đồng hai ảnh .26 2.11 Kỹ thuật xác định vị trí 3D (Pose) tương đối hai đám mây 28 2.11.1 Tối ưu hóa ma trận biến đổi hai đám mây điểm 29 2.11.2 Xác định ma trận biến đổi tốt [3] .30 Chương 3: THUẬT TOÁN THỰC HIỆN .32 3.1 Khởi tạo đám mây điểm 34 3.2 Giảm số lượng điểm ảnh cho đám mây điểm ảnh 34 3.3 Tìm điểm đặc trưng đám mây .35 3.4 Tìm điểm tương đồng hai đám mây 36 3.5 Tìm ma trận biến đổi hai đám mây điểm ảnh 39 3.6 Ghép nhiều đám mây điểm khác sử dụng thuật toán SAC-IA ICP .40 3.7 Chiếu đám mây xuống nhà 42 Chương 4: KẾT QUẢ 43 4.1 Thi công phần cứng phần mềm sử dụng .43 4.2 Giảm số lượng điểm ảnh 45 4.3 Thực ghép hai đám mây điểm ảnh với góc xoay 50o 46 4.4 Thực ghép hai đám mây robot tịnh tiến phía trước 47 4.5 Thực ghép liên tiếp nhiều đám mây chiếu xuống tạo đồ 2D .49 II Chương 5: KẾT LUẬN 51 5.1 Kết đạt 51 5.2 Hướng phát triển đề tài .51 III PHỤ LỤC: DANH SÁCH CÁC HÌNH HÌNH TRANG Hình 1.1: Robot di chuyển dựa vào cảm biến Hình 1.2: Hiện tượng chồng ảnh frame ảnh hệ trục Kinect Hình 1.3: Các đám mây rời rạc khơng gian Hình 1.4: Ví dụ góc nhìn khác vị trí khác Hình 1.5: Các đám mây ghép lại thành tổng thể Hình 1.6: Dùng xe tơ trang bị thiết bị định vị GPS để lập đồ Hình 1.7 Dùng robot trang bị đầu đọc RFID thẻ tag để lập đồ Hình 1.8: Định vị robot di động sử dụng vật mốc nhân tạo Hình 1.9: Robot tự hành tránh vật cản Hình 1.10: Scan 3D đối tượng Hình 1.11: Bản đồ 3D mơi trường nhà Hình 2.1: Thiết bị Kinect Hình 2.2: Logo số Module quan trọng PCL Hình 2.3: Cấu trúc tập tin *.pcd 10 Hình 2.4: Các bước thực ghi cặp liệu đám mây điểm ảnh 12 Hình 2.5: Bản đồ kết cộng đám mây sau xử lí roto-translation (a) sau xử lí ghi liệu dùng SAC-IA ICP (b) 12 Hình 2.6: Lưu đồ xây dựng lại đồ 13 Hình 2.7: Quá trình chuyển đổi đám mây tham chiếu 14 Hình 2.8: Hệ tọa độ camera Kinect chung quanh 14 Hình 2.9: Hệ tọa độ toàn cục mối liên quan với hệ tọa độ Kinect 15 Hình 2.10: Lưu đồ ghi liệu sử dụng ICP 16 Hình 2.11: Hai đám mây điểm chồng lấp phần 19 Hình 2.12: Lưu đồ ghi đám mây sử dụng SAC-IA ICP 21 IV Hình 2.13 : Lưu đồ tìm tính cần thiết cho xếp SAC-IA 21 Hình 2.14: Quy trình định lồng đám mây ghi vào đồ 23 Hình 2.15 Các bước lọc đám mây điểm ảnh 24 Hình 2.16: Mơ tả lọc dạng Voxel Grid 25 Hình 2.17: Các cặp điểm tương đồng hai đám mây điểm ảnh 27 Hình 2.18: Áp dụng Box filter, bước trình tăng tốc xác định điểm đặc trưng SURF 28 Hình 2.19: Mơ tả đặc trưng thơng qua hướng thông tin vùng lân cận 28 Hình 2.20: Đặc trưng điểm ảnh 28 Hình 2.21: Minh họa việc dùng RANSAC áp dụng cho việc tìm đường thẳng mặt phẳng 30 Hình 2.22: Minh họa kết ghép đám mây sau áp dụng Ransac Levenberg–Marquardt để xác định ma trận biến đổi 32 Hình 3.1: Lưu đồ tổng quát thực đề tài 33 Hình 3.2: Lưu đồ thuật tốn khởi tạo đám mây điểm 34 Hình 3.3: Đám mây điểm ảnh thực tế thu từ camera liệu đám mây 34 Hình 3.4: Lưu đồ lọc đám mây dùng Voxel Grid 35 Hình 3.5: Lưu đồ tìm điểm đặc trưng đám mây 36 Hình 3.6: Lưu đồ điều khiển robot xoay phải 50o 37 Hình 3.7: Vùng trùng lắp hai đám mây điểm ảnh 37 Hình 3.8: Tìm độ rộng vùng giao hai frame ảnh 38 Hình 3.9: Tìm chiều cao vùng giao hai frame ảnh 38 Hình 3.10: Lưu đồ xác định cặp điểm tương đồng hai đám mây 39 Hình 3.11: Hàm biến đổi điểm ảnh đám mây gốc đến điểm ảnh đám mây đích 40 Hình 3.12: Lưu đồ ghép liên tiếp nhiều đám mây điểm ảnh dùng SAC-IA kết hợp ICP 40 Hình 3.13: Bề rộng frame ảnh robot cách tường mét 41 Hình 3.14: Chiếu điểm ảnh xuống nhà 42 Hình 3.15: Lưu đồ thực chiếu đám mây điểm ảnh xuống mặt phẳng nhà 42 Hình 4.1: Robot di động dùng đề tài 43 V Hình 4.2: Board điều khiển robot máy tính sử dụng đề tài 44 Hình 4.3: Hai đám mây điểm ảnh vật mốc tự nhiên (ghế) trước ghép 46 Hình 4.4: Ma trận biến đổi từ đám mây đích vào đám mây nguồn 46 Hình 4.5: Ghép hai đám mây điểm ảnh dùng SAC-IA ICP 47 Hình 4.6: Hai đám mây điểm ảnh ghép thành công với vật mốc tự nhiên ghế 47 Hình 4.7: Vật mốc xa (ảnh trái) vật mốc 48 Hình 4.8: Frame sau tịnh tiến (ảnh phải) 48 Hình 4.9: Hai đám mây điểm ảnh ghép thành công trường hợp robot tịnh tiến phía trước chạm tường 48 Hình 4.10: Hai đám mây điểm ảnh ghép thành cơng trường hợp robot tịnh tiến phía trước có vật mốc 49 Hình 4.11: Các vị trí dừng chụp đám mây điểm ảnh cho trường hợp ghép liên tiếp 49 Hình 4.12: Kết ghép liên tiếp nhiều đám mây chiếu xuống mặt phẳng nhà 50 VI PHỤ LỤC: DANH SÁCH CÁC BẢNG BIỂU Bảng 2.1: Góc mở tiêu cự RGB IR camera Bảng 4.1: Thông số robot di động 44 Bảng 4.2: Bảng mã lệnh điều khiển 44 Bảng 4.3: Thông số cài đặt giao tiếp cổng USB COM 45 Bảng 4.4: Bảng số lượng điểm ảnh frame sau lần lọc 45 VII Chương TỔNG QUAN 1.1 Giới thiệu Điều hướng cho robot di động di chuyển theo quỹ đạo mong muốn nghiên cứu từ lâu, đạt nhiều thành công lớn Phương pháp điều hướng cổ điển dựa vào loại cảm biến để tính tốn khoảng cách, hướng, gia tốc để tính tốn, định quỹ đạo di chuyển robot Hình 1.1 Bên cạnh thành tựu đó, nhược điểm khách quan sai số từ cảm biến đưa cho robot khơng thể loại bỏ, mục tiêu chưa giải triệt để Việc điều khiển robot dựa vào cảm biến robot chưa đủ để giải vấn đề Dần dần, nhà nghiên cứu nhận thấy cần phải phối hợp, tương tác với môi trường xung quanh, giúp robot thêm nhiều thông tin để robot “đưa định” đắn nhằm di chuyển đến đích xác Một giải pháp khác nghiên cứu phát triển thực nhận dạng vật mốc dựa xử lý ảnh thu từ camera Kinect [1] Trong phương pháp này, robot nhận dạng vật mốc nhân tạo vật mốc tự nhiên để xác định tọa độ tại, từ giúp cho việc điều hướng robot dễ dàng Hình 1.1: Robot di chuyển dựa vào cảm biến Thế nhưng, trình xử lý ảnh để nhận dạng vật mốc đạt hiệu vật mốc nằm vùng quét camera, điều hướng cho robot không đạt mức độ mịn mong muốn Điều mở thêm hướng phát triển cung cấp cho robot đồ 2D 3D, lúc robot phối hợp liệu với đồ cung cấp sẵn để xác định tọa độ xây dựng quỹ đạo tốt Trong giới thực, để quan sát toàn đối tượng, người ta thường quan sát với nhiều góc nhìn, góc nhìn tương ứng với vị trí quan sát khác Xét Kinect, tương ứng với việc đặt Kinect vị trí khác để ghi nhận đối tượng Tuy nhiên, liệu thu nhận từ Kinect lại rời rạc, lần thực ghi nhận thông tin ảnh màu RGB ảnh độ sâu ví trí Khi ánh xạ vị trí điểm ảnh khơng gian 3D, tức ánh xạ lên không gian 3D tương ứng với vị trí đặt Kinect (hệ trục camera) Khi có nhiều frame, điểm ánh xạ lên không gian 3D bị chồng chéo lên Với tình trạng chồng chéo frame ảnh Hình 1.2 [3], cần chuyển frame ảnh lên hệ trục tọa độ giới thực Nhưng vấn đề đặt với frame rời rạc thu được, làm để chuyển sang hệ trục tọa độ giới thực cách xác? Hướng giải cho vấn đề frame ảnh 2D hay đám mây điểm ảnh 3D xếp lại với ghép lại tạo thành đồ tồn cục mơi trường xung quanh Hình 1.3 Vấn đề xếp nhiều đám mây điểm 3D khác vào mơ hình hồn chỉnh gọi registration and alignment Hình 1.2: Hiện tượng chồng ảnh frame ảnh hệ trục Kinect PHỤ LỤC 3: CHƯƠNG TRÌNH CHÍNH ĐIỀU KHIỂN ROBOT /* Include thu vien chuan PCL */ //#include #include #include #include #include #include #include #include #include //#include #include #include #include #include #include #include #include #include #include // - Include thu vien giao tiep voi Robot -#include "usbserial_robot.h" #include "source1.h" // - Include namespace into project -using namespace std; using namespace pcl; const const const const const const string string string string string string DIR_PATH DIR_PATH_2 begin_pcd first_pcd second_pcd thirst_pcd const float const float const unsigned int = "F:\\PCD_Saved\\20141025\\"; //< - Path to save the *.pcd = "F:\\PCD_Saved\\cluster\\"; = "pcd_20141019 "; = "pcd_20141019 1"; = "pcd_20141019 2"; = "pcd_20141019 3"; scale nr_maxcorres nr_iteration = 20; = 0.1; //0.01 = 1; //=============================================================================// class SimpleOpenNIViewer { private: int frames_saved; bool save_one; public: SimpleOpenNIViewer () : viewer ("PCL Viewer") { 58 frames_saved = 1; save_one = false; } pcl::visualization::CloudViewer viewer; //=============================================================================// void cloud_cb_ (const pcl::PointCloud::ConstPtr &cloud_current) { if (!viewer.wasStopped()) { viewer.showCloud (cloud_current); if( save_one == true ) { save_one = false; std::stringstream out; out

Ngày đăng: 23/12/2022, 19:18

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan