Vận dụng một số phương pháp dạy học tích cực trong dạy học môn tiếng anh lớp 9 tại trường trung học cơ sở linh đông, quận thủ đức, thành phố hồ chí minh Vận dụng một số phương pháp dạy học tích cực trong dạy học môn tiếng anh lớp 9 tại trường trung học cơ sở linh đông, quận thủ đức, thành phố hồ chí minh Vận dụng một số phương pháp dạy học tích cực trong dạy học môn tiếng anh lớp 9 tại trường trung học cơ sở linh đông, quận thủ đức, thành phố hồ chí minh
Trang 1TÓM TẮT
Xe lăn tự hành là một lĩnh vực nghiên cứu khá mới ở Việt Nam Vấn đề định
vị cho xe lăn tự hành là một việc cần thiết để giúp cho nó có thể tự hành trong môi trường mà không cần sự can thiệp của con người, một khi đã xác định được vị trí của mình xe lăn tự hành có thể tìm đường đi đến vị trí yêu cầu hoặc thực hiện các công việc yêu cầu di chuyển khác
Trong đề tài này, người thực hiện trình bày giải thuật Kalman mở rộng trong định vị trí cho xe lăn tự hành dựa trên dữ liệu thu được từ cảm biến laser SICK LMS
291 Xe lăn sử dụng giải thuật Incremental để trích xuất các điểm mốc từ dữ liệu thu được Giải thuật tìm đường D-star cũng được áp dụng để xe lăn có thể tự tìm đường
di chuyển và tránh các vật cản bằng phương pháp Vector Field Histogram
Quá trình thực nghiệm các giải thuật được thực hiện trên một mô hình xe lăn
tự hành Kết quả thực nghiệm cho thấy xe lăn có khả năng tìm đường chính xác, ước lượng vị trí bằng giải thuật Kalman mở rộng chính xác hơn so với dùng phương trình
di chuyển thông thường
Trang 2ABSTRACT
Autonomous wheelchairs are a new field of research in Vietnam The localization is a necessary feature for the autonomous wheelchairs to be self-propelled without human intervention When the wheelchairs identify their positions, they can navigate to the required position or perform other moving tasks
This thesis presented "Extended Kalman Filter" in locate autonomous wheelchairs basing on data collected by the laser range finder SICK LMS 291 The Incremental algorithm was used to extract landmarks from the data collected The D-star algorithm was also applied to wheelchairs in conjunction with the Vector Filed Histogram method in order to help them find the optimal path and avoid obstacles
Experimental processes were tested on an autonomous wheelchair model The results show that the wheelchair has the ability to find the path correctly, and that the position estimation algorithm using Extended Kalman Filter is more accurate than using the motion model
Trang 3MỤC LỤC
LÝ LỊCH KHOA HỌC i
LỜI CAM ĐOAN ii
LỜI CẢM ƠN iii
TÓM TẮT iv
ABSTRACT v
MỤC LỤC vi
DANH MỤC CÁC CHỮ VIẾT TẮT viii
DANH MỤC CÁC HÌNH ix
DANH MỤC CÁC BẢNG xiii
Chương 1 TỔNG QUAN 1
1.1 Tổng quan chung về lĩnh vực nghiên cứu, các kết quả nghiên cứu trong và ngoài nước đã công bố 1
1.2 Mục tiêu đề tài 5
1.3 Giới hạn của đề tài 6
1.4 Phương pháp nghiên cứu 6
1.5 Nội dung đề tài 6
Chương 2 CƠ SỞ LÝ THUYẾT VỀ ĐỊNH VỊ XE LĂN 8
2.1 Mô hình động học của xe lăn 8
2.2 Vấn đề định vị cho xe lăn 10
2.2.1 Những thông tin dùng cho việc định vị 10
2.2.2 Định vị vị trí tương đối 12
2.2.3 Định vị vị trí tuyệt đối 13
2.3 Thuật toán định vị 17
2.3.1 Bộ lọc Kalman 19
2.3.2 Bộ lọc hạt 23
Trang 4Chương 3 ĐỊNH VỊ CHO XE LĂN TỰ HÀNH SỬ DỤNG BỘ LỌC KALMAN
MỞ RỘNG 26
3.1 Phương pháp xác định vật mốc 26
3.2 Triển khai thuật toán lọc Kalman mở rộng cho xe lăn 32
3.2.1 Bước dự đoán 32
3.2.2 Bước cập nhật 34
Chương 4 QUY HOẠCH QUỸ ĐẠO DI CHUYỂN CHO XE LĂN 38
4.1 Tìm đường đi bằng giải thuật D-star 38
4.2 Phương pháp tránh vật cản bằng Vector Field Histogram 49
Chương 5 CẤU TRÚC PHẦN CỨNG VÀ PHẦN MỀM CỦA XE LĂN 55
5.1 Cấu trúc phần cứng của xe lăn 55
5.1.1 Các cảm biến dùng cho xe lăn 57
5.1.2 Cơ cấu chuyển động của xe lăn 61
5.1.3 Mạch điều khiển trung tâm 61
5.2 Cấu trúc phần mềm của xe lăn 62
Chương 6 KẾT QUẢ THỰC NGHIỆM 64
6.1 Thực nghiệm thứ nhất 64
6.2 Thực nghiệm thứ hai 73
6.3 Thực nghiệm thứ ba 78
Chương 7 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 81
7.1 Những kết quả đạt được của đề tài 81
7.2 Hướng phát triển của đề tài 81
TÀI LIỆU THAM KHẢO 83
PHỤ LỤC 85
Trang 5DANH MỤC CÁC CHỮ VIẾT TẮT
Trang 6DANH MỤC CÁC HÌNH
Hình 1.1: Xe lăn tự hành và bài toán định vị 2
Hình 1.2: Xe lăn TinMan II 4
Hình 1.3: Xe lăn tự hành Wheelesley 4
Hình 1.4: Xe lăn tự hành UBIRO 5
Hình 2.1: Mô hình động học của xe lăn 9
Hình 2.2: Bản đồ môi trường dạng hình học 11
Hình 2.3: Bản đồ môi trường dạng cây 11
Hình 2.4: Ví dụ về vật mốc nhân tạo 15
Hình 2.5: Ví dụ về vật mốc tự nhiên trong nhà 16
Hình 2.6: Minh họa của thuật toán Kalman, a) Độ tin cậy ban đầu b) Thực hiện một phép đo (in đậm) c) Độ tin cậy sau khi tích hợp các phép đo bằng cách dùng thuật toán lọc Kalman d) Độ tin cậy sau khi xe lăn tiếp tục di chuyển e) Thực hiện một phép đo tiếp theo f) Độ tin cậy kết quả 21
Hình 3.1: Biểu đồ dữ liệu thô của cảm biến 26
Hình 3.2: Biểu đồ dữ liệu cảm biến sau khi xử lý 27
Hình 3.3: Vị trí các điểm mốc 28
Hình 3.4: Dữ liệu laser thu được 28
Hình 3.5: Các đường thẳng tìm được theo chiều y 29
Hình 3.6: Các đường thẳng tìm được theo chiều x 30
Hình 3.7: Mô tả giải thuật Incremental 31
Hình 3.8: Các vật mốc tìm được 32
Hình 3.9: Vị trí của điểm mốc thực và điểm mốc điểm mốc ước lượng so với vị trí xe lăn 36
Hình 3.10: Sơ đồ mô tả hoạt động của giải thuật Kalman mở rộng 37
Hình 4.1: Bản đồ đường đi và xe lăn 40
Hình 4.2: Bản đồ đường đi dạng ma trận 40
Trang 7Hình 4.3: Khởi đầu với điểm mục tiêu 41
Hình 4.4: Mở rộng điểm mục tiêu 41
Hình 4.5: Mở rộng các nút 42
Hình 4.6: Mở rộng các nút cho đến khi gặp điểm xuất phát 42
Hình 4.7: Tìm được đường đi tối ưu 43
Hình 4.8: Đường đi tìm được thể hiện trên bản đồ 43
Hình 4.9: Phát hiện vật cản mới 44
Hình 4.10: Lập danh sách Open list cho vật cản mới 44
Hình 4.11: Chọn ô có giá trị k thấp nhất 45
Hình 4.12: Tính toán ô (5,4) 45
Hình 4.13: Tính toán các ô còn lại trong Open list 46
Hình 4.14: Xem xét các ô xung quanh ô (3,2) 46
Hình 4.15: Tính toán mở rộng từ ô (4,1) 47
Hình 4.16: Tính toán hoàn tất ô xuất phát 47
Hình 4.17: Tìm được đường đi mới 48
Hình 4.18: Đường đi thay thế được tìm ra 48
Hình 4.19: Bản đồ ô lưới 50
Hình 4.20: Gộp bản đồ các tế bào hoạt động vào biểu đồ cực 50
Hình 4.21: Biểu đồ cực một chiều 52
Hình 4.22: Dựa vào mức ngưỡng trên sơ đồ cực để chọn hướng di chuyển 53
Hình 4.23: Xác định vùng an toàn 53
Hình 4.24: Xác định vùng an toàn cho xe lăn trong ví dụ áp dụng D-star 54
Hình 5.1: Sơ khối cấu trúc phần cứng của xe lăn 55
Hình 5.2: Mô hình xe lăn tự hành 56
Hình 5.3: Sơ đồ kết nối phần cứng của xe lăn 56
Hình 5.4: Nguyên tắc hoạt động của cảm biến siêu âm 57
Hình 5.5: Các trường hợp không nhận dạng được khoảng cách 58
Hình 5.6: Cảm biến laser SICK LMS 291 59
Hình 5.7: Cách hoạt động của cảm biến laser SICK LMS 59
Trang 8Hình 5.8: Cách hoạt động của encoder 60
Hình 5.9: Bố trí encoder trên xe lăn 60
Hình 5.10: Các trường hợp điều khiển vận tốc của cơ cấu lái vi sai 61
Hình 5.11: Sơ đồ khối cấu trúc phần mềm của xe lăn 63
Hình 5.12: Lưu đồ giải thuật của chương trình 63
Hình 6.1: Bản đồ môi trường thực nghiệm 64
Hình 6.2: Vị trí điểm đặt thứ nhất của xe lăn, điểm mục tiêu và vật cản 65
Hình 6.3: Bản đồ đường đi dự kiến 65
Hình 6.4: Đường đi và vị trí của xe lăn 66
Hình 6.5: Xe lăn điều chỉnh đường đi khi gặp vật cản 66
Hình 6.6: Biểu đồ sai số vị trí theo phương x 67
Hình 6.7: Biểu đồ sai số vị trí theo phương y 67
Hình 6.8: Kết quả thực nghiệm từ giây 0 đến giây 86 68
Hình 6.9: Vị trí điểm đặt thứ hai của xe lăn, điểm đích và vật cản 69
Hình 6.10: Bản đồ đường đi dự kiến 69
Hình 6.11: Sơ đồ di chuyển của xe lăn trong thực nghiệm 2 70
Hình 6.12: Xe lăn điều chỉnh đường đi khi gặp vật cản thứ 1 70
Hình 6.13: Xe lăn điều chỉnh đường đi khi gặp vật cản thứ 2 71
Hình 6.14: Biểu đồ sai số vị trí theo phương x 71
Hình 6.15: Biểu đồ sai số vị trí theo phương y 72
Hình 6.16: Kết quả thực nghiệm từ giây 0 đến giây 115 72
Hình 6.17: Bản đồ trong thực nghiệm thứ hai 73
Hình 6.18: Vị trí xe lăn, điểm đích và các vật cản trong thực nghiệm hai 73
Hình 6.19: Đường đi dự kiến của xe lăn 74
Hình 6.20: Sơ đồ di chuyển của xe lăn trong thực nghiệm 2 74
Hình 6.21: Xe lăn điều chỉnh đường đi khi gặp vật cản thứ 1 75
Hình 6.22: Xe lăn điều chỉnh đường đi khi gặp vật cản thứ 2 75
Hình 6.23: Xe lăn điều chỉnh đường đi khi gặp vật cản thứ 3 76
Hình 6.24: Biểu đồ sai số vị trí theo phương x 76
Trang 9Hình 6.25: Biểu đồ sai số vị trí theo phương y 77
Hình 6.26: Kết quả thực nghiệm từ giây 0 đến giây 60 77
Hình 6.27: Bản đồ trong thực nghiệm thứ ba 78
Hình 6.28: Sơ đồ di chuyển của xe lăn trong thực nghiệm 3 78
Hình 6.29: Biểu đồ sai số vị trí theo phương x 79
Hình 6.30: Biểu đồ sai số vị trí theo phương y 79
Trang 10DANH MỤC CÁC BẢNG
Bảng 2.1: Thuật toán lọc Bayes 18
Bảng 2.2: Thuật toán lọc Kalman 19
Bảng 2.3: Thuật toán lọc EKF 22
Bảng 2.4: Sự khác nhau giữa thuật toán lọc KF và EKF 22
Bảng 2.5: Thuật toán lọc hạt 24
Bảng 6.1: Bảng so sánh sai số vị trí trong quá trình thực nghiệm 80
Trang 11Chương 1
TỔNG QUAN
1.1 Tổng quan chung về lĩnh vực nghiên cứu, các kết quả nghiên cứu trong
và ngoài nước đã công bố
Những năm gần đây, các ứng dụng robot thông minh để phục vụ con người ngày càng phát triển mạnh Với tốc độ phát triển công nghệ như hiện nay, nhu cầu đối với các hệ thống robot trợ giúp cho con người dự kiến sẽ tăng Đây là một lĩnh vực ứng dụng dường như là chính của các robot phục vụ trong tương lai gần Vì vậy, con người tìm cách biến đổi các robot để có những biến thể mới phục vụ cho con người, khái niệm xe lăn tự hành (autonomous wheelchair) từ đó cũng ra đời
Một chiếc xe lăn là một chiếc ghế được trang bị bánh xe Thiết bị này có thể chia làm 2 loại là tự hành và không tự hành Những loại không tự hành thường có người đẩy ở phía sau hoặc trên xe có trang bị bộ phận vận hành thủ công bằng tay để người ngồi có thể vận hành Loại thứ hai là bánh xe được kết nối với động cơ giúp cho việc di chuyển thoải mái và tiện lợi hơn, ngoài ra nó còn có thể tích hợp thêm cả máy tính để điều khiển Việc điều khiển cho xe lăn tự hành có nhiều điểm giống với điều khiển robot tự hành Vì vậy, ta có thể xem một xe lăn tự hành giống như một robot tự hành có thể vận chuyển người ngồi ở trên Định vị cho xe lăn tự hành là một việc cần thiết và cơ bản Đối với môi trường trong một căn phòng nếu xe lăn đã được cung cấp sẵn bản đồ thì nó có thể tự định vị và tìm đến nơi người sử dụng cần, ví dụ như người sử dụng gọi nó đến vị trí của mình, hoặc di chuyển tự động đưa người sử dụng đến vị trí cần thiết theo lệnh Các thuật toán cho việc tự định vị được phát triển dựa trên cơ sở của toán học xác suất Hình 1.1 mô tả một xe lăn được đặt trong một căn phòng và đang thắc mắc về vị trí hiện tại của nó
Năm 1960 Rudolf Emil Kalman đã cho xuất bản bài báo nổi tiếng “A new
approach to linear filtering and prediction problems” [10] trong đó công bố thuật
toán sử dụng chuỗi giá trị đo lường có ảnh hưởng nhiễu hoặc sai số, để ước đoán biến
số nhằm tăng độ chính xác Thuật toán này còn được gọi là bộ lọc Kalman, được sử
Trang 12dụng rộng rãi trong kỹ thuật, phổ biến trong các ứng dụng định hướng, định vị và điều khiển các phương tiện di chuyển Việc công bố thuật toán đã mở ra hướng tiếp cận cho vấn đề định vị robot tự hành Sau bộ lọc Kalman thì bộ lọc hạt (Particle filter) hay còn được gọi là phương pháp Sequential Monte Carlo được phát triển, thuật ngữ
bộ lọc hạt được Del Moral đặt ra năm 1996 [11] Thuật toán lọc hạt được sử dụng để giải quyết vấn đề lọc phi tuyến trong xử lý tín hiệu và trong thống kê Đề tài này sử dụng bộ lọc Kalman mở rộng để ước lượng vị trí và hướng của xe lăn trong một bản
đồ được cung cấp sẵn thông qua các dữ liệu thu được từ các cảm biến Xe lăn có khả năng tìm đường đi đến vị trí yêu cầu và tránh vật cản trên đường
Hình 1.1: Xe lăn tự hành và bài toán định vị Tình hình nghiên cứu trong và ngoài nước
Tình hình nghiên cứu trong nước:
Tại Việt Nam tình hình nghiên cứu xe lăn tự hành còn khá mới, chủ yếu là xe lăn điện được thêm cơ cấu động cơ điện và cần điều khiển bằng tay Các kết quả nghiên cứu thường đến từ các trường Đại học lớn Năm 2013, nhóm sinh viên trường Đại học Bách khoa Đà Nẵng cũng đã nghiên cứu thành công xe lăn thông minh điều khiển bằng tay hoặc bằng chuyển động đầu Tuy nhiên như đã nói ở trên ta hoàn toàn
có thể áp dụng các nghiên cứu về robot tự hành để áp dụng cho xe lăn tự hành, vì vậy
sẽ mở rộng đáng kể những kết quả nghiên cứu và ứng dụng
Trang 13Luận văn thạc sĩ của tác giả Nguyễn Đặng Phúc Nguyên hoàn thành năm 2011 tại trường Đại học Sư phạm Kỹ thuật [12] nói về việc định vị cho robot tự hành sử dụng giải thuật Monte Carlo để định vị robot Kết quả được mô phỏng bằng phần mềm Player/Stage Robot mô phỏng là một robot được trang bị 14 cảm biến siêu âm xung quanh robot
Luận văn thạc sĩ của tác giả Lê Hoàng Anh hoàn thành năm 2012 tại trường Đại học Sư phạm Kỹ thuật [2] đã đề cập đến vấn đề định vị cho robot tự hành Nội dung của luận văn nói đến việc sử dụng dữ liệu thu thập được từ camera Kinect trong việc xác định các vật mốc, thuật toán định vị được sử dụng là bộ lọc Kalman và thuật toán tìm đường được sử dụng là A-star, các vật cản trong môi trường đã được biết trước
Điểm mới trong luận văn này là việc người thực hiện sử dụng cảm biến laser thay vì camera, để xác định các vật mốc trong môi trường Cảm biến laser có khoảng cách đo xa, chính xác, vấn đề xử lý dữ liệu từ cảm biến laser cũng nhanh hơn camera Ngoài ra, cảm biến laser có thể sử dụng ngay cả trong bóng tối hoặc trong môi trường ánh sáng mạnh, khắc phục được hạn chế cơ bản của camera Đề tài sử dụng thuật toán Kalman mở rộng để định vị vị trí cho xe lăn, thuật toán tìm đường được sử dụng là thuật toán D-star giúp cho xe lăn có thể tìm đường đi thay thế nhanh chóng khi gặp vật cản ngẫu nhiên xuất hiện trong môi trường và tránh các vật cản bằng giải thuật Vector Field Histogram Quá trình thực nghiệm được thực hiện trên mô hình xe lăn thực sử dụng cơ cấu lái vi sai Xe lăn được trang bị 7 cảm biến siêu âm và một cảm biến laser SICK LMS 291
Tình hình nghiên cứu ngoài nước:
Trên thế giới việc nghiên cứu xe lăn tự hành đã diễn ra khá lâu và đã có nhiều thành tựu được công bố, các nghiên cứu cũng tập trung vào các vấn đề như tránh vật cản hoặc định vị cho xe lăn
Dưới đây là một số mô tả về các nghiên cứu xe lăn tự hành đã được tiến hành
và vẫn đang diễn ra:
Trang 14Viện KISS Institute for Practical Robotics tọa lạc tại Virginia là một tổ chức giáo dục phi lợi nhuận R&D trong các công nghệ hỗ trợ robot, robot không gian, thiết
bị tự hành dưới nước, các robot trong giáo dục… David Miller và Marc Slack thuộc viện KISS đã phát triển TinMan I và TinMan II (Hình 1.2) Đây là một xe lăn được tích hợp điều khiển joystick, kết hợp với các cảm biến giúp nó tránh vật cản [7]
Wellesley (Hình 1.3) là tên được đặt cho chiếc xe lăn được phát triển thử nghiệm bởi Holly Yanco lần đầu tại Wellesley College và bây giờ là tại MIT Chiếc ghế được thiết kế để có thể xoay tại chỗ Nó có 12 cảm biến tiệm cận, 6 cảm biến siêu
âm, 2 encoder Một máy tính 68332 được tích hợp và giao diện điều khiển chạy trên máy Macintosh PowerBook [7]
Hình 1.2: Xe lăn TinMan II
Hình 1.3: Xe lăn tự hành Wheelesley
Trang 15UBIRO (UBIquitous RObot) (Hình 1.4) mặc dù có tên robot nhưng nó là một
xe lăn tự hành UBIRO được phát triển vào năm 2009 dựa trên nền một chiếc xe lăn điện [EMC-230] cho người già và người tàn tật UBIRO bao gồm 3 phần chính: máy tính điều khiển, hệ thống RFID để thu thập thông tin vị trí của xe lăn và bộ phận điều hướng Máy tính đóng vai trò là bộ xử lý trung tâm của xe lăn giúp nó điều khiển các
bộ phận thu thập dữ liệu cũng như ra các lệnh điều khiển dựa trên các thuật toán có sẵn hoặc theo ý muốn người sử dụng [14]
Hình 1.4: Xe lăn tự hành UBIRO 1.2 Mục tiêu đề tài
Đề tài thực hiện xây dựng giải thuật định vị cho xe lăn di động Xe lăn có khả năng xác định vị trí dựa trên dữ liệu thu thập được từ cảm biến laser khi biết trước bản đồ môi trường Xe lăn có khả năng lập kế hoạch đường đi di chuyển đến vị trí yêu cầu và tránh vật cản trên đường đi Xe lăn được cho biết trước vị trí đặt, vị trí điểm đích Các giải thuật được áp dụng trên mô hình xe lăn thực, sử dụng cơ cấu lái
vi sai
Trang 161.3 Giới hạn của đề tài
Đề tài chỉ nghiên cứu khảo sát môi trường trong nhà Bản đồ môi trường, vị trí điểm đích và vị trí đặt đã được cung cấp trước cho xe lăn khi khởi động, không cung cấp vị trí vật cản
1.4 Phương pháp nghiên cứu
Các phương pháp nghiên cứu được sử dụng như sau:
- Phương pháp khảo sát: khảo sát các giải thuật định vị, tránh vật cản và tìm đường khác nhau nhằm tìm được giải thuật phù hợp
- Phương pháp nghiên cứu tài liệu: tìm hiểu, thu thập các tài liệu liên quan đến đề tài Nghiên cứu các lý thuyết liên quan để xây dựng giải thuật điều khiển cho xe lăn
- Phương pháp thực nghiệm: lập trình phần mềm và chạy trên mô hình đã xây dựng Kiểm tra kết quả thu được và điều chỉnh các giải thuật cũng như chương trình để thu được kết quả tốt hơn
1.5 Nội dung đề tài
Chương 2: Cơ Sở Lý Thuyết Về Định Vị Xe Lăn
Chương này người thực hiện đưa ra các khái niệm định vị, các phương pháp định vị cơ bản thường được sử dụng và hai giải thuật được khảo sát là bộ lọc hạt và
bộ lọc Kalman So sánh, lựa chọn giải thuật phù hợp với yêu cầu đưa ra của đề tài Ngoài ra người thực hiện cũng nêu mô hình động học cho xe lăn nhằm mục đích tạo nền tảng để áp dụng các giải thuật
Chương 3: Định Vị Cho Xe Lăn Tự Hành Sử Dụng Bộ Lọc Kalman Mở Rộng
Trong chương 3 người thực hiện trình bày phương pháp trích xuất các đường thẳng, vật mốc khi xe lăn hoạt động trong môi trường trong nhà từ dữ liệu laser Bên cạnh đó phần còn lại là triển khai thuật toán EKF cho xe lăn, nêu các bước áp dụng giải thuật EKF cho xe lăn
Chương 4: Quy Hoạch Quỹ Đạo Di Chuyển Cho Xe Lăn
Trong phần 4 người thực hiện trình bày cách thức hoạt động của giải thuật star trong giải quyết vấn đề tìm đường đi và cách áp dụng cho xe lăn Bên cạnh đó
Trang 17D-phần còn lại của chương 4 là việc trình bày giải thuật tránh vật cản Vector Field Histogram
Chương 5: Cấu Trúc Phần Cứng Và Phần Mềm Của Xe Lăn
Trong chương 5 cấu trúc phần cứng và phần mềm sẽ được giới thiệu, các khối chính trong cấu trúc phần cứng, cách kết nối các thiết bị, linh kiện và đặc tính của các khối sẽ được trình bày Cấu trúc phần mềm giới thiệu cách hoạt động và tương tác giữa các phần mềm Ngoài ra lưu đồ giải thuật của chương trình cũng được giới thiệu
Chương 6: Kết Quả Thực Nghiệm
Chương này trình bày kết quả thực nghiệm của đề tài, quá trình hoạt động của
xe lăn và các kết quả thu được khi áp dụng các giải thuật đã lựa chọn
Chương 7: Kết Luận Và Hướng Phát Triển
Chương này nói về các kết quả đạt được của đề tài và các hướng phát triển tiếp theo của đề tài
Trang 18Chương 2
CƠ SỞ LÝ THUYẾT VỀ ĐỊNH VỊ XE LĂN
Trong định vị có ba vấn đề cơ bản là định vị cục bộ (position tracking), định
vị toàn cục (global localization) và nhảy cóc vị trí (kidnapped problem)
Định vị cục bộ hay còn gọi là theo dấu vị trí, là việc cập nhật vị trí dựa trên dữ liệu từ vị trí trước đó Điều này có nghĩa là vị trí đặt của xe lăn phải được biết trước Thêm nữa, sai số của vị trí biết trước đó cũng phải nhỏ nếu không việc theo dấu vị trí
có thể sai khi định vị xe lăn Định vị cục bộ thường được nói đến nhiều khi sử dụng phương pháp định vị bằng Kalman vì sự ước lượng của xe lăn thường được mô hình hóa bằng phân bố hình nón ví dụ như phân bố chuẩn
Định vị toàn cục là việc xác định vị trí khi không được biết trước vị trí đặt trước đó, xe lăn có thể được đặt bất cứ đâu trong môi trường mà không cần bất cứ thông tin nào về vị trí của nó Trong định vị toàn cục sự ước lượng của xe lăn thường được biểu diễn bằng phân bố đều
Nhảy cóc vị trí là việc xác định vị trí khi xe lăn đột ngột bị di chuyển đến vị trí khác, nhảy cóc vị trí chỉ giống vấn đề định vị toàn cục khi nó bị mất vị trí hoàn toàn Độ khó tăng lên khi xe lăn không biết rằng nó đã bị di chuyển đến vị trí khác trong khi nó đang "nghĩ" mình vẫn ở vị trí cũ
Trong luận văn này, người thực hiện giải quyết vấn đề nêu đầu tiên là định vị cục bộ cho xe lăn sử dụng giải thuật Kalman mở rộng Để có thể áp dụng giải thuật Kalman cho xe lăn trước tiên ta phân tích mô hình động học của xe lăn
2.1 Mô hình động học của xe lăn
Mô hình động học của một xe lăn khi đặt trong môi trường được mô tả trong Hình 2.1 [8] Mô hình động học là một phần quan trọng khi giải quyết bất kì bài toán định vị nào, khi có được mô hình chuyển động của xe lăn ta có thể dự đoán được quãng đường di chuyển, góc xoay của xe với các biến điều khiển đầu vào là tốc độ di chuyển của mỗi bánh xe
Trang 19Hình 2.1: Mô hình động học của xe lăn
Với:
(𝑥, 𝑦) là hệ tọa độ của môi trường
(𝑥𝑟, 𝑦𝑟) là hệ tọa độ của xe lăn
Trang 20đưa ra những ước lượng về sự di chuyển của xe lăn sau đó dùng những thông tin thu được từ cảm biến để cập nhật lại Thực chất của bộ lọc Kalman là một phép tính toán truy hồi ước đoán trạng thái của một quá trình sao cho trung bình phương sai là nhỏ nhất
2.2 Vấn đề định vị cho xe lăn
Các phương pháp định vị đều hướng đến việc giải quyết một câu hỏi là: Hiện giờ xe lăn đang ở đâu? Để xe lăn có thể hình dung được vị trí của nó, nó phải có các vật hoặc điểm để làm mốc đánh dấu một vị trí trên bản đồ Vật mốc hoặc điểm mốc phải là các vật hoặc điểm cố định vì nếu nó di chuyển được thì hệ trục và các tọa độ tính toán dựa trên đó sẽ sai lệch theo Câu hỏi này mặc dù là đơn giản nhưng không
dễ dàng trả lời và các câu trả lời sẽ khác nhau tùy thuộc vào đặc điểm kỹ thuật của xe lăn Kỹ thuật định vị làm việc tốt trên một xe lăn trong một môi trường không có nghĩa là nó sẽ tốt trong tất cả các môi trường còn lại Ví dụ như kỹ thuật định vị được thiết kế để hoạt động tốt trong môi trường ngoài trời có thể vô dụng khi áp dụng trong nhà Tất cả các kỹ thuật định vị nói chung cung cấp hai phần cơ bản của thông tin là
vị trí hiện tại của xe lăn trong môi trường và hướng của xe lăn trong môi trường đó Thông số đầu tiên có thể được cung cấp dưới vị trí tọa độ Descartes khi ở trong nhà hoặc kinh độ và vĩ độ nếu như ở môi trường rộng lớn ngoài trời Thông số thứ hai có thể thu được từ la bàn, cảm biến góc xoay
2.2.1 Những thông tin dùng cho việc định vị
Như đã nêu ở đầu chương 2, ta có 3 vấn đề định vị thường gặp là theo dõi vị trí, định vị toàn cục và nhảy cóc vị trí Trong luận văn này người thực hiện lựa chọn giải quyết vấn đề theo dấu vị trí cho xe lăn tự hành Để giải quyết vấn đề theo dấu vị trí xe lăn cần có hai loại thông tin Đầu tiên là những thông tin được cho biết trước, những thông tin này được xe lăn tổng hợp hoặc cung cấp bởi nguồn bên ngoài như là một giá trị ban đầu Thứ hai là những thông tin xe lăn thu được từ môi trường thông qua mỗi giai đoạn quan sát trong quá trình di chuyển
Trang 212.2.1.1 Những thông tin biết trước
Nhìn chung những thông tin này được cung cấp cho xe lăn để mô tả trạng thái
và vị trí đầu tiên của xe lăn trong môi trường Những thông tin này thông thường gồm những dữ liệu sau:
Trang 22- Vị trí ban đầu:
Vị trí ban đầu thường được cung cấp để sử dụng trong việc giải quyết vấn đề theo dấu vị trí Vị trí được cung cấp thường có dạng [𝑥𝑦𝜃]𝑇
2.2.1.2 Những thông tin xe lăn tự thu thập
Loại thông tin thứ hai là những thông tin xe lăn thu thập được từ các cảm biến trong quá trình di chuyển trong môi trường Một xe lăn thực hiện hai hoạt động khi
di chuyển đó là điều khiển di chuyển trong môi trường và thu thập dữ liệu Hai hoạt động này sẽ mang đến hai loại thông tin sau
- Thông tin điều khiển:
Để di chuyển trong môi trường xe lăn cần có hệ thống điều khiển di chuyển Một hệ thống điều khiển di chuyển có thể bao gồm các bánh xe, các thành phần truyền động và những phần giúp xe lăn di chuyển về phía trước Hệ thống điều khiển này trực tiếp làm thay đổi vị trí của xe lăn Bằng cách thu thập thông tin điều khiển này
ta có thể ước lượng vị trí mới của xe lăn Việc này thường được gọi là các phép đo vị trí tương đối Trong phép đo tương đối, xe lăn sẽ tự xác định vị trí của nó thông qua thông tin từ chính nó mà không dựa vào dữ liệu thu thập từ bên ngoài
- Thông tin từ cảm biến:
Xe lăn cảm nhận môi trường xung quanh bằng các cảm biến Những cảm biến cung cấp các thông tin từ môi trường thường gọi là các quan sát hoặc đo lường Những thông tin này cung cấp mô tả về môi trường trong một thời điểm nhất định Các thông tin quan sát này cung cấp dữ liệu độc lập về vị trí xe lăn, nó không dựa vào bất kì cơ
sở dữ liệu hay vị trí trước đó Vì vậy nó cung cấp các phép đo vị trí tuyệt đối
2.2.2 Định vị vị trí tương đối
Các phép đo tương đối hay còn gọi là dead reckoning đã được con người sử dụng từ rất lâu Nguyên thủy của phép đo này dùng cho việc ước lượng vị trí của tàu thủy chỉ dựa trên tốc độ, hướng di chuyển và thời gian di chuyển kể từ vị trí cũ Dựa theo việc định vị kiểu này thì sai số sẽ tăng dần theo thời gian di chuyển Trong ứng dụng định vị xe lăn, việc định vị trí tương đối thường sử dụng hai phương pháp odometry hoặc inertial navigation
Trang 23- Odometry:
Odometry thường được dùng nhiều trong các ứng dụng robot tìm đường Nó hoạt động bằng cách tổng hợp thông tin về đoạn đường di chuyển Đại diện cho phương pháp này là việc sử dụng cảm biến encoder để đếm số vòng quay bánh xe Odometry được sử dụng rộng rãi vì nó khá chính xác trong khoảng cách ngắn, giá rẻ
và cho tỉ lệ lấy mẫu cao Tuy nhiên việc di chuyển sẽ dẫn đến trượt encoder gây ra sai số trong cả quãng đường đi và định hướng Những sai số này tích lũy theo thời gian Một bất lợi nữa của phương pháp odometry là độ nhạy của nó với địa hình Nếu
xe lăn di chuyển trong địa hình không bằng phẳng nó có thể dẫn đến sai số lớn vì odometry không thể phát hiện sự bất thường của địa hình Ngoài ra sự khác biệt về đường kính bánh xe cũng gây ra sai số Mặc dù bất lợi về việc sai số tăng dần nhưng
nó là một phương pháp dễ áp dụng và là nguồn thông tin quan trọng trong định vị
- Inertial navigation:
Phương pháp này sử dụng các cảm biến con quay hồi chuyển và cảm biến gia tốc để đo góc xoay và gia tốc của xe lăn Cảm biến con quay hồi chuyển đo sự thay đổi trong góc xoay của xe lăn trong khi cảm biến gia tốc đo sự thay đổi theo trục x và
y Cũng giống như phương pháp odometry phương pháp này cũng có độ trượt cao và sai số tích lũy theo thời gian Những thông tin này hoàn toàn độc lập với nguồn thông tin từ bên ngoài
2.2.3 Định vị vị trí tuyệt đối
Các phép đo vị trí tuyệt đối cung cấp thông tin về vị trí của xe lăn độc lập với
vị trí ước lượng trước đó, vị trí này thu được trong từng lần đo riêng lẻ Việc này có lợi ích là sai số vị trí không tích lũy theo thời gian như trong trường hợp định vị tương đối Các phép đo vị trí tuyệt đối có thể cung cấp vị trí đầy đủ hoặc chỉ một phần ví dụ như tọa độ hoặc góc xoay Các phương pháp thu thập vị trí tuyệt đối có thể chia theo phương thức dựa vào vật mốc và phương thức dựa vào bản đồ
2.2.3.1 Phương pháp dựa vào vật mốc
Vật mốc là một đặc điểm trong môi trường mà xe lăn có thể khám phá được
Dữ liệu thu được từ cảm biến của xe lăn sẽ được phân tích để tìm kiếm sự tồn tại của
Trang 24vật mốc trong đó Một khi vật mốc đã được khám phá, chúng sẽ được kết hợp với kiến thức trước đó của xe lăn về môi trường để xác định vị trí của nó Vật mốc có thể chia làm hai loại là vật mốc chủ động và vật mốc thụ động
- Vật mốc chủ động:
Vật mốc chủ động còn được gọi là các beacon, đây là các vật mốc tự động gửi thông tin về vị trí ra bên ngoài Vật mốc chủ động có thể có dạng là các vệ tinh hoặc các trạm thu phát radio Một xe lăn thu nhận tín hiệu từ vật mốc để xác định vị trí của
nó
Hai phương pháp liên quan đến việc khám phá vật mốc để định vị là tam giác
và phép đo tam giác Kỹ thuật tam giác sử dụng khoảng cách và góc từ 3 vật mốc trở lên, còn phép đo tam giác chỉ sử dụng khoảng cách Góc và khoảng cách khi đó được dùng để tính toán vị trí và hướng của xe lăn Điển hình của việc định vị này là sử dụng GPS hay hệ thống định vị toàn cầu, nó sử dụng kỹ thuật phép đo tam giác để xác định kinh độ, vĩ độ và cao độ Một số bất lợi của phương pháp vật mốc chủ động
là tín hiệu từ vật mốc có thể bị nhiễu trong khi truyền nhận Mặt khác, các vật mốc chủ động thực tế thường không thể gửi tín hiệu ra tất cả các hướng và do đó xe lăn không thể xác định từ mọi vị trí, hơn nữa việc xây dựng và duy trì các vật mốc này
3 vật mốc hoặc nhiều hơn xe lăn có thể sử dụng kỹ thuật tam giác hoặc phép đo tam giác để xác định vị trí
Vật mốc thụ động có thể là vật mốc tự nhiên hoặc nhân tạo và việc lựa chọn loại vật mốc đóng vai trò quan trọng trong thực hiện định vị
Trang 25Vật mốc nhân tạo:
Vật mốc nhân tạo là vật mốc được thiết kế để được nhận ra bởi xe lăn Vị trí đặt chúng trong môi trường được biết trước và dễ tìm thấy bởi các cảm biến của xe lăn Khi vật mốc được thiết kế riêng và đặt trong môi trường nó chỉ có thể phục vụ cho mục đích định vị Ví dụ cho vật mốc thụ động nhân tạo là các mã vạch hoặc các hình ảnh màu sắc dễ phân biệt Hình 2.4 là một ví dụ về vật mốc nhân tạo
Hình 2.4: Ví dụ về vật mốc nhân tạo
Việc sử dụng vật mốc nhân tạo có khá nhiều bất lợi Một trong số chúng có thể nằm ở xa xe lăn và khiến cho nó khó xác định và kém chính xác Ví dụ của việc này là việc sử dụng cảm biến hình ảnh trong xác định vật mốc Vật mốc càng xa xe lăn khi đưa vào hình ảnh sẽ càng nhỏ và khó xác định bằng các phương pháp xử lý ảnh Bên cạnh việc thiếu chính xác khi vật mốc ở xa nó còn bị hạn chế khi điều kiện ánh sáng khác nhau và tầm nhìn bị che khuất Tuy nhiên, vật mốc nhân tạo có thể được sử dụng trong môi trường được cấu trúc và không thay đổi quá nhiều như văn phòng hoặc nhà máy Môi trường ngoài trời sẽ có thể không khả thi với vật mốc nhân tạo vì vậy việc sử dụng vật mốc tự nhiên là cần thiết
Trang 26Vật mốc tự nhiên:
Vật mốc tự nhiên là các vật mốc không có đặc điểm đặc biệt để dành riêng cho
xe lăn nhận dạng Vật mốc tự nhiên là một phần của môi trường mà xe lăn trong đó Trong môi trường trong nhà các vật mốc tự nhiên có thể là cánh cửa, cửa sổ, góc tường… Khi ở môi trường ngoài trời các vật mốc tự nhiên có thể là biển báo giao thông, cây cối… Hình 2.5 là một ví dụ về vật mốc tự nhiên ở môi trường trong nhà
Hình 2.5: Ví dụ về vật mốc tự nhiên trong nhà
Các vật mốc tự nhiên có các bất lợi giống như vật mốc nhân tạo ngoại trừ việc
nó không được thiết kế riêng biệt Khi so với vật mốc nhân tạo, việc tính toán để nhận dạng vật mốc tự nhiên phức tạp, khó khăn hơn và độ tin cậy cũng thấp hơn Đặc biệt
là khi các vật mốc nằm ở ngoài trời vì nó thường không có các dạng hình học (hình vuông, đường thẳng…) như ở trong nhà Khi vật mốc không được thiết kế riêng cho việc định vị, xe lăn cần phải quan sát nhiều lần trước khi nó có thể xác định vị trí của
nó Khi càng có nhiều vật mốc xe lăn càng dễ dàng xác định vị trí tuy nhiên nó cũng làm gia tăng độ phức tạp tính toán
2.2.3.2 Phương pháp dựa vào bản đồ
Một phương pháp khác của kỹ thuật định vị là định vị dựa trên bản đồ Cách tiếp cận này sử dụng các đặc điểm hình học của môi trường để xác định vị trí xe lăn
Trang 27Ví dụ của đặc điểm này là các đường thẳng mô tả các bức tường trong hành lang hay văn phòng Cách biểu diễn bản đồ có thể khác nhau như dạng hình học hoặc dạng cây Bản đồ hình học chứa toàn bộ môi trường trong một hệ tọa độ toàn cục Bản đồ dạng cây chứa môi trường trong một dạng mạng lưới với các nút đại diện cho các khu vực trong môi trường và đường nối các nút là đường di chuyển giữa các khu vực Sử dụng việc kết hợp mô hình để xác định vị trí tuyệt đối của xe lăn, các thông tin thu được từ cảm biến sẽ kết hợp với thông tin bản đồ để xác định xem xe lăn đang ở đâu Phương pháp này có bất lợi là phải có đầy đủ thông tin cảm biến để kết hợp với bản
đồ Ngoài ra, kỹ thuật này cũng đòi hỏi phải có một lượng lớn dữ liệu và khả năng xử
lý tương ứng
Kết luận
Sau khi tìm hiểu và phân tích các phương pháp xác định vật mốc người thực hiện quyết định chọn phương pháp định vị cho xe lăn sử dụng vật mốc thụ động tự nhiên, phương pháp để xác định vật mốc được trình bày trong mục 3.1
2.3 Thuật toán định vị
Phần này sẽ trình bày 2 thuật toán định vị phổ biến hiện nay là bộ lọc Kalman
và bộ lọc hạt Hầu hết các ứng dụng định vị đều dùng một trong hai thuật toán này Hiện nay nó có nhiều biến thể như bộ lọc Kalman có thêm Kalman mở rộng (EKF),
bộ lọc hạt có thêm bộ lọc hạt thích nghi (KLD-PF) nhưng nhìn chung chúng đều dựa trên nền tảng cơ bản của hai bộ lọc gốc
Một khái niệm quan trọng trong định vị là độ tin cậy Độ tin cậy phản ánh kiến thức của xe lăn về môi trường Xe lăn phải suy ra từ dữ liệu
Một phân phối độ tin cậy gán một xác suất hoặc mật độ cho mỗi giả thuyết có thể liên quan đến trạng thái thực sự [18] Độ tin cậy là phân phối xác suất có điều kiện trên biến trạng thái dựa trên dữ liệu có sẵn Độ tin cậy biểu thị cho một trạng thái 𝑥𝑡 là 𝑏𝑒𝑙(𝑥𝑡), được viết như sau:
𝑏𝑒𝑙(𝑥𝑡) = 𝑝(𝑥𝑡|𝑧1:𝑡, 𝑢1:𝑡) (2.4)
Trang 28Ngoài ra còn có khái niệm độ tin cậy dự đoán Nó xảy ra trong điều kiện dữ liệu đo đạc 𝑧 tại thời điểm 𝑡chưa được thực hiện Nghĩa là xe lăn sẽ dự đoán tư thế của nó dựa vào trạng thái 𝑥𝑡 và biến điều khiển 𝑢1:𝑡
𝑏𝑒𝑙
̅̅̅̅(𝑥𝑡) = 𝑝(𝑥𝑡|𝑧1:𝑡−1, 𝑢1:𝑡) (2.5) Tính toán 𝑏𝑒𝑙(𝑥𝑡) từ 𝑏𝑒𝑙̅̅̅̅(𝑥𝑡) được gọi là bước sửa chữa hoặc cập nhật đo lường
Thuật toán chung nhất cho tính toán độ tin cậy được đưa ra bởi thuật toán lọc Bayes, được trình bày trong Bảng 2.1
Bảng 2.1: Thuật toán lọc Bayes
Thuật toán lọc Bayes có 2 bước chính
Bước thứ nhất: trong dòng thứ 3 thuật toán xử lý tín hiệu điều khiển 𝑢𝑡 Tính toán độ tin cậy của trạng thái 𝑥𝑡 dựa trên 𝑥𝑡−1 và tín hiệu điều khiển 𝑢𝑡 Bước này gọi là cập nhật điều khiển hay bước dự đoán
Bước thứ hai: bước này gọi là cập nhật đo lường, trong dòng 4 thuật toán nhân
độ tin cậy 𝑏𝑒𝑙̅̅̅̅(𝑥𝑡) với xác suất đo lường 𝑧𝑡 để có được 𝑏𝑒𝑙(𝑥𝑡) Thuật toán lặp lại như vậy cho mỗi trạng thái 𝑥𝑡
Để tính toán độ tin cậy tại thời điểm sau Thuật toán cần một độ tin cậy ban đầu 𝑥𝑡 tại 𝑡 = 0 Nếu có một giá trị 𝑥𝑡 ban đầu chính xác, các độ tin cậy sau đó sẽ được khởi tạo với 1 điểm phân phối hàng loạt mà trung tâm tất cả xác suất về đúng giá trị 𝑥0
1 Algorithm Bayes Filter (𝑏𝑒𝑙(𝑥𝑡−1); 𝑢𝑡, 𝑢𝑡)
Trang 292.3.1 Bộ lọc Kalman
Thuật toán Kalman được Rudolf Emil Kalman công bố năm 1960, được sử dụng rộng rãi trong kỹ thuật, phổ biến trong các ứng dụng định hướng, định vị và điều khiển các phương tiện di chuyển Thuật toán này có thể ước lượng trạng thái quá khứ, hiện tại hoặc tương lai thậm chí nếu các bộ phận của mô hình chưa biết trước, nhiều thuật toán lọc, đặc biệt là cho vấn đề điều hướng được dựa trên bộ lọc Kalman
Bộ lọc Kalman thực hiện tính toán độ tin cậy cho các trạng thái liên tục Nó không
áp dụng cho các không gian trạng thái rời rạc hoặc lai Bộ lọc Kalman được biểu diễn trong Bảng 2.2 [1], [18]
Bảng 2.2: Thuật toán lọc Kalman
Bộ lọc Kalman đại diện cho độ tin cậy 𝑏𝑒𝑙(𝑥𝑡) tại thời điểm 𝑡 bởi trị trung bình 𝜇𝑡 và hiệp phương sai Σ𝑡 Đầu vào của bộ lọc Kalman là độ tin cậy tại 𝑡 − 1, đại diện bởi 𝜇𝑡−1 và Σ𝑡−1 Để cập nhật các thông số bộ lọc cần biến điều khiển 𝑢𝑡 và đo lường 𝑧𝑡 Ngõ ra là độ tin cậy tại 𝑡 đại diện bởi 𝜇𝑡 và Σ𝑡
Dòng 2 và 3 dự đoán 𝜇̅𝑡 và Σ̅𝑡 được tính đại diện cho độ tin cậy 𝑏𝑒𝑙̅̅̅̅(𝑥𝑡), trước khi kết hợp với biến đo lường 𝑧𝑡 Độ tin cậy thu được được kết hợp với biến điều khiển 𝑢𝑡 Cập nhật của hiệp phương sai cho thấy rằng trạng thái hiện tại phụ thuộc vào trạng thái trước đó thông qua ma trận tuyến tính 𝐴𝑡 Ma trận này nhân hai lần với hiệp phương sai, vì vậy hiệp phương sai là một ma trận toàn phương
Độ tin cậy 𝑏𝑒𝑙̅̅̅̅(𝑥𝑡) sau đó được chuyển thành độ tin cậy mong muốn 𝑏𝑒𝑙(𝑥𝑡) trong dòng 4 đến 6 bằng cách kết hợp các phép đo 𝑧𝑡 Biến số 𝐾𝑡 được tính ở dòng 4
1 Algorithm Kalman Filter (𝜇𝑡−1, Σ𝑡−1, 𝑢𝑡, 𝑧𝑡)
Trang 30gọi là độ lợi Kalman Nó chỉ rõ mức độ chính xác mà đo lường kết hợp với trạng thái mới Cuối cùng các hiệp biến mới của độ tin cậy được tính trong dòng 6, điều chỉnh thông tin thu được từ việc đo lường
Hình 2.6 [18] minh họa thuật toán Kalman trong một tình huống định vị đơn giản Giả sử xe lăn đi theo trục ngang trong mỗi sơ đồ trong hình Ở Hình 2.6a vị trí
xe lăn cho biểu diễn bằng một hàm phân phối chuẩn bình thường Hình 2.6b xe lăn truy vấn cảm biến về vị trí của nó (ví dụ: GPS…) và nó trả về một giá trị đo lường có dạng phân phối chuẩn (in đậm) Đỉnh của hàm là giá trị dự đoán của các cảm biến, chiều rộng của nó tương ứng với sự không chắc chắn trong các phép đo Kết hợp dòng 4 đến 6 trong thuật toán lọc Kalman ta cho ra được Hình 2.6c Tiếp theo giả sử
xe lăn tiếp tục di chuyển Sự không chắc chắn của nó tiếp tục diễn ra do thực tế quá trình chuyển đổi trạng thái tiếp theo là ngẫu nhiên Sử dụng dòng 2 và 3 của bộ lọc Kalman ta cho ra hàm Gaussian như Hình 2.6d (phần in đậm) Tiếp theo xe lăn nhận được phép đo thứ hai minh họa bằng Hình 2.6e Áp dụng bước cập nhật đo lường của
bộ lọc Kalman ta cho ra Hình 2.6f chính là trạng thái đã được cập nhật
Bộ lọc Kalman mở rộng (Extended Kalman Filter)
Các giả định quá trình chuyển đổi trạng thái tuyến tính và đo lường tuyến tính thêm vào nhiễu Gauss hiếm khi ứng nghiệm trong thực tế Ví dụ: Một xe lăn di chuyển với vận tốc tịnh tiến không đổi và luân phiên sẽ thường di chuyển trên 1 quỹ đạo tròn
mà không thể mô tả được bằng tuyến tính Quan sát này làm cho bộ lọc Kalman đơn thuần không áp dụng cho tất cả Bản chất của thuật toán lọc Kalman mở rộng là nó
sẽ tuyến tính hóa mô hình phi tuyến sau đó áp dụng các biểu thức của bộ lọc Kalman rời rạc tuyến tính để tính toán Để tuyến tính hóa mô hình phi tuyến ta áp dụng khai triển chuỗi Taylor bậc 1 [9]
Các bộ lọc EKF vượt qua một trong những giả định giả thuyết tuyến tính Ở đây giả thuyết là xác suất trạng thái tiếp theo và xác suất đo được điều chỉnh bởi các hàm phi tuyến 𝑔 và ℎ tương ứng
𝑥𝑡 = 𝑔(𝑢𝑡, 𝑥𝑡−1) + 𝜀𝑡 (2.6)
Trang 31Hình 2.6: Minh họa của thuật toán Kalman, a) Độ tin cậy ban đầu b) Thực hiện
một phép đo (in đậm) c) Độ tin cậy sau khi tích hợp các phép đo bằng cách dùng thuật toán lọc Kalman d) Độ tin cậy sau khi xe lăn tiếp tục di chuyển e) Thực hiện
một phép đo tiếp theo f) Độ tin cậy kết quả
Mô hình này khái quát đúng các mô hình Gauss là cơ sở của bộ lọc Kalman Hàm 𝑔 thay thế cho ma trận 𝐴𝑡 và 𝐵𝑡, hàm ℎ thay thế cho ma trận 𝐶𝑡, nhưng với một hàm tùy ý ℎ và 𝑔 độ tin cậy không còn là một hàm Gauss Trong thực tế việc thực
Trang 32hiện cập nhật chính xác thường không thể thực hiện cho các hàm phi tuyến ℎ và 𝑔, nghĩa là bộ lọc này không có hình thức dạng đóng
Các bộ lọc EKF tính toán xấp xỉ một độ tin cậy thực sự Nó đại diện cho 1 xấp
xỉ bởi một hàm Gauss Đặc biệt độ tin cậy 𝑏𝑒𝑙(𝑥𝑡) tại thời điểm t được đại diện bởi
1 trị trung bình 𝜇𝑡 và ma trận hiệp phương sai Σ𝑡 Như vậy, thuật toán EKF kế thừa
từ Kalman các đại diện độ tin cậy cơ bản nhưng khác nhau ở chỗ độ tin cậy chỉ gần đúng, không chính xác như trường hợp thuật toán Kalman Thuật toán lọc EKF được biểu diễn trong Bảng 2.3 [18]
Bảng 2.3: Thuật toán lọc EKF
Thuật toán EKF cũng tương tự như thuật toán lọc Kalman Các sự khác nhau quan trọng nhất tóm tắt trong Bảng 2.4 như sau:
Bảng 2.4: Sự khác nhau giữa thuật toán lọc KF và EKF
Thuật toán lọc Kalman Thuật toán lọc Kalman
mở rộng
Dự đoán trạng thái 𝐴𝑡𝜇𝑡−1+ 𝐵𝑡𝑢𝑡 𝑔(𝑢𝑡, 𝜇𝑡−1)
Ta nhận thấy các dự đoán tuyến tính trong bộ lọc Kalman được thay thế bằng khái quát hóa phi tuyến của nó trong Kalman mở rộng Hơn nữa, Kalman mở rộng sử dụng Jacobian 𝐺𝑡 và 𝐻𝑡 thay vì ma trận hệ thống tuyến tính tương ứng 𝐴𝑡,𝐵𝑡 và 𝐶𝑡trong bộ lọc Kalman Jacobian 𝐺𝑡 tương ứng 𝐴𝑡 và 𝐵𝑡 Jacobian 𝐻𝑡 tương ứng 𝐶𝑡
Trang 332.3.2 Bộ lọc hạt
Một bộ lọc hạt xấp xỉ một bộ lọc Bayes tối ưu nhất bằng cách biểu diễn vị trí
xe lăn tùy ý, phân bố xác suất đa phương sử dụng một tập hợp các hạt
𝑋𝑡 = {𝑥𝑡[1], 𝑥𝑡[2], 𝑥𝑡[3], … , 𝑥𝑡[𝑀]} (2.8) Với 𝑀là số lượng các hạt Một trạng thái đơn hoặc một hạt 𝑥𝑡[𝑖] được liên kết với một trọng số:
< 𝑥𝑡[𝑖], 𝑤𝑡[𝑖]>= 𝑃(𝑥𝑡[𝑖]|𝑧1:𝑡, 𝑢1:𝑡) (2.9) Trọng số phản ánh xác suất vị trí của hạt và được cập nhật sau mỗi lần quan sát:
𝑃(𝑥𝑡|𝑧1:𝑡, 𝑢1:𝑡) = 𝜂 ∗ 𝑃(𝑧𝑡|𝑥𝑡) ∗ 𝑃(𝑥𝑡|𝑧1:𝑡−1, 𝑢1:𝑡) (2.10) Dựa vào tiên nghiệm, ước tính 𝑃(𝑥𝑡|𝑧1:𝑡−1, 𝑢1:𝑡) được tính bằng cách đệ quy:
Xác suất của một giả định được lấy mẫu tỉ lệ thuận với xác suất quan sát
𝑃(𝑧𝑡|𝑥𝑡[𝑚]) Đối với nhiệm vụ định vị trong xe lăn, xác suất quan sát dựa trên sự khác nhau giữa quan sát hiện tại và quan sát dự đoán theo các lưu trữ trong bản đồ của hạt được lấy mẫu 𝑥𝑡[𝑚]
Dòng 7 đến 10 mô tả bước tái lấy mẫu Bước này tạo ra một tập hợp hạt mới
𝑋𝑡 ra khỏi 𝑋̅𝑡 hiện tại để giảm phương sai của phân phối tiếp theo Hạt có trọng số
Trang 34lớn hơn sẽ xuất hiện thường xuyên hơn trong tập hợp hạt mới trong khi một số hạt có trọng số quá nhỏ sẽ biến mất
Bảng 2.5: Thuật toán lọc hạt
Đánh giá thuật toán lọc Kalman và thuật toán lọc hạt
Bộ lọc hạt là công cụ mạnh mẽ và được dùng cho nhiều nhiệm vụ lọc, theo dõi
và điều hướng, nhưng đôi khi hiệu quả thấp hơn nếu so với bộ lọc Kalman Thông thường bộ lọc Kalman được dùng cho các ma trận trạng thái nhỏ và sự phi tuyến nhỏ
Trong vấn đề tracking, chúng ta ước lượng vị trí tương đối Bộ lọc Kalman là thuật toán định vị được sử dụng rộng rãi Nó xấp xỉ độ tin cậy sử dụng trị trung bình
và hiệp phương sai Bộ lọc Kalman mở rộng giải quyết vấn đề không tuyến tính Một
ưu điểm của bộ lọc Kalman là nó có hiệu quả cao tuy nhiên bộ lọc Kalman chỉ có thể giải quyết vấn đề tracking Nếu ước lượng là hoàn toàn sai do cảm biến đo bị nhiễu nặng, thuật toán sẽ rất khó khăn để tracking một lần nữa
Trong vấn đề định vị toàn cục, ta ước lượng vị trí trong hệ tọa độ toàn cục Giả
sử trong một hoạt động, nếu vị trí bị thay đổi đột ngột (thiết bị bị đột ngột di dời sang
vị trí khác) Trong trường hợp này bộ lọc Kalman gần như không thể tiếp tục định vị,
Trang 35vì vậy bộ lọc hạt là một lựa chọn thay thế tốt cho trường hợp này Nó có thể thực hiện định vị ngay cả khi bị mất vị trí đột ngột
Bộ lọc hạt sử dụng một số lượng các giả định lớn trãi rộng khắp bản đồ và mỗi lần thuật toán thực hiện một chu kỳ của nó các hạt mới sẽ được tái tạo và các hạt cũ
có trọng số thấp hơn sẽ bị loại bỏ vì vậy vị trí được cập nhật liên tục
Nhược điểm của bộ lọc hạt là chi phí tính toán cao vì vậy để định vị thời gian thực chúng ta thường phải cần sử dụng phần cứng tốt hơn hoặc giảm thiểu số hạt đến mức độ nhất định Trong thực tế đây là vấn đề của sự cân bằng giữa độ chính xác và chi phí tính toán Nếu sử dụng nhiều hạt hơn, độ chính xác sẽ tăng lên Lợi thế của việc dùng bộ lọc hạt là nó đại diện cho mật độ xác suất tùy ý, do đó nó có thể giải quyết vấn đề định vị toàn cục
Trong đề tài này người thực hiện chọn thuật toán lọc Kalman mở rộng do các yếu tố sau:
- Có tốc độ tính toán nhanh hơn so với thuật toán lọc hạt
- Hiệu quả và ổn định
- Phù hợp với mục tiêu đưa ra của đề tài là xác định vị trí di chuyển của xe lăn
Trang 363.1 Phương pháp xác định vật mốc
Dữ liệu thu được từ laser là khoảng cách và góc, vì vậy để xác định vị trí các điểm mốc trên bản đồ ta cần phải có thuật toán phân tích dữ liệu và trích xuất các giá trị cần thiết Laser được thiết lập ở tầm đo 8m, độ phân giải 1 độ, góc đo 180 độ Ví
dụ trong một trường hợp khi thu về dữ liệu từ cảm biến laser ta sẽ vẽ được biểu đồ như Hình 3.1
Hình 3.1: Biểu đồ dữ liệu thô của cảm biến
Trang 37Các số liệu trong biểu đồ trên cần phải được xử lý trước khi áp dụng thuật toán phân tích Để xử lý dữ liệu thô từ laser ta giả sử vị trí đặt laser trên xe lăn khi thực hiện đo lường là [0, 0], để thu được giá trị tọa độ của từng điểm quét ta áp dụng biểu thức sau:
𝑉𝑖𝑡𝑟𝑖𝑥 = 𝑑𝑢𝑙𝑖𝑒𝑢𝑙𝑎𝑠𝑒𝑟𝑡ℎ𝑢𝑖 ∗ 𝑐𝑜𝑠((𝑃𝐼∗ 𝑖)/180) (3.1) 𝑉𝑖𝑡𝑟𝑖𝑦 = 𝑑𝑢𝑙𝑖𝑒𝑢𝑙𝑎𝑠𝑒𝑟𝑡ℎ𝑢𝑖 ∗ 𝑠𝑖𝑛((𝑃𝐼∗ 𝑖)/180) (3.2) Với:
𝑉𝑖𝑡𝑟𝑖𝑥, 𝑉𝑖𝑡𝑟𝑖𝑦 là vị trí của điểm thứ i trong dữ liệu thu về
𝑑𝑢𝑙𝑖𝑒𝑢𝑙𝑎𝑠𝑒𝑟𝑡ℎ𝑢𝑖 là dữ liệu khoảng cách thứ i trong dữ liệu thu về
Sau khi xử lý dữ liệu thô từ laser ta vẽ được biểu đồ từ dữ liệu mới như Hình 3.2
Hình 3.2: Biểu đồ dữ liệu cảm biến sau khi xử lý
Xác định điểm mốc là một việc quan trọng vì muốn định vị được vị trí xe lăn cần có một hoặc nhiều điểm mốc để làm căn cứ cố định cho xe lăn Biểu diễn bản đồ giả định môi trường đặt xe lăn đã được nêu trong Hình 2.2
Xe lăn đặt trong môi trường với các điểm mốc được khai báo như trong Hình 3.3 Để xe lăn có thể nhận dạng các điểm mốc người thực hiện dùng cảm biến laser thu thập dữ liệu
Trang 38Hình 3.3: Vị trí các điểm mốc
Hình 3.4: Dữ liệu laser thu được
Dữ liệu laser sau khi thu thập và xử lý sử dụng biểu thức (3.1) và (3.2) sẽ có dạng như Hình 3.4 Thông thường dữ liệu laser thu được sẽ khoảng từ 101 đến 361
dữ liệu tùy theo thiết lập về độ phân giải của người sử dụng
Trang 39Trước tiên để có thể trích xuất vật mốc từ dữ liệu laser ta cần sử dụng kỹ thuật fitting để trích các đường thẳng từ dữ liệu thu về Kỹ thuật fitting được lựa chọn là least square [3] Kỹ thuật này có ưu điểm là dễ dàng tính toán, tốc độ nhanh và độ tin cậy cao
Như đã biết tất cả đường thẳng đều có phương trình dạng 𝑦 = 𝑎𝑥 + 𝑏 và trên đường thẳng đó sẽ có vô số điểm có hệ số phù hợp với biểu thức này Dựa trên điều
đó phương pháp least square đưa ra cách tìm đường thẳng từ những điểm có được Cho một tập hợp dữ liệu các điểm có dạng (𝑥1, 𝑦1), … (𝑥𝑛, 𝑦𝑛)
Phương pháp least square cung cấp các phương trình để tìm đường thẳng như sau:
𝑆𝑥𝑥 = ∑𝑛 (𝑥𝑖 − 𝑥̅)2
𝑆(𝛼, 𝛽) = ∑𝑛𝑖=1(𝑦𝑖− (𝛼 + 𝛽𝑥𝑖))2 (3.4) 𝛽̂ = ∑ [(𝑥𝑖 −𝑥̅)
Hình 3.5: Các đường thẳng tìm được theo chiều y
Tuy nhiên, nhược điểm của phương pháp này là nó sẽ hoàn toàn không thể phát hiện được đường trục tung khi chỉ tính theo chiều y Hình 3.5 biểu diễn đường thẳng tìm được khi tính theo y
Trang 40Để khắc phục điều này ta cần phải tính toán theo chiều thứ hai của phương pháp least square là chiều 𝑥 Hình 3.6 biểu diễn đường thẳng tìm được khi tính theo x
Hình 3.6: Các đường thẳng tìm được theo chiều x
Sau khi có được phương pháp xác định đường thẳng ta tiến hành trích xuất điểm mốc Dựa theo phân tích từ bài báo [13] Người thực hiện quyết định chọn thuật toán Incremental làm thuật toán phân tích điểm mốc cho laser Thuật toán này có 6 bước như sau:
Thuật toán Incremental có các bước sau:
Bước 1: Bắt đầu với 2 điểm, xây dựng một đường thẳng
Bước 2: Thêm điểm tiếp theo vào mô hình đường thẳng hiện tại
Bước 3: Tính toán lại thông số đường thẳng
Bước 4: Nếu sai số phù hợp với điều kiện đặt ra, tiếp tục với bước 2
Bước 5: Ngược lại, trở về điểm cuối cùng, tính toán lại thông số đường thẳng, trả
về đường thẳng
Bước 6: Tiếp tục tính toán với 2 điểm tiếp theo, trở về bước 2
Các bước thực hiện giải thuật Incremental được thực hiện như Hình 3.7 So sánh sai số giữa khoảng cách các điểm đến đường thẳng sẽ thu được vị trí điểm mốc và tiếp tục thực hiện lại giải thuật từ điểm tiếp theo, lần lượt thực hiện đến điểm cuối cùng