Có thể kể đến như: robot vận chuyển vật liệu, hàng hóa trong các tòa nhà, nhà máy, cửa hàng, sân bay, robot phục vụ quét dọn đường phố, robot kiểm tra trong môi trường nguy hiểm, robot c
TỔNG QUAN
Tổng quan về robot
Thuật ngữ “Robot” xuất phát từ tiếng Czech “robota” có nghĩa là công việc tạp dịch trong vở kịch Rossum’s Universal Robots của Karel Capek, vào năm 1921 Trong vở kịch này, Rossum và con trai của ông ta đã chế tạo ra những chiếc máy gần giống với con người để phục vụ con người
Từ đó ý tưởng thiết kế, chế tạo robot đã luôn thôi thúc con người và trở thành một ngành khoa học robot học - robotics
Robot di động bằng bánh xe (Wheeled Mobile Robot - WMR) được địnhnghĩa là một loại xe robot có khả năng tự dịch chuyển, tự vận động (có thể lập trình lại được) dưới sự điều khiển tự động, có khả năng hoàn thành công việc được giao Tiềm năng ứng dụng của rô bốt di động bằng bánh xe hết sức rộng lớn Có thể kể đến như: robot vận chuyển vật liệu, hàng hóa trong các tòa nhà, nhà máy, cửa hàng, sân bay, robot phục vụ quét dọn đường phố, robot kiểm tra trong môi trường nguy hiểm, robot canh gác, robot do thám, robot khám phá không gian, di chuyển trên hành tinh, robot hàn, robot sơn trong nhà máy, robot xe lăn phục vụ người khuyết tật, rô bốt phục vụ sinh hoạt gia đình v.v… a) robot tự hành b) robot Hitachi H8/3063 c) robot Halluc II
Hình 1.1 Một số robot di động bằng bánh xe
Bánh xe là phương pháp phổ biến nhất cung cấp khả năng di chuyển cho một robot, được sử dụng với nhiều kích thước và nền tảng robot khác nhau Kích thước của bánh xe dao động khá rộng, từ nhỏ cỡ vài chục xăng xi mét đến lớn hàng mét
Thông thường, xu hướng phát triển tập trung vào các bánh xe cỡ nhỏ, cỡ 5 cm trở lại với 3 bánh xe/ robot, một bánh lái và hai bánh di chuyển Loại phức tạp hơn có thể sử dụng con quay hồi chuyển
Về vật liệu, vật liệu làm bánh xe không có yêu cầu đặc biệt, nhưng một số trường hợp cụ thể có yêu cầu khá chặt Ví dụ bánh xe robot quân sự cần có khả năng chống trượt Điều này cũng có thể đạt được thông qua cấu trúc bánh xe, một robot với 4bánh hoặc 6 bánh sẽ có ưu thế chống trượt tốt hơn trường hợp 2 bánh Ngoài ra, cơ cấu bánh xe cũng cần được chú ý khi thiết kế chuyển động cho robot.
Phân loại robot tự hành
Robot tự hành được chia làm hai loại chính đó là loại robot tự hành chuyển động bằng chân và robot tự hành chuyển động bằng bánh Ngoài ra một số loại robot hoạt động dưới nước hay trên không trung thì được trang bị cơ cấu di chuyển đặc trưng 1.2.1 Robot tự hành di chuyển bằng chân Ưu điểm lớn nhất của loại robot này là có thể thích nghi và di chuyển trên các địa hình gồ ghề Hơn nữa chúng còn có thể đi qua những vật cản như hố, vết nứt sâu Nhược điểm chính của robot loại này chính là chế tạo quá phức tạp Chân robot là kết cấu nhiều bậc tự do, đây là nguyên nhân làm tăng trọng lượng của robot đồng thời giảm tốc độ di chuyển Các kĩ năng như cầm, nắm hay nâng tải cũng là nguyên nhân làm giảm độ cứng vững của robot Robot loại này càng linh hoạt thì chi phí chế tạo càng cao
Robot tự hành di chuyển bằng chân được mô phỏng theo các loài động vật vì thế mà chúng có loại 1 chân, loại 2,4,6 chân và có thể nhiều hơn Dưới đây là một số loại robot điển hình chuyển động bằng chân a) Robot 6 chân b) Robot chó Titan c) Robot 4 chân d) Robot ASIMO e) Robot SDR-4X f) Robot 1 chân raiber
Hình 1.2 Một số robot di chuyển bằng hai chân
1.1.2 Robot tự hành di chuyển bằng bánh
Bánh xe là cơ cấu chuyển động được sử dụng rộng rãi nhất trong công nghệ Robot tự hành [2], [7] Vấn đề cân bằng thường không phải là vấn đề được chú ý nhiều trong robot di chuyển bằng bánh Ba bánh là kết cấu có khả năng duy trì cân bằng nhất, tuy nhiên kết cấu 2 bánh cũng có thể cân bằng được Khi robot có số bánh nhiều hơn 3 thì thông thường người ta phải thiết kế hệ thống treo để duy trì sự tiếp xúc của tất cả các bánh xe với mặt đất Vấn đề của robot loại này là về lực kéo, độ ổn định và khả năng điều khiển chuyển động.v.v Hình 1.2 dưới đây giới thiệu 4 loại bánh xe cơ bản được sử dụng trong Robot tự hành:
- Bánh xe tiêu chuẩn: 2 bậc tự do có thể quay quanh trục bánh xe và điểm tiếp xúc
- Bánh lái: 2 bậc tự do có thể quay quanh khớp lái
- Bánh Swedish: 3 bậc tự do có thể quay đồng thời xung quanh trục bánh xe, trục lăn và điểm tiếp xúc
Hình 1.3 Các loại bánh xe cơ bản dùng trong robot tự hành
Sơ đồ bánh xe của robot tự hành 2 bánh, 3 bánh, 4 bánh, 5 bánh và 6 bánh:
Bảng 1 Sơ đồ bánh xe của robot tự hành
Số bánh Sắp xếp Miêu tả
2 Một bánh lái phía trước, một bánh phía sau
Hai bánh truyền động với trọng tâm ở bên dưới trục bánh xe
Hai bánh truyền động ở giữa và có điểm thứ 3 tiếp xúc
Hai bánh truyền động độc lập ở phía sau và một bánh lái ở phía trước
Hai bánh truyền động được nối với trục ở phía sau, một bánh lái ở phía trước
Hai bánh quay tự do ở phía sau, bánh trước vừa là bánh truyền động vừa là bánh lái
3 bánh Swedisk được đặt ở các đỉnh của một tam giác đều, kết cấu này cho phép robot di chuyển theo đa hướng
4 2 bánh chủ động ở phía sau, hai bánh lái ở phía trước
Hai bánh phía trước vừa là bánh lái vừa là bánh chủ động
Cả 4 bánh đều là bánh truyền động và lái
Hai bánh truyền động độc lập ở phía trước/sau, 2 bánh lái đa hướng ở phía sau/trước
Hai bánh chuyển động vi sai và thêm 2 điểm tiếp xúc
4 bánh vừa là truyền động vừa là bánh lái
Hai bánh truyền động ở giữa, thêm 4 bánh đa hướng ở xung quanh
Hai bánh truyền động vi sai ở giữa, bốn bánh đa hướng ở 4 góc
Bảng 2 Kí hiệu các loại bánh xe
Kí hiệu các loại bánh xe
Bánh đa hướng không truyền động
Bánh truyền động Swedish (đa hướng)
Bánh quay tự do tiêu chuẩn
Bánh truyền động tiêu chuẩn
Bánh vừa truyền động vừa là bánh lái
Các bánh xe được nối với nhau.
Phương pháp điều hướng cho robot tự hành
Kỹ thuật điều hướng sử dụng trí thông minh nhân tạo trong robot tự hành có thể được chia thành 2 loại chính, đó là điều hướng có tính toán và điều hướng theo phản ứng Đúng như tên gọi, điều hướng có tính toán là phương pháp điều hướng có kế hoạch còn điều hướng theo phản ứng là điều hướng tức thời, là quá trình tự động thực hiện các phản ứng theo môi trường xung quanh Ngoài ra còn có phương pháp điều hướng lai ghép là phương pháp kết hợp cả hai phương pháp có tính toán và điều hướng theo phản ứng để xây dựng một bộ điều khiển thông minh hơn
1.3.1 Phương pháp điều hướng có tính toán
Phương pháp điều hướng có tính toán là phương pháp thực hiện theo trình tự: quan sát – lập kế hoạch – hành động Thông thường một hệ thống có tính toán bao gồm 5 khâu: nhận thức (perception), mô hình thế giới (word modelling), lập kế hoạch (planning), thực hiện công việc (task excution) và điều khiển động cơ (motor control) Các khâu trên có thể được coi như là một chuỗi các “lát mỏng theo phương thẳng đứng” với các đầu vào là tín hiệu nhận được từ cảm biến ở phía bên trái và đầu ra tới các khâu chấp hành ở phía bên phải
Hình 1.4 Sơ đồ cấu trúc của phương pháp điều khiển có tính toán
- Khâu nhận thức có nhiệm vụ điều khiển các thiết bị cảm ứng, các thiết bị này được nối với robot sẽ cho các thông tin về môi trường quan sát được
- Khâu mô hình thế giới: chuyển các tín hiệu từ cảm biến thành mô tả mối liên quan giữa robot với mô hình bên trong môi trường
- Khâu lập kế hoạch: cố gắng xây dựng kế hoạch thực hiện của robot sao cho đạt được mục tiêu phù hợp với tình trạng thế giới hiện tại
- Khâu thực hiện công việc: chia kế hoạch vừa được xây dựng thành các lệnh điều khiển chuyển động chi tiết
- Khâu điều khiển động cơ: dùng để thực hiện các lệnh này
Mỗi một hệ thống con như là một khâu tương đối phức tạp và tất cả phải hoạt động một cách đồng bộ với hoạt động của robot tại mọi thời điểm Phương pháp này đòi hỏi phải trang bị các cảm biến, các thiết bị đo để nhận biết thông tin từ môi trường hoặc dạng thông tin dự đoán trước từ bản đồ toàn cục Thông tin đó sẽ được tham chiếu với một bản đồ môi trường nếu có thể, và sử dụng thuật toán lập kế hoạch để tạo ra quỹ đạo chuyển động giúp robot tránh vật cản và tăng xác suất tới mục tiêu đến tối đa Do sự phức tạp của môi trường làm tăng thời gian để nhận biết, xây dựng mô hình và lập kế hoạch về thế giới cũng tăng theo hàm mũ Đây cũng chính là bất lợi của phương pháp này Phương pháp này tỏ ra rất hữu hiệu cho các tình huống mà trong đó môi trường làm việc là tương đối tĩnh (môi trường trong đó có thể bao gồm vật cản, tường chắn, hành lang, điểm đích, v.v… là các đối tượng có vị trí không thay đổi trong bản đồ toàn cục)
Trong phương pháp điều hướng có tính toán, khâu lập kế hoạch đường đi cho robot là cực kì quan trọng Việc lập kế hoạch đường đi cho mobile robot thường có hai giai đoạn đó là lập kế hoạch toàn cục và lập kế hoạch cục bộ Lập kế hoạch toàn cục có thể được hiểu như là cách di chuyển robot qua một môi trường tùy ý và môi trường này là tương đối lớn Còn lập kế hoạch cục bộ sẽ đưa ra quyết định khi robot đối mặt với môi trường tĩnh, ví dụ như khi robot gặp phải vật cản, hành lang Kế hoạch cục bộ đưa ra phương pháp để đi tới đích ngắn nhất, an toàn nhất Chính vì thế khi gặp phải các vật cản, kế hoạch cục bộ sẽ giúp cho robot tránh không va chạm rồi mới tiếp tục thực hiện kế hoạch toàn cục để tới đích
1.3.2 Phương pháp điều hướng robot theo phản ứng
Như phân tích ở phần trên, phương pháp điều hướng có tính toán có nhiều ưu điểm đối với quá trình điều hướng cho mobile robot Tuy nhiên, điều hướng có tính toán thường yêu cầu khối lượng tính toán tương đối lớn và phương pháp này tỏ ra không tối ưu khi môi trường hoạt động của robot thay đổi
Phương pháp điều hướng theo phản ứng ra đời nhằm giải quyết các vấn đề có liên quan tới môi trường không biết trước hoặc môi trường thường xuyên thay đổi Điều hướng theo phản ứng khắc phục được những hạn chế của phương pháp điều hướng tính toán, giúp giảm khối lượng tính toán, tăng tốc độ xử lý trong môi trường phức tạp Điều hướng theo phản ứng là phương pháp kết hợp các phản ứng thực hiện một cách tự động với các kích thích từ cảm biến để điều khiển robot sao cho an toàn và đạt hiệu suất cao nhất Phương pháp này đặc biệt phù hợp đối với những ứng dụng nơi mà môi trường là hoàn toàn động hoặc không biết trước, ví dụ như trong không gian hoặc dưới nước Trong thực tế, các thiết bị vệ tinh thám hiểm kiểu robot đã sử dụng phương pháp điều hướng theo phản ứng, lí do là phương pháp điều hướng theo tính toán đòi hỏi việc lập kế hoạch phức tạp có quá nhiều phép tính toán bị giới hạn bởi khả năng của bộ nhớ và tốc độ tính toán Điều hướng theo phản ứng chỉ phụ thuộc vào trạng thái hiện thời của robot và đòi hỏi rất ít các phép tính toán để tác động lại môi trường hoạt động
Tuy nhiên, phương pháp điều hướng theo phản ứng cũng có nhiều mặt hạn chế, việc không có kế hoạch toàn cục có thể khiến cho quá trình điều khiển gặp phải những khó khăn Các hoạt động tối ưu cục bộ chủ yếu thu được nhờ điều khiển theo phản ứng, chính vì thế mà có thể gây ra hiện tượng lệch hướng toàn cục Trong phương pháp điều hướng theo tính toán, hệ thống không bao giờ mất tầm quan sát đích trong khi các hệ thống điều hướng theo phản ứng cần phải giữ các đích tức thời để độ lệch hướng so với đích toàn cục là không quá lớn
Một thuận lợi ở điều hướng theo phản ứng so với các phương pháp tính toán đó là khả năng mở rộng bộ điều khiển để thêm vào các thành phần phản ứng khác mà không cần phải điều chỉnh lại toàn bộ phần mềm điều khiển Chính vì thế, ta có thể dễ dàng bổ sung thêm tính năng cho robot bằng cách thêm vào các hoạt động mới mà không làm thay đổi những hoạt động đã có trước Ví dụ, để robot phản ứng với một kích
10 thích thu được từ một cảm biến mới, ta chỉ cần thêm một thành phần khác vào bộ điều khiển để nó phản ứng với kích thích thu được từ cảm biến đó Còn ở các phương pháp tính toán, bạn cần phải xây dựng một thuật toán hoàn toàn mới để sử dụng dữ liệu thu được từ cảm biến mới được thêm vào này
Trong thời kỳ đầu, các nhà nghiên cứu đã thiết kế hệ thống điều hướng thuần tuý phản ứng bằng cách dựa vào hoạt động của côn trùng để áp dụng vào kỹ thuật robot Nhiều nghiên cứu về hệ thống sinh học đã được ứng dụng cho quá trình điều khiển mobile robot Chuyển động của một số loại côn trùng trong thế giới sinh học có thể được sử dụng để xây dựng thành công các thuật toán điều khiển hoạt động cho robot
Ví dụ, khi nghiên cứu về hành vi của một con gián, các nhà khoa học nhận ra một con gián chỉ có một vài hoạt động riêng biệt Các hoạt động này có thể bao gồm hoạt động tìm thức ăn, hoạt động tránh ánh sáng và hoạt động sinh sản Dựa vào những gì mà cảm nhận được, con gián sẽ quyết định thực hiện một trong số những hoạt động trên Nếu con gián cảm thấy đói, nó sẽ lục lọi để tìm thức ăn Tuy nhiên, nếu một bóng đèn chợt bật sáng, con gián đó sẽ từ bỏ việc tìm kiếm thức ăn và chui ngay vào gầm tủ lạnh chẳng hạn Đây là một ví dụ về điều khiển theo phản ứng Dựa vào những kích thích hiện thời, con gián sẽ chọn một hoạt động thích hợp mà không cần phải lập kế hoạch hay tính toán gì cả Vậy thì tại sao những hoạt động như thế lại không thể được dịch thành những thuật toán điều khiển đơn giản cho robot Đây chính là những lý thuyết cơ bản của kỹ thuật điều khiển dựa hành vi (behavior-base control) cho mobile robot.
1.3.3 Phương pháp điều hướng lai ghép Điều hướng lai ghép là phương pháp kết hợp các ưu điểm của phương pháp điều hướng theo tính toán truyền thống với các hệ thống điều hướng dựa phản ứng Mỗi phương pháp đều có những nhược điểm mà phương pháp kia có thể khắc phục được Phương pháp điều hướng theo tính toán gặp phải khó khăn khi hoạt động trong các môi trường động, là nơi yêu cầu khả năng tính toán nhanh cũng như các kỹ năng tránh vật cản Nếu phương pháp điều hướng theo phản ứng không kết hợp với bất cứ quá trình lập kế hoạch chuyển động nào thì có thể sẽ không đưa robot theo quỹ đạo tối ưu Phương pháp điều khiển lai ra đời nhằm kết hợp các hoạt động có tính toán bậc
11 cao với các hoạt động phản ứng bậc thấp Các hoạt động phản ứng giúp robot an toàn và xử lý các tình trạng khẩn cấp trong khi phần điều khiển có tính toán sẽ giúp robot đạt được mục đích cuối cùng Phương pháp điều khiển lai ghép có thể cho ta kết quả khả quan hơn khi chỉ sử dụng phương pháp điều hướng theo phản ứng hoặc điều hướng theo tính toán
35 đặc trưng Hàm đặc trưng là ánh xạ tập hợp các giá trị vật lý thành tập giá trị phụ thuộc với các giá trị ngôn ngữ Dưới đây là một số dạng đặc trưng:
Là dạng đơn giản nhất, thường dùng mô tả các khái niệm chưa biết hay chưa rõ ràng
Công thức xác định độ phụ thuộc x:
Dạng hình chuông Độ phụ thuộc x được xác định:
Dạng hình thang Độ phụ thuộc x được xác định:
Dạng tam giác Độ phụ thuộc x được xác định:
Dạng L Độ phụ thuộc x được xác định:
Dạng Γ Độ phụ thuộc x được xác định:
Hình 3.4 Các hàm đặc trưng g) Mệnh đề hợp thành, luật hợp thành
+ Khái niệm: Mệnh đề hợp thành tương ứng với một luật điều khiển thường có dạng: IF < mệnh đề điều kiện > THEN < mệnh đề kết luận >
+ Các quy tắc hợp thành mờ thường dùng:
XÂY DỰNG THUẬT TOÁN VỀ ỨNG DỤNG LOGIC MỜ TRONG KỸ THUẬT DẪN HƯỚNG ROBOT TỰ HÀNH VÀ MÔ PHỎNG TRÊN
Như ở Chương 2 và Chương 3 đã đề cặp tới việc xây dựng mô hình hóa cho robot tự hành kiểu 3 bánh và lý thuyết về điều khiển mờ Trong chương 4 sẽ đi vào xây dựng mô hình robot trên phần mềm mô phỏng Mathlab – Simulink và bộ điều khiển mờ sẽ được xây dựng và sử dụng để điều khiển robot đó Nội dung chương gồm:
- Giới thiệu về Mathlab – Simulink
- Giới thiệu về Fuzzy Logic ToolBox
- Xây dựng bộ điều khiển Fuzzy Control trong Fuzzy Logic Toolbox
- Xây dựng và mô phỏng robot bám quỹ đạo xác định sử dụng bộ điều khiển Fuzzy Logic Control (FLC)
- Xây dựng và mô phỏng robot tự điều hướng tránh vật cản sử dụng bộ điều khiển mờ [12]
4.1 Giới thiệu về Mathlab Simulink và Fuzzy Logic Toolbox
Mathlab là phần mềm tính toán, mô phỏng được ứng dụng rộng rãi trong các lĩnh vực khoa học và trở thành công cụ tính toán kỹ thuật hàng đầu, bao gồm phân tích dữ liệu, thiết kế mô phỏng… rất phù hợp cho những bài toán về điều khiển tự động và xử lý tín hiệu Mathlab có nhiều tính năng về đồ họa, có thể vẽ các đặc tính bất kỳ trên mặt phẳng hai chiều hoặc không gian 3 chiều Mathlab còn có khả năng lập trình như một ngôn ngữ thực sự có cấu trúc lệnh giống Pasal hoặc C [6]
Mathlab Simulink được viết tắt từ Simulation and Link là một chương trình đi chung với Mathlab, là một phương trình đồ họa cho phép mô phỏng rất tốt cho các hệ thống tự động Đây là một chương trình đồ họa cho phép mô phỏng các hệ thống
41 bằng cách sử dụng các khối trong thư viện Simulinlk và kết nối chúng lại với nhau một cách linh hoạt theo ý muốn bằng cách nhấp nhả chuột Simulink có thể mô phỏng hầu hết các hệ thống phi tuyến, tuyến tính…
Simulink cho phép chúng ta dễ dàng xây dựng các mô hình từ đầu hoặc lấy các mô hình đã tạo sẵn và thêm những khối cho chúng Simulink cho phép thay đổi các thông số của các khối trong hệ thống Ta có thể sử dụng tất cả các công cụ trong Mathlab do đó sẽ rất dễ dàng để lấy kết quả tính toán được để trực tiếp mô phỏng, phân tích và làm trực quan hóa chúng Simulink biến máy tính thành một phòng thí nhiệm thu nhỏ cho việc mô phỏng, mô hình hóa và phân tích hệ thống mà điều này rất khó làm được trong thực tế
Hình 4.1 Giao diện phần mềm Matlab 2018a
Tổng quát, Simulink là một phần mềm sử dụng cho việc mô phỏng hóa, mô phỏng và phân tích hệ thống động Nó hỗ trợ cả hai hệ thống phi tuyến và tuyến tính, mô phỏng trong khoảng thời gian liên tục, các khoảng thời gian lấy mẫu Mô hình có thể được mô phỏng bằng các phương pháp phân tích mô hình từ các Menu của Simuink hoặc từ các cửa sổ lệnh của Mathlab Có thể sử dụng đồng hồ đo, dao động kí hoặc các khối hiển thị kết quả để lấy kết quả mô phỏng Từ đó có thể thay đổi các thông số của hệ thống để đạt được kết quả như ý muốn Sau đó các kết quả mô phỏng có thể đưa vào vùng làm việc của Mathlab để xử lý tiếp Ngoài ra để phục vụ cho việc
42 mô phỏng các hệ thống khác nhau trên máy tính, Mathlab được tích hợp một bộ công cụ Toolbox với nhiều mô hình dành cho việc mô phỏng các hệ thống khác nhau như: xử lý tín hiệu số, hệ thống tự động điều khiển, hệ thống điện, mạng nơ-ron, hệ thống suy luận mờ…
Hình 4.2 Cửa sổ công cụ mô phỏng Simulink
Chương trình mô phỏng Simulink được gọi ra từ chương trình chính Mathlab bằng lệnh >>simulink hoặc nút trên thanh công cụ của Mathlab Cửa sổ xây dựng mô hình mô phỏng như hình 4.3
Hình 4.3 Cửa sổ xây dựng mô hình 4.1.2 Fuzzy Logic Toolbox
Fuzzy Logic Toolbox là tập hợp những hàm xây dựng trong môi trường tính toán số của Mathlab Nó cũng cấp nhiều công cụ hữu ích cho con người sử dụng để tạo và soạn thảo hệ thống suy luận mờ (FIS) trong Command Windown của Mathlab hoặc chúng có thể xây dựng riêng bằng ngôn ngữ lập trình mà gọi các hệ thống mờ trong Fuzzy Logic Toolbox Người sử dụng có thể làm việc bằng các dòng lệnh đó, những Toolbox này thiên về những công cụ giao diện đồ họa (GUI) để giúp người sử dụng hoàn tất công việc một cách dễ dàng hơn
Hình 4.4 Fuzzy Logic Toolbox 4.2 Xây dựng bộ điều khiển Fuzzy Logic Controller (FLC) trên Fuzzy Logic Toolbox
4.2.1 Thuật toán điều khiển Mobile robot, định nghĩa các biến vào ra
Như mô hình mobile robot đã được xây dựng ở chương 2, robot gồm 3 bánh, 2 bánh chủ động ở phía sau được gắn hai động cơ và 1 bánh lái phía trước có khả năng quay tự do Nhiệm vụ của robot là bám quỹ đạo và tránh chướng ngại vật, di chuyển đến điểm đích Robot được trang bị 16 cảm biến siêu âm để đo khoảng cách của các chướng ngại vật xung quanh nó Trong mô hình robot này các yếu tố như nhiễu, ma sát trượt, lực quán tính của xe được bỏ qua Ở đây chỉ xét tới các yêu tố liên quan tới robot là góc θ, tọa độ hiện tại robot xy và tọa độ mục tiêu (đích) xT, yT Bộ phận được tác động điều khiển là 2 động cơ gắn với 2 bánh phải và trái
Giả sử robot di chuyển từ một tọa độ gốc đến một tọa độ mục tiêu đã biết trước Khi robot di chuyển, nó bị lệnh ra khỏi đường đi do gặp vật cản hay chướng ngại vật,
45 lúc đó sẽ có sự sai lệnh về cả vị trí và tư thế của nó so với yêu cầu Bộ điều khiển sẽ có nhiệm vụ xử lý các tín hiệu được gửi về từ cảm biến để xác định các sai lệnh, từ đó đưa ra tín hiệu để điều khiển hai động cơ như thế nào để robot về được quỹ đạo như ban đầu Tại mỗi thời điểm lấy mẫu mo-dun tính toán sai số vị trí và hướng , , x y giữa các tọa độ thực tế (x, y, θ) được nhận từ các cảm biến trong thực tế và tọa độ quỹ đạo (xd, yd, θd) Bộ điều khiển mờ được thiết kế trong Fuzzy Logic Toolbox sẽ có bốn đầu vào là khoảng cách, góc của robot so với mục tiêu và khoảng cách và góc của robot so với vật cản, hai đầu ra là tín hiệu điều khiển hai động cơ chủ động, thực tế là các xung điện điều khiển tốc độ hai động cơ
Hình 4.5 Robot trong tọa độ Decade Để điều khiển hệ thống, biểu diễn giá trị 2 biến trạng thái nằm trong khoảng
0 X1 25(cm), X2 (rad), 0 X3 10(cm), X4 (rad) Giá trị đầu ra cho bộ điều khiển mờ (FLC) sẽ là giá trị vận tốc góc bánh phải r và vận tốc góc bánh trái l Các giá trị này còn phụ thuộc vào rằng buộc kết cấu cơ khí của robot Trong trường hợp này ta chọn trong dải từ 0 r , l 6
Hình 4.6 Sơ đồ khối toàn bộ Mobile Robot
4.2.2 Xác định tập mờ a) Miền giá trị vật lý cơ sở của các biến ngôn ngữ
- Sai lệnh khoảng cách giữa robot và mục tiêu:
- Tín hiệu sai lệnh giữa góc giữa robot và mục tiêu:
- Sai lệnh khoảng cách giữa robot và chướng ngại vật:
- Tín hiệu sai lệnh giữa góc của robot và chướng ngại vật:
- Tín hiệu đầu ra, vận tốc góc bánh trái và bánh phải:
0 Left 6 (rad/s) b) Số lượng tập mờ (giá trị ngôn ngữ)
Về nguyên tắc, số lượng tập mờ cho mỗi biến ngôn ngữ thường nằm trong khoảng từ 3 đến 10 giá trị Nếu số lượng tập mờ ít hơn 3 thì ít có ý nghĩa vì không thể thực hiện được việc chi tiết hóa các phương án xử lý Nếu lớn hơn 10 thì đòi hỏi người lập trình phải xử lý một lượng lớn các suy luận, phải nghiên cứu đầy đủ để đồng thời phân biệt khoảng từ 5 đến 9 phương án khác nhau và phần cứng phải có khả năng lưu trữ lớn, cũng như khả năng xử lý nhanh đặc biệt trong bài toàn điều hướng robot hoạt động trong môi trường thực (là bài toán yêu cầu cần có tốc độ xử lý và khả năng lưu trữ rất lớn) Đối với quá trình điều khiển robot có thể chọn giá trị ngôn ngữ sau:
+ Left Z o Slower , , Medium, Fast c) Các hàm liên thuộc Đây là điểm cực kì quan trọng vì quá trình làm việc của bộ điều khiển mờ phụ thuộc rất nhiều vào dạng và kiểu hàm liên thuộc Do vậy cần chọn kiểu hàm liên thuộc có phần chồng lên nhau và phủ kín miền giá trị vật lý, để trong quá trình điều khiển không xuất hiện “lỗ hổng” và tránh trường hợp với một giá trị vật lý rõ đầu vào Xo mà tập mờ đầu ra có độ cao bằng 0 (miền xác định tập rỗng) và bộ điều khiển không thể đưa ra một quyết định điều khiển nào đó gọi là hiện tượng “cháy nguyên tắc”
ỨNG DỤNG HỆ SỐ GIA TỬ TRONG ĐIỀU KHIỂN MOBILE ROBOT
Trong chương này, sử phương pháp điều khiển Đại số gia tử để điều khiển robot di động và được hướng dẫn, sử dụng code và cung cấp tài liệu bởi anh Nguyễn Sỹ Tài trích dẫn theo bài báo: Sy – Tai Nguyen, Thi – Thoa Mac, Hai – Le Bui: “Motion control of simple mobile robot using hedge – algebras – based controller.” Journal of Robotics (submitted) [13] Trên cơ sở đó áp dụng các giá trị tối ưu của biến thiết kế mới và thay đổi các trường hợp mô phỏng khác nhau Kết quả cho thấy hiệu quả điều khiển của bộ điều khiển HAC cao hơn bộ điều khiển mờ (FLC) cả về quãng đường di chuyển của robot và thời gian tính toán
5.1 Phương pháp thiết kế bộ điều khiển sử dụng hệ số gia tử [13] 5.1.1 Khái niệm Đối với bài toán điều khiển, tiếp cận mờ sử dụng những thông tin quan trọng để điều khiển là hệ luật So với điều khiển thông thường có mô hình toán học của đối tượng thì đối với hệ điều khiển mờ, thông tin về đối tượng điều khiển là chưa đầy đủ và hạn chế Điều khiển mờ đã thành công trong lĩnh vực điều khiển, thường áp dụng cho các đối tượng khó mô hình hóa, không biết trước mô hình toán học và có thông tin không rõ ràng, không đầy đủ
HA – Hệ số gia tử là công cụ tính toán mềm, một cách tiếp cận mới trong tính toán cho bộ điều khiển mờ nên các nhà nghiên cứu có hướng tới việc ứng dụng trong lĩnh vực điều khiển và tự động hóa Trong HA các giá trị ngôn ngữ có thể biểu diễn dưới dạng các số thực với độ lớn phù hợp với ngữ nghĩa tự nhiên của các giá trị ngôn ngữ Cách biểu diễn này cho phép làm đơn giản hóa các bước tính toán trong HA Vì vậy,
HA đã được ứng dụng hiệu quả trong các bài toán của lĩnh vực công nghệ thông tin như trong điều khiển quá trình, nhất là điều khiển các mô hình cơ học Do đó, trong chương này, bài toán điều khiển chuyển động của một mobile robot sử dụng bộ điều khiển HAC được sử dụng để tìm đường đi ngắn nhất đến mục tiêu cho robot và đồng thời robot tránh được các chướng ngại vật
Bộ điều khiển sử dụng HA gọi tắt là HAC (Hedge Algebra based Controller) thể hiện sơ đồ tổng quát như hình 5.1
Hình 5.1 Sơ đồ bộ điều khiển sử dụng HA
Trong đó: x là giá trị đặt đầu vào, xs giá trị ngữ nghĩa đầu vào, u giá trị điều khiển và us giá trị ngữ nghĩa điều khiển
HAC gồm các khối sau:
- Khối I – Normalization (Ngữ nghĩa hóa): nhiệm vụ biến đổi tuyến tính x sang xs.
- Khối II – SQMs và HA-IRMd: thực hiện phép nội suy ngữ nghĩa từ xs sang us trên cơ sở hàm ánh xạ ngữ nghĩa định lượng và hệ luật ngữ nghĩa
- Khối III – Denormalization (Giải ngữ nghĩa): nhiệm vụ biến đổi tuyến tính us sang u
Các bước thực hiện thiết kế HAC:
- Bước 1: Chọn bộ tham số của đại số gia tử, tính toán các giá trị ngữ nghĩa định lượng cho các giá trị ngôn ngữ của biến ngôn ngữ Ngữ nghĩa hóa các biến đầu vào x (sai lệnh e và đạo hàm sai lệch edot) theo tính toán các giá trị ngữ nghĩa định lượng cho hệ luật điều khiển
- Bước 2: Xây dựng ánh xạ ngữ nghĩa định lượng (mặt cong ngữ nghĩa định lượng của hệ luật ngữ nghĩa) Trên cơ sở điều khiển ban đầu đã được định nghĩa hóa định
68 lượng, nội suy các giá trị điều khiển ngữ nghĩa định lượng us theo ánh xạ ngữ nghĩa định lượng
- Bước 3: Giải ngữ nghĩa giá trị us nhận giá trị điều khiển thực theo u
5.1.2 Ý tưởng và các công thức cơ bản của HA
Theo nghĩa của các nhãn ngôn ngữ có thể thấy rằng Vô cùng nhỏ < Rất nhỏ < nhỏ
< Hơi nhỏ < Hơn lớn < lớn < Rất lớn < Vô cùng lớn Như vậy, chúng ta có một quan điểm mới: tập hợp ngôn ngữ có thể mô hình hóa bằng một poset (partially ordered set – tập hợp có thứ tự), một cấu trúc có thứ tự dựa trên các ngữ nghĩa [10], [11]
Coi BIÊN ĐỘ DAO ĐỘNG là một biến ngôn ngữ và là tập hợp các giá trị ngôn X ngữ của nó Giả thiết rằng các gia tử ngôn ngữ được sử dụng để biểu diễn BIÊN ĐỘ DAO ĐỘNG gồm Vô cùng Rất, và Hơi, và các phần tử sinh là nhỏ và lớn Như vậy,
X = {Vô cùng nhỏ, Rất nhỏ, nhỏ, Hơi nhỏ, Hơn lớn, lớn, Rất lớn, Vô cùng lớn } {0, , W 1} là một tập hợp giá trị ngôn ngữ của BIÊN ĐỘ DAO ĐỘNG, trong đó 0, W và tương ứng là những phần tử đặc trưng cận trái (1 Tuyệt đối nhỏ), trung hòa và cận phải (Tuyệt đối lớn)
Tập hợp ngôn ngữ có thể sắp xếp thứ tự dựa trên những quan sát sau: X
- Mỗi phần tử sinh có một dấu thể hiện xu hướng ngữ nghĩa Ví dụ, lớn có một xu hướng “đi lên”, được gọi là xu hướng dương, và nó được ký hiệu là c + , trong khi nhỏ có một xu hướng “đi xuống”, được gọi là xu hướng âm, được ký hiệu là c Nhìn chung, về mặt ngữ nghĩa chúng ta luôn có c + c
- Mỗi gia tử cũng có một dấu Nó là dương nếu nó tăng xu hướng ngữ nghĩa của các phần tử sinh và âm, nếu nó làm giảm xu hướng này Ví dụ, Vô cùng là dương với tất cả các phần tử sinh, trong khi Hơi gây ra hiệu ứng ngược lại nên nó là âm Tập hợp các gia tử âm được ký hiệu là H và H + là tập hợp các gia tử dương của BIÊN ĐỘ DAO ĐỘNG
Tập hợp ngôn ngữ có thể được coi là một đại số trừu tượng (abstract algebra) X
AX = (X,G, C, H, ), trong G = {c, c + }, C = { , , }, = 0 W 1 H H + H và là một
69 quan hệ thứ tự trên Giả thiết rằng X H = h{ -1, , h-q}, trong đó h-1 < h-2 < < h-q,
H + = h{1, , hp}, với h1< h2 < < hp. Độ đo tính mờ của các phần tử sinh và các gia tử trong tập hợp ngôn ngữ được định nghĩa như sau : fm X [0, 1] được gọi là một độ đo tính mờ của các phần tử trong nếu: X fm c( ) +fm(c + ) = 1 và h H fm(hx) = fm x( ), với x X; (29) Với các phần tử , và , fm (0 W 1 0) = fm(W) = fm(1) = 0; (30)
( ) ( ) fm hx fm hy fm x fm y (31)
Tỉ lệ này không phụ thuộc vào các phần tử cụ thể nào, được gọi là độ đo tính mờ của gia tử h và được ký hiệu là (h) Đối với mỗi độ đo tính mờ trên , ta cófm X X: fm(c) + fm(c + ) = 1 (32)
Hàm Sign: X { 1, 0, 1} là một ánh xạ được định nghĩa đệ quy như sau, với , h h' H và c {c, c + }:
Sign(c) = 1, Sign(c + ) = +1 (36) Sign(hc) = Sign(c), nếu là h âm đối với (37) Sign(hc) = + Sign(c), nếu là h dương đối với c (38) Sign(h'hx) = Sign(hx), nếu h’hx hx và h' là âm đối với h (39) Sign(h'hx) = + Sign(hx), nếu h’hx hx và h là ' dương đối với h (40) Sign(h'hx) = 0 nếu h’hx = hx (41) Với là một độ đo tính mờ trên Ánh xạ ngữ nghĩa định lượng (SQMs) fm X : X [0,1], được sinh ra bởi trên , được định nghĩa như sau: fm X
{ j ( i ) ( j ) ( j )} i Sign j fm h x h x fm h x (45) với { : j j q j p & j 0} = [-q^p] và (hjx) = [1 + Sign(hjx)Sign(hphjx).( - )]/2
MÔ PHỎNG ROBOT TRÁNH CHƯỚNG NGẠI VẬT BẰNG PHẦN MỀM V-REP VÀ SỬ DỤNG BỘ ĐIỀU KHIỂN MỜ, ĐẠI SỐ GIA TỬ 6.1 giới thiệu phần mềm V-REP
V-REP là phần mềm tạo, thử nhiệm và mô phỏng hệ thống robot Nó có thể sử dụng độc lập hoặc nhúng vào các phần mềm khác (như Mathlab, Python…) cho phép tạo, điều khiển, quản lý đối tượng và các cảnh vật
Hình 6.1 Phần mềm V-REP 6.2 Lưu đồ thuật toán và chương trình điều khiển
Ban đầu kết nối ứng dụng V-rep với chương trình điều khiển trên Mathlab Bằng cách sử dụng các cảm biến phía trước, bên phải và bên trái tính toán vị trí, hướng di chuyển, trạng thái cảm biến của robot so với vật cản nếu có va chạm hoặc tiếp cận mục tiêu thì nó sẽ có giá trị là yes, ngược lại không va chạm hoặn không đạt được mục tiêu sẽ có giá trị là no Khi cảm nhận được vật cản kiểm soát vật cản được kích
83 hoạt, khi không có vật cản robot tiếp tục theo dõi bộ điều khiển và di chuyển đến mục tiêu
Hình 6.2 Sơ đồ thuật toán điều khiển robot V-REP MATLAB
6.2.2 Chương trình điều khiển a) Bắt đầu chương trình mô phỏng
Khi bắt đầu chương trình ta luôn có:
84 b) Xử lý các đối tượng
Có 7 đối tượng cần được xử lý trong chương trình:
- Robot Pioneer p3-dx ID: Pioneer_p3dx
- Điểm Goal và Start ID: GOAL, START Goal là vật thể hình tròn màu đỏ, Start là vật thể hình tròn màu xanh lá
- Bánh xe bên phải Pioneer_p3dx ID: Pioneer_p3dx_rightMotor Sử dụng đối tượng này để khởi động bánh xe bên phải
- Bánh xe bên trái Pioneer_p3dx ID: Pioneer_p3dx_leftMotor Sử dụng đối tượng này để khởi động bánh xe bên trái
- 3 cảm biến siêu âm của Pionerr_p3dx ID: Pioneer_p3dx_ultrasonicSensor2, Pioneer_p3dx_ultrasonicSensor5, Pioneer_p3dx_ultrasonicSensor7
CODE: c) Tính sai số vị trí Đầu tiên cần lấy vị trí của robot Pioneer và đối tượng goal
85 Để nhận hàm sử dụng cho vị trí và định hướng cho robot: simxGetObjectPosition và simxGetObjectOrientation rob_poss trả về vị trí của robot trong vector W P r r r r x , , y z so với hệ tọa độ {W} Đơn vị mét rob_ortt trả về vector định hướng W r R R R, , trong hệ tọa độ {W} , , lần lượt là các góc quay Euler theo các trục X, Y, Z Giá trị dao động từ -pi đến pi Đơn vị radian
Tương tự với gol_poss và gol_ortt Nó trở lại W P g g g g x , , y z và W g G G G, , tương ứng Để tính sai số vị trí hoặc sai số khoảng cách, có thể sử dụng khoảng cách Euclide giữa hai điểm
( x x ) ( y y ) ( z z ) d r g r g r g (27) c) Tính sai số góc Để tính sai số góc, cần biểu diễn vị trị hệ tọa độ mục tiêu {G} so với hệ tọa độ robot {R}
Sử dụng ma trận chuyển đổi (Rotation) 2D:
RPGvà W PGlà tọa độ đồng nhất của R PG, W PGtương ứng:
Và tìm được: e atan 2( R Gy, R Gx) Kết quả tính theo góc radian
Code: d) Đọc trạng thái cảm biến (phát hiện hoặc không phát hiện chướng ngại vật)
Cảm biến được sử dụng là cảm biến siêu âm Robot Pioneer có 16 cảm biến, nhưng trong mô phỏng chỉ sử dụng 3 cảm biến Đọc cảm biến bằng lệnh vrep simxReadProximitySensor () Nó sẽ trả về hai giá trị quan trọng, detectionState (trạng
87 thái phát hiện) chứa true để phát hiện đối tượng và false không phát hiện đối tượng detectionPoint trả lại vector 3x1 chứa khoảng cách của đối tượng được phát hiện theo hướng X, Y và Z tương ứng
Nếu cảm biến phát hiện đối tượng thì giữ nguyên giá trị đo được Nếu không để giá trị mặc định là 400cm
Hai bộ điều khiển logic mờ được sử dụng để điều hướng robot di động từ vị trí bắt đầu đến điểm mục tiêu Điều khiển logic mờ theo dõi Tracking Fuzzy Logic Control (TFLC) và điều khiển logic mờ tránh chướng ngại vật (OAFLC) được kết hợp để di chuyển robot đến mục tiêu dọc theo đường không va chạm Trong công việc này, thuật toán bắt đầu với bộ điều khiển TFLC Nếu cảm biến phát hiện bất kì chướng ngại vật nào phía trước robot, thì thuật toán sẽ chuyển qua bộ điều khiển OAFC Đầu ra của hai bộ điều khiển là vận tốc trái và phải của mỗi bánh xe a) Tracking Fuzzy Logic Control
Hình 6.3 Sơ đồ Input và Output của TFLC
Nhiệm vụ của TFLC là di chuyển robot đến điểm mục tiêu một cách suôn sẻ Đầu vào là góc giữa robot và mục tiêu (sai số góc) và khoảng cách từ robot đến mục tiêu Đầu ra của TFLC là vận tốc của động cơ bên trái và bên phải Các biến ngôn ngữ được sử dụng cho góc giữ robot và mục tiêu: N: Âm, SN: âm Nhỏ, NNZ: gần không âm, Z: không, NPZ: gần không dương, SP: dương nhỏ, P: dương Các biến ngôn ngữ được sử dụng cho khoảng cách đầu vào là: Z: không, NZ: gần không, N: gần, M: trung bình, NF: hơi xa, F: xa, VF: rất xa
Khoảng cách của robot đến đích (goal) Giá trị đầu vào mét:
Góc hướng chuyển động đến mục tiêu Đầu vào là độ:
TFLC được thực hiện bởi 7 chức năng thành viên cho mỗi đâu ra (vận tốc trái
LV và vận tốc phải RV của động cơ) Các biến ngôn ngữ được sử dụng: Z: không, S: chậm, NM: gần trung bình, M: trung bình, NH: gần cao, H: cao, VH: rất cao Đầu ra của TFLC Giá trị đầu ra với đơn vị deg/s
Bảng 11 Bảng FAM quy tắc mờ của vận tốc bánh phải
Distance/Angle N SN NNZ Z NPZ SP P
NF VH H NH NH NM S S
VF VH H NH VH NM S S
Bảng 12: Bảng FAM quy tắc mờ của vận tốc bánh trái
Distance/Angle N SN NNZ Z NPZ SP P
NF S S NM NH NH H VH
VF S S NM VH NH H VH b) Obstance Avoidance Fuzzy Logic Control (OAFC)
Hình 6.4 Sơ đồ Input và Output của OAFC
Nhiệm vụ của OAFC là tạo tín hiệu điều khiển (vận tốc trái LV và phải RV của động cơ) Đầu vào của OAFC là khoảng cách giữa khoảng cách bên trái, phía trước và bên phải của robot và chướng ngại vật Những khoảng cách này được thu thập bởi
3 cảm biến siêu âm là cảm biến bên trái, phía trước và bên phải của robot Đầu ra của OAFC là vận tốc của động cơ bên trái và bên phải OAFC được thực hiện bởi ba chức
91 năng thành viên cho mỗi đầu vào Các biến ngôn ngữ được sử dụng cho khoảng cách giữa robot và chướng ngại vật (RD, FD và RD) là: N: gần, M: trung bình, F: xa Đầu vào là cảm biến đo khoảng cách phải, giữa, trái của robot so với chướng ngại vật Đơn vị cm Đầu ra của OAFC là vận tốc góc bánh trái và vận tốc bánh phải Đơn vị deg/s Đối với các đầu ra OAFC được triển khai với năm hàm liên thuộc cho mỗi đầu ra (vận tốc bên trái LV và vận tốc bên phải RV) Các biến ngôn ngữ được sử dụng cho OAFC là: NH: âm cao, N: âm, P: dương, PH: dương cao, VHP: dương rất cao Đầu ra của OAFC:
Bảng 13 Bảng FAM quy tắc mờ của OAFC
LD FD RD RV LV
6.4 Đại số gia tử HAC a) Tracking HAC
Giả thiết các biến ngôn ngữ đầu vào Distance/Angle có các giá trị ngôn ngữ là vL,
L, W, H, vH = {0.125; 0.25; 0.5; 0.75; 0.875}, biến điều khiển w có các giá trị ngôn ngữ vvL, vL, L, W, H, vH và vvH = {0.0625; 0.125; 0.25; 0.5; 0.75; 0.875; 0.9375}
Cơ sở luật HA (bảng SAM - Semantic Associative Memory) với các giá trị ngữ nghĩa định lượng có thể xây dựng được dựa trên cơ sở luật mờ bảng FAM (bảng 11) như trên bảng 13
Bảng 14 Bảng SAM của Tracking HA
Dis/Ang vL L W H vH vL vvH vvH vvH vH vH
H vL L vL vvL vvL vH vL vL vvL vvL vvL
Hình 6.5 Mặt suy luận của Tracking HAC b) Avoid Obstance HAC
Giả thiết các biến ngôn ngữ đầu vào cho Distance và góc là L, W, H = {0.25; 0.5; 0.75} và biến điều khiển là vvL, vL, L, W, H, vH và vvH = {0.0625; 0.125; 0.25; 0.5; 0.75; 0.875; 0.9375}
Cơ sở luật HA (bảng SAM - Semantic Associative Memory) với các giá trị ngữ nghĩa định lượng có thể xây dựng được dựa trên cơ sở luật mờ bảng FAM (bảng 12) như trên bảng 14
Bảng 15 Bảng SAM của Avoid Obstance
Hình 6.6 Mặt suy luận Avoid Obstance
6.4.1 Thiết kế môi trường hoạt động cho robot sử dụng phần mềm V-rep
Giả sử môi trường hoạt động của robot Pioneer p3dx là môi trường văn phòng với các chướng ngại vật như bàn, ghế, tường, cột trụ, hình vuông được thêm vào bản đồ Điểm bắt đầu là hình tròn màu xanh và điểm mục tiêu là hình tròn màu đỏ Mục tiêu là điều khiển robot tránh các chướng ngại vật trong văn phòng và di chuyển suôn sẻ đến mục tiêu Môi trường hoạt động được thiết kế trong phần mềm V-rep được thể hiện bởi các hình dưới đây:
Hình 6.7 Thiết kế môi trường hoạt động cho robot
MÔ PHỎNG ROBOT TRÁNH CHƯỚNG NGẠI VẬT BẰNG PHẦN MỀM V-REP VÀ SỬ DỤNG BỘ ĐIỀU KHIỂN MỜ, ĐẠI SỐ GIA TỬ 6.1 giới thiệu phần mềm V-REP
V-REP là phần mềm tạo, thử nhiệm và mô phỏng hệ thống robot Nó có thể sử dụng độc lập hoặc nhúng vào các phần mềm khác (như Mathlab, Python…) cho phép tạo, điều khiển, quản lý đối tượng và các cảnh vật
Hình 6.1 Phần mềm V-REP 6.2 Lưu đồ thuật toán và chương trình điều khiển
Ban đầu kết nối ứng dụng V-rep với chương trình điều khiển trên Mathlab Bằng cách sử dụng các cảm biến phía trước, bên phải và bên trái tính toán vị trí, hướng di chuyển, trạng thái cảm biến của robot so với vật cản nếu có va chạm hoặc tiếp cận mục tiêu thì nó sẽ có giá trị là yes, ngược lại không va chạm hoặn không đạt được mục tiêu sẽ có giá trị là no Khi cảm nhận được vật cản kiểm soát vật cản được kích
83 hoạt, khi không có vật cản robot tiếp tục theo dõi bộ điều khiển và di chuyển đến mục tiêu
Hình 6.2 Sơ đồ thuật toán điều khiển robot V-REP MATLAB
6.2.2 Chương trình điều khiển a) Bắt đầu chương trình mô phỏng
Khi bắt đầu chương trình ta luôn có:
84 b) Xử lý các đối tượng
Có 7 đối tượng cần được xử lý trong chương trình:
- Robot Pioneer p3-dx ID: Pioneer_p3dx
- Điểm Goal và Start ID: GOAL, START Goal là vật thể hình tròn màu đỏ, Start là vật thể hình tròn màu xanh lá
- Bánh xe bên phải Pioneer_p3dx ID: Pioneer_p3dx_rightMotor Sử dụng đối tượng này để khởi động bánh xe bên phải
- Bánh xe bên trái Pioneer_p3dx ID: Pioneer_p3dx_leftMotor Sử dụng đối tượng này để khởi động bánh xe bên trái
- 3 cảm biến siêu âm của Pionerr_p3dx ID: Pioneer_p3dx_ultrasonicSensor2, Pioneer_p3dx_ultrasonicSensor5, Pioneer_p3dx_ultrasonicSensor7
CODE: c) Tính sai số vị trí Đầu tiên cần lấy vị trí của robot Pioneer và đối tượng goal
85 Để nhận hàm sử dụng cho vị trí và định hướng cho robot: simxGetObjectPosition và simxGetObjectOrientation rob_poss trả về vị trí của robot trong vector W P r r r r x , , y z so với hệ tọa độ {W} Đơn vị mét rob_ortt trả về vector định hướng W r R R R, , trong hệ tọa độ {W} , , lần lượt là các góc quay Euler theo các trục X, Y, Z Giá trị dao động từ -pi đến pi Đơn vị radian
Tương tự với gol_poss và gol_ortt Nó trở lại W P g g g g x , , y z và W g G G G, , tương ứng Để tính sai số vị trí hoặc sai số khoảng cách, có thể sử dụng khoảng cách Euclide giữa hai điểm
( x x ) ( y y ) ( z z ) d r g r g r g (27) c) Tính sai số góc Để tính sai số góc, cần biểu diễn vị trị hệ tọa độ mục tiêu {G} so với hệ tọa độ robot {R}
Sử dụng ma trận chuyển đổi (Rotation) 2D:
RPGvà W PGlà tọa độ đồng nhất của R PG, W PGtương ứng:
Và tìm được: e atan 2( R Gy, R Gx) Kết quả tính theo góc radian
Code: d) Đọc trạng thái cảm biến (phát hiện hoặc không phát hiện chướng ngại vật)
Cảm biến được sử dụng là cảm biến siêu âm Robot Pioneer có 16 cảm biến, nhưng trong mô phỏng chỉ sử dụng 3 cảm biến Đọc cảm biến bằng lệnh vrep simxReadProximitySensor () Nó sẽ trả về hai giá trị quan trọng, detectionState (trạng
87 thái phát hiện) chứa true để phát hiện đối tượng và false không phát hiện đối tượng detectionPoint trả lại vector 3x1 chứa khoảng cách của đối tượng được phát hiện theo hướng X, Y và Z tương ứng
Nếu cảm biến phát hiện đối tượng thì giữ nguyên giá trị đo được Nếu không để giá trị mặc định là 400cm
Hai bộ điều khiển logic mờ được sử dụng để điều hướng robot di động từ vị trí bắt đầu đến điểm mục tiêu Điều khiển logic mờ theo dõi Tracking Fuzzy Logic Control (TFLC) và điều khiển logic mờ tránh chướng ngại vật (OAFLC) được kết hợp để di chuyển robot đến mục tiêu dọc theo đường không va chạm Trong công việc này, thuật toán bắt đầu với bộ điều khiển TFLC Nếu cảm biến phát hiện bất kì chướng ngại vật nào phía trước robot, thì thuật toán sẽ chuyển qua bộ điều khiển OAFC Đầu ra của hai bộ điều khiển là vận tốc trái và phải của mỗi bánh xe a) Tracking Fuzzy Logic Control
Hình 6.3 Sơ đồ Input và Output của TFLC
Nhiệm vụ của TFLC là di chuyển robot đến điểm mục tiêu một cách suôn sẻ Đầu vào là góc giữa robot và mục tiêu (sai số góc) và khoảng cách từ robot đến mục tiêu Đầu ra của TFLC là vận tốc của động cơ bên trái và bên phải Các biến ngôn ngữ được sử dụng cho góc giữ robot và mục tiêu: N: Âm, SN: âm Nhỏ, NNZ: gần không âm, Z: không, NPZ: gần không dương, SP: dương nhỏ, P: dương Các biến ngôn ngữ được sử dụng cho khoảng cách đầu vào là: Z: không, NZ: gần không, N: gần, M: trung bình, NF: hơi xa, F: xa, VF: rất xa
Khoảng cách của robot đến đích (goal) Giá trị đầu vào mét:
Góc hướng chuyển động đến mục tiêu Đầu vào là độ:
TFLC được thực hiện bởi 7 chức năng thành viên cho mỗi đâu ra (vận tốc trái
LV và vận tốc phải RV của động cơ) Các biến ngôn ngữ được sử dụng: Z: không, S: chậm, NM: gần trung bình, M: trung bình, NH: gần cao, H: cao, VH: rất cao Đầu ra của TFLC Giá trị đầu ra với đơn vị deg/s
Bảng 11 Bảng FAM quy tắc mờ của vận tốc bánh phải
Distance/Angle N SN NNZ Z NPZ SP P
NF VH H NH NH NM S S
VF VH H NH VH NM S S
Bảng 12: Bảng FAM quy tắc mờ của vận tốc bánh trái
Distance/Angle N SN NNZ Z NPZ SP P
NF S S NM NH NH H VH
VF S S NM VH NH H VH b) Obstance Avoidance Fuzzy Logic Control (OAFC)
Hình 6.4 Sơ đồ Input và Output của OAFC
Nhiệm vụ của OAFC là tạo tín hiệu điều khiển (vận tốc trái LV và phải RV của động cơ) Đầu vào của OAFC là khoảng cách giữa khoảng cách bên trái, phía trước và bên phải của robot và chướng ngại vật Những khoảng cách này được thu thập bởi
3 cảm biến siêu âm là cảm biến bên trái, phía trước và bên phải của robot Đầu ra của OAFC là vận tốc của động cơ bên trái và bên phải OAFC được thực hiện bởi ba chức
91 năng thành viên cho mỗi đầu vào Các biến ngôn ngữ được sử dụng cho khoảng cách giữa robot và chướng ngại vật (RD, FD và RD) là: N: gần, M: trung bình, F: xa Đầu vào là cảm biến đo khoảng cách phải, giữa, trái của robot so với chướng ngại vật Đơn vị cm Đầu ra của OAFC là vận tốc góc bánh trái và vận tốc bánh phải Đơn vị deg/s Đối với các đầu ra OAFC được triển khai với năm hàm liên thuộc cho mỗi đầu ra (vận tốc bên trái LV và vận tốc bên phải RV) Các biến ngôn ngữ được sử dụng cho OAFC là: NH: âm cao, N: âm, P: dương, PH: dương cao, VHP: dương rất cao Đầu ra của OAFC:
Bảng 13 Bảng FAM quy tắc mờ của OAFC
LD FD RD RV LV
6.4 Đại số gia tử HAC a) Tracking HAC
Giả thiết các biến ngôn ngữ đầu vào Distance/Angle có các giá trị ngôn ngữ là vL,
L, W, H, vH = {0.125; 0.25; 0.5; 0.75; 0.875}, biến điều khiển w có các giá trị ngôn ngữ vvL, vL, L, W, H, vH và vvH = {0.0625; 0.125; 0.25; 0.5; 0.75; 0.875; 0.9375}
Cơ sở luật HA (bảng SAM - Semantic Associative Memory) với các giá trị ngữ nghĩa định lượng có thể xây dựng được dựa trên cơ sở luật mờ bảng FAM (bảng 11) như trên bảng 13
Bảng 14 Bảng SAM của Tracking HA
Dis/Ang vL L W H vH vL vvH vvH vvH vH vH
H vL L vL vvL vvL vH vL vL vvL vvL vvL
Hình 6.5 Mặt suy luận của Tracking HAC b) Avoid Obstance HAC
Giả thiết các biến ngôn ngữ đầu vào cho Distance và góc là L, W, H = {0.25; 0.5; 0.75} và biến điều khiển là vvL, vL, L, W, H, vH và vvH = {0.0625; 0.125; 0.25; 0.5; 0.75; 0.875; 0.9375}
Cơ sở luật HA (bảng SAM - Semantic Associative Memory) với các giá trị ngữ nghĩa định lượng có thể xây dựng được dựa trên cơ sở luật mờ bảng FAM (bảng 12) như trên bảng 14
Bảng 15 Bảng SAM của Avoid Obstance
Hình 6.6 Mặt suy luận Avoid Obstance
6.4.1 Thiết kế môi trường hoạt động cho robot sử dụng phần mềm V-rep
Giả sử môi trường hoạt động của robot Pioneer p3dx là môi trường văn phòng với các chướng ngại vật như bàn, ghế, tường, cột trụ, hình vuông được thêm vào bản đồ Điểm bắt đầu là hình tròn màu xanh và điểm mục tiêu là hình tròn màu đỏ Mục tiêu là điều khiển robot tránh các chướng ngại vật trong văn phòng và di chuyển suôn sẻ đến mục tiêu Môi trường hoạt động được thiết kế trong phần mềm V-rep được thể hiện bởi các hình dưới đây:
Hình 6.7 Thiết kế môi trường hoạt động cho robot
KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN
Sau một thời gian nghiên cứu, tìm hiểu, xây dựng, tính toán thiết kế bộ điều khiển cho Robot 3 bánh di chuyển đến mục tiêu và tránh chướng ngại vật sử dụng bộ điều khiển FLC - Fuzzy Logic Control và bộ điều khiển Đại số gia tử - HAC cùng với sự giúp đỡ nhiệt tình của cô PSG.TS Mạc Thị Thoa và các bạn trong Khoa đến nay đồ án của em đã hoàn thành
7.1 Những kết quả đạt được Đồ án nghiên cứu ứng dụng phương pháp điều khiển hiện đại để nâng cao chất lượng robot, cụ thể là ứng dụng phương pháp điều khiển mờ (FLC) và bộ điều khiển Đại số gia tử (HAC) để điều khiển robot bám quỹ đạo và di chuyển đến mục tiêu tránh vật cản ứng dụng trong các lĩnh vực thăm dò, vận chuyển, giám sát, kiểm tra… là một vấn đề cấp thiết, được xuất phát từ nhu cầu thực tiễn của ngành điều khiển học hiện đại Mô hình động học của robot di động đã được xây dựng và mô hình hóa trên phần mềm mô phỏng Matlab, V-rep Nghiên cứu lý thuyết về hệ mờ và đại số gia tử phân tích ưu nhược điểm mỗi loại và việc so sánh, kết hợp chúng thành bộ điều khiển robot di động, nhằm phát huy ưu điểm của điều khiển mờ theo Đại số gia tử trong điều khiển hệ thống phi tuyến
Xây dựng mô hình toán học cho robot di động, mô phỏng trên Matlab, xây dựng hệ điều khiển và các quy luật điều khiển, đồnng thời mô phỏng các quỹ đạo chuyển động khác nhau để thấy rõ mối quan hệ và tác động qua lại giữa các chuyển động đến chất lượng và độ chính xác điều khiển vị trí robot
Xây dựng mô hình chuyển động cho robot bằng phần mềm V-rep và mô phỏng trên phần mềm Matlab Các kết quả mô phỏng cho thấy cả hai bộ điều khiển (FLC và HAC) đều thỏa mãn mục tiêu điều khiển, đó là đưa robot đến mục tiêu đồng thời tránh các chướng ngại vật Song bộ điều khiển Đại số gia tử có thời gian chạy mô phỏng nhanh hơn và quỹ đạo chuyển động trơn tru và tối ưu hơn bộ điều khiển mờ FLC
104 Đồ án giúp làm cơ sở khoa học cho việc thiết kế chế tạo các robot di động bằng bánh xe chín xác về vị trí và tốc độ đối với các quỹ đạo tham chiếu, tạo nền tảng cơ bản với mô hình rõ ràng cho việc ứng dụng vào thực tế cuộc sống như: vận chuyển thiết bị trong các nhà hàng, nhà máy, bệnh viện, kiểm tra thiết bị trong không gian hẹp… giúp tiết kiệm sức lao động, cách ly con người khỏi môi trường bức xạ cao và khí thải độc hại
7.2 giới hạn của đề tài
Giới hạn của đồ án chỉ thực hiện mô phỏng và kiểm chứng sự đúng đắn của bộ điều khiển mờ (FLC) và bộ điều khiển Đại số gia tử (HAC) trên Mathlab, chưa thực hiện mô hình thực nghiệm thực tế
7.3 Hướng phát triển của đề tài
Tiếp tục hoàn thiện và phát triển các hệ luật điều khiển Từ đó áp dụng các bộ điều khiển vào mô hình thực tế để kiếm chứng độ hiệu quả của chúng
Nghiên cứu áp dụng các bộ điều khiển (Fuzzy và HAC) giúp mobile robot thực hiện các chuyển động phức tạp hơn Như xây dựng bộ điều khiển cho 2, 3 hoặc nhiều mobile robot hơn di chuyển trong không gian để đạt được mục tiêu, tránh được chướng ngại vật đồng thời các robot không va chạm vào nhau trong quá trình di chuyển
Từ những nghiên cứu về logic mờ theo Đại số gia tử trong đề tài sẽ là cơ sở ban đầu để tiếp tục nghiên cứu ứng dụng của nó Đặc biệt trong công việc chẩn đoán kỹ thuật phương tiện giao thông Nó cho phép chẩn đoán các hỏng hóc của phương tiện mà không cần thông tin chính xác và độ tin cậy cao Nó có thể tổng hợp kinh nghiệm của các chuyên gia và kỹ thuật viên giỏi.