3.5.1. Môi trường di chuyển của robot
Robot di chuyển trong môi trường tĩnh có vật cản, vật cản cố định hay xuất hiện ngẫu nhiên trong quá trình robot di chuyển. Hình dạng và kích thước của vật cản là tùy ý nhưng chúng ta ưu tiên các vật cản hình hộp với kích thước tương đối lớn để thể hiện rõ được biên dạng vật cản.
3.5.2. Giải thuật phát hiện và tránh vật cản Yêu cầu của giải thuật: Yêu cầu của giải thuật:
Phát hiện được vật cản từ vị trí robot đến vật cản trong khoảng cách an toàn, tránh va chạm xảy ra cho robot.
Rẽ tránh vật cản và trở lại hướng di chuyển ban đầu.
Trong quá trình rẽ tránh vật cản phải vẽ lại được biên dạng của vật cản. Từ yêu cầu trên chúng ta tiến hành mô phỏng như sau:
Hình 3.19. Môi trường di chuyển của robot
Robot được trang bị 3 cảm biến siêu âm để đo khoảng cách từ nó đến vật cản. Các cảm biến được bố trí như hình 3.20 nhằm thực hiện các chức năng khác nhau.
60
Hình 3.20. Vị trí các cảm biến trên robot
Cảm biến trung tâm có nhiệm vụ phát hiện vật cản trong khoảng cách 10cm.
Cảm biến trái và cảm biến phải có nhiệm vụ thu thập khoảng cách từ vật cản đến robot để thể hiện lại biên dạng của vật cản.
Khoảng cách từ vật cản đến robot tương ứng với khoảng cách từ vật cản đến cảm biến: cảm biến trung tâm (d1), cảm biến trái (d2) và cảm biến phải (d3).
Quá trình di chuyển của robot:
Đầu tiên các cảm biến siêu âm sẽ đo và trả về các khoảng cách từ robot đến môi trường xung quay theo các hướng tương ứng. Khoảng cách từ cảm biến trung tâm (d1) quyết định hướng di chuyển của robot.
Nếu (d1>=10cm): không có vật cản trong phạm vi 10cm, robot di chuyển về phía trước.
61
Nếu (d1<10cm): có vật cản trong phạm vi 10cm, robot dừng lại.
Hình 3.22. Cảm biến trung tâm phát hiện vật cản
Trong lúc dừng lại, các cảm biến trái và phải của robot sẽ quyết định hướng rẽ tránh vật cản của robot theo các trường hợp sau sau:
o Nếu d2<d3: khoảng cách bên trái lớn hơn bên phải, robot rẽ trái 900 tránh vật cản.
62
o Nếu d2>d3: khoảng cách bên trái lớn hơn bên phải, robot rẽ phải 900 tránh vật cản.
Hình 3.24. Cảm biến phải trả về d3 từ đó vẽ lại biên dạng của vật cản.
Robot được quy định góc xoay là 900 để thuận lợi cho việc di chuyển cũng như thu thập các số liệu cần thiết từ các cảm biến. Robot di chuyển đến khi hết biên dạng mặt phẳng trước của vật cản thì dừng lại và rẽ về hướng di chuyển ban đầu.
63 Trong khi robot rẽ hướng và trở lại hướng di chuyển ban đầu sẽ có 2 trường hợp:
Nếu robot rẽ phải tránh vật cản (d2<d3) thì rẽ trái để trở lại hướng di chuyển ban đầu.
Nếu robot rẽ trái tránh vật cản (d2>d3) thì rẽ phải để trở lại hướng di chuyển ban đầu.
Trong quá trình di chuyển, cảm biến trái và cảm biến phải thu thập số liệu cho việc vẽ lại biên dạng vật cản, cảm biến trung tâm tiếp tục phát hiện vật cản trong phạm vi 10cm.
Hình 3.26. Cảm biến thu thập dữ liệu của biên dạng
64
3.6. Giải thuật vẽ lại biên dạng vật cản và hướng di chuyển của robot
Sơ đồ 3.5. Sơ đồ giải thuật vẽ lại biên dạng vật cản và hướng di chuyển của robot
Giải thuật giúp robot ghi lại được biên dạng vật cản và hướng di chuyển của mình nhờ vào các tín hiệu được xử lý từ cảm biến. Chuỗi dữ liệu gửi đến máy tính từ Arduino thông qua bluetooth là 1 chuỗi các ký tự bao gồm khoảng cách từ robot đến vật cản và hướng di chuyển hiện tại của robot.
Kiểm tra chuỗi ký tự: chuỗi ký tự được quy định là các giá trị kiểu chuỗi cách nhau bởi dấu “+”, kết thúc bằng ký tự “a”. Báo lỗi nếu chuỗi không hợp lệ sau đó tiếp tục kiểm tra chuỗi. Chuỗi dữ liệu hợp lệ sẽ được xử lý dưới dạng các pixel trên 1 bitmapimage cho trước. Sau đó lưu vào trong bộ nhớ máy tính. Sau khi kết thúc quá trình chúng ta truy xuất đến địa chỉ đã lưu ảnh và xem ảnh.
65
Xử lý chuỗi và hiển thị chúng về dạng các pixel:
Việc xác định hướng di chuyển của robot đầu tiên ta xét thông số heading:
Robot có 4 hướng di chuyển cơ bản: Trên – Dưới – Trái – Phải.
Tương ứng với các hướng di chuyển sẽ có 1 giá trị góc xoay khác nhau và việc quy định góc xoay phù hợp với hướng di chuyển nào sẽ do người lập trình quyết định.
Sau khi đã biết được hướng di chuyển hiện tại của robot, ta tiến hành xử lý các thông số còn lại trong chuỗi ký tự:
Để hiển thị các pixel, chúng ta cần tạo ra 1 không gian để tập hợp chúng: không gian 2D này được cố định 2 trục xy tương ứng với chiều rộng và chiều dài.
Hình 3.27. Các pixel sẽ được hiển thị trong không gian 2D
Để hiện thỉ tọa độ các pixel, chúng ta sử dụng các số liệu từ chuỗi ký tự kết hợp với tọa độ các điểm trong không gian hiển thị.
Không gian hiển thị các pixel:
Chiều rộng x chiều dài = 400 x 400: tương ứng với 160000 pixel được hiển thị.
Mỗi pixel được cấu thành từ 3 yếu tố: tọa độ trục x – tọa độ trục y – màu sắc hiển thị.
66
Cách hiển thị tọa độ các pixel bao gồm 4 trường hợp: a. Robot đang di chuyển về phía trước:
Chúng ta sẽ sử dụng các số liệu có được từ chuỗi để hiển thị vị trí hiện tại của robot. Vị trí hiện tại bao gồm 3 pixel: pixel trung tâm (màu trắng) thể hiện robot; pixel bên trái (màu vàng) thể hiện d2; pixel bên phải (màu xanh) thể hiện d3.
Tọa độ của các pixel thể hiện như sau (x,y): Pixel trung tâm (White):
( w 2 idth , 2 height ) Pixel trái (Yellow):
( w 2 idth – d2, 2 height ) Pixel phải (Green):
( w 2 idth + d3, 2 height ) Kết quả thực nghiệm:
Chú ý: Chiều dài (height) tăng lên 1 khoảng bằng 5 để thể hiện được hướng di chuyển lên của robot: height = height + 5.
67
b. Robot đang di chuyển theo hướng ngược lại hướng di chuyển ban đầu:
Tọa độ của các pixel thể hiện như sau: Pixel trung tâm (White):
(w 2 idth , 2 height ) Pixel trái (Yellow):
(w 2 idth + d2, 2 height ) Pixel phải (Green):
(w 2 idth - d3, 2 height ) Kết quả thực nghiệm:
Chú ý: Chiều dài (height) giảm xuống 1 khoảng bằng 5 để thể hiện được hướng di chuyển xuống của robot: height = height – 5.
68
c. Robot di chuyển sang bên trái:
Tọa độ của các pixel thể hiện như sau: Pixel trung tâm (White):
(w 2 idth , 2 height ) Pixel trái (Yellow):
(w 2 idth , 2 height - d2) Pixel phải (Green):
( w 2 idth , 2 height + d3) Kết quả thực nghiệm:
Chú ý: Chiều rộng (width) giảm xuống 1 khoảng bằng 5 để thể hiện được hướng di chuyển trái của robot: width = width – 5.
69
d. Robot di chuyển sang bên phải:
Tọa độ của các pixel thể hiện như sau: Pixel trung tâm (White):
(w 2 idth , 2 height ) Pixel trái (Yellow):
( w 2 idth , 2 height + d2) Pixel phải (Green):
(w 2 idth , 2 height - d3) Kết quả thực nghiệm:
Chú ý: Chiều rộng (width) tăng lên 1 khoảng bằng 5 để thể hiện được hướng di chuyển phải của robot: width = width + 5.
Lưu ý: Để đảm bảo việc tọa độ của pixel không vượt quá (nằm ngoài) môi trường thể hiện, chúng ta x2 chiều dài sau mỗi lần vẽ.
70
3.7. Thiết kế xây dựng chương trình điều khiển, giám sát trên máy tính
Quá trình điều khiển và giám sát robot được thực hiện trên máy tính thông qua giao tiếp bằng bluetooth. Phần mềm Microsoft Visual Studio được sử dụng để thiết kế giao diện người dùng (GUI) giao tiếp giữa robot và máy tính. Thông qua đó ta có thể sử dụng máy tính để điều khiển và vẽ lại sơ đồ đường đi của robot.
Chúng ta sử dụng WPF Application để thiết kế GUI giao tiếp giữa máy tính và Arduino. WPF, viết tắt của Windows Presentation Foundation, là hệ thống API mới hỗ trợ việc xây dựng giao diện đồ hoạ trên nền Windows. WPF được xem như thế hệ kế tiếp của WinForms, WPF tăng cường khả năng lập trình giao diện của lập trình viên bằng cách cung cấp các API cho phép tận dụng những lợi thế về đa phương tiện hiện đại.
71
CHƯƠNG 4 : KẾT QUẢ, THỰC NGHIỆM, PHÂN TÍCH, TỔNG HỢP
4.1. Kết quả mô hình cơ khí
Mô hình tổng quan:
72
73
4.2. Kết quả điều khiển và vẽ lại sơ đồ
4.2.1. Giải thuật di chuyển của robot trong môi trường tĩnh a. Robot di chuyển trong môi trường không vật cản a. Robot di chuyển trong môi trường không vật cản
Trường hợp 1: Robot ban đầu ở vị trí A bên trái căn phòng, di chuyển thẳng đến khi gặp tường thì xoay phải 1 góc 900 sau đó di chuyển thẳng 1 đoạn 40cm xoay phải 1 góc 900, tiếp tục di chuyển thẳng đến khi gặp tường thì xoay trái 1 góc 900 sau đó di chuyển thẳng 1 đoạn 40cm xoay trái 1 góc 900, cứ như thế robot di chuyển đến điểm B bên phải.
Hình 4.3. Robot di chuyển từ trái sang phải
Trường hợp 2: Nếu vị trí ban đầu của robot bên phải căn phòng thì di chuyển và xoay theo hướng ngược lại với trường hợp 1.
74
Trường hợp 3: Nếu vị trí xuất phát của Robot ở khoảng giữa căn phòng thì khi di chuyển gặp tường, sẽ quyết định rẽ phải hay trái tùy thuộc vào khoảng
cách trả về từ 2 cảm biến trái (d2) và phải (d3). - Nếu d2 > d3: áp dụng quy tắc trường hợp 1.
- Nếu d3 > d2: áp dụng quy tắc trường hợp 2.
b. Robot di chuyển trong môi trường tĩnh có vật cản
Trường hợp 1: Robot di chuyển từ vị trí bên trái căn phòng, di chuyển thẳng đến khi gặp vật cản thì rẽ tránh vật cản sau đó trở lại hướng di chuyển ban đầu.
Hình 4.5. Robot di chuyển tránh vật cản
Trường hợp 2: Robot di chuyển từ vị trí bên phải căn phòng, di chuyển thẳng đến khi gặp vật cản thì rẽ tránh vật cản sau đó trở lại hướng di chuyển ban đầu.
Trường hợp 3: Nếu vị trí xuất phát của Robot ở khoảng giữa căn phòng thì khi di chuyển gặp tường, sẽ quyết định rẽ phải hay trái tùy thuộc vào khoảng cách trả về từ 2 cảm biến trái (d2) và phải (d3).
Nếu d2 > d3: áp dụng quy tắc trường hợp 1.
75
76
4.2.2. Kết quả điều khiển
Trường hợp robot di chuyển từ bên trái căn phòng:
Sơ đồ 4.2. Sơ đồ căn phòng khi robot di chuyển từ bên trái
Trong đó:
+ Vật cản được đánh số 1-4.
77
Hình 4.6. Mô hình robot trong môi trường giả định khi di chuyển từ bên trái
Robot sẽ di chuyển về phía trước – gặp vật cản số 1 – tránh và di chuyển lên gặp vật cản số 2 – tránh và di chuyển lên gặp tường – tránh và di chuyển sang phải gặp góc trường – tránh và di chuyển xuống gặp vật cản số 3 – tránh và di chuyển xuống gặp vật cản số 4 – tránh và di chuyển xuống – kết thúc hành trình.
Trong quá trình di chuyển, robot thu thập số liệu khoảng cách từ các cảm biến, từ đó vẽ lại được sơ đồ đường đi của robot và hiển thị chúng dưới dạng 1 tấm ảnh là tập hợp các pixel.
78 Hình ảnh thu thập được từ phần mềm khi robot kết thúc hành trình:
Hình 4.7. Hình ảnh thu thập được từ phần mềm
Từ hình ảnh trả về, chúng ta thấy được hướng di chuyển của robot (các pixel màu trắng) và biên dạng của các vật cản (các pixel màu vàng).
79
Trường hợp robot di chuyển từ bên phải căn phòng:
Sơ đồ 4.3. Sơ đồ căn phòng khi robot di chuyển từ bên phải
Robot sẽ di chuyển về phía trước – Gặp vật cản số 3 – Rẽ tránh và di chuyển lên gặp tường – Rẽ tránh và di chuyển sang trái gặp góc tường – Rẽ tránh và di chuyển xuống gặp vật cản số 1 – Rẽ tránh và di chuyển xuống – Kết thúc hành trình.
80
Hình 4.8. Mô hình robot trong môi trường khi di chuyển từ bên phải
Hình ảnh thu thập được từ phần mềm khi robot kết thúc hành trình
Hình 4.9. Hình ảnh thu thập từ phần mềm
Ta có thể thấy vì robot chỉ di chuyển lướt qua vật cản số 2 và số 4 nên biên dạng vật cản chỉ thể hiện được 1 mặt bên còn vật cản số 1 và số 3 biểu hiện 2 mặt bên.
81
Trường hợp tại vị trí bất kì
Trường hợp robot không xuất phát từ bên trái hay bên phải phòng thì khi robot di chuyển thẳng và phát hiện vật cản, lúc đó robot sẽ lựa chọn hướng di chuyển ưu tiên khoảng cách lớn hơn từ 2 cảm biến trái và phải.
Nếu d2>d3: rẽ phải. Nếu d2<d3: rẽ trái.
82
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1 Kết luận
Sau quá trình thực hiện đề tài tốt nghiệp, nhóm đã hoàn thành được các yêu cầu đặt ra trong việc điều khiển robot tự hành trong môi trường tĩnh có vật cản .Kết quả đề tài đã đạt được những ưu điểm cũng như những hạn chế.
Ưu điểm:
Robot có khả năng tự hành.
Robot có khả năng phát hiện và tránh vật cản.
Sơ đồ đường đi được hiển thị khá rõ ràng.
Hạn chế:
Hạn chế về công nghệ, kỹ thuật.
Còn nhiều khoảng trống trong phòng mà robot chưa di chuyển tới
Biên dạng vật cản thể thiện chưa đầy đủ.
Phụ thuộc vào độ nhiễu của cảm biến.
Robot di chuyển còn thiếu ổn định trong lúc rẽ tránh.
5.2 Hướng phát triển
Việc thực hiện trên mô hình đã hoàn thành những yêu cầu đặt ra, tuy nhiên do thời gian, kinh phí, công nghệ còn hạn chế nên mô hình chỉ là mô hình đáp ứng việc nghiên cứu và học tập. Từ mô hình robot với 3 cảm biến siêu âm, ta có thể mở rộng số cảm biến ra, để robot có thể phát hiện vật cản từ nhiều phía.
Ngoài ra, ta có thể sử dụng thêm camera và áp dụng xử lý ảnh kết hợp với cảm biến siêu âm để xây dựng bản đồ hoàn chỉnh, chính xác về môi trường xung quanh.
83
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Báo cáo khoa học: “Đo Khoảng Cách Và Xác Định Vị Trí Vật Thể Bằng Phương Pháp Siêu Âm”, Trần Thị Thủy, Nguyễn Quang Thắng , Đinh Sơn Thạch, Khoa Khoa học Ứng dụng, trường Đại học Bách khoa – ĐHQG TP.HCM, Phòng thí nghiệm Công nghệ Nano, ĐHQG TP.HCM.
[2] Tăng Quốc Nam, “Điều khiển robot tự hành bám quĩ đạo và tránh vật cản”. Tuyển tập công trình khoa học Hội nghị Cơ học toàn quốc lần thứ 8 (2007). Tập 1, tr. 314-323.
[3] Tăng Quốc Nam, “Ứng dụng điều khiển mờ trong bài toán tránh vật cản của robot tự hành dùng cảm biến siêu âm”. Tạp chí Khoa học Giáo dục Kỹ thuật - Đại học Sư phạm Kỹ thuật thành phố Hồ Chí Minh. Số 7 (1/2008), tr.82-88.
[4] Website: tapchilaptrinh.vn, codientu.org
Tiếng Anh