Chương 1 TỔNG QUAN 1. Giới thiệu Điều hướng cho robot di động di chuyển theo quỹ đạo mong muốn được nghiên cứu từ rất lâu, đã đạt được nhiều thành công lớn. Phương pháp điều hướng cổ điển là dựa vào các loại cảm biến để tính toán khoảng cách, hướng, gia tốc để tính toán, quyết định quỹ đạo di chuyển của robot như Hình 1. Bên cạnh những thành tựu đó, những nhược điểm khách quan do sai số từ các cảm biến đưa về cho robot cũng không thể loại bỏ, vì thế mục tiêu trên vẫn chưa được giải quyết triệt để.
Việc điều khiển robot chỉ dựa vào các cảm biến trên robot thôi vẫn chưa đủ để giải quyết vấn đề trên. Dần dần, các nhà nghiên cứu nhận thấy rằng 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 có thể “đưa ra quyết định” đúng đắn nhằm di chuyển đến đích chính xác. Một giải pháp khác cũng đã được nghiên cứu và phát triển là thực hiện nhận dạng vật mốc dựa trên xử lý ảnh thu về từ camera Kinect [1]. Trong phương pháp này, robot sẽ nhận dạng vật mốc nhân tạo hoặc vật mốc tự nhiên để xác định tọa độ hiện tại, và từ đó giúp cho việc điều hướng robot dễ dàng hơn.1: Robot di chuyển dựa vào cảm biến 1 Thế nhưng, quá trình xử lý ảnh để nhận dạng vật mốc chỉ đạt hiệu quả khi vật mốc nằm trong vùng quét của camera, và sự điều hướng cho robot không đạt được mức độ mịn mong muốn.
Điều này mở thêm một hướng phát triển là cung cấp cho robot một bản đồ 2D hoặc 3D, lúc này robot sẽ phối hợp dữ liệu hiện tại với bản đồ được cung cấp sẵn để xác định tọa độ và xây dựng quỹ đạo tốt hơn. Trong thế giới thực, để quan sát toàn bộ đối tượng, người ta thường quan sát với nhiều góc nhìn, mỗi góc nhìn tương ứng với vị trí quan sát khác nhau. Xét đối với Kinect, tương ứng với việc đặt Kinect ở các vị trí khác nhau để ghi nhận cùng 1 đối tượng. Tuy nhiên, dữ liệu thu nhận được từ Kinect lại rời rạc, mỗi lần thực hiện chỉ ghi nhận được thông tin ảnh màu RGB và ảnh độ sâu tại ví trí hiện tại.
Khi ánh xạ vị trí của các điểm ảnh này trong không gian 3D, tức là á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 hơn 1 frame, thì các điểm được ánh xạ lên không gian 3D sẽ bị chồng chéo lên nhau. Với tình trạng chồng chéo các frame ảnh như trong Hình 1.2 [3], chúng ta cần chuyển từng frame ảnh lên hệ trục tọa độ trong thế giới thực. Nhưng vấn đề đặt ra ở đây là với từng frame rời rạc thu được, thì làm thế nào để chuyển sang hệ trục tọa độ thế giới thực một cách chính xác? Hướng giải quyết cho vấn đề này là các frame ảnh 2D hay đám mây điểm ảnh 3D sẽ được sắp xếp lại với nhau và ghép lại tạo thành một bản đồ toàn cục của môi trường xung quanh như trong Hình 1.
Vấn đề sắp xếp nhiều đám mây điểm 3D khác nhau vào một mô hình hoàn chỉnh được gọi là registration and alignment.2: Hiện tượng chồng ảnh của 3 frame ảnh trên cùng 1 hệ trục của Kinect 2 Hình 1.3: Các đám mây rời rạc trong không gian Hình 1.4 [16] là một ví dụ về sáu đám mây điểm thu được từ nhiều hướng nhìn khác nhau. Vì mỗi một đám mây chỉ là một phần nhỏ của thế giới xung quanh, bắt buộc phải tìm cách để ghép chúng lại với nhau, mà kết quả hoàn thành như trong Hình 1. Phương pháp dùng để ghép các đám mây chính là việc tìm kiếm các điểm tương đồng trong bộ dữ liệu đầu vào, và ước tính các hàm biến đổi để xoay và biến đổi bộ dữ liệu riêng biệt vào một hệ tọa độ toàn cục.4: Ví dụ về các góc nhìn khác nhau ở các vị trí khác nhau Hình 1.5: Các đám mây đã được ghép lại thành một tổng thể 3 1. Kết quả nghiên cứu trong và ngoài nước Lập bản đồ có nhiều cách thức khác nhau như dùng thiết bị định vị toàn cầu GPS gắn trên ô tô như Hình 1.
Khi ô tô di chuyển, tọa độ hiện tại của ô tô luôn được cập nhật gửi về máy chủ. Từ đó máy chủ sẽ tính toán và vẽ được bản đồ 2D của môi trường mà ô tô di chuyển. Tuy nhiên, độ chính xác của thiết bị GPS không tốt, sai số từ vài mét cho đến vài chục mét. Do đó, phương pháp định vị dùng GPS chỉ thích hợp với việc lập bản đồ ở quy mô lớn.6: Dùng xe ô tô được trang bị thiết bị định vị GPS để lập bản đồ Một phương pháp khác là lập bản đồ dựa vào công nghệ RFID như trong Hình 1.
Ở phương pháp này, robot sẽ xác định vị trí của mình và lập bản đồ dựa trên khoảng cách đọc thẻ tag của bộ Reader và góc mở của vùng phủ sóng từ hai ăng ten Reader. Từ đó, robot sẽ tính toán được chiều dài và góc để tính toán cho việc lập bản đồ. Tuy nhiên, do khoảng cách đọc của bộ Reader không cao nên không thể điều hướng robot tốt được, mặt khác, bắt buộc phải gắn thẻ tag ở những vị trí có khoảng cách đặt trước nằm trong giới hạn của bộ Reader. Dùng robot được trang bị đầu đọc RFID và các thẻ tag để lập bản đồ Một đề tài khác sử dụng camera Kinect Xbox 360 là thực hiện nhận dạng vật mốc nhân tạo [1] trong môi trường trong nhà.
Đề tài này sử dụng phần mềm mã nguồn 4 mở phổ biến OpenCV phát huy khả năng nhận biết độ sâu của camera. Do robot chỉ nhận dạng vật mốc trong vùng nhìn của camera thôi, nên bắt buộc các vật mốc nhân tạo này phải bố trí theo một trật tự định trước (bố trí theo màu, khoảng cách giữa các vật mốc như trong Hình 1. Do đó, việc xử lí thông tin bị giới hạn trong vùng nhìn của camera cũng chính là nhược điểm của nghiên cứu này.8: Định vị robot di động sử dụng vật mốc nhân tạo Trong Robot tự hành tránh vật cản sử dụng thiết bị Kinect [2], tác giả Nguyễn Hồng Đức và Nguyễn Văn Đức đã trình bày phương pháp điều hướng tránh vật cản dùng phương pháp xử lý ảnh dùng camera Kinect, và phần mềm thực hiện là PCL. Giới hạn của đề tài này cũng chính là chỉ xử lí tránh vật cản trong vùng nhìn của robot mà thôi.9: Robot tự hành tránh vật cản Trong 3D is here: Point Cloud Library (PCL) [7], tác giả Radu Bogdan Rusu trình bày về phần mềm PCL và các tính năng của nó.
Bên cạnh đó, trong Robust registration of 2D and 3D point sets [8], tác giả Andrew trình bày phương pháp ghi tập dữ liệu điểm ảnh và thuật toán ICP dùng để ghép các tập dữ liệu điểm ảnh. 5 Một nghiên cứu khác cũng sử dụng camera Kinect sử dụng phần mềm mã nguồn mở Point Cloud Library để thực hiện scan 3D [4] một vật thể trong không gian. Nghiên cứu này thực hiện chuyển vật thể thành các điểm ảnh rời rạc trong không gian 3D, hay còn gọi là đám mây điểm ảnh, có gốc tọa độ là camera, sau đó xoay dần vật thể và tiếp tục thu thập đám mây điểm ảnh và cuối cùng ghép chúng lại với nhau dựa trên các điểm tương đồng tạo thành vật thể 3D. Giới hạn của nghiên cứu này là vật thể được nhận dạng trong môi trường (nền) là không đổi.10: Scan 3D một đối tượng Một nghiên cứu gần đây nhất là Implementing Kinect Sensor for Building 3D Maps of Indoor Environments [14], tác giả Wael R.
Abdulmajeed và cộng sự đã xây dựng thành công bản đồ 3D của môi trường trong nhà. Với kết quả này, tác giả đã nhấn mạnh ưu điểm của camera Kinect, kích thước bản đồ rất gần với kích thước thực, và ít kém chi phí hơn so với phương pháp dùng cảm biến laser hay sonic.11: Bản đồ 3D môi trường trong nhà 6 1. Mục tiêu của đề tài Đề tài này trình bày phương pháp ghép các đám mây điểm ảnh trong không gian và thực hiện chiếu đám mây toàn cục hay bản đồ 3D này xuống mặt phẳng nền nhà tạo ra đám mây 2D. Để đạt được mục tiêu tạo ra bản đồ 2D này, robot sẽ được điều hướng theo quỹ đạo định trước.
Robot sẽ được tính toán khoảng cách giới hạn dựa vào tốc độ di chuyển và góc quay giới hạn theo thông số góc mở của camera, ghi nhận các đám mây điểm ảnh trong từng vị trí mà robot đi qua. Kết quả của đề tài này nhằm phối hợp với phương pháp nhận dạng vật mốc tự nhiên để điều hướng cho robot di động đạt hiệu quả cao hơn trong lần điều hướng tiếp sau, hoặc dùng để cung cấp cho robot khác cũng được điều hướng trong môi trường cũ này. Nội dung thực hiện của đề tài Quyển luận văn này trình bày phương pháp thực hiện ghép nhiều đám mây điểm ảnh, tính toán giá trị giới hạn và kết quả thực nghiệm, sau đó đánh giá kết quả thực nghiệm đạt được để đề ra hướng phát triển. Chương 2 trình bày cơ sở lý thuyết về khởi tạo đám mây, phương pháp lọc và giảm số lượng điểm ảnh, tìm và ghép đám mây điểm ảnh dựa vào cặp điểm tương đồng giữa hai đám mây.
Thuật toán thực hiện được trình bày chi tiết ở chương 3 dựa trên nền tảng cơ sở lý thuyết ở chương 2. Nội dung thực hiện của đề tài được trình bày ở chương 4 và hướng phát triển được trình bày ở chương 5. 7 Chương 2 CƠ SỞ LÝ THUYẾT Nội dung chương 2 trình bày về thông số cơ bản của camera Kinect được dùng trong đề tài, phần mềm Point Cloud Library để tính toán, ghép các đám mây điểm ảnh và cơ sở lý thuyết để thực hiện việc ghép các đám mây điểm ảnh. Giới thiệu chung về Kinect Xbox 360 và Point Cloud Library 2.
Kinect Xbox 360 Camera Kinect là sản phẩm của Microsoft dựa trên công nghệ camera được phát triển bởi PrimeSense, những sản phẩm đầu tiên được bán tại Bắc Mỹ vào ngày 4 tháng 11 năm 2010 [17]. Sản phẩm Kinect Xbox 360 (minh hoạ trong Hình 2.1) được dùng vào mục đích nghiên cứu xử lý ảnh 3D, phát hiện cử chỉ (gesture recognition), bám theo người (body tracking) và nhiều mục đích khác. Đối với mỗi điểm ảnh trong hình ảnh sâu sắc về độ phân giải 640x480 pixel được cung cấp một giá trị độ sâu trong khoảng 0-2048 (11bit). Để sử dụng các thông tin này, một mối quan hệ giữa giá trị cảm biến và khoảng cách thực tế đã được thành lập.