Điều khiển mờ robotino di chuyển bám theo đường đi định trước
Trong bài báo này, chúng tôi sử dụng bộ điều khiển logic mờ để điều khiển mô hình rô
bốt Robotino di chuyển theo đường đi cố định cho trước, đây là hệ thống có tính phổ biến đối với các
mô hình Mobile Robot. Thực tế, vấn đề điều khiển Mobile Robot di chuyển bám đường luôn gặp nhiều
thách thức dưới ảnh hưởng của vận tốc và các sai số không xác định của hệ thống. Kết quả mô phỏng
cho thấy giải thuật Fuzzy điều khiển rô bốt cho đáp ứng tốt về biến thiên vận tốc.
Bạn đang xem tài liệu "Điều khiển mờ robotino di chuyển bám theo đường đi định trước", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Điều khiển mờ robotino di chuyển bám theo đường đi định trước
TẠP CHÍ KHOA HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI, SỐ 34-11/2019 45 ĐIỀU KHIỂN MỜ ROBOTINO DI CHUYỂN BÁM THEO ĐƯỜNG ĐI ĐỊNH TRƯỚC ROBOTINO FUZZY CONTROL MOVING TO THE FIXED PATH Đặng Xuân Kiên, Nguyễn Ngô Thanh Tân, Trần Tiến Đạt Trường Đại học Giao thông vận tải Tp. Hồ Chí Minh Tóm tắt: Trong bài báo này, chúng tôi sử dụng bộ điều khiển logic mờ để điều khiển mô hình rô bốt Robotino di chuyển theo đường đi cố định cho trước, đây là hệ thống có tính phổ biến đối với các mô hình Mobile Robot. Thực tế, vấn đề điều khiển Mobile Robot di chuyển bám đường luôn gặp nhiều thách thức dưới ảnh hưởng của vận tốc và các sai số không xác định của hệ thống. Kết quả mô phỏng cho thấy giải thuật Fuzzy điều khiển rô bốt cho đáp ứng tốt về biến thiên vận tốc. Từ khóa: Biến thiên vận tốc, Robotino, logic mờ, Mobile Robot. Chỉ số phân loại: 2.2 Abstract: In this paper, we use fuzzy logic controllers to control the robotino robot model moving in a given fixed path, a system that is popular with Mobile rô bốt models. In fact, the problem of controlling mobile robot on the road is always faced with many challenges under the influence of speed and unknown errors of the system. The simulation results show that the fuzzy algorithm to control the rô bốt responds well to speed variations. Keyword: Speed variations, robotino, fuzzy logic, mobile robot. Classification number: 2.2 1. Giới thiệu Hiện nay, lĩnh vực tự động hóa có vai trò vô cùng to lớn đối với sự phát triển tích cực của xã hội. Với nhiệm vụ tăng năng suất, tăng độ chính xác của sản phẩm, đồng thời, giảm thiểu các hoạt động của con người trong những môi trường độc hại hoặc khắc nghiệt, rô bốt ngày càng được sử dụng rộng rãi trong các hệ thống dây chuyền sản xuất hiện đại ở nhiều lĩnh vực và ngành công nghiệp để thay thế con người [1]. Cùng với sự phát triển về khoa học công nghệ, các rô bốt hiện đại ngày càng có khả năng tham gia vào cuộc sống của mỗi con người, trong đó đòi hỏi sự tương tác và phản ứng của rô bốt với các tín hiệu, cụ thể là mức độ tự động hóa cao [2]. Đối tượng nghiên cứu của bài báo này hướng đến là Robotino [3]. Robotino là một hệ thống rô bốt di động rất nổi tiếng dành cho phạm vi nghiên cứu thực nghiệm, giáo dục và các mục đích nghiên cứu khác, được chế tạo và phát triển bởi Festo Didactic [4]. Robotino tích hợp tất cả những chức năng tương tự như một hệ thống rô bốt công nghiệp, hiện đại. Bộ điều khiển với cấu hình mạnh mẽ; hệ thống cảm biến đa chức năng; cơ cấu chấp hành linh hoạt, cứng cáp, nhỏ gọn; chương trình đơn giản, đa dạng, dễ sử dụng với nhiều ngôn ngữ lập trình và hệ thống khác nhau. Trong quá trình điều khiển Robotino di chuyển theo đường đi cho trước, vận tốc di chuyển của rô bốt sẽ ảnh hưởng đến việc bám sát quãng đường có khi là đường thẳng hay khúc quanh. Muốn rô bốt bám sát quãng đường trong khi di chuyển, phải chọn vận tốc nhỏ tại các khúc quanh để rô bốt bám sát đường đi, đó cũng là vận tốc không đổi trong suốt quá trình di chuyển, điều này ảnh hưởng đến tốc độ làm việc của rô bốt. Bài báo áp dụng logic mờ vào điều khiển mô hình Robotino nhằm tối ưu vận tốc di chuyển của rô bốt trong khi vẫn bám sát đường đi, qua đó, tăng quãng đường di chuyển của rô bốt. 2. Cấu trúc phần cứng mô hình toán học của rô bốt Robotino 2.1. Cấu trúc phần cứng Robotino được cấu hình gồm ba bánh xe Mecanum, sắp xếp ở góc 120 độ, có thể điều khiển độc lập [3]. Các bánh xe được điều khiển di chuyển về phía trước, chạy ngược về phía sau, chạy ngang hoặc di chuyển theo vòng tròn với tốc độ tối đa lên đến 10km/h. 46 Journal of Transportation Science and Technology, Vol 34, Nov 2019 Bảng 1. Thông số kỹ thuật Robotino [3]. STT Các thông số chính của Robotino 1 Kích thước rô bốt: Đường kính 370mm, chiều cao 210, trọng lượng tổng thể 11kg và tải trọng tối đa 5kg. 2 Cảm biến: Chín cảm biến khoảng cách hồng ngoại Sharp GD2D120, cảm biến điện cảm tương tự, hai cảm biến quang, webcam với giao tiếp USB, ba bộ mã hóa quang. 3 Bộ điều khiển: Bộ xử lý PC 104, tương thích với hệ điều hành MOPSlcdVE, tần số 300 MHz, SDRAM 128 MB, truy cập mạng LAN không dây. 4 Module giao tiếp I/O: Ngõ ra điều khiển ba bộ bánh xe đa hướng độc lập được đặt ở vị trí lệch góc 120o, 10 ngõ vào tương tự (0 - 10V, 50 Hz), hai ngõ ra tương tự, 16 ngõ vào/ra dạng số, ba relay. 2.2. Mô hình toán học Hình 1. Mô hình toán học rô bốt Robotino [2]. Hình 1 thể hiện mô hình toán học của Robotino. Xác định vận tốc rô bốt từ vận tốc bánh xe có thể được thực hiện bằng cách đảo ngược ma trận, ta có [2]: 𝜔𝜔𝑤𝑤ℎ = �𝜔𝜔1(𝑡𝑡)𝜔𝜔2(𝑡𝑡) 𝜔𝜔3(𝑡𝑡)� = 1𝑟𝑟 . �𝑣𝑣1(𝑡𝑡)𝑣𝑣2(𝑡𝑡)𝑣𝑣3(𝑡𝑡)� = 1 𝑟𝑟 . �− sin(𝜃𝜃 + 𝜑𝜑1) cos(𝜃𝜃 + 𝜑𝜑1) 𝑅𝑅− sin(𝜃𝜃 + 𝜑𝜑2) cos(𝜃𝜃 + 𝜑𝜑2) 𝑅𝑅 − sin(𝜃𝜃 + 𝜑𝜑3) cos(𝜃𝜃 + 𝜑𝜑3) 𝑅𝑅� . ��̇�𝑥𝑟𝑟(𝑡𝑡)�̇�𝑦𝑟𝑟(𝑡𝑡)Ω(𝑡𝑡) � (1) Trong đó: - ωi: Vận tốc góc của bánh xe i (vận tốc góc của bánh xe mô tả là vectơ ωwh); - vi: Vận tốc di chuyển của mỗi bánh xe riêng lẻ (vận tốc của bánh xe mô tả vectơ vwh); - r: Bán kính của bánh xe; - R: Khoảng cách từ bánh xe đến trung tâm của rô bốt; - xr, yr: Mô tả hệ tọa độ rô bốt; - Ω: vận tốc quay tiếp tuyến của rô bốt; - φi: Mô tả vòng quay của trục bánh xe so với hệ tọa độ rô bốt; - xw và yw: Mô tả vận tốc quay trên hệ trục tọa độ (x,y); - θ: Góc quay của hệ tọa độ rô bốt so với hệ trục tọa độ. Giai đoạn thứ hai là xử lý mối quan hệ giữa các bánh xe vận tốc và vận tốc của rô bốt. Đơn giản hóa các công thức bằng cách thay thế ma trận biến đổi từ vận tốc bánh xe sang vận tốc di chuyển với Twh → w [1,2]. Ta có: 𝜔𝜔𝑤𝑤ℎ = �𝜔𝜔1(𝑡𝑡)𝜔𝜔2(𝑡𝑡) 𝜔𝜔3(𝑡𝑡)� = 1𝑟𝑟 . �𝑣𝑣1(𝑡𝑡)𝑣𝑣2(𝑡𝑡)𝑣𝑣3(𝑡𝑡)� = 1𝑟𝑟 .𝑣𝑣𝑤𝑤ℎ = 1 𝑟𝑟 . �− sin(𝜃𝜃 + 𝜑𝜑1) cos(𝜃𝜃 + 𝜑𝜑1) 𝑅𝑅− sin(𝜃𝜃 + 𝜑𝜑2) cos(𝜃𝜃 + 𝜑𝜑2) 𝑅𝑅 − sin(𝜃𝜃 + 𝜑𝜑3) cos(𝜃𝜃 + 𝜑𝜑3) 𝑅𝑅� . ��̇�𝑥(𝑤𝑤)(𝑡𝑡)�̇�𝑦(𝑤𝑤)(𝑡𝑡) Ω(𝑡𝑡) � (2) Sử dụng các biểu thức dẫn xuất ở trên, có thể xác định vận tốc thực của rô bốt từ các phép đo của vận tốc góc ba bánh xe bằng cách đảo ngược ma trận Twh → w. ��̇�𝑥(𝑤𝑤)(𝑡𝑡)�̇�𝑦(𝑤𝑤)(𝑡𝑡) Ω(𝑡𝑡) � = 𝑟𝑟. [𝑇𝑇𝑤𝑤ℎ→𝑤𝑤]−1. �𝜔𝜔1(𝑡𝑡)𝜔𝜔2(𝑡𝑡)𝜔𝜔3(𝑡𝑡)� (3) Phương trình (1), (2) và (3) thể hiện các mối quan hệ cơ bản để xác định vị trí rô bốt trong môi trường thực tế. Phương pháp tính toán cố định tạo điều kiện đơn giản để ước tính vị trí hiện tại của rô bốt dựa trên vị trí đã được xác định trước đó khi vận tốc và thời gian trôi qua cho đến khi biết được vị trí hiện tại. Vị trí ước tính khi rô bốt di chuyển từ thời điểm t0 tại thời điểm t1 được xác định bằng cách sử dụng phương trình (4) như sau [2]: � 𝑥𝑥(𝑤𝑤)(𝑡𝑡1) 𝑦𝑦(𝑤𝑤)(𝑡𝑡1) 𝜃𝜃(𝑡𝑡1) �= �𝑥𝑥𝑤𝑤,0𝑥𝑥𝑤𝑤,0 𝜃𝜃0 � + 𝑟𝑟.� �[𝑇𝑇𝑤𝑤ℎ→𝑤𝑤]−1. �𝜔𝜔1(𝑡𝑡)𝜔𝜔2(𝑡𝑡) 𝜔𝜔3(𝑡𝑡)� 𝑑𝑑𝑡𝑡� 𝑡𝑡1𝑡𝑡0 (4) xw(t1) và yw(t1) là hệ tọa độ dịch chuyển tại thời điểm t1. Trong đó: - θ(t1) góc định hướng tại thời điểm t1; TẠP CHÍ KHOA HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI, SỐ 34-11/2019 47 - xw,0 và yw,0 là hệ tọa độ dịch chuyển tại thời điểm t0; - θ0 góc định hướng tại thời điểm t0. Trong trường hợp của bài báo, quy trình điều khiển Robotino bằng ngôn ngữ Matlab thông qua giao tiếp không dây được đơn giản hóa bằng cách sử dụng Robotino Matlab Toolbox. Thông tin về vị trí Robotino thu được bằng cách sử dụng bộ mã hóa trục quang và phương pháp tính toán cố định (hình học rô bốt). Nhược điểm của phương pháp tính toán cố định là các vị trí mới chỉ được xác định từ các vị trí trước đó nên các lỗi xuất hiện trong quy trình sẽ được tích lũy, và như vậy các lỗi trong ước tính vị trí sẽ tăng dần theo thời gian. 3. Thiết kế bộ điều khiển Fuzzy 3.1. Thiết kế hệ thống điều khiển dựa trên logic mờ Hình 2. Sơ đồ khối của hệ thống điều khiển rô bốt. Mô hình trên hình 2 được xây dựng cơ bản dựa trên tài liệu về phần cứng thực tế của Robotino. Trong đó, u điện áp đọc từ cảm biến, vx và vy là vận tốc tuyến tính của rô bốt theo hướng Ox và Oy; (x, y), θ vị trí và hướng của rô bốt. [4]. Nếu cảm biến trên đường đi bằng kim loại, nó sẽ xuất ra giá trị điện áp 2,00195 V và ngược lại, nếu cảm biến không nằm trên quãng đường di chuyển định trước, ngõ ra sẽ có giá trị 9,95117 V [3]. Để thử nghiệm, sau khi nhận được giá trị ngõ ra, ta trừ đi 5,97656 (là giá trị trung bình của 2,00195 và 9,95117), sau đó nhân với hệ số tỷ lệ là 3. Kết quả cuối cùng được đặt làm giá trị đầu vào cho Omega của hàm OmniDrive_setVelocity. Sau nhiều lần thử với các vận tốc khác nhau, để đảm bảo rô bốt luôn theo sát đường và quay đúng hướng, đặt tốc độ theo phương X cố định 100 mm/s, tốc độ theo phương y = 0 [4]. Cảm biến xuất ra giá trị điện áp là 2,00195 V≈2 V khi nằm trên đường đi, và ngược lại, ngõ ra sẽ có giá trị 9,95117 V≈10 V nên chọn dải giá trị đầu vào input 1 từ [210]. Thêm vào đó, với vận tốc theo phương x, rô bốt bám tốt tại các khúc quanh nên chọn các dải ngõ vào như sau: E1[2,4,6], E2[4,6,8], E3[6,8,10]. Ngõ ra với hai dải vận tốc VX1[100 125 150], VX3 [150 250 300]. 3.2. Thiết kế Bộ luật mờ Bộ luật mờ được xây dựng trên Matlab Simulink, tối giản số luật nhằm phù hợp với phần cứng, các luật mờ được thiết kế như sau: Rule1: If (sensor is E4) then (vx is VX3) (w is w4). Rule2: If (sensor is E3) then (vx is VX1) (w is w3). Rule3: If (sensor is E2) then (vx is VX1) (w is w2). Rule4: If (sensor is E1) then (vx is VX1) (w is w1). Rule5: If (sensor is E5) then (vx is VX1) (w is w5). Rule6: If (sensor is E6) then (vx is VX1) (w is w6). Rule7: If (sensor is E7) then (vx is VX1) (w is w7). Hình 3. Bộ điều khiển logic mờ - Madami. Hình 3 sử dụng bộ điều khiển logic mờ - Madami trong sơ đồ điều khiển thiết kế trong Matlab Simulink trên hình 4. Hình 4. Sơ đồ điều khiển Robotino xây dựng trong Matlab Simulink. 48 Journal of Transportation Science and Technology, Vol 34, Nov 2019 3.3. Kết quả mô phỏng Tại vận tốc biến thiên từ 100-300 mm/s, thời gian mô phỏng 25000ms Hình 5. Mô phỏng hoạt động của rô bốt tại vận tốc Vx=100mm/s. (a) Bộ điều khiển PID (b) Bộ điều khiển Fuzzy (X Axis: tọa độ theo phương x , Y Axis: tọa độ theo phương y) Hình 6. So sánh quỹ đạo dịch chuyển của rô bốt điều khiển vx, w tại vận tốc 100mm/s. Hình 6 là kết quả mô phỏng quỹ đạo di chuyển của Robotino với bộ điều khiển Fuzzy thiết kế (b) và bộ điều khiển PID (a) có sẵn. Kết quả cho thấy 2 bộ điều khiển có đáp ứng tương đối ổn định. (a) Bộ điều khiển PID (b) Bộ điều khiển Fuzzy Hình 7. So sánh quỹ đạo dịch chuyển của rô bốt điều khiển vx, w tại vận tốc 200mm/s. Bộ điều khiển Fuzzy (hình 7.b) cho đáp ứng tốt hơn khi Robotino hoạt động ở tốc độ cao (200mm/s) trong khi bộ điều khiển PID bị lệch hướng trong giai đoạn cuối của hành trình. (a) Bộ điều khiển PID (b) Bộ điều khiển Fuzzy Hình 8. So sánh quỹ đạo dịch chuyển của rô bốt điều khiển vx, w tại vận tốc 300mm/s. Tiếp tục thử nghiệm ở tốc độ 300mm/s, kết quả tại hình 8 cho thấy Robotino với bộ điều khiển PID không đạt được quỹ đạo chuẩn như bộ điều khiển Fuzzy (hình 8.b). Nhận xét: Khi điều khiển rô bốt di chuyển bám đường định trước bằng bộ điều khiển PID với vận tốc cố định, rô bốt bám sát tốt đường đi ở vận tốc vx =100 mm/s. Tuy nhiên, khi vận tốc di chuyển của rô bốt càng lớn, rô bốt mất dần khả năng bám sát đường đi mặc dù quãng đường di chuyển của rô bốt dài hơn. Khi áp dụng logic mờ để điều khiển rô bốt, về mặt đáp ứng, rô bốt vẫn bám sát tốt đường đi và di chuyển được quãng đường dài hơn trong cùng một đơn vị thời gian do được tối ưu vận tốc trên các đoạn đường khác nhau. 4. Thực nghiệm trên mô hình vật lý 4.1 Mô hình vật lý Hình 10. Mô hình rô bốt Robotino [3]. Khối máy tính có nhiệm vụ điều khiển và thu thập dữ liệu tọa độ của rô bốt để vẽ lại quãng đường di chuyển thông qua bộ giao tiếp không dây. Giá trị điện áp tương tự từ cảm biến được đưa vào bộ điều khiển logic mờ để điều khiển vận tốc theo phương x và góc xoay của rô bốt nhằm bảo đảm rô bốt giảm vận tốc tại các khúc quanh và tăng vận tốc tại các đoạn thẳng để đạt được quãng đường di chuyển dài hơn mà vẫn bám sát đường đi. TẠP CHÍ KHOA HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI, SỐ 34-11/2019 49 4.2. Kết quả thực nghiệm trên Robotino Hình 11. Thực nghiệm mô hình Robotino bám đường đi định trước. (a) Bộ điều khiển PID (b) Bộ điều khiển Fuzzy Hình 12. So sánh quãng đường di chuyển thực nghiệm của rô bốt giữa PID (a) và Fuzzy (b) tại dải vận tốc biến thiên từ 100-300mm/s. Nhận xét: Khi tiến hành thực nghiệm trên mô hình vật lý (hình 11) để điều khiển rô bốt di chuyển bám đường định trước trong cùng một đơn vị thời gian, Kết quả trên hình 12 cho thấy khi chưa áp dụng Fuzzy, rô bốt bám sát đường đi ở vận tốc vx = 100 mm/s và đạt được quãng đường di chuyển ngắn. Tuy nhiên, rô bốt mất khả năng bám sát đường đi nếu vận tốc vx = 150 mm/s. Khi áp dụng logic mờ (hình 12.b) để điều khiển rô bốt, do được tối ưu vận tốc trên các đoạn đường khác nhau nên rô bốt di chuyển được quãng đường dài hơn trong cùng một đơn vị thời gian và vẫn bám sát tốt đường đi. Mặc dù hoạt động trên mô hình thực nghiệm đạt kết quả tốt, thế nhưng, quãng đường di chuyển của rô bốt thu thập lại trên máy tính chưa phản ánh chính xác quãng đường đi thực tế và khác xa so với kết quả thu thập trên rô bốt mô phỏng. 5. Kết luận Trong bài báo này nhóm tác giả sử dụng logic mờ để điều khiển hệ thống Robotino bám sát đường đi định trước với mục đích tối ưu vận tốc khi quãng đường có sự thay đổi hình dạng, đáp ứng của hệ thống tốt trong dải vận tốc Vx từ 100 - 300mm/s. Tuy nhiên, do thông tin về vị trí Robotino thu được bằng cách sử dụng bộ mã hóa trục quang và phương pháp tính toán cố định (hình học rô bốt) nên quãng đường di chuyển thu thập trên máy tính chưa phản ánh chính xác quãng đường di chuyển của rô bốt. Qua mô phỏng bằng Matlab và thực nghiệm, bài báo đã chứng minh được khả năng rô bốt di chuyển nhanh hơn trong khi vẫn bám sát đường đi định trước khi sử dụng logic mờ, đây là kết quả tốt hơn so với bộ điều khiển PID được cài đặt thông số bởi nhà sản xuất. Kết quả bài báo là cơ sở để nhóm tác giả tiếp tục mở rộng nghiên cứu các giải thuật hiện đại khác trong các nghiên cứu sau trên mô hình Robotino Tài liệu tham khảo [1] Mohammed Rabeea Hashim Al-Dahhan, Dr. Mohammad M. Ali, 2016 13th, Path Tracking Control of a Mobile Robot using Fuzzy Logic, Department of Mechatronics Engineering, University of Philadelphia, Jordan; [2] S. E. Oltean, M. Duläu, R. Puskas, Position Control of Robotino Mobile Robot Using Fuzzy Logic, University of Tg. Mures.2010; [3] https://robot.ros.org/robotino/; [4] Festo Didactic GmbH & Co. KG, 73770 Denkendorf, Germany, 2012. Ngày nhận bài: 6/9/2019 Ngày chuyển phản biện: 11/9/2019 Ngày hoàn thành sửa bài: 3/10/2019 Ngày chấp nhận đăng: 10/10/2019
File đính kèm:
- dieu_khien_mo_robotino_di_chuyen_bam_theo_duong_di_dinh_truo.pdf