Luận văn Nghiên cứu phát triển hệ thống định vị và dẫn đường cho robot hoạt động ở môi trường trong nhà
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Nghiên cứu phát triển hệ thống định vị và dẫn đường cho robot hoạt động ở môi trường trong nhà", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- luan_van_nghien_cuu_phat_trien_he_thong_dinh_vi_va_dan_duong.pdf
Nội dung text: Luận văn Nghiên cứu phát triển hệ thống định vị và dẫn đường cho robot hoạt động ở môi trường trong nhà
- ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHAN HOÀNG ANH NGHIÊN CỨU PHÁT TRIỂN HỆ THỐNG ĐỊNH VỊ VÀ DẪN ĐƯỜNG CHO ROBOT HOẠT ĐỘNG Ở MÔI TRƯỜNG TRONG NHÀ LUẬN VĂN THẠC SĨ CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ, TRUYỀN THÔNG Hà Nội, 2020
- ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHAN HOÀNG ANH NGHIÊN CỨU PHÁT TRIỂN HỆ THỐNG ĐỊNH VỊ VÀ DẪN ĐƯỜNG CHO ROBOT HOẠT ĐỘNG Ở MÔI TRƯỜNG TRONG NHÀ Ngành : Công nghệ kỹ thuật điện tử, truyền thông Chuyên ngành : Kỹ thuật điện tử Mã ngành : 8510302.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ, TRUYỀN THÔNG Giảng viên hướng dẫn: GS.TS Chử Đức Trình Hà Nội, 2020
- 1 LỜI CẢM ƠN Trước tiên, tôi xin gửi lời cảm ơn đến các thầy, cô giáo Trường Đại học Công nghệ ĐHQGHN, Khoa Điện tử - Viễn thông đã tận tình giảng dạy và truyền đạt những kiến thức, kinh nghiệm quý giá trong suốt quá trình học tập và nghiên cứu cũng như trong quá trình thực hiện đề tài. Tôi cũng xin gửi lời cảm ơn sâu sắc đến GS.TS Chử Đức Trình đã tận tình hướng dẫn, cung cấp tài liệu, thiết bị trong suốt quá trình thực hiện đề tài này. Hà Nội, tháng 11 năm 2020 Phan Hoàng Anh
- 2 LỜI CAM ĐOAN Luận văn đánh dấu cho những thành quả, kiến thức tôi đã thu nhận được trong quá trình rèn luyện, học tập tại trường. Tôi xin cam đoan luận văn được hoàn thành bằng quá trình học tập và nghiên cứu của tôi. Trong luận văn này tôi có tham khảo một số tài liệu và một số bài báo đều được đưa ra ở phần tài liệu tham khảo. Tôi xin cam đoan những lời trên là sự thật và chịu mọi trách nhiệm trước thầy cô và hội đồng bảo vệ luận văn. Hà Nội, tháng 11 năm 2020 Phan Hoàng Anh
- 3 MỤC LỤC LỜI CẢM ƠN 1 LỜI CAM ĐOAN 2 MỤC LỤC 3 DANH MỤC HÌNH ẢNH 4 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 5 MỞ ĐẦU 6 CHƯƠNG 1. TỔNG QUAN NGHIÊN CỨU 7 1.1. Tổng quan hệ thống dẫn đường cho robot di động 7 1.2. Định vị và xây dựng bản đồ 8 1.3. Lập kế hoạch đường đi 11 1.4. Đề xuất nội dung nghiên cứu 12 CHƯƠNG 2. ĐỀ XUẤT HỆ THỐNG ĐỊNH VỊ VÀ DẪN ĐƯỜNG CHO ROBOT 14 2.1. Xây dựng bản đồ của môi trường 14 2.2. Hệ thống định vị trong nhà cho robot 17 2.3. Lập kế hoạch đường đi cho robot 24 2.4. Hệ thống định vị và dẫn đường cho robot tự hành tại môi trường trong nhà 26 CHƯƠNG 3. CHẾ TẠO ROBOT VÀ THỬ NGHIỆM HỆ THỐNG TRONG NHÀ . 28 3.1. Thiết kế và chế tạo phần cứng 28 3.1.1. Thiết kế khung cơ khí 28 3.1.2. Thiết kế hệ di chuyển bằng bánh đa hướng 29 3.1.3. Thiết kế khối phần cứng tổng thể 30 3.2. Thiết kế phần mềm 32 3.2.1. Hệ điều hành robot (ROS) 32 3.2.2. Giải thuật điều khiển hệ di chuyển bánh xe đa hướng. 33 CHƯƠNG 4. KẾT QUẢ, ĐÁNH GIÁ KHẢO SÁT VÀ ỨNG DỤNG ROBOT 36 4.1. Tạo lập bản đồ phòng 36 4.2. Khảo sát độ chính xác hệ thống định vị 37 4.3. Khảo sát hệ lập kế hoạch đường đi cho robot 39 4.4. Ứng dụng Robot hướng dẫn viên trong phòng trưng bày sản phẩm 41 KẾT LUẬN 45 DANH MỤC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN VĂN 46 TÀI LIỆU THAM KHẢO 47
- 4 DANH MỤC HÌNH ẢNH Hình 1.1 Sơ đồ khối hệ thống dẫn đường cho robot di động 8 Hình 1.2 Minh họa cấu trúc đơn giản của hệ thống GNSS 9 Hình 1.3 Thuật toán dựa trên lưới 12 Hình 1.4 Ví dụ thuật toán tìm đường dựa trên lấy mẫu 12 Hình 2.1 Hình ảnh robot TurtleBot trong thực tế 14 Hình 2.2 Bản đồ căn phòng được xây dựng bởi robot TurtleBot 15 Hình 2.3 Lưu đồ thuật toán SLAM của robot sử dụng Particle Filter 15 Hình 2.4 Robot đang trong quá trình tạo bản đồ sử dụng bộ lọc hạt 16 Hình 2.5 Bản đồ được tích hợp gói phần mềm Costmap2D 16 Hình 2.6 Hệ thống định vị trong nhà để xác định tọa độ robot 17 Hình 2.7 Hệ thống định vị trong nhà IPS 18 Hình 2.8 Phần mềm Dashboard cài đặt cấu hình các thiết bị beacon 19 Hình 2.9 Sơ đồ truyền sóng siêu âm của beacon 20 Hình 2.10 Mô tả thuật toán trilateration trong không gian 2 chiều 21 Hình 2.11 Sơ đồ hệ thống tổng quát 26 Hình 2.12 Đo khoảng cách đến vật thể bằng máy ảnh Realsense 27 Hình 3.1 Khung thân của robot và đế di chuyển 28 Hình 3.2 Nhôm định hình và đai ốc để tạo khung 29 Hình 3.3 Thiết bị phần cứng của khối di chuyển 29 Hình 3.4 Sơ đồ kết nối thiết bị phần cứng của khối di chuyển 30 Hình 3.5 Mô phỏng hành vi di chuyển với hệ 3 bánh xe đa hướng 30 Hình 3.6 Mô tả hệ thống phần cứng của robot 32 Hình 3.7 Kiến trúc của Ros 33 Hình 3.8 Các thông số hệ đế di chuyển 33 Hình 3.9 Đường đi của robot trong một quy trình 34 Hình 3.10 Thuật toán điều khiển robot bám đường đi 35 Hình 4.1 Bản đồ được xây dựng 36 Hình 4.2 Bản đồ qua gói phân tích Costmap2D 37 Hình 4.3 Dữ liệu tọa độ robot theo trục X 37 Hình 4.4 Dữ liệu tọa độ theo trục Y 38 Hình 4.5 Kết quả tọa độ của robot qua bộ lọc Kalman Filter 38 Hình 4.6 Kết quả phóng to tọa độ của robot qua bộ lọc Kalman Filter 39 Hình 4.7 Đường đi tạo ra trên bản đồ 2D 40 Hình 4.8 Robot tránh vật cản chuyển động 41 Hình 4.9 Mô tả hệ thống tổng thể của robot hướng dẫn viên 42 Hình 4.10 Sơ đồ của phòng truyền thống 43 Hình 4.11 Robot đang thuyết minh về khu vực những đặc trưng cơ bản 43
- 5 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT STT Ký hiệu chữ viết tắt Chữ viết đầy đủ 1 IPS Indoor Positioning System 2 ROS Robot Operating System 3 LIDAR Light Detection And Ranging 4 SLAM Simultaneous localization and mapping 5 EKF Extended Kalman Filter 6 IMU Inertial measurement unit 7 DoF Degree of Fredom
- 6 MỞ ĐẦU Robot dịch vụ đang là một xu hướng nghiên cứu và phát triển của nhiều nước trên thế giới hiện nay. Rất nhiều loại robot tân tiến đã được ra đời như robot chăm sóc người nhà, robot nội chợ, robot bệnh viện, robot hướng dẫn sân bay. Một đặc điểm chung giữa những robot này là môi trường hoạt động chủ yếu ở trong nhà. Một robot di chuyển thông minh là robot có khả năng tự động di chuyển linh hoạt trong môi trường có nhiều chướng ngại vật mà không xảy ra hiện tượng, cụ thể là các vật dụng nhiều hình dạng như bàn, ghế, tủ. Trên thế giới hiện nay đã có rất nhiều nghiên cứu giới với các thuật giải và phương pháp khác nhau cho dẫn đường rô bốt trong các môi trường trong nhà. Những nghiên cứu rất đa dạng, sử dụng nhiều loại cảm biến khác nhau và phục vụ nhiều mục đích khác nhau. Tuy nhiên, các hệ thống phổ biến thường có tính đặc thù cho từng loại robot có hình dạng, kiểu dáng nhất định do đặc tính của cảm biến sử dụng. Vì vậy, tính mở rộng của hệ thống đang là bài toán rất được quan tâm. Gần dây, có nhiều sản phầm cảm biến công nghệ cao đã được ra đời nhằm nâng cao tính mở rộng của hệ thống, nhưng đổi lại giá thành rất cao. Mục tiêu của đề tài là nghiên cứu, phát triển một hệ thống định vị và dẫn đường sử dụng kết hợp hệ thống định vị trong nhà IPS và robot tạo lập bản đồ Turtlebot. Hệ thống định vị trong nhà IPS trả về dữ liệu tọa độ có độ chính xác cao và ít bị ảnh hưởng bởi yếu tố môi trường. Robot tạo lập bản đồ TurtleBot là robot phổ biến chuyên dụng trong việc thiết lập bản đồ tại môi trường trong nhà, kết quả cho ra một bản đồ dạng ảnh có thể phân tích. Hệ thống định vị và dẫn đường được phát triển mô-đun hóa, có thể mở rộng cho nhiều bài toán, nhiều loại robot khác nhau. Một robot đã được chế tạo để thử nghiệm hệ thống định vị và dẫn đường. Bên cạnh đó ứng dụng robot hướng dẫn viên cho nhà trưng bày của Đại học Quốc gia cũng đã được phát triển để tích hợp hệ thống.
- 7 CHƯƠNG 1. TỔNG QUAN NGHIÊN CỨU 1.1. Tổng quan hệ thống dẫn đường cho robot di động Những tiến bộ trong công nghệ trong lĩnh vực robot đã có những đóng góp to lớn trong nhiều lĩnh vực công nghiệp và xã hội trong thời gian gần đây. Ngày nay, nhiều ứng dụng của hệ thống robot có thể được tìm thấy trong tự động hóa nhà máy, hệ thống giám sát, hệ thống kiểm soát chất lượng, AGV (phương tiện tự động dẫn đường), chống thảm họa, hỗ trợ y tế, v.v. Ngày càng có nhiều ứng dụng rô bốt nhằm mục đích cải thiện cuộc sống hàng ngày của chúng ta và rô bốt hiện bị bắt gặp thường xuyên hơn bao giờ hết trước khi thực hiện các nhiệm vụ khác nhau [1]. Đối với nhiều ứng dụng như vậy, khả năng di chuyển tự động của robot là một vấn đề quan trọng bắt buộc. Robot di động tự động là những robot có thể thực hiện nhiệm vụ trong môi trường có cấu trúc hoặc không có cấu trúc mà không có sự hướng dẫn liên tục của con người. Robot di động hoàn toàn tự động có khả năng: - Thu thập thông tin về môi trường. - Làm việc trong thời gian dài mà không có sự can thiệp của con người. - Di chuyển toàn bộ hoặc một phần trong môi trường hoạt động của nó mà không cần sự hỗ trợ của con người. - Tránh các tình huống có hại cho con người, tài sản hoặc bản thân, trừ khi đó là một phần của thông số kỹ thuật thiết kế. Robot di động tự động cũng có thể học hoặc đạt được các khả năng mới như điều chỉnh các chiến lược để hoàn thành (các) nhiệm vụ của nó hoặc thích ứng với sự thay đổi của môi trường xung quanh [2]. Cho bất kỳ cỗ máy di chuyển tự hành nào, khả năng định hướng trong môi trường hoạt động của chúng là rất quan trọng. Khả năng tránh các tình huống nguy hiểm như va chạm và ở các điều kiện không an toàn được đặt lên hàng đầu(nhiệt độ, bức xạ, tiếp xúc với thời tiết, v.v)[3]. Dẫn đường cho robot có nghĩa là robot có khả năng xác định được vị trí của chính nó trong hệ quy chiếu của nó và sau đó lập kế hoạch đường đi tới một số vị trí mục tiêu. Để dẫn đường trong môi trường của nó, robot hoặc bất kỳ thiết bị di động nào khác yêu cầu một bản đồ của môi trường và khả năng phân tích bản đồ đó. Dẫn đường có thể được định nghĩa là sự kết hợp của 3 chức năng cơ bản: - Tự định vị - Xây dựng và phân tích bản đồ - Lập kế hoạch đường đi Một số hệ thống định vị và dẫn đường của robot sử dụng kỹ thuật tạo lập bản đồ và định vị đồng thời để tạo ra các bản 3D của môi trường xung quanh chúng. Định vị cho robot biểu thị khả năng robot thiết lập vị trí và định hướng của chính nó trong hệ quy chiếu. Lập kế hoạch đường đi thực sự là một phần mở rộng của định vị, trong đó nó yêu cầu xác định vị trí hiện tại của robot và vị trí của mục tiêu, cả hai đều cần nằm trong một hệ quy chiếu hoặc hệ tọa độ. Xây dựng bản đồ có thể ở dạng bản đồ hệ mét hoặc bất kỳ ký hiệu nào mô tả các vị trí trong hệ quy chiếu robot. Sơ đồ khối của hệ thống dẫn đường cho robot di động được thể hiện trên Hình 1.1.
- 8 Hình 1.1 Sơ đồ khối hệ thống dẫn đường cho robot di động 1.2. Định vị và xây dựng bản đồ Để hoạt động được trong môi trường thực tế, robot luôn phải biết được mình đang ở đâu và đang cần đi đến đâu, cuối cùng là đưa ra quyết định và tự mình đi đến. Quá trình này cần sự hỗ trợ của một bộ các cảm biến và chương trình kết nối các cảm biến lại với nhau để cho ra kết quả là vị trí của Robot. Kết hợp tất cả các phần lại với nhau sẽ cho ra hệ thống định vị. Hệ thống này giúp cho Robot xác định được vị trí của mình, nó trả về dữ liệu tọa độ của Robot là một trong những dữ liệu đầu vào quan trọng cho các thuật toán dẫn đường cho Robot trong không gian và cuối cùng Robot có thể xác định được con đường cần phải đi đến đích. Trên thế giới hiện nay có rất nhiều hệ thống định vị được sử dụng rộng rãi trong xã hội. Tuy nhiên, hệ thống định vị về cơ bản được phân ra làm ba loại theo không gian hoạt động: Hệ thống định vị không gian ngoài trái đất, chuỗi hệ thống điều hướng toàn cầu bằng vệ tinh (viết tắt là GNSS) và hệ thống định vị trong nhà (viết tắt là IPS). Hệ thống định vị không gian ngoài trái đất sử dụng sóng vô tuyến để xác định vị trí của các tàu không gian ngoài vũ trụ. Các tàu vũ trụ đều được lắp đặt các bộ phát sóng và thu sóng để thu phát các dải sóng vô tuyến, các dải sóng đấy sẽ đi qua quá trình xử lý, từ đó các phi hành gia sẽ biết rõ được vị trí cụ thể của con tàu. Dữ liệu về góc và góc quay có thể thu được bằng cách sử dụng các vì sao làm điểm mốc để tính toán. Chuỗi hệ thống điều hướng toàn cầu bằng vệ tinh là sự hợp tác giữa các quốc gia đang sở hữu vệ tinh định vị cung cấp dữ liệu vị trí cho mục đích dân sự. Đây là phương pháp đang được sử dụng rộng rãi nhất hiện nay. Nó có thể xác định vị trí không gian ba chiều (Kinh độ, vĩ
- 9 độ và cao độ) hiện tại của vật thể trên bề mặt trái đất cũng như thời gian bằng cách sử dụng một bộ thu sóng chuyên dụng dùng để xử lý sóng vô tuyến thu được từ các cụm vệ tinh với độ chính xác từ 2m đến 20m và 10ns. Còn các vệ tinh sẽ thu được tọa độ của mình bằng cách nhận sóng vô tuyến từ các trạm phát sóng cố định trên mặt đất. Hệ thống cần phải thu được sóng của ít nhất ba vệ tinh. Từ đó bằng các phép tính cơ bản về khoảng cách, kết quả thu được là tọa độ của vật thể. Trên thế giới hiện nay có 6 quốc gia đang triển khai vệ tinh định vị với độ phủ sóng toàn cầu, trong đó nổi bật nhất là GPS của Mỹ và GLONASS của Nga. Chuỗi hệ thống điều hướng toàn cầu bằng vệ tinh đã giúp ích rất nhiều trong công cuộc phát triển khoa học kỹ thuật với một loạt các ứng dụng trong hầu như mọi lĩnh vực. Hình 1.2 Minh họa cấu trúc đơn giản của hệ thống GNSS Tuy nhiên, mặc dù sóng vô tuyến cho kết quả định vị tối ưu nhất, trong quá trình di chuyển chúng dễ bị phản xạ bởi các vật cản hoặc bị giảm tốc độ truyền trong các tầng mây đối lưu, vậy nên chuỗi hệ thống điều hướng toàn cầu bằng vệ tinh chỉ sử dụng được ở ngoài trời. Điều đó đòi hỏi cần phải có các hệ thống ra đời phục vụ cho các không gian đặc biệt hơn mà sóng vô tuyến không thể vươn tới được. Các không gian đấy có thể là văn phòng, bảo tàng, rạp chiếu phim, hầm mỏ, Hệ thống định vị trong nhà ra đời để đáp ứng điều kiện đó. Đây là hệ thống có thể áp dụng một trong nhiều công nghệ cảm biến khác nhau để thu thập và phân tích các tín hiệu từ ánh sáng, sóng, từ trường, hình ảnh, âm thanh hoặc thậm chí là xử lý ảo bằng các thuật toán thống kê. Mỗi loại tín hiệu đều có ưu nhược điểm riêng. Bước xử lý tín hiệu để cho ra kết quả định vị cũng sử dụng nhiều phương pháp khác nhau, ví dụ như: Đo khoảng cách từ vật thể đến các điểm cố định đã biết vị trí (Có thể là điểm phát wifi, điểm phát sóng vô tuyến, điểm phát Bluetooth, ), hoặc các điểm được phát hiện và gán nhãn là điểm cố định một cách tự động nhờ phân tích hình ảnh, laser (hay còn gọi là LIDAR), âm thanh, , đo từ tính; ước lượng vị trí; Hệ thống định vị trong nhà tuy là một hệ thống mới nhưng đã được sử dụng rộng rãi trong nhiều lĩnh vực như công nghiệp, thương mại, quân sự, [4].
- 10 Định vị robot di động được chia thành 4 loại tùy thuộc vào đặc điểm của môi trường hoạt động và trạng thái ban đầu của robot [5]. - Loại 1: liên quan đến tư thế của robot tại thời điểm ban đầu. Đây là loại phân chia phổ biến nhất, nhiều tài liệu chỉ đề cập đến loại phân chia này: ● Định vị toàn cục (tuyệt đối): tư thế ban đầu của robot không được biết trước, xác định vị trí của robot dựa trên các cột mốc dẫn đường, khớp bản đồ hay hệ thống định vị toàn cầu (GPS)[6-8] ● Định vị cục bộ (tương đối) : tư thế ban đầu của robot được biết trước, ước tính vị trí và hướng của robot thông qua việc tích hợp thông tin từ bộ lập mã hoặc các cảm biến quán tính. Phương pháp hay sử dụng trong định vị cục bộ là dead-reckoning. - Loại 2: liên quan đến đặc điểm của môi trường hoạt động: ● Định vị trong môi trường tĩnh: chỉ có robot di chuyển trong khi các vật khác giữ nguyên vị trí vì thế chỉ cần quan tâm tới tư thế của robot [9-11] ● Định vị trong môi trường động: vị trí và cấu hình của các vật thay đổi theo thời gian vì thế vấn đề định vị sẽ trở nên khó khăn khi phải tính đến cả những yếu tố thay đổi của môi trường hoạt động. - Loại 3: liên quan đến vấn đề thuật toán định vị có tham gia vào quá trình điều khiển chuyển động của robot [12]: ● Định vị thụ động: mô đun định vị làm việc như một bộ quan sát, việc điều khiển robot không bao gồm vấn đề định vị ● Định vị chủ động: các thuật toán định vị điều khiển robot theo hướng tối thiểu hóa sai số định vị. - Loại 4: liên quan đến số lượng robot hoạt động: ● Định vị đơn robot: dữ liệu chỉ cần tập hợp trên một nền robot đơn, không quan tâm tới vấn đề truyền thông. ● Định vị đa robot: ngoài việc định vị cho một robot thì cần quan tâm tới vấn đề truyền thông giữa các robot Đồng thời định vị và tái tạo môi trường (SLAM) [13-14] là vấn đề được biết đến khá phổ biến với những ứng dụng liên quan đến điều khiển tự động (bao gồm xe tự hành, các thiết bị robot thông minh, thiết bị bay tự động). Các cảm biến cung cấp những dữ liệu để xây dựng hình ảnh xung quanh chúng và vị trí của chúng trong môi trường đó. Từ đó, thiết bị (robot, xe) có thể định vị đang ở đâu, trạng thái, tư thế của nó trong môi trường để tự động tìm đường đi trong môi trường hiện tại. Ban đầu hai vấn đề về định vị và tái tạo môi trường được nghiên cứu độc lập, tuy nhiên khi nhận thấy mối liên quan giữa hai vấn đề này: ● Định vị: cần xác định vị trí hiện tại của thiết bị dựa trên bản đồ tái tạo. ● Tái tạo bản đồ: cần xác định vị trí của đối tượng trong bản đồ để xây dựng bản đồ chính xác nhất và ít sai số nhất. Trong giai đoạn 1985 – 1990, Raja Chatila và Jean-Paul Laumond (1985) và Randall Smith (1990) đã đề xuất gộp hai vấn đề với nhau để nghiên cứu. Một thời gian sau đó, SLAM ra đời.
- 11 Các cảm biến phục vụ cho SLAM có thể được chia thành hai loại: cảm biến ngoại vi và cảm biến nội vi. Cảm biến ngoại vi (exteroceptive sensor) có nhiệm vụ nhận và đo thông tin về các thành phần ở môi trường xung quanh. Một số cảm biến ngoại vi phổ biến có thể được kể đến như cảm biến siêu âm, cảm biến phát hiện ánh sáng và phạm vi (LiDAR), cảm biến hình ảnh, Cảm biến siêu âm là thiết bị sử dụng sóng âm thanh với tần số cao để dò tìm và xác định vị trí của đối tượng. Cảm biến phát hiện ánh sáng và phạm vị là thiết bị sử dụng tia laser để xác định khoảng cách đến một đối tượng, phương pháp được sử dụng phổ biến là bắn một chùm tia laser đến đối tượng và đo thời gian phản xạ lại từ đối tượng về nơi bắn tia laser. Cảm biến hình ảnh thu thập hình ảnh từ môi trường xung quanh. Cảm biến nội vi (proprioceptive sensor) là những cảm biến giúp cho thiết bị có thể đo được tốc độ, sự thay đổi vị trí và gia tốc của thiết bị. Một số cảm biến nội vi như bộ mã hóa vòng quay, cảm biến gia tốc, con quay hồi chuyển, Bộ mã hóa vòng quay (encoder) là thiết bị được sử dụng phổ biến trong các hệ thống điều khiển tự động để báo vận tốc. Cảm biến gia tốc (accelerometer) là một thiết bị để đo gia tốc ba chiều x, y, z. Con quay hồi chuyển (gyroscope) là thiết bị để đo và duy trì phương hướng. 1.3. Lập kế hoạch đường đi Lập kế hoạch đường đi [15-17] hay còn gọi là định tuyến cho robot là từ vị trí hiện tại robot xác định được đường đi tới vị trí đích. Có thể phân thành hai loại lập kế hoạch đường đi trong môi trường tĩnh và môi trường động. Trong môi trường tĩnh với các vật cản cố định thì sau khi xác định được đường đi tới đích robot sẽ di chuyển theo đúng đường đi đó. Nhưng trong môi trường động hay môi trường chưa xác định trước, quá trình lập kế hoạch đường đi gọi là đường đi toàn cục, khi có bất kỳ sự thay đổi nào ví dụ như có vật cản bất kỳ thì robot sẽ thực hiện tránh vật cản trước sau đó mới tiếp tục thực hiện đường đi toàn cục. Quá trình tránh vật cản được xem như là đường đi cục bộ. Khi lập kế hoạch đường đi cần phải quan tâm đến: không gian cấu hình C, không gian trống Cfree , không gian đích và không gian chướng ngại vật. Khi đó có thể sử dụng các thuật toán dựa trên lưới phủ một lưới lên trên không gian cấu hình hoặc các thuật toán hình học tính toán hình dạng và kết nối của Cfree.
- 12 Hình 1.3 Thuật toán dựa trên lưới Phủ một lưới lên không gian cấu hình và giả sử mỗi cấu hình được xác định bằng một điểm lưới. Tại mỗi điểm lưới, robot được phép di chuyển đến các điểm lưới liền kề miễn là đường giữa chúng nằm hoàn toàn trong Cfree. Điều này làm tùy ý tập hợp các hành động và các thuật toán tìm kiếm được sử dụng để tìm đường dẫn từ đầu đến mục tiêu. Phương pháp này yêu cầu thiết lập độ phân giải lưới. Tìm kiếm nhanh hơn với các lưới thô hơn, nhưng thuật toán sẽ không tìm thấy đường dẫn qua các phần hẹp của Cfree. Tuy nhiên số lượng các điểm trên lưới tăng lên theo cấp số nhân trong kích thước không gian cấu hình, khiến chúng không phù hợp với các bài toán chiều cao. Bên cạnh đó các phương pháp tiếp cận dựa trên lưới thường cần phải tìm kiếm nhiều lần, ví dụ, khi kiến thức của robot về không gian cấu hình thay đổi hoặc chính không gian cấu hình thay đổi trong quá trình theo dõi đường dẫn. Các thuật toán tìm kiếm theo kinh nghiệm gia tăng lập kế hoạch lại nhanh chóng bằng cách sử dụng kinh nghiệm với các vấn đề lập kế hoạch đường dẫn tương tự trước đó để tăng tốc độ tìm kiếm của họ cho vấn đề hiện tại. Hình 1.4 Ví dụ thuật toán tìm đường dựa trên lấy mẫu Các thuật toán dựa trên lấy mẫu đại diện cho không gian cấu hình với một lộ trình các cấu hình được lấy mẫu. Một thuật toán cơ bản lấy mẫu N cấu hình trong C và giữ lại những cấu hình đó trong Cfree để sử dụng làm cột mốc. Sau đó, một lộ trình được xây dựng kết nối hai mốc P và Q nếu đoạn thẳng PQ hoàn toàn nằm trong Cfree. Một lần nữa, phát hiện va chạm được sử dụng để kiểm tra việc đưa vào Cfree. Để tìm đường kết nối S và G, chúng được thêm vào lộ trình. Nếu một con đường trong lộ trình liên kết S và G, người lập kế hoạch sẽ thành công và trả về con đường đó. Nếu không, lý do không chắc chắn: hoặc không có đường dẫn trong Cfree, hoặc người lập kế hoạch đã không lấy mẫu đủ các mốc quan trọng. Các thuật toán này hoạt động tốt cho không gian cấu hình nhiều chiều, bởi vì không giống như các thuật toán tổ hợp, thời gian chạy của chúng không phụ thuộc theo cấp số nhân vào kích thước của C. Về cơ bản chúng dễ thực hiện hơn. Chúng hoàn thành theo xác suất, có nghĩa là xác suất chúng tạo ra một giải pháp tiếp cận 1 khi dành nhiều thời gian hơn. Tuy nhiên, họ không thể xác định nếu không có giải pháp nào tồn tại. 1.4. Đề xuất nội dung nghiên cứu
- 13 Các hệ thống định vị và dẫn đường cho robot đã được nghiên cứu và phát triển mạnh mẽ từ rất lâu, nhưng chủ yếu là sử dụng dành cho robot hoạt động ngoài trời do nhu cầu ứng dụng. Gần đây, robot dịch vụ đã trở thành xu hướng phát triển trên thế giới, rất nhiều mẫu robot dịch vụ đã ra đời và được ứng dụng thực tế. Do vậy, hệ thống định vị và dẫn đường trong nhà cũng đã được quan tâm và nghiên cứu nhiều hơn. Tuy nhiên, các nghiên cứu vẫn còn rời rạc chưa kết hợp thành hệ thống hoàn chỉnh, mang nhiều tính hàn lâm và ứng dụng thực tiễn ít. Các hệ thống robot đã được sử dụng thì lại có giá thành cao nên chưa phổ biến. Trong nghiên cứu này, tôi tập trung phát triển một hệ thống dẫn đường dành cho robot hoạt động ở môi trường trong nhà, với sự kết hợp của 3 chức năng cơ bản định vị, xây dựng bản đồ và lập kế hoạch đường đi đã nêu trên để hướng tới một robot tự hành trong nhà với sự linh hoạt cao, tốc độ di chuyển nhanh. Cụ thể, dữ liệu định vị cho robot được trích xuất từ mộ hệ thống định vị trong nhà IPS sử dụng công nghệ sóng siêu âm tần số cao, với sai số nhỏ rất phù hợp khi sử dụng tại môi trường trong nhà. Chức năng tạo lập và phân tích bản đồ được phát triển dựa trên các thiết bị phần mềm mã nguồn mở ROS, kết hợp thiết bị cảm biến chiều sâu LIDAR quét 360 độ cho ra một bản đồ dạng 2D với độ chính xác cao cỡ cm so với môi trường thực tế. Cuối cùng, các thuật toán tìm đường đi phổ biến hiện nay được sử dụng dựa trên dữ liệu bản đồ đã phân tích và dữ liệu định vị của robot. Hệ thống được đề xuất với sự kết hợp hoàn chỉnh 3 chức năng của robot là định vị, tạo bản đồ và lập kế hoạch đường đi. Hệ thống được phát triển dưới dạng mô-đun, có thể dễ dàng mở rộng để tích hợp với các hệ thống khác nhau và với các hình dạng khác nhau. Một robot đã được chế tạo nhằm mục đích thử nghiệm, khảo sát và đánh giá hệ thống. Kết quả cho thấy hệ thống hoạt động ổn định, sự kết hợp các tính năng là hiệu quả với độ chính xác cao, robot chạy mượt không xảy ra hiện tượng giật cục. Robot sau khi thử nghiệm thành công đã được ứng dụng làm robot hướng dẫn viên đặt tại phòng trưng bày của Đại học Quốc gia Hà Nội. Hoạt động dẫn đường của robot hướng dẫn viên vẫn ổn định khi có tới hơn 10 khách tham quan, đây là điều đặc biệt giúp hệ thống được đề xuất vượt trội hơn so với một số hệ thống sử dụng chỉ camera hoặc cảm biến laser thông thường.
- 14 CHƯƠNG 2. ĐỀ XUẤT HỆ THỐNG ĐỊNH VỊ VÀ DẪN ĐƯỜNG CHO ROBOT 2.1. Xây dựng bản đồ của môi trường Bản đồ phòng được xây dựng bằng cách sử dụng cảm biến Lidar để quét và lưu trữ bản đồ được tích hợp trên robot Turtlebot di chuyển toàn bộ khu vực trong phòng. TurtleBot là một robot nền tảng tiêu chuẩn ROS. Có 3 phiên bản của dòng TurtleBot. TurtleBot1 được phát triển bởi Tully (Quản lý nền tảng tại Open Robotics) và Melonee (Giám đốc điều hành của Fetch Robotics) từ Willow Garage nghiên cứu dựa trên iRobot’s Roomba, Create, để triển khai ROS. Nó được phát triển vào năm 2010 và được bán từ năm 2011. Năm 2012, TurtleBot2 được phát triển bởi Yujin Robot dựa trên robot nghiên cứu, iClebo Kobuki. Vào năm 2017, TurtleBot3 được phát triển với các tính năng bổ sung các chức năng còn thiếu của người tiền nhiệm và nhu cầu của người dùng. TurtleBot3 sử dụng thiết bị truyền động thông minh ROBOTIS DYNAMIXEL để lái xe. [19] Công nghệ cốt lõi của TurtleBot3 là SLAM và Navigation, làm cho nó phù hợp với robot dịch vụ cho gia đình. TurtleBot có thể chạy các thuật toán SLAM (định vị và lập bản đồ đồng thời) để xây dựng bản đồ và có thể tự hành di chuyển quanh phòng. Hình 2.1 biểu diễn robot Turtlebot với 1 cảm biến Lidar laser quét 360o phục vụ cho mục đích SLAM và Navigation. Hình 2.1 Hình ảnh robot TurtleBot trong thực tế Để xây dựng bản đồ dạng 2D, TurtleBot là một phương án được sử dụng phổ biến hiện nay, đầu ra của gói SLAM được cài đặt trên TurtleBot sẽ là một bản đồ dạng ảnh 2 chiều, loại bản đồ thường được sử dụng trong cộng đồng ROS. Hình 2.2 biểu diễn 1 ví dụ về bản đồ mà TurtleBot đã quét được. Bản đồ được xây dựng rất cơ bản, khiến việc phân tích của chúng ta trở nên dễ dàng hơn. Như trong hình ảnh thể hiện, vùng màu trắng là vùng đất trông mà robot có thể tự do di chuyển, vùng màu đen là vùng bị chiếm bởi vật cản như (tưởng, bàn ghế, tủ), là những vật cố định nơi mà robot không thể di chuyển tới, và cuối cùng là phần màu xám là khu vực chưa được robot khám phá. Bản đồ này sua khi được tạo ra sẽ được sử dụng với mục đích dẫn đường cho robot.
- 15 Hình 2.2 Bản đồ căn phòng được xây dựng bởi robot TurtleBot Robot TurtleBot có thể thực hiện các gói phần mềm SLAM sử dụng các loại thuật toán khác nhau dựa trên nền tảng ROS như Gmapping, Cartographer, hector, karto, tuy nhiên sử dụng phổ biến nhất vẫn là Gmapping. Với dữ liệu cảm biến laser quét 360o, TurtleBot vừa có thể tạo bản đồ, vừa có khả năng tự định vị mình trong bản đồ đó. Đối với thuật toán Gmapping, robot sử dụng bộ lọc của Rao-Blackwellized Particle Filter để tìm ra tọa độ gần với vị trí thực tế của robot trên bản đồ. Hình 2.3 biểu diễn lưu đồ thuật toán của Particle Filter cho quy trình vừa định vị vừa cập nhật bản đồ vào cơ sở dữ liệu. Cách tiếp cận này sử dụng bộ lọc hạt trong đó mỗi hạt mang một bản đồ riêng lẻ của môi trường. Các hạt sau khi được tọa từ dữ liệu cảm biến, sẽ được gán cho một trọng số nhất định, sau quá trình lấy mẫu lại, các hạt có trọng số cao hơn sẽ được giữ lại, các hạt có trọng số thấp hơn sẽ bị loại trừ, từ đó hạt có trọng số lớn nhất sẽ được chỉ định là vị trí hiện tại của robot. Quá trình này diễn ra liên tục mỗi khi có dữ liệu từ cảm biến trả về, robot vừa định vị bản thân, vừa cập nhật bản đồ vào cơ sở dữ liệu tại cuối quá trình. Hình 2.3 Lưu đồ thuật toán SLAM của robot sử dụng Particle Filter
- 16 Hình 2.4 biểu diễn quá trình lấy mẫu hạt khi robot đang trong quy trình thiết lập bản đồ, như trong hình, các hạt là các mũi tên đỏ sau quá trình lấy mẫu lại thì có xu hướng hội tụ về vị trí của robot trong thực tế, trong trường hợp này, nếu robot xoay quanh tại chỗ càng lâu, thì các hạt sẽ càng hội tụ, từ đó cho ra một tọa độ chính xác nhất. Hình 2.4 Robot đang trong quá trình tạo bản đồ sử dụng bộ lọc hạt Bản đồ sau khi được xây dựng sẽ tích hợp thêm Costmap 2D. Costmap 2D là một dạng bản đồ 2D hoặc 3D của phần không gian bị ngăn trở bởi vật cản hoặc tường ngoài môi trường và lan rộng nó ra trong bản đồ dựa trên bản đồ dạng lưới và độ rộng của vùng lan. Hình 2.5 biểu diễn bản đồ tích hợp gói phần mềm Costmap2D của Ros. Những phần lan ra là những phần không thể di chuyển vào để đảm bảo robot không xảy ra sự cố khi đến quá gần vật cản hay tường. Vùng được tô màu đen đậm tượng trưng cho vật cản hay tường của bản đồ costmap, phần xám đậm bao quanh vùng đen tượng trưng cho sự lan ra của vật cản hay tường, độ rộng của nó phụ thuộc vào bán kín của robot, còn đường đa giác màu xanh lá thể hiện cho đường bao quanh robot hay dấu chân của robot. Để robot tránh va chạm, dấu chân của robot không được để tiếp xúc với vùng màu đen, và tâm của robot không được tiếp xúc với vùng màu xám. Hình 2.5 Bản đồ được tích hợp gói phần mềm Costmap2D
- 17 Với chức năng vừa quét bản đồ, vừa định vị này, bản thân TurtleBot là một hệ thống định vị và dẫn đường hoàn chỉnh có thể sử dụng được. Tuy nhiên, ở đây tôi không sử dụng hoàn toàn hệ thống định vị và dẫn đường của TurtleBot, bởi vì TurtleBot chỉ hoạt động thực sự tốt đối với môi trường là tĩnh, ít có vật cản chuyển động như con người, nếu nhưu có quá nhiều người xung quanh, dữ liệu định vị và hệ thống dẫn đường của TurtleBot có thể không được ổn định dẫn đến va chạm. Hơn nữa, với việc chỉ sử dụng cảm biến Lidar quét 360o cũng là một hạn chế đối với 1 robot khi mà robot phải được thiết kế nhỏ gọn và thấp để tránh được những vật cản có hình thù đặc biệt như bàn, ghế, mà cảm biến Lidar chỉ có thể quét được chân bàn, ghế. Vì vậy, hệ thống định vị và dẫn đường của TurtleBot không phù hợp với một môi trường đông người, và đặc biệt với một hệ robot lớn cỡ con người cao khoảng 1m5. Vì vậy, trong bài toán này, tôi chỉ sử dụng kỹ thuật xây dựng bản đồ của TurtleBot phục vụ mục đích dẫn đường. 2.2. Hệ thống định vị trong nhà cho robot Hệ thống định vị trong nhà là một hệ thống được thiết kế để cung cấp dữ liệu vị trí chính xác cho rô bốt, phương tiện tự động (AGV) và xe lửa. Nó cũng có thể được sử dụng để theo dõi các đối tượng chuyển động thông qua các đèn hiệu di động được gắn vào chúng. Hệ thống định vị bao gồm một mạng lưới báo hiệu siêu âm tĩnh được kết nối với nhau qua giao diện vô tuyến trong băng tần không có giấy phép, một hoặc nhiều báo hiệu di động được cài đặt trên các đối tượng cần theo dõi và modem cung cấp cổng vào hệ thống từ PC hoặc các máy tính khác. Vị trí của thiết bị di động được tính toán dựa trên độ trễ lan truyền của xung siêu âm (Thời gian tới hoặc TOF) giữa thiết bị tĩnh và thiết bị di động bằng thuật toán trilateration. Hệ thống có thể tự động xây dựng bản đồ của đèn hiệu tĩnh (Đối với Kiến trúc NonInverse). Hình 2.6 minh họa việc sử dụng hệ thống định vị trong nhà để xác định tọa độ của robot. Hình 2.6 Hệ thống định vị trong nhà để xác định tọa độ robot
- 18 Hệ thống định vị và dẫn đường chính xác trong nhà Marvelmind là hệ thống định vị trong nhà (IPS) hoặc hệ thống định vị thời gian thực trong nhà (RTLS) chính xác nhất trên thế giới được bán trên thị trường cho các ứng dụng công nghiệp và robot. Hệ thống định vị trong nhà sử dụng sẵn có dựa trên thiết bị (beacon) phát sóng siêu âm cố định được kết hợp bởi giao diện vô tuyến trong băng tần ISM (915/868 MHz hoặc 433MHz). Hình 2.7 là bộ thiết bị IPS của hãng Marvelmind bao gồm 5 thiết bị beacon phát sóng siêu âm và 1 thiết bị mordem để lưu cấu hình hệ thống. Khoảng cách giữa các thiết bị có thể được lắp đặt tới 50 mét trong điều kiện phòng thí nghiệm lý tưởng và 30 mét trong điều kiện phòng thường. Độ chính xác của hệ thống khi có đầy đủ các thiết bị là 1-3% khoảng cách giữa các thiết bị tức có thể lên tới ±2cm. Tần số cập nhật dữ liệu từ 0.05Hz tới 25HZ, và đặc biệt khối lượng các thiết bị rất nhẹ khoảng 59 gram nên có thể dễ dàng lắp đặt các beacon ở vị trí cao như trần nhà, tường. Với những thông số kỹ thuật trên, hệ thống định vị IPS hoàn toàn phù hợp với một hệ thống dẫn đường cho robot đặt tại môi trường trong nhà mà có thể khắc phục được những hạn chế của cảm biến Lidar đã nêu trên. IPS là một hệ thống định vị độc lập, không bị ảnh hưởng quá nhiều bởi yếu tố môi trường như cảm biến Lidar, với một cách lắp đặt hợp lý độ chính xác có thể lên tới ±2cm. Hình 2.7 Hệ thống định vị trong nhà IPS Hệ thống định vị trong nhà – IPS xác định vị trí của robot trên bản đồ đã được xây dựng. Hệ thống này sử dụng các beacon siêu âm cố định tại một số vị trí trong phòng và tạo thành một mạng lưới liên lạc vô tuyến trong dải tần chưa đăng ký sử dụng với thiết bị nào khác. Vị trí của robot được xác định dựa trên độ trễ tín hiệu (ToF) của một beacon thu sóng gắn trên robot tới các beacon siêu âm cố định. Vị trí các beacon trong hệ thống IPS trên bản đồ của phòng truyền thống. Bản đồ đã xây dựng được đưa vào Dashboard (Hình 2.8), một công cụ xử lý các cấu hình cho IPS trong nhà, điều chỉnh vị trí cố định của các beacon trên Dashboard sao cho khớp với vị trí đặt thực tế ngoài môi trường.
- 19 Hình 2.8 Phần mềm Dashboard cài đặt cấu hình các thiết bị beacon. Hệ thống IPS sẽ được đồng bộ với bản đồ của căn phòng sẽ sử dụng, kết quả trả về tọa độ chính xác của Beacon đặt trên robot ở trong phòng. Vị trí của một thiết bị (beacon) di động được lắp đặt trên robot (xe cộ, cảnh sát viên, con người) được tính toán dựa trên độ trễ lan truyền của tín hiệu siêu âm tới một tập hợp các thiết bị (beacon) siêu âm tĩnh sử dụng phương pháp trilateration. [20] Nói một cách dễ hiểu, trilateration là một kỹ thuật toán học trong đó vị trí của một điểm trong không gian được tính toán bằng cách sử dụng khoảng cách từ một điểm đó đến một loạt các thực thể hình học đã biết, ví dụ: hình cầu hoặc hình tròn. Trong không gian 3D, nếu một điểm quan tâm nằm trên bề mặt của ba mặt cầu giao nhau, thì khi biết vị trí tâm của các mặt cầu và bán kính của chúng, có thể thu hẹp các vị trí có thể có của điểm xuống không quá hai. Bắt đầu với trường hợp tổng quát, phương trình cho hình cầu có tâm tại (xa, ya, za) được hiển thị trong (5): =( − ) +( − ) +( − ) (2.1) Áp dụng phương pháp phân tích cho trường hợp chung sẽ yêu cầu các phương trình cho ba quả cầu là lập và giải cho ba ẩn số (x, y, z), tức là vị trí của điểm giao cắt; tuy nhiên, hai các giả định có thể được thực hiện để đơn giản hóa vấn đề này: Trong trường hợp hệ thống định vị trong nhà, tất cả các neo (tâm hình cầu) có thể được đặt ở một độ cao cố định trên cùng một mặt phẳng nâng, coi như bằng không ( = = =0). Hình 2.9 biểu diễn sơ đồ truyền sóng siêu âm của beacon.
- 20 Hình 2.9 Sơ đồ truyền sóng siêu âm của beacon Thuật toán hình học có thể được đơn giản hóa bằng cách sử dụng phương pháp Fang để một tâm hình cầu nằm ở điểm gốc của mặt phẳng nâng, một mặt phẳng khác dọc theo trục x, và thứ ba trực giao với hai cái trước, định vị hiệu quả ba điểm không thẳng hàng trên một mặt phẳng duy nhất (Hình 2.10). Phương trình mô tả những tọa độ neo: (0,0,0) (2.2) ( ,0,0) (2.3) ( , ,0) (2.4) Do đó, hệ phương trình đơn giản, trong đó mặt cầu bán kính trở thành , , và , có thể được viết như sau: = + + (2.5) =( − ) + + (2.6) =( − ) +( − ) + (2.7) Đơn giản hóa phương trình thu được các giải pháp sau: = (2.8) ( ) = (2.9) 2 2 2 = 1 − − (2.10) Như có thể thấy từ phương trình (14), tùy thuộc vào các giá trị của x và y, có thể lấy căn nguyên âm cho giá trị của z, mà trong hệ thống nhúng tạo ra lỗi.
- 21 Hình 2.10 Mô tả thuật toán trilateration trong không gian 2 chiều IPS được sử dụng để lấy tọa độ robot nhằm xác định vị trí ở những nơi vừa hoặc nhỏ mà GPS và các công nghệ vệ tinh khác thiếu chính xác hoặc bị lỗi hoàn toàn, chẳng hạn như bên trong các tòa nhà nhiều tầng, sân bay, ngõ, nhà để xe và các vị trí dưới lòng đất. Tuy nhiên, không phải lúc nào IPS cũng cho tín hiệu chính xác, đặc biệt nếu có quá nhiều người cản trở quá trình truyền. Hơn nữa, không chỉ IPS mà đôi khi bản thân cảm biến cũng không chính xác và có rất nhiều nhiễu nội sinh. Để làm cho Robot thông minh hơn và di chuyển một cách ổn định, cần có một dữ liệu tọa độ ổn định và đáng tin cậy. Vì vậy, cách hợp lý nhất là tích hợp thêm trên robot các cảm biến hỗ trợ như cảm biến gia tốc, cảm biến góc quay, encoder bánh xe, để kết hợp các dữ liệu cảm biến lại cho ra một dữ liệu tọa độ mới, ổn định hơn, đáng tin cậy hơn. Để giải quyết những vấn đề này, bộ lọc Kalman được xem xét. Mặt khác, nếu robot có đủ cảm biến kết hợp với IPS cho bộ lọc Kalman, nó sẽ cảm nhận mọi thứ xung quanh rất nhanh và chính xác. Lọc là một phương pháp rất phổ biến trong kỹ thuật và hệ thống nhúng, đặc biệt là trong Robot. Một thuật toán lọc tốt có thể giảm nhiễu từ các tín hiệu trong khi vẫn giữ lại dữ liệu hữu ích. [21] Bộ lọc Kalman là một trong những bộ lọc phổ biến được sử dụng để xử lý tín hiệu. Bộ lọc Kalman mở rộng (EKF) là một công cụ toán học có thể ước tính các biến của một loạt các quá trình đối với các hệ thống phi tuyến. Nó hoạt động bằng cách tuyến tính hóa các mô hình đo lường và động lực học trạng thái phi tuyến. Nó được sử dụng rộng rãi trong kỹ thuật robot, phổ biến trong các ứng dụng điều hướng, định vị và điều khiển. Loại bộ lọc này hoạt động rất tốt trong thực tế và đó là lý do tại sao nó thường được triển khai trong hệ thống điều khiển nhúng và bởi vì robot cần ước tính chính xác các biến quá trình. Bộ lọc Kalman mở rộng là một cách thông minh hơn để tích hợp dữ liệu đo lường vào một ước tính bằng cách nhận biết rằng các phép đo bị nhiễu và đôi khi chúng nên bị bỏ qua hoặc chỉ có ảnh hưởng nhỏ đến ước tính trạng thái. Nó làm mịn ảnh hưởng của nhiễu trong biến trạng thái được ước tính bằng cách kết hợp nhiều thông tin từ dữ liệu đáng tin cậy hơn từ dữ liệu không đáng tin cậy. Người dùng có thể cho bộ
- 22 lọc Kalman mở rộng có bao nhiêu nhiễu trong hệ thống và nó tính toán ước tính vị trí có tính đến nhiễu. Thuật toán Bộ lọc Kalman mở rộng vẫn là giải pháp cơ bản và phổ biến nhất cho các tín hiệu rời rạc và độ chính xác thấp như GPS, IPS, Hệ thống robot dành cho thuật toán Kalman cần có IPS, bộ mã hóa bánh xe, IMU. Tôi đã sử dụng nhúng EKF vào Bộ xử lý trung tâm trên robot. Dữ liệu đầu vào là định dạng dữ liệu 2D bao gồm: Tọa độ từ IPS (Hệ thống vị trí trong nhà MarvelMind Beacon), Vận tốc từ Bộ mã hóa bánh xe, Vòng quay và Vận tốc góc được đo bằng cảm biến Con quay hồi chuyển, Gia tốc đo bằng cảm biến Gia tốc kế, 2 cảm biến được tích hợp thành một 6DOF - Cảm biến được gọi là IMU- MPU6050. Thuật toán EKF được chia thành 3 phần: Khởi tạo và tuyến tính hóa, Dự đoán và Cập nhật. Giả sử rằng rô bốt có tọa độ x y từ IPS, vận tốc tuyến tính vx vy từ Bộ mã hóa bánh xe, gia tốc tuyến tính ax ay yaw vyaw, định hướng và vận tốc góc từ IMU. Mục tiêu của chúng tôi là dự đoán, cập nhật và xử lý tọa độ 2D cho rô bốt. vì vậy các phương trình động học và động học cho rô bốt di động: 푣 +∆푡 ∙ 푣 + ∙∆푡 ∙ + 푤 = 푣 (2.11) 푣 +∆푡. + 푤 + 푤 푣′ + ′ = 푣′ = 푣 + (2.12) + ′ Tất cả các phương trình được thực hiện để có được cập nhật , tính toán là tương tự. Mối quan hệ của mỗi trạng thái với trạng thái trước đó được thể hiện như sau: = ( ) + 푤 (2.13) Trong đó xk là tham số trạng thái của tín hiệu tại thời điểm k, f là hàm phi tuyến biểu diễn từ . Ngoài ra, 8 thông số bao gồm tọa độ, vận tốc thẳng, gia tốc thẳng, góc quay và vận tốc góc được biểu diễn bằng 3 vectơ. Bởi vì đơn vị và thang đo của dữ liệu cảm biến có thể không giống với đơn vị và thang đo của phép đo. Vì vậy, hàm biến đổi trạng thái thành hệ thống đo lường được biểu diễn: ′ =ℎ( ) + (2.14) Trong đó là tham số trạng thái của tín hiệu tại thời điểm k, h là tín hiệu ánh xạ hàm vào không gian đo chứa tín hiệu . 푤 và uk tương ứng là nhiễu quá trình và nhiễu quan sát. Hai loại nhiễu này có dạng Gaussian đa biến với các hiệp phương sai, Q và R tương ứng. f và h có thể được sử dụng để tính toán và dự đoán trạng thái của tín hiệu. Tuy nhiên, nếu sử dụng hai chức năng này, robot sẽ không thể sử dụng hiệp phương sai để ước lượng. Ma trận Jacobi được sử dụng thay thế với đạo hàm riêng để tính toán.
- 23 Gọi F và H tương ứng là ma trận Jacobi của các đạo hàm riêng của f và h, đối với , F và H có dạng: 퐹 = | (2.15) , = | (2.16) = 퐹. + 푤 (2.17) ′ = . + (2.18) Với 푤 = 0, = 0, Ma trận Jacobian F, H là: 1 ∆푡 ∆푡 퐹 = 0 1 ∆푡 (2.19) 00 1 1 0 0 = 0 1 0 (2.20) 0 0 1 Đây là ước tính hiệp phương sai hiện tại theo thời gian, được biểu diễn bằng phương trình, ước tính hiệp phương sai dự đoán: 푃′ = 퐹. 푃 . 퐹 + 푄 (2.21) 푃 là ma trận hiệp phương sai của tín hiệu tại thời điểm k - 1, 퐹 là ma trận chuyển vị của F, Q là ma trận biểu diễn nhiễu trong quá trình ước lượng, thiết lập bằng tay. Riêng đối với tín hiệu đầu tiên nhận được, do không có tín hiệu nào trước đó để tính trạng thái nên ma trận P0 sẽ được thiết lập bằng tay. Đây cũng là bước khởi tạo đầu tiên. 푃′ = 퐹. 푃 . 퐹 + 푄 (2.22) Ma trận 푃′ sẽ được đưa vào để cập nhật trạng thái mới cho tín hiệu, tôi sử dụng phương trình cập nhật hiệp phương sai dạng Joseph để thúc đẩy tính ổn định của bộ lọc bằng cách đảm bảo rằng 푃 vẫn dương nửa xác định. Các bước cụ thể như sau: Đầu tiên, hãy tính Kalman Gain: 퐾 = 푃 . ( . 푃 . + 푅) (2.23) Thứ hai, cập nhật ước tính trạng thái mới: = + 퐾( ′ − . ) (2.24) Cuối cùng, cập nhật ước tính hiệp phương sai mới: 푃 = ( − 퐾. )푃 ( − 퐾. ) + 퐾. 푅. 퐾 (2.25) Trong đó, HT là ma trận chuyển vị của H, R là ma trận hiệp phương sai biểu diễn nhiễu tín hiệu của dữ liệu từ các cảm biến. Tôi cũng viết một chương trình tính R với phương trình:
- 24 ∑ 0 0 푅 = 0 ∑ 푣 0 (2.26) 0 0 ∑ ∑ = ∑ ( − ̅) (2.27) P i : hiệp phương sai lỗi ước đoán tiên nghiệm P i : hiệp phương sai lỗi ước đoán hậu nghiệm A : ma trận Jacobian đạo hàm riêng của f với x W : ma trận Jacobian đạo hàm riêng của f với w Q : ma trận hiệp phương sai nhiễu lối vào Hiệu chỉnh ước đoán K PH(HPH T T +VRV) T 1 i ii iii iii (2.28) xˆii x ˆ K ii( z h ( x ˆ i ,0)) (2.29) Pi ( IKHP iii ) (2.30) xˆ trong đó i : ước đoán trạng thái hậu nghiệm tại bước thứ i với phép đo zi Ki : hệ số Kalman R : ma trận hiệp phương sai nhiễu phép đo H : ma trận Jacobian đạo hàm riêng của h với x V : ma trận Jacobian đạo hàm riêng của h với v Cuối cùng, lấy và sử dụng tọa độ x, y sau bước cập nhật thay vì dữ liệu thô từ IPS. 2.3. Lập kế hoạch đường đi cho robot Định tuyến hay lập kế hoạch đường đi cho robot từ vị trí hiện tại tới vị trí đích sử dụng giải thuật tìm đường đi ngắn nhất Dijkstra như trong hệ thống định vị, định tuyến sử dụng IPS. Từ tọa độ vị trí của robot đã xác định trên bản đồ Costmap2D, chương trình định tuyến tạo đường đi từ vị trí hiện tại đến vị trí đích. Thuật toán Dijkstra được sử dụng để toán tìm đường đi ngắn nhất tới vị trí đích. ● Gọi nút mà chúng ta đang bắt đầu được gọi là nút ban đầu. Gọi khoảng cách của nút Y là khoảng cách từ nút ban đầu đến Y. Thuật toán Dijkstra sẽ gán một số giá trị khoảng cách ban đầu và sẽ cố gắng cải thiện chúng từng bước. ● Đánh dấu tất cả các nút không được sử dụng. Tạo một tập hợp tất cả các nút chưa được duyệt được gọi là tập hợp chưa được duyệt. ● Gán cho mọi nút một giá trị khoảng cách dự kiến: đặt nó thành 0 cho nút ban đầu của chúng ta và thành vô cùng cho tất cả các nút khác. Đặt nút ban đầu là nút hiện tại. ● Đối với nút hiện tại, hãy xem xét tất cả các hàng xóm không được truy cập của nó và tính toán khoảng cách dự kiến của chúng qua nút hiện tại. So sánh khoảng cách dự kiến mới được tính toán với giá trị được gán hiện tại và chỉ định giá trị nhỏ hơn. Ví dụ: nếu nút hiện tại A được đánh dấu với khoảng cách
- 25 là 6 và cạnh nối nó với nút lân cận B có độ dài 2, thì khoảng cách từ B đến A sẽ là 6 + 2 = 8. Nếu trước đó B được đánh dấu bằng một khoảng cách lớn hơn 8 sau đó thay đổi nó thành 8. Nếu không, giá trị hiện tại sẽ được giữ nguyên. ● Khi chúng ta đã xem xét xong tất cả các lân cận chưa được truy cập của nút hiện tại, hãy đánh dấu nút hiện tại là đã được truy cập và xóa nó khỏi tập hợp chưa được truy cập. Một nút đã truy cập sẽ không bao giờ được kiểm tra lại. ● Nếu nút đích đã được đánh dấu là đã truy cập (khi lập kế hoạch một tuyến đường giữa hai nút cụ thể) hoặc nếu khoảng cách dự kiến nhỏ nhất giữa các nút trong tập hợp chưa truy cập là vô cùng (khi lập kế hoạch truyền tải hoàn chỉnh; xảy ra khi không có kết nối giữa nút ban đầu và các nút chưa được truy cập còn lại), sau đó dừng lại. Thuật toán đã kết thúc. ● Nếu không, hãy chọn nút không mong đợi được đánh dấu bằng khoảng cách dự kiến nhỏ nhất, đặt nó làm "nút hiện tại" mới và quay lại bước 3. Khi lập kế hoạch cho một tuyến đường, thực ra không cần phải đợi cho đến khi nút đích được "truy cập" như trên: thuật toán có thể dừng khi nút đích có khoảng cách dự kiến nhỏ nhất trong số tất cả các nút "chưa được thăm" (và do đó có thể được chọn làm tiếp theo "hiện tại"). Lưu đồ thuật toán được mô tả như hình dưới đây. Thuật toán tìm đường Dijsktra function dijkstra(G, S) for each vertex V in G distance[V] ← infinite previous[V] ← NULL if V != S, add V to Priority Queue Q distance[S] ← 0 while Q is not empty U ← Extract MIN from Q for each unvisited neighbour V of U tempDistance ← distance[U] + edge_weight(U, V) if tempDistance < distance[V] distance[V] ← tempDistance previous[V] ← U return distance[], previous[]
- 26 2.4. Hệ thống định vị và dẫn đường cho robot tự hành tại môi trường trong nhà Sơ đồ tổng quan hệ thống phần mềm được mô tả trong Hình 2.11 dưới đây là mô hình hệ thống định vị và dẫn đường được đề xuất. Hình 2.11 Sơ đồ hệ thống tổng quát Robot sử dụng một hệ điều hành mã nguồn mở ROS làm nền tảng cho các luồng xử lý và giao tiếp của các node trong hệ thống. Bộ xử lý trung tâm được coi như bộ não của robot, nhận về tất cả dữ liệu của cảm biến bao gồm dữ liệu laser từ nút camera, dữ liệu tọa độ từ hệ thống IPS, dữ liệu góc xoay từ cảm biến góc MPU. Từ đó, bộ xử lý trung tâm nhận yêu cầu của người dùng về vị trí điểm đích mà robot cần tiến đến, sau đó gửi yêu cầu kèm dữ liệu bản đồ, tọa độ hiện tại của robot và tọa độ điểm đích đến nút thiết lập đường đi và nhận về mảng tọa độ điểm đường đi của robot trên bản đồ. Từ mảng tọa độ điểm đường đi, bộ xử lý trung tâm đưa ra thuật toán điều khiển tới nút chấp hành động cơ, điều khiển robot bám theo đường đi được thiết lập và tiếp cận điểm đích. Tránh vật cản tự động Tránh vật cản tĩnh: Những vật cản tĩnh bao gồm: tủ, tranh, ảnh, kỷ niệm chương, Những vật cản này được thu thập ngay trong quá trình xây dựng bản đồ 2D môi trường. Để có thể tránh được những vật cản này, đề tài thực hiện cùng với quá trình tạo bản đồ cho robot. Những vật cản tĩnh được thu lại trong bản đồ, sau đó robot có thể nhận biết được đâu là vật cản cần tránh va chạm trong quá trình chuyển động. Tránh vật cản di động sử dụng một máy ảnh Realsense đặt trên robot. Máy ảnh này có khả năng thu được độ sâu của ảnh, từ độ sau này, đề tài thực hiện tính khoảng cách từ máy ảnh đặt trên robot hướng dẫn viên theo một đường ngang thể hiện khoảng cách từ robot đến vật thể mà máy ảnh quan sát được. Kết quả thu được thông qua một số hình ảnh dưới đây. Đối với việc xác định khoảng cách từ robot đến vật thể bằng máy ảnh Realsense. Những điểm trắng là vùng và máy ảnh Realsense quan sát được, thể hiện trong không gian ba chiều. Tiếp theo lấy
- 27 một đường ngang thể hiện khoảng cách tương đối từ máy ảnh đến vật thể (màu RGB). Trường hợp này chỉ xét những dữ liệu trong phạm vi từ 0,2 (đỏ) đến 6 m (tím). Dữ liệu thu được sử dụng làm căn cứ để xét robot có gần vật thể nào đó trong quá trình di chuyển hay không. Hình 2.12 Đo khoảng cách đến vật thể bằng máy ảnh Realsense Trong trường hợp khi chưa có vật cản thì đường màu trắng trong hình chính là đường thể hiện khoảng cách từ robot đến các vật thể xung quanh nó. Lúc này chưa có vật cản di động nên robot vẫn thực hiện di chuyển một cách bình thường. Trường hợp trên đường di chuyển của robot có vật cản di động (người). Khi máy ảnh Realsense quét một đường khoảng cách từ robot đến các vật thể, phát hiện một vật thể rất gần robot ngăn cản sự di chuyển của nó ở khoảng cách gần (0,5 mét), thuật toán sẽ coi đó là vật cản và chèn màu xám (thể hiện vật cản) vào bản đồ gốc, do đó, robot sẽ tính toán lại sự di chuyển của mình để có thể đến vị trí đích mà không va chạm với bất kỳ chướng ngại vật nào.
- 28 CHƯƠNG 3. CHẾ TẠO ROBOT VÀ THỬ NGHIỆM HỆ THỐNG TRONG NHÀ 3.1. Thiết kế và chế tạo phần cứng 3.1.1. Thiết kế khung cơ khí Hệ thống khung cơ khí robot được thiết kế trên phần mềm AutoCad, mô phỏng liên kết các khối trong mô hình 3D, in thử nghiệm mẫu bằng máy in 3D. Phần khung robot được mô tả trong Hình 3.1. Khung chính bao gồm bốn thanh nhôm định hình 20x20 mm, dài 860 mm. Các thanh được gắn bởi bốn tấm mặt đỡ dày 2 mm. Các tấm sẽ được cố định bằng sự kết hợp của các bộ phận ke góc chữ L và đai ốc phù hợp với nhôm định hình (Hình 3.2). Sự kết hợp giữa các bộ phận khác nhau của robot phải thực hiện theo quy trình lắp ráp phần cứng dễ dàng, nhanh chóng và an toàn. Hình 3.1 Khung thân của robot và đế di chuyển
- 29 Hình 3.2 Nhôm định hình và đai ốc để tạo khung Độ chính xác của toàn bộ khung sẽ phụ thuộc vào các mặt đỡ. Mặt đỡ đầu tiên và cuối cùng phải được sản xuất với độ chính xác cao. 4 thanh nhôm phải chạm vào mặt đỡ trên và mặt đỡ thấp hơn. Đây là cách tốt nhất để có sự song song giữa 2 nền tảng này. 3.1.2. Thiết kế hệ di chuyển bằng bánh đa hướng Hệ thống di chuyển sử dụng cơ cấu di động 3 bánh đa hướng (Omni) để robot có khả năng di chuyển linh hoạt và có độ cân bằng tốt trên mặt sàn. Cơ cấu di chuyển 3 bánh đa hướng phù hợp với địa hình hoạt động của robot hướng dẫn viên thuyết minh trong phòng truyền thống. Mỗi bánh đa hướng có đường kính 100 mm, tải trọng tối đa mỗi bánh 20 kg. Để robot chuyển động với khối lượng lớn, nhóm nghiên cứu sử dụng động cơ MAXSON. Dòng MAXSON có 2 loại là có chổi than và không có chổi than cũng như bộ mã hóa, bánh răng và điện tử điều khiển. Ưu điểm của MAXSON là khả năng chịu tải cao điều khiển chính xác. Động cơ sử dụng là Maxon với đường kính 42 mm, đường kính trục 10 mm, trọng lượng 360 g, điện áp hoạt động 24 V, tốc độ quay tối đa 8000 rpm. Động cơ Maxon sử dụng bộ điều khiển EPOS. Bánh xe đa hướng có hai đặc điểm lớn: bánh có thể bám chặt vào sàn nhà và di chuyển ổn định. Không giống như bánh xe thường, bánh đa hướng có thể di chuyển theo phương ngang. Hướng di chuyển của robot được xác định bởi tổng hợp lực của 3 bánh đa hướng. Với cấu tạo như vậy, robot có thể di chuyển theo mọi hướng. Hình 3.3 Thiết bị phần cứng của khối di chuyển
- 30 Ba động cơ được thiết lập với máy tính nhúng Raspberry Pi 3 thông qua giao thức truyền thông CAN. Sơ đồ kết nối điều khiển giữa Pi và động cơ được mô tả trên Hình 3.4 và các nút điều khiển trong giao thức truyền thông CAN. Hình 3.4 Sơ đồ kết nối thiết bị phần cứng của khối di chuyển Hướng di chuyển của robot được xác định bởi lực tổng hợp của các bánh xe. Với một lực quay thích hợp trên từng bánh xe trong hệ 3 bánh Omni thì robot có thể di chuyển theo bất kỳ hướng nào mà không cần phải xoay trước. Hình 3.5 Mô phỏng hành vi di chuyển với hệ 3 bánh xe đa hướng 3.1.3. Thiết kế khối phần cứng tổng thể Sơ đồ thiết kế khối tổng thể hệ thống robot thuyết minh và các thiết bị định vị, máy tính, hệ thống xử lý dữ liệu trung tâm và các kết nối. Trong thiết kế này, robot được
- 31 kết nối với hệ thống máy tính xử lý dữ liệu trung tâm thông qua bộ switch và chuẩn kết nối wifi. Trong đó đầu robot bao gồm một hệ 3D camera cho phép chụp ảnh và phân tích ảnh 3D trong đó nhấn mạnh thông tin về độ sâu của ảnh. Camera HD có nhiệm vụ thu thập các ảnh có độ phân giải cao để chuyển về server xử lý phục vụ công tác phát hiện và tương tác với người sử dụng. Hệ thống microphone cho phép thu các âm thanh xung quanh robot. Các âm thanh được thu theo các định hướng mô phỏng hoạt động của hệ thống thính giác thực của con người. Các biểu cảm của robot được thể hiện thông qua bộ phận thể hiện biểu cảm Đầu robot được kết nối với thân thông qua cấu trúc cổ 1 DoF cho phép robot có thể quay đầu sang trái và phải khi tương tác với người sử dụng. Khớp cổ được điều khiển hoạt động từ máy tính trung tâm thông qua hệ thống động cơ bước. Phần thân robot chứa đựng tất cả các bộ phận chính như hệ máy tính trung tâm phục vụ các chức năng tính toán và điều khiển trung tâm, trí tuệ nhân tạo. Máy tính trung tâm điều khiển và thể hiện trạng thái, thông tin qua màn hình hiển thị, hệ thống loa. Vị trí của robot được xử lý trong hệ thống này thông qua chức năng định vị sử dụng sóng radio. Hai cánh tay được điều khiển thông qua các mạch điều khiển chuyên dụng cho cấu trúc nhiều bậc tự do với nhiều động cơ kết hợp với các cảm biến chạm và cảm biến tiệm cận. Một số thông số môi trường xung quanh được robot thu thập thông qua hệ thống cảm biến môi trường đặt trong thân robot. Máy tính trung tâm điều khiển việc chuyển động của robot thông qua hệ thống chân và các cảm biến vật cản. Hệ thống chân của robot được thiết kế dựa trên 4 bánh xe đa hướng có gắn động cơ chủ động. Cấu trúc này cho phép robot hoạt động trong nhiều địa hình phức tạp và tăng tính linh hoạt uyển chuyển của robot. Các cảm biến vật cản được thiết kế dựa trên camera phát tia hồng ngoại và có thể cảm nhận trong khu vực xung quanh robot với đường kính khoảng từ 0,5 đến 3,0 mét. Toàn bộ hoạt động của robot được cấp năng lượng bởi hệ thống pin với điện áp 24V và dung lượng cỡ 40Ah. Với mức năng lượng này, robot có thể hoạt động trong khoảng 4 giờ mà không cần nạp điện. Trong trường hợp thời gian hoạt động của robot yêu cầu dài hơn, robot có thể được trang bị hệ thống pin dự phòng cho phép hoạt động trong khoảng 12 giờ.
- 32 Hình 3.6 Mô tả hệ thống phần cứng của robot 3.2. Thiết kế phần mềm 3.2.1. Hệ điều hành robot (ROS) ROS (Hệ điều hành Robot) là một khung phần mềm mã nguồn mở để phát triển người máy. Công chúng biết đến ROS khi ROS 0.4 được phát hành vào ngày 1/1/2009. Mục tiêu chính của ROS là tiêu chuẩn hóa và tái sử dụng phần mềm robot trên toàn cầu và tạo ra một cộng đồng cho các nhà phát triển robot. Hiện tại, ROS chỉ chạy trên Linux. Hệ điều hành và nó hỗ trợ các ngôn ngữ C ++, Python và Lisp. ROS cung cấp các dịch vụ hệ điều hành tiêu chuẩn như trừu tượng hóa phần cứng, điều khiển thiết bị cấp thấp, triển khai chức năng thường được sử dụng, truyền thông báo giữa các quy trình và quản lý gói. Nó dựa trên kiến trúc đồ thị trong đó quá trình xử lý diễn ra trong các nút có thể nhận, gửi và ghép kênh cảm biến, điều khiển, trạng thái, lập kế hoạch, bộ truyền động và các thông báo khác. Nói cách khác, nó kết nối phần cứng với phần mềm để tạo ra một môi trường lập trình nâng cao để điều khiển phần cứng cấp thấp. Kiến trúc chính của ROS dựa trên các nút và mỗi nút là một quy trình độc lập. Việc sử dụng các nút mang lại một số lợi ích cho hệ thống tổng thể. Trước hết, vì mỗi nút độc lập với nhau, sự cố của một nút không có khả năng dẫn đến sự cố toàn bộ hệ thống. Thứ hai, kiến trúc của ROS cũng giúp cải thiện khả năng tái sử dụng của mã. Ví dụ, chúng tôi viết một chương trình A (nút A) cho phép robot đi đến bất cứ đâu nó muốn mà không gặp vấn đề gì. Tuy nhiên, chúng ta cần một chương trình B khác (nút B) để xử lý dữ liệu camera để robot có thể nhận biết được môi trường xung quanh. Trong ROS, giao tiếp được thực hiện bằng cách chuyển các thông điệp giữa các nút. Nói chung, các nút không biết chúng đang giao tiếp với ai. Tất cả các tin nhắn đã gửi được xuất bản cho một topic. Nếu một nút muốn nhận tin nhắn, nó phải đăng ký các topic cụ thể. Có thể có nhiều publishersvà nhiều subscribers vào một nút. Nói cách khác, chúng ta có thể nói rằng một chủ đề giống như một kênh quảng bá trong đó một nút có thể truy cập tất
- 33 cả các thông điệp. Trong trường hợp có nhiều chủ đề, một nút sẽ bỏ qua tất cả các thông báo từ các chủ đề mà họ không đăng ký. Hình 3.7 Kiến trúc của Ros 3.2.2. Giải thuật điều khiển hệ di chuyển bánh xe đa hướng. Để điều khiển robot di chuyển linh hoạt, ta cần giải thuật điều khiển hệ đế di chuyển bánh xe đa hướng của robot để đưa ra vận tốc cần thiết của từng bánh xe phục vụ từng hành vi di chuyển cụ thể. Hình 3.8 mô tả các tham số lắp đặt hệ đế di chuyển 3 bánh đa hướng. Hình 3.8 Các thông số hệ đế di chuyển Dựa vào các tham số này, ta có thể đưa ra phương trình động học của hệ như sau: 푣 sin( ) sin( ) sin( ) 휔 휔 푣 = −cos ( ) −cos( ) −cos ( ) 휔 =푴 휔 (3.1) 휔 −1/퐿 −1/퐿 −1/퐿 휔 휔 Phương trình động học trên với đầu vào là vận tốc góc của từng bánh xe, từ đó ta
- 34 có thể tính toán ra đầu ra là vận tốc tịnh tiến theo 2 chiều x, y và vận tốc góc 휔 của cả robot. Từ đó, tùy vào hành vi di chuyển của robot tiến, lùi hay xoay ta có thể tính ngược lại vận tốc của từng bánh xe với công thức sau: 휔 푣 휔 = 푴 푣 (3.2) 휔 휔 Khi có yêu cầu dẫn đường từ người dùng, khối thiết lập đường đi cho robot dựa trên thuật toán Dijkstra sẽ tạo ra mảng tọa độ các điểm nằm trên đường đi từ vị trí hiện tại của robot tới điểm đích. Hình 3.9 mô tả đường đi của robot gồm tập hợp các điểm có tọa độ sát nhau. Để robot có thể đi tới đích thành công, robot cần đi theo và bám sát tất cả các điểm tọa độ nằm trên mảng tọa độ đường đi dành cho robot. Dựa trên dữ liệu là mảng tọa độ các điểm và dữ liệu tọa độ hiện tại của robot, ta có thể thiết lập phương trình chuyển động khiến robot có thể bám theo các điểm tọa độ ngay gần với robot. Ví dụ 2 điểm được thể hiện trong hình, một điểm và vị trí hiện tại của robot và một điểm là vị trí trước mặt robot, nằm trên đường đi của robot. Đường thẳng nối 2 điểm tạo với hướng hiện tại của robot một góc 휃, dựa vào góc 휃 và khoảng cách giữa hai điểm, ta có thể tính toán được vận tốc tịnh tiến và vận tốc góc 휔 tương ứng, và từ đó suy ra vận tốc của 3 bánh xe dựa vào công thức (3.2). Hình 3.9 Đường đi của robot trong một quy trình Hình 3.10 mô tả thuật toán điều khiển hệ đế di chuyển khi có yêu cầu dẫn đường từ người dùng. Vận tốc tịnh tiến và vận tốc góc lớn nhất của robot là một hằng số được đặt trước bởi người dùng. Dữ liệu đầu vào của khối là tọa độ hiện tại của robot ( , ) và mảng tọa độ đường đi ( , , , , , ), điều đó có nghĩa là tọa độ của robot hiện tại chính là tọa độ ( , ). Robot liên tục di chuyển tới điểm đích cho đến khi quãng được được tính từ tọa độ hiện tại luôn được cập nhật của robot tọa độ điểm đích nhỏ hơn 0.1 mét. Vận tốc tịnh tiến của robot được đặt cố định không đổi theo thời gian, vận tốc góc xoay của robot được tính thông qua góc 휃 được trình bày trước đó, robot có xu hướng quay về vị trí góc 휃 = 0. Công thức tính quãng đường và góc 휃 được trình bày qua hai công
- 35 thức 3.3 và 3.4. 푣 = 0.8; 휔 = 0.1; ( , ), ( , , , , , ) = 10; 푖 = 10; 푠 = ( − ) + ( − ) 퐹 푖 ! = 표푛푒 푠 > 0.1 퐹 푠 = ( − ) + ( − ) (3.3) (3.4) 휃 = 푡 푛2( − , − ) = 푣 휔 = −휔 . 휃 휔 휔 = 푴 0 휔 휔 푖+= Hình 3.10 Thuật toán điều khiển robot bám đường đi
- 36 CHƯƠNG 4. KẾT QUẢ, ĐÁNH GIÁ KHẢO SÁT VÀ ỨNG DỤNG ROBOT 4.1. Tạo lập bản đồ phòng Robot được thử nghiệm và đánh giá tại phòng trưng bày của ĐHQGHN. Phòng trưng bày có diện tích tương đối nhỏ cỡ ~50 m2 rất phù hợp với hệ thống định vị bằng sóng siêu âm với độ chính xác cao. Sàn phòng trưng bày là thảm với độ ma sát cao, phù hợp với hệ thống di chuyển của robot làm giảm thiểu tương đối độ trơn trượt cũng như rung lắc trong quá trình di chuyển. Các vật cản trong phòng trưng bày đủ cao để có trong tầm nhìn của robot tránh các điểm mù có thể dẫn đến va chạm trong quá trình hoạt động. Phòng trưng bày là địa điểm mục tiêu của robot cũng là địa điểm lý tưởng để thử nghiệm hệ thống định vị và dẫn đường. Hình 4.1 Bản đồ được xây dựng Kết quả thu được ở hình 4.1 là bản đồ của phòng truyền thống sử dụng phương pháp định vị trong nhà với các vị trí beacons được gắn trên bản đồ. Bản đồ sau khi được xây dựng sẽ tích hợp thêm Costmap 2D. Costmap 2D là một dạng bản đồ 2D hoặc 3D của phần không gian bị ngăn trở bởi vật cản hoặc tường ngoài môi trường và lan rộng nó ra trong bản đồ dựa trên bản đồ dạng lưới và độ rộng của vùng lan. Những phần lan ra là những phần không thể di chuyển vào để đảm bảo robot không xảy ra sự cố khi đến quá gần vật cản hay tường. Vùng được tô màu đen đậm tượng trưng cho vật cản hay tường của bản đồ costmap, phần xám đậm bao quanh vùng đen tượng trưng cho sự lan ra của vật cản hay tường, độ rộng của nó phụ thuộc vào bán kính của robot, còn đường đa giác màu xanh lá thể hiện cho đường bao quanh robot hay dấu chân của robot. Để robot tránh va chạm, dấu chân của robot không được để tiếp xúc với vùng màu đen, và tâm của robot không được tiếp xúc với vùng màu xám.
- 37 Hình 4.2 Bản đồ qua gói phân tích Costmap2D 4.2. Khảo sát độ chính xác hệ thống định vị Hệ thống định vị cho robot sử dụng 6 beacon cố định màu xanh lá được treo trên trần nhà của phòng truyền trưng bày giúp sự truyền nhận sóng siêu âm giữa các thiết bị không bị cản trở. Thiết bị di động màu xanh dương được đặt trên thân robot và cung cấp thông tin về vị trí của robot trong phòng trưng bày. Bản đồ thu được giống với sơ đồ thực tế của phòng truyền thống. Biều đồ 1 và 2 biểu diễn dữ liệu của hệ thống định vị theo 2 trục X,Y theo thời gian khi cho robot đứng yên tại một vị trí. Hình 4.3 Dữ liệu tọa độ robot theo trục X
- 38 Hình 4.4 Dữ liệu tọa độ theo trục Y Kết quả cho thấy tại một số thời điểm, tín hiệu tọa độ trả về bị dao động trong khi thiết bị không di chuyển một khoảng trên dưới 20 cm. Tuy sự dao động này theo thời gian và so với tổng số lượng mẫu dữ liệu là không nhiều, tuy nhiên trong trường hợp di chuyển, những sự dao động bất thường này có thể dẫn tới hiện tượng robot di chuyển không ổn định, đôi khi có quá nhiều vật cản xung quanh có thể dẫn tới va chạm nguy hiểm. Đó là sự cần thiết của bộ lọc Kalman. Tọa độ gốc từ thiết bị IPS sau đó được đưa qua bộ lọc Kalman mở rộng, kết hợp với các cảm biến cho ta được kết qua tốt hơn. Hình 4.5 và hình 4.6 biểu diễn kết quả của giá trị tọa độ sau khi sử dụng bộ lọc EKF. Hình 4.5 Kết quả tọa độ của robot qua bộ lọc Kalman Filter
- 39 Hình 4.6 Kết quả phóng to tọa độ của robot qua bộ lọc Kalman Filter Dữ liệu định vị, sau khi qua bộ lọc Kalman mở rộng đã cho những kết quả tốt. Đường màu đỏ trong biểu đồ trên là dữ liệu tọa độ gốc trả về từ IPS, còn đường màu xanh là dữ liệu sau khi đã được lọc Kalman. Trong quá trình di chuyển, hệ định vị xuất hiện những gai nhọn, đó là nhiễu có thể dẫn tới hiện tượng di chuyển không ổn định. Bộ lọc Kalman đã làm phẳng đi những gai này, khiến robot chuyển động mượt mà hơn mà không ảnh hưởng tới độ chính xác của hệ định vị. 4.3. Khảo sát hệ lập kế hoạch đường đi cho robot Sau khi có đầy đủ dữ liệu về bản đồ và định vị, khối lập kế hoạch đường đi cho robot có thể sẵn sàng tạo đường đi khi có bất cứ yêu cầu di chuyển tới đích từ phía người dùng. Hình 4.7 thể hiện đường đi màu đỏ chính là đường được tạo ra cho robot, bằng việc cung cấp tọa độ hiện tại của robot, tọa độ điểm đích và dữ liệu cảm biến, thuật toán sẽ tạo ra đường đi bằng tổ hợp n điểm tọa độ sát nhau tạo thành một đường gần như nối liền. Người dùng có thể dễ dàng truy cập đến từng phần tử trong mảng tọa độ của đường đi, từ đó điều khiển robot bám theo đường đã tạo và đi đến đích. Tốc độ tạo ra đường của thuật toán cỡ 10 Hz và đáp ứng đủ nhu cầu di chuyển của robot khi môi trường có nhiều vật cản di động. Việc di chuyển theo đường đi được tạo phụ thuộc vào dữ liệu đầu ra của nhiều thiết bị được tích hợp trên robot, chỉ một thiết bị ngừng hoạt động có thể dẫn đến đường được tạo cho robot bị sai khiến sự va chạm vật cản là điều không thể tránh khỏi. Vì vậy cần có một hệ thống dừng khẩn cấp nằm ngoài các chức năng của hệ thống điều hướng kể trên. Robot đã tự động di chuyển theo đường màu đỏ được xác định trong khối lập kế hoạch đường đi. Bên cạnh đó, robot còn được thử nghiệm trong nhiều trường hợp khác nhau. Kết quả thu được là robot hoạt động ổn định, di chuyển theo đúng yêu cầu đặt ra.
- 40 Hình 4.7 Đường đi tạo ra trên bản đồ 2D Hình 4.8 dưới đây thể hiện robot đang di chuyển và tránh các vật cản chuyển động trên đường đi. Các vật cản được camera chiều sâu phát hiện qua chùm tia laser, sau đó nút phân tích bản đồ đã thêm các lớp vật cản màu xám (thể hiện trong hình) vào bản đồ. Ngay lập tức, nút lập kế hoạch đường đi đã coi lớp máu xám trên bản đồ là vật cản và tạo ra đường đi mới giúp robot tránh va chạm.
- 41 Hình 4.8 Robot tránh vật cản chuyển động Như vậy, kết quả khảo sát trên đã cho thấy được độ ổn định của hệ thống qua việc kết hợp linh hoạt các khối định vị, khối tạo lập bản đồ và khối lập kế hoạch đường đi cho robot. Hệ thống được thiết kế dưới dạng mô-đun, có thể tích hợp với nhiều hệ thống robot phục vụ nhiều mục tiêu khác nhau. 4.4. Ứng dụng Robot hướng dẫn viên trong phòng trưng bày sản phẩm Trên cơ sở bám sát mục tiêu chính của luận văn: Nghiên cứu thiết kế hệ thống định vị và dẫn đường sử dụng cho robot trong nhà. Chế tạo vào thử nghiệm thành công Robot hướng dẫn viên thông minh trong các bảo tàng, khu trưng bày sản phẩm thì chúng ta có thể hình dung ra một hệ thống Robot thông minh có rất nhiều các khả năng xử lý và tương tác như con người. Trong đó, một chức năng tối quan trọng là Robot phải có khả năng thích nghi với môi trường hoạt động dựa trên các chức năng phát hiện, tránh vật cản, tự định vị và định tuyến tới vị trí yêu cầu sử dụng hệ thống đa cảm biến và chấp hành thông minh. Các bảo tàng, khu trưng bày luôn là một môi trường có không gian giới hạn, phạm vi hẹp, kèm theo đó là sự tương tác giữa rất nhiều yếu tố, tương tác giữa người với người, tương tác giữa người với vật. Với những phân tích kể trên, hệ thống định vị trong nhà là một sự lựa chọn tối ưu. Mục tiêu thiết kế và chế tạo robot hướng dẫn viên thuyết minh hoạt động trong môi trường phòng truyền thống của của Đại học Quốc gia Hà Nội, diện tích rộng 50m2. Đây là nơi trưng bày các tranh ảnh, hiện vật minh chứng về lịch sử và quá trình phát triển của Đại học Quốc gia Hà Nội. Robot phải có khả năng di chuyển thông minh trong một số địa hình thông dụng bao gồm sàn phẳng, sẽ dẫn khách tham quan tới lần lượt từng khu vực trưng bày, tương ứng với các nội dung thuyết minh đã được lưu trữ trong robot. Quá trình hoạt động của robot cũng sẽ được người dùng giám sát và điều khiển thông qua kết nối mạng LAN hoặc Internet với một trung tâm điều khiển không dây. Thông qua việc giám sát từ xa, người dùng có thể giám sát được quá trình hoạt động,
- 42 đánh giá được hiệu quả hướng dẫn và thuyết minh thông qua dữ liệu thực của robot. Bên cạnh đó, người dùng cũng có thể can thiệp kịp thời nếu như robot gặp lỗi không mong muốn. Hình 4.9 đưa ra mô tả hệ thống tổng thể của robot hướng dẫn viên thuyết minh trong môi trường phòng truyền thống của Đại học Quốc gia Hà Nội. Robot sẽ thay thế người hướng dẫn viên, thực hiện nhiệm vụ dẫn những đoàn khách tham quan khu vực trưng bày của từng sản phẩm và thuyết minh về sản phẩm tại đó. Hình 4.9 Mô tả hệ thống tổng thể của robot hướng dẫn viên Việc kiểm soát vị trí của robot trong không gian là việc vô cùng quan trọng. Robot cần biết vị trí của nó ở trong phòng để có thể thuyết trình tại nơi tương ứng, bên cạnh đó, tọa độ của robot là một trong những dữ liệu đầu vào quan trong cho các thuật toán dẫn đường cho robot trong không gian. Hệ thống định vị trong nhà IPS là hệ thống có thể giúp robot định vị được vị trí và hướng đi của nó trong trường hợp này. Khu vực hoạt động của robot sẽ được chia ra làm 14 phần liền kề, mỗi phần sẽ là một sản phẩm trưng bày khác nhau. Hình 4.10 mô tả không gian làm việc của robot hướng dẫn . Robot cần di chuyển linh hoạt giữa các khu vực, yêu cầu dẫn đường sẽ được trực tiếp thực hiện từ khách tham quan.
- 43 Hình 4.10 Sơ đồ của phòng truyền thống Tại phòng trưng bày, khách tham quan có thể tương tác trực tiếp với robot thông qua giao diện màn hình LCD trên robot hoặc giao tiếp với robot qua hệ thống Chatbot được tích hợp. Từ đó, khách tham quan đưa ra những yêu cầu về thuyết minh hoặc dẫn đường tới từng khu vực trưng bày cụ thể, khi đó robot sẽ sử dụng hệ thống định vị và dẫn đường của mình để di chuyển và tiếp cận khu vực được yêu cầu một cách chính xác sau đó thuyết minh về sản phẩm đặt tại đó. Nếu như có yêu cầu thuyết minh tổng thể, robot sẽ lần lượt dẫn người dùng đi qua cả 14 khu vực nêu trên và thuyết minh về từng khu vực. Hình 4.11 thể hiện robot đang thuyết minh tại khu vực “Những đặc trưng cơ bản” tại phòng trưng bày. Thiết bị IPS được đặt trên đỉnh đầu của robot để có điều kiện thuận lợi nhất với các thiết bị cộ định trên trần nhà. Robto có thể di chuyển dẫn đường và thuyết minh tại các khu vực trưng bày sản phẩm mà không xảy ra va chạm. Hình 4.11 Robot đang thuyết minh về khu vực những đặc trưng cơ bản
- 44 Hệ thống định vị và dẫn đường đã được sử dụng hiệu quả trên robot hướng dẫn viên. Đặc biệt trong nhiều trường hợp khách tham quan lên tới hơn 10 người, hệ thống định vị vẫn hoạt động hiệu quả, robot di chuyển mượt không bị giật cục. Robot cảm nhận được vật cản chuyển động và tránh vật cản linh hoạt.
- 45 KẾT LUẬN Hệ thống định và dẫn đường sử dụng hệ thống định vị trong nhà IPS đã được đề xuất, phát triển và khảo sát. Để khảo sát hệ thống, một robot đã được xây dựng có đầy đủ chức năng của hệ thống định vị và dãn đường được đề xuất. Robot được thử nghiệm ngay tại phòng trưng bày của Đại học Quốc Gia Hà Nội. Kết quả cho thấy hệ thống vận hành là ổn định tại môi trường trong nhà có diện tích khoảng 30 m2. Hệ thống cũng cho thấy các ưu điểm về tốc độ xử lý làm tăng sự linh hoạt khi di chuyển của robot và đồng thời cũng khắc phục được các nhược điểm của các hệ thống phổ biến trên thế giới là SLAM sử dụng cảm biến Lidar. Hệ thống định vị và dẫn đường cho robot sử dụng tại môi trường trong nhà là một mô-đun mở, có thể được mở rộng và tích hợp phục vụ nhiều ứng dụng khác nhau đặc biệt dành cho robot hướng dẫn viên trong nhà.
- 46 DANH MỤC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN VĂN 1. Huu Quoc Dong Tran, Hoang Anh Phan, Dinh Tuan Nguyen, Duy Nam Bui, Duc Trinh Chu, Thanh Tung Bui, Thi Thanh Van Nguyen, “Employing Extended Kalman Filter with Indoor Positioning System for Robot Localization Application”, in The 5 th International Conference on Engineering Mechanics and Automation (ICEMA 5), 2019, pp. 301 -307. 2. Phan Hoàng Anh, Bùi Duy Nam, Trần Hữu Quốc Đông, Vũ Tiến Đạt, Nguyễn Thị Thanh Vân, “Nghiên cứu phát triển robot xây dựng bản đồ và định vị đồng thời trên nền tảng ROS”, Hội nghị Quốc gia lần thứ XXIII về Điện tử, Truyền thông và Công nghệ Thông tin REV-EVIT 2020. 3. Bùi Thanh Tùng, Phan Hoàng Anh, Nguyễn Đình Tuân, Trần Quốc Long, Nguyễn Việt Hà, Chử Đức Trình, “Hệ thống dẫn đường cho rô-bốt hoạt động di chuyển tránh vật cản trong môi trường trong nhà và quy trình cài đặt và sử dụng hệ thống dẫn đường cho rô-bốt này”, Cục sở hữu trí tuệ.
- 47 TÀI LIỆU THAM KHẢO [1] Chen, Z., Birchfield, S.T.: Qualitative Vision-Based Mobile Robot Navigation. In: Proc. IEEE International Conference on Robotics and Automation (ICRA), Orlando, Florida (May 2006). [2]Chatterjee, A., Rakshit, A., & Singh, N. N. (2013). Mobile Robot Navigation. Studies in Computational Intelligence, 1–20. [3] [4] K. Curran, E. Furey, T. Lunney, J. Santos, D. Woods, and A. McCaughey, “An evaluation of indoor location determination technologies,” Journal of Location Based Services, vol. 5, no. 2. pp. 61–78, Jun. 2011, doi: 10.1080/17489725.2011.562927. [5] Campion, G,B Andrea Novel, G.Bastin, “Controllability and state feedback stabilization of nonholonomic wheeled mechanical systems”, Advanced Robotic Control, Spinger, pp 106-124, 1991 [6] . Borenstein and L.Feng, Measurement and correction of systematic odometry error in mobile robots, IEEE Trans. Robotics and Automation 12(5), October 1996, pp 869-880 [7] J. Borenstein and L.Feng. Correction of systemetic odometry errors in mobile robots. In Proceedings of the 1995 IEEE International Conference on Robotics and Automation, 1995, 569-574 [8] V.Fox, J.Hightower, L.Liao, D.Schulz, Bayesian Filtering for Localization Estimation, Vol2, Issue 3, Pervasive Computing IEEE, 2003, (24-33). [9] Dieter Fox, Wolfram Burgard, and Sebastian Thrun (1999), Markov Localization for Mobile Robots in Dynamic Environments, Journal of Artificial Intelligence Research 11, pp 391-427 [10] D. Simon (2006), Optimal State Estimation: Kalman, H Infinity, and Nonlinear Approaches, John Wiley and Sons, Inc, ISBN 9780471708582. [11] E. A. Wan and R. v. d. Merwe (2000), The Unscented Kalman Filter for Nonlinear Estimation, Proceedings of Symposium 2000 on Adaptive Systems for Signal Processing, Communication and Control (AS-SPCC), Lake Louise, Alberta, Canada [12] Grey Welch, Gary Bishop (2001), Introduction to the Kalman Filter, Siggraph, Course 8. [13] mapping-slam/ [14] “A Tutorial on Graph-Based SLAM”, Giorgio Grisetti, Rainer Kummerle, Cyrill Stachniss, Wolfram Burgard [15] Liping Sun, Yonglong Luo, Xintao Ding and Longlong Wu (2014), Path Planning and Obstacle Avoidance for Mobile Robots in a Dynamic Environment ,
- 48 The Open Automation and Control Systems Journal, 2014, V.6, pp 77-83 [16] Qi Zhang, Jiachen Ma, Wei Xie, Qiang Liu (2012), Path Planning for IMR in Unknown Environment: A Review, International Conference on Computer Science and Information Technology (ICCSIT) Vol.51 [17] Ting-Kai Wang Quan Dang Pei-Yuan Pan (2010), Path Planning Approach in Unknown Environment, International Journal of Automation and Computing, 7(3), pp 310-316 [18] N. D. Richards, M. Sharma, D. G. Ward. A hybrid (2004), A*/automaton approach to on-line path planning with obstacle avoidance, In Proceedings of AIAA 1st Intelli- gent Systems Technical Conference, Chicago, Illinois, USA, pp. 20-22 [19] “Dijkstra's Algorithm”, Gass, Saul; Fu, Michael (2013). Gass, Saul I; Fu, Michael C. [20] “Position Paper: Dijkstra's Algorithm versus Uniform Cost Search or a Case Against Dijkstra's Algorithm”, Felner, Ariel (2011). [21] [22]Indoor Robot Positioning Using an Enhanced Trilateration Algorithm Pablo Cotera, Miguel Velazquez, David Cruz, Luis Medina, Manuel Bandala* [23] Casanova, O. L., Alfissima, F., Machaca, F. Y. (2008), Robot Position Tracking Using Kalman Filter, Proceedings of the World Congress on Engineering, London, UK, pp. 1604-1608.