2.3.1. Kỹ thuật điều khiển bằng tay
Ưu điểm
Robot di chuyển bằng bộ điều khiển tay là một trong loại robot thi công đơn giãn nhất, chi phí đầu tƣ thấp, di chuyển linh hoạt theo sự điều khiển, có thể có nhiều tính năng làm đƣợc nhiều việc thay con ngƣời.
Khuyết điểm
Robot di chuyển bằng bộ điều khiển có khuyết điểm lớn nhất là còn phụ thuôc vào sự điều khiển của con ngƣời, không thay thế đƣợc con ngƣời, không tự di chuyển đƣợc do vậy robot di chuyển bằng bộ điều khiển chỉ hoạt động đƣợc khi có con ngƣời can thiệp.
2.3.2. Kỹ thuật dò line bằng thiết bị cảm ứng
Ưu điểm
Là một robot tự vận hành một cách tự động, giá thành tƣơng đối trung bình không cao, có thể dùng các cảm biến thông thƣờng cũng có thể dò đƣờng đƣợc.
Đƣợc ứng dụng nhiều cho các cuộc thi robocon, có khả năng thay thế con ngƣời làm việc trong phạm vi nhỏ.
Có khả năng tự động cua trái, cua phải một cách linh hoạt.
Khuyết điểm
Tuy là một robot di chuyển tự động nhƣng chỉ di chuyển trên mặt ph ng có các đƣờng line quy định của nhà thiết kế.
Giá thành không cao nhƣng không đƣợc ứng dụng rộng rãi, không di chuyển đƣợc trên các mặt ph ng khác.
Không thông minh, chỉ di chuyển đƣợc quảng đƣờng đã đƣợc qui định.
2.3.3. Kỹ thuật tìm đƣờng đi bằng phƣơng pháp xử lý ảnh
Ưu điểm
Chi phí chế tạo robot ít tốn kém hơn so với hai kỹ thuật dùng thiết bị điều khiển và dùng thiết bị cảm ứng, kỹ thuật này chỉ sử dụng camera để thu nhận hình ảnh để tìm đƣờng, không cần gắn thêm vào robot các thiết bị cảm ứng để dò đƣờng.
Theo phƣơng pháp xử lý ảnh, khi hành lang thay đổi (dài, ngắn) thì không cần chỉnh sửa lại chƣơng trình, khác hơn so với kỹ thuật dò line dùng thiết bị cảm ứng.
Khuyết điểm
Theo phƣơng pháp xử lý ảnh, kết quả di chuyển robot bị tác động bởi các yếu tố: camera, điều kiện về môi trƣờng (sáng hay tối). Chất lƣợng camera càng tốt sẽ thu nhận hình ảnh tốt thì robot di chuyển đạt đƣợc độ chính xác cao hơn.
CHƢƠNG 3
CÀI ĐẶT THỬ NGHIỆM
3.1. Giới thiệu
Chƣơng 2 đã trình bày về các kỹ thuật tìm đƣờng đi của robot và một số nhận xét về các kỹ thuật này. Qua nhận xét và đánh giá về các kỹ thuật ta thấy kỹ thuật tìm đƣờng đi bằng xử lý ảnh linh động hơn vì dữ liệu đầu vào của bài toán không cố định giống nhƣ kỹ thuật dò line dùng thiết bị cảm ứng.
Đối với kỹ thuật tìm đƣờng đi bằng phƣơng pháp xử lý ảnh tác giả cũng đã trình bày về các phƣơng pháp phát hiện biên và phƣơng pháp biến đổi Hough. Qua kết quả nhận xét và đánh giá về các phƣơng pháp phát hiện biên cho ta thấy phƣơng pháp Canny rất thích hợp cho bài toán vì phƣơng pháp này cho phép ta thay đổi một cách linh động các ngƣỡng khi xác đinh biên đồng thời có khả năng loại bỏ bớt nhiễu và các điểm biên phụ không cần quan tâm, chỉ giữ lại các điểm biên chính theo mục đích sử dụng khác nhau.
Để áp dụng lý thuyết đã trình bày ở chƣơng 2, chƣơng này sẽ trình bày một chƣơng trình demo tìm biên ảnh và xác định các đƣờng th ng Hough, qua đó ứng dụng vào bài toán điều khiển robot di chuyển dọc theo các đƣờng th ng này.
3.2. Cài đặt thuật toán xác định đƣờng đi cho Robot
Mô tả
Trong cuộc sống robot có thể giúp ta làm các công việc nặng nhọc, nguy hiểm cho sức khỏe ch ng hạn nhƣ trong các nhà máy hóa chất, nơi có nhiều chất phóng xạ. Những dây chuyền cần tự động hóa không thể thiếu
robot, đặc biệt robot có thể làm việc liên tục trong thời gian dài với độ chính xác cao.
Đối với ứng dụng này ta thiết kế robot di chuyển dọc theo hành lang bằng cách gắn thêm vào robot một camera để thu nhận hình ảnh, sau đó những hình ảnh này đƣợc gửi về máy tính phân tích và xử lý. Sau khi xử lý xong máy tính tìm đƣợc đƣờng đi và điều khiển robot di chuyển theo đƣờng đi này. Quá trình thu nhận ảnh và tìm đƣờng đi cho robot đƣợc lặp đi lặp lại cho đến khi robot đi đƣợc đến đích.
Do điều kiện về thời gian nên tôi chƣa kịp nghiên cứu để thiết kế robot thật vì vậy tôi sử dụng đoạn video clip để mô phỏng hành động di chuyển dọc theo hành lang của robot và thuật toán sẽ duyệt từng frame của đoạn video này cho đến khi kết thúc, ứng với mỗi frame thuật toán sẽ tiến hành thực hiện các bƣớc sau:
1. Xác định tọa độ robot (là tọa độ đƣợc xác định từ frame trƣớc) 2. Xác định biên dựa vào thuật toán Canny [3] [5] [6]
3. Xác định các đƣờng th ng Hough [7] [8] [9] [10] 4. Xác định tọa độ tiếp theo mà robot cần di chuyển tới 5. Di chuyển robot đến tọa độ mới
6. Quay lại bƣớc 2 cho đến khi đọc hết frame.
Ghi chú: Frame chính là hình ảnh ghi nhận tiếp theo của robot khi di chuyển sang vị trí mới.
Lưu đồ End. Đ S Begin img:=SelectFrameFromVideo(v) Canny(img) Lines:=HoughLine(img) Frame cuối cùng ? Video và độ dài bƣớc đi của robot
StartPosition(x,y) là tọa độ ban đầu của robot
NextPosition:= GetNextPosition(lines)
StartPosition.x = NextPosition.x StartPosition.y = NextPosition.y MoveRobotToPosition(StartPosition)
Thuật toán xác định đường đi
Input : Video, độ dài bƣớc đi của robot Output : Tọa đô robot cần di chuyển đến Procedure XacDinhDuongDi (v:Video) Begin
Var img : ImagePointer;
lines : array of StructLine; StartPosition: Point;
NextPosition: Point;
img := SelectFrameFromVideo(v);
StartPosition.x = {tọa độ x0 ban đầu của robot}; StartPosition.y = {tọa độ y0 ban đầu của robot};
While (img) Begin
Canny(img);
lines := HoughLine(img);
NextPosition := GetNextPosition (img,bƣớc đi,lines,StartPosition);
MoveRobotToPosition (NextPosition); StartPosition.x = NextPosition.x; StartPosition.y = NextPosition.y;
End; End.
3.2.1. Thuật toán xác định vị trí mới cho robot
Giả sử tọa độ ban đầu của robot là (x0, y0). Điểm tiếp theo (xN, yN) của robot cần di chuyển đến đƣợc xác định nhƣ sau :
- Xác định 2 hoành độ trái và phải gần nhất thuộc tập đƣờng th ng Hough so với hoành đô x0.
- xN = (hoành độ trái + hoành độ phải) / 2. - yN = y0 + độ dài bƣớc đi của robot.
Hình 3.2. Cách xác định điểm đi tiếp theo cho robot
Ghi chú :
xOy : là hệ trục tọa độ so với màn hình máy tính. : Robot
Là hƣớng robot cần di chuyển đến Là độ dài bƣớc đi của robot
Là các đƣờng th ng Hough
xtrái, xphải : lần lƣợt là tọa độ bên trái gần nhất, bên phải gần nhất của các đƣờng th ng Hough so với (x0, y0)
xN,yN : Là tọa độ tiếp theo mà robot cần di chuyển đến. y
x O
xtrái xphải
a. Lưu đồ
Hình 3.3. Lưu đồ xác định điểm di chuyển tiếp theo cho robot
b. Giải thuật
Procedure GetNextPosition(img: Image, BuocDi:integer,
lines:array of StructLine, ToaDoBanDau(x0,y0): Point)
Var X_Trai, X_Phai : float; ToaDoMoi : Point;
Begin
X_Trai := Tọa độ trái gần nhất trong tập lines so với x0; X_Phai := Tọa độ phải gần nhất trong tập lines so với x0; ToaDoMoi.X := (X_Trai + X_Phai) / 2;
ToaDoMoi.Y := y0 + BuocDi;
End
Begin
Frame, tập đƣờng th ng Hough và bƣớc đi của robot
Xác định tọa độ xtrái gần nhất
Xác định tọa độ xphải gần nhất
xN = (xtrái + xphải)/2
yN = y0 + độ dài bƣớc đi của robot
3.2.2. Thuật toán xác định tọa độ trái và phải gần nhất
Hình 3.4. Cách xác định điểm trái và phải gần nhất
Giả sử ta có tập các đƣờng th ng Hough sau : lines = {1, 2, 3, 4, 5, 6} và robot R ban đầu có tọa độ (x0, y0). Ý tƣởng tìm hoành độ trái và phải gần nhất nhƣ sau:
Gọi là đƣờng th ng vuông góc với trục tung đi qua điểm (x0, y0) và cắt các đƣờng th ng (1), (2), (3), (4), (5), (6).
Ta lần lƣợt tìm điểm giao nhau của với các đƣờng (1), (2), (3), (4), (5), (6). Giả sử nghiệm tìm đƣợc lần lƣợt là : x1,x2, x3, x4, x5, x6.
Dùng mảng arrBenTrai để lƣu những hoành độ nhỏ hơn x0 và arrBenPhai để lƣu những hoành độ lớn hơn x0.
arrBenTrai = {x1, x2, x3} arrBenPhai = {x4, x5, x6}
Điểm bên trái gần nhất với x0 : X_Trai = max{arrBenTrai} = x3. Điểm bên phải gần nhất với x0 : X_Phai = min {arrBenPhai} = x4. y x O (x0,y0) X1 X2 X3 X4 X5 X6 (1) (2) (3) (4) (5) (6) ()
a. Lưu đồ
Hình 3.5. Lưu đồ xác định điểm bên trái và bên phải gần nhất
Return
X_Trai := max {arrBenTrai} X_Phai := min {arrBenPhai}
Nghiệm < x0? Begin Lines[ ],(x0,y0) Xác định đƣờng th ng i < Lines.length Tính định thức giữa với Lines[i]
DinhThuc <> 0 Tính nghiệm với Lines[i] và đƣa vào
mảng arrNghiem S Đ Chèn nghiệm vào arrBenTrai Chèn nghiệm vào arrBenPhai Đ S Đ S End
b. Giải thuật
Input : Lines[ ], (x0,y0)
Output : X_Trai, X_Phai
Procedure HoanhDo_Trai_Phai Var
i: integer; DinhThuc, Dx: float; x: float;
arrBenTrai, arrBenPhai : array of float;
Begin - Xác định đƣờng th ng đi qua (x0,y0); While (i < Lines.length) Begin Tính DinhThuc(, Lines[i]); If DinhThuc <> 0 Then Begin x := Dx / DinhThuc; If x < x0 Then arrBenTrai.Add(x); Else arrBenPhai.Add(x); End End
X_Trai := max { arrBenTrai }; X_Phai := min { arrBenPhai };
3.2.3. Kết quả thử nghiệm của thuật toán Canny và Hough
Để xác định đƣợc những đƣờng th ng Hough, thì trƣớc tiên ta phải xác định đƣợc các biên ảnh và từ những biên ảnh này ta mới xây dựng đƣợc các phƣơng trình của đƣờng th ng Hough. Tùy theo kết quả của biên ảnh thế nào thì ta sẽ có những đƣờng th ng Hough tƣơng ứng. Biên ảnh càng nhiều thì ta sẽ có đƣờng th ng Hough càng nhiều, biên ảnh càng ít thì ta sẽ có đƣờng th ng Hough càng ít.
Các kết quả thử nghiệm dƣới đây đƣợc chạy trên bộ xử lý Intel Core Duo T7250 2.0GHz, RAM 2.0GB, Windows 7 Ultimate 32-bit.
Sau đây là những kết quả thử nghiệm của thuật toán Hough khi thay đổi các giá trị thông số của thuật toán xác định biên và các giá trị thông số của chính thuật toán Hough.:
Ảnh kết quả thử nghiệm của Canny và Hough với các ngƣỡng thay đổi Hình 3.7. Ảnh biên a) Hình 3.8. Ảnh Hough a) Tl = 1, Th = 3 Hình 3.9. Ảnh biên b) Hình 3.10. Ảnh Hough b) Tl = 5, Th = 15 Hình 3.11. Ảnh biên c) Hình 3.12. Ảnh Hough c) Tl = 15, Th = 45
Hình 3.13. Ảnh biên d) Hình 3.14. Ảnh Hough d) Tl = 30, Th = 90 Hình 3.15. Ảnh biên d) Hình 3.16. Ảnh Hough d) Tl = 47, Th = 141 Bảng kết quả Ảnh biên Ảnh Hough
Tên Ngưỡng thấp Ngưỡng cao Tên Số lượng đường thẳng
a 1 3 a 1162
b 5 15 b 561
c 15 45 c 234
d 30 90 d 141
Nhận xét
Ở đây ta đánh giá phƣơng pháp Canny và Hough với các ngƣỡng khác nhau. Khi ta thay đổi ngƣỡng thấp và ngƣỡng cao thì số lƣợng biên đƣợc phát hiện cũng thay đổi nên số lƣợng đƣờng th ng Hough đƣợc tìm cũng sẽ thay đổi theo.
Nên ta thấy:
- Khi ngƣỡng thấp và ngƣỡng cao đều thấp thì số lƣợng biên phát hiện ra rất nhiều. Nên số lƣợng đƣờng th ng Hough đƣợc xác định rất nhiều, vì vậy trong trƣờng hợp này việc xác định điểm di chuyển tiếp theo cho robot tốn rất nhiều thời gian mới có thể xác định đƣợc.
- Khi cả hai ngƣỡng đều cao thì số lƣợng điểm biên đƣợc phát hiện là rất ít, chỉ những điểm có mức xám cao mới có thể thành biên. Nên số lƣợng đƣờng th ng Hough đƣợc xác định là rất ít, vì vậy trong trƣờng hợp này việc xác định điểm di chuyển tiếp theo cho robot sẽ tiết kiệm đƣợc nhiều thời gian hơn.
Kết luận chƣơng 3
Trong chƣơng này luận văn đã trình bày một số phƣơng pháp phát hiện biên và xác định các đƣờng th ng Hough trên cơ sở đó ứng dụng vào bài toán robot di chuyển dọc theo các đƣờng th ng này. Cụ thể ở chƣơng 3 đã đạt đƣợc các kết quả sau:
Cài đặt thành công thuật toán xác định biên và thuật toán Hough. Đƣa ra nhận xét về kết quả thử nghiệm của 2 thuật toán này.
Ứng dụng thuật toán Canny và Hough để xác định đƣờng đi cho robot.
KẾT LUẬN
Trong quá trình nghiên cứu tài liệu và thực hiện luận văn dƣới sự định hƣớng của thầy hƣớng dẫn tôi đã đạt đƣợc một số kết quả nhƣ sau:
- Tìm hiểu đƣợc một cách tổng quan về robot và các kỹ thuật tìm đƣờng đi của robot.
- Tìm hiểu về phƣơng pháp phát hiện biên ảnh, hệ thống hóa các phƣơng pháp phát hiện biên. Đƣa ra nhận xét, đánh giá các phƣơng pháp phát hiện biên và có lựa chọn phƣơng pháp phù hợp với từng loại ảnh. Xây dựng đƣợc các đƣờng th ng Hough thông qua các biên của ảnh.
- Ngoài ra trong quá trình nghiên cứu, tôi cũng đã tích lũy thêm cho mình về kỹ thuật lập trình và quan trọng là rèn luyện kỹ năng để thực hiện một nghiên cứu khoa học. Tuy mới chỉ là bƣớc đầu nhƣng là tiền đề giúp ích cho tôi trong thời gian nghiên cứu sắp tới để tôi đạt đƣợc những kết quả tốt hơn.
Dựa trên những kết quả bƣớc đầu đã đạt đƣợc luận văn sẽ tiếp tục nghiên cứu xác định ngã rẽ cho robot và hiện thực thuật toán tìm đƣờng đi trên robot thật.
TÀI LIỆU THAM KHẢO Tiếng Việt
[1]. Võ Đức Khánh, Hoàng Văn Kiếm, “Giáo trình xử lý ảnh số”. Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh.
[2]. Lê Hoài Quốc, Chung Tấn Lâm, “Robot công nghiệp”. Nxb Khoa hoc và kỹ thuật, 2002.
[3]. Đỗ Năng Toàn (2002), “Biên ảnh và một số tính chất”, Tạp chí Khoa học Công nghệ, Tập 40, số ĐB, tr 41-48.
[4]. Đào Văn Hiệp, “Kỹ thuật Robot”. Nxb Khoa hoc và kỹ thuật, 2004. [5]. Đỗ Năng Toàn, Phạm Văn Dũng, Phạm Việt Bình (2005), “Ứng
dụng chu tuyến trong phát hiện góc nghiêng Văn bản”. Kỷ yếu Hội thảo Quốc gia lần thứ 7 - Một số vấn đề chọn lọc của Công nghệ thông tin và Truyền thông, Đà Nẵng 18-20/08 /2004. Nxb KH&KT, Hà Nội 2005.
[6]. Đỗ Năng Toàn (2007), Phạm Việt Bình, “Giáo trình xử lý ảnh”, Đại học Thái Nguyên.
Tiếng Anh
[7]. A Amin and S. Fischer, A Document Skew Detection Method Using the Hough Transform, Pattern Analysis & Applications, 2000.
[8]. S. C. Hinds, J. L. Fisher and D. P. D'Amato. A Document Skew Detection Method Using Run-Length Encoding and the Hough Transform. 10th International Conference on Pattern Recognition, vol. 1, 1990.
[9]. AL Shatnawi and K. Omar, Methods of Arabic baseline detection the state of art. Int. J. Comput. Sci. Network Secur, 2008
[10]. S. Srihari and V. Gonvindaraju. Analysis of texual images using hough transform, 1989. Internet [11]. http://automation.net.vn/Robot-Robotics/Xu-the-pha-t-trie-n-Robot- tren-the-gio-i-va-ti-nh-hi-nh-nghien-cu-u-Robot-o-Vie-t-Nam-hie-n- nay.html [12]. http://vnexpress.net/gl/khoa-hoc/2011/10/robot-khong-lo-titan-lan- dan-tien-den-tp-hcm/page_2.asp. [13]. http://www.youtube.com/watch?v=oKm2aOd62ZI