LI CAM ĐOAN
2. 2S phát tri nc ủa th giác máy tính
5.1 Mô hình robot di đ ng
Mô hình hệ thốngărobotădiăđộng dùng trong thực nghiệmăđ ợc trình bày trong hình 5.1.ăĐơyălƠămôăhìnhărobotăđ ợc thiết kế trong [20].ăCh ngătrìnhăđiều khiển robot dùng phần mềm mã nguồn m Player trên nền Linux d ngăclient/server.ăCh ngă trìnhăđiều khiểnăđóngăvaiătròăclientătraoăđổi dữ liệu với robot thông qua phần mềm Playerăđóngăvaiătròăserver.ăTh ăviện mobilerobot trên Player cung cấp các hàm giao tiếp với robot.
Phần cứng robot gồm các khối:ăc ăcấu chuyểnăđộng, hệ thống c m biến gồm 12 sonar, một la bàn số và 2 encoder gắn trên trụcă độngă c ă của 2 bánh xe. Một microcontroller làm nhiệm vụ giao tiếp các thành phần của robot với Player. Robot đ ợc trang bị thêm camera Kinect nối với máy tính qua cổng USB. Tổng quan cấu
65 trúc củaărobotădiăđộngăđ ợc trình bày trong hình 5.2. Hình 5.3 là nh chụp mô hình robot thực nghiệm.
Hình 5.1. Mô hình hệ thống robot di động.
66 (a) (b) (c) (d) Hình 5.3. nh chụp robot thực nghiệm 5.1.2 C m bi n camera Kinect i) Cấu t o
Thiết bị c m biến Kinect là một thanh ngang kết nối với một trụ nhỏ bằng một trục c ăđứngănh ătrongăhìnhă5.4.ăThiết bị bao gồm hai camera, một c m biến chiếu IR, 4 microphone và một số bộ pḥn phụ đ ợc ṿn hành b i một phần mềmăđộc quyền của Microsoft và công nghệ 3D camera của hãng PrimeSense.
67
Hình 5.4. C m biến camera Kinect
Bộ pḥn c m biến của Kinect gồm 2 camera và một c m biến chiếu IR. Bên ph i ngoài cùng là c m biến CMOS IR Microsoft X853750001/VCA379C7130. Phía giữa là c m biến màu CMOS VNA38209015 và bên trái là c m biến chiếu IR OG/0956/D306/JG05A. Camera có mộtă độngă c ă trụ đứng giúp camera có kh nĕng nghiêng lên xuống. Ngoài ra camera có tích hợp 4 microphone với bộ ADC chuyểnă đổiă t ngă tự sang số 24 bit phục vụ cho việc nḥn d ng giọng nói. Các thông số k̃ thụt củaăcameraăKinectăđ ợc trình bày trong b ng 5.1.
ii) Tương tác giữa phần mềm và phần cứng Kinect
Ng i sử dụng muốnăt ngătácăvới camera Kinect cần ph i thông qua mộtăth ăviện để giao tiếp vớiăcamera.ăTrongăđề tài chúng tôi sử dụngăth ăviệnăNUIăđ ợc cung cấp miễn phí từ trang web http://openkinect.org, truy c̣păngƠyă28/4/2011.ăTh ăviện cung cấp công cụ để có thể tiếp c̣n với dòng dữ liệu thô từ cameraănh ăminhăhọa trong hình 5.5.
Hình 5.6 thể hiện cấu trúc SDK của camera Kinect bao gồm 5 thành phần chính: (1) Phầnăcứngăgồmăcácăthiếtăbị,ăc măbiếnăvƠăHubăUSB.
(2) Trình điềuăkhiểnă(Driver)ăhỗătrợăviệcăđiềuăkhiểnăthiếtăbịăvƠădữăliệu.
(3) GiaoădiệnăứngădụngăNUIă(NUIăAPIă)ăhỗătrợătruyăxuấtădữăliệuătừăc măbiếnăvƠă dữăliệuăđiềuăkhiển.
68
Bảng 5.1: Mô t thông số kỹ thuật của camera Kinect
Thông s kƿ thu t của camera Kinect
nh màu nh RGB, YUV
Dữ liệuăđộ sâu 16 bit
Tốcăđộ khung nh 30 FBS
Độ phân gi i, dòng dữ liệu nh VGA (640x480) Độ phân gi i, dòng dữ liệuăđộ sâu QVGA (320x240)
Góc quan sát 57° theo trục ngang và 43° theo trục dọc Kho ng đoă Từ 0.5ămăđến 48 m
Gócăquayăđộngăc ă ±280 theo trụcăđứng
Định d ng âm thanh 16ăkHz,ăph ngăphápă điều chế mƣăxungăđ nă (PCM) 16 bit
Kết nối USB 2.0
69
Hình 5.6.ăCấuătrúcăSDKăcủaăKinect
iii)Dữ liệu nh và độ sâu
nh màu camera: Kinect có hai địnhă d ngă mƠuă choă cùngă mộtă dữă liệuă camera,ătùyăvƠoăứngădụngămƠăcóăthểăchọnăđịnhăd ngă nhămƠuăphùăhợp.
nh màu RGB là nhă Bitmapă 32ă bită định d ng X8R8G8B8 tuyến tính trongăkhôngăgianămƠuăsRGB,ăđộ phân gi i là 640 x 480 hoặc 1280 x 1024
chếđộ nén và tốcăđộ khung nh cao 30 FBS.
nh màu YUV là nhăBitmapă16ăbităđịnh d ng UYVY tuyến tính có hiệu chỉnh Gamma trong không gian YUV. Do sử dụng 16 bit biểu thị mộtăđiểm nh nên nh màu YUV sử dụng ít bộ nhớ dungăl ợng và bộ nhớ đệm khi truyền dữ liệu.ăĐộ phân gi i chế độ này là 640 x 480 và tốcăđộ khung
nh là 15 FBS.
Dữ liệu độ sâu lƠădữăliệuăkho ngăcáchătừăcameraăđếnămộtăđiểmăt ngăứngă vớiăđiểmă nhă trongă nh.ăDòngă dữăliệuăđộă sơuăcóăkíchăth ớcăkhungă nhălƠă 640 x 480, 320 x240 vƠă80ăxă60.ăĐộălớnălƠă16ăbitănh ngăchỉăsửădụngă12ăbită thấpă (bită 0ă- 11)ă đểă chứaă dữă liệuă kho ngă cách.ă Giáă trịă dữă liệuă bằngă 0ă vớiă nhữngăvịătríămƠăṿtăthểănằmăquáăgầnăhoặcăquáăxaăcamera.
70
5.2 K t qu th c nghi m 5.2.1 B n đ môi tr ng 5.2.1 B n đ môi tr ng
B năđồ môiătr ng cung cấp cho robotăđ ợc trình bày trong hình 5.7 v hình 5.8 là nh chụpă môiă tr ng thực nghiệmă t ngă ứng với b nă đồ.ă Môiă tr ng robot di chuyển bao gồm mộtăhƠnhălangăquaăhaiăcĕnăphòng.ăṾt c năđ ợcăđặt ngẫu nhiên trênăđ ng di chuyển của robot. Các cặpăđiểm mốcăđ ợc gắn haiăbênăt ng giúp robotăđịnh vị trí. Ṿt thểđíchăđ ợcăđặt ngẫuănhiênătrongăcĕnăphòngăthứ hai.
1,85 2,20 2,20 Điểmămốc Điểmămốc Điểmămốc Ṿtăc n Ṿtăc n Robot Ṿtăthểăđích 3,50 3,50 3,50 0,80
71
Hình 5.8. nh môi trường thực nghiệm.
5.2.2 K t qu th c nghi m các thu t toán
i) Thuật toán tránh vật c n
Kết qu thực nghiệm thụt toán tránh ṿt c năđ ợc trình bày trong hình 5.9, 5.10 và 5.11. Hình 5.9 là nh từ camera, hình 5.10 là nhăđộ sâu thể hiện dữ liệu kho ng cách, ứng với mỗiăđiểm nh sẽ có dữ liệuăkhoƠngăcáchăkhácănhauăt ngăứng với các màu khác nhau. Hình 5.11 là biểuăđồ histogramăđ ợc xây dựng từ dữ liệu kho ng cách cung cấp từ c m biến. Cột dữ liệu trong biểuăđồ càng cao thể hiện kho ng cách giữa robot vớiăvùngăkhôngăgianăt ngăứng với cột dữ liệu càng gầnăvƠăng ợc l i. Vùng mù của c m biến là từ0ăcmăđến 50 cm vì ṿy ph i chọn kho ngătácăđộng phù
72 hợpăđểrobotăkhôngăđến quá gần ṿt c nănh ngăkhôngăquáălớn sẽ gây tr ng thái dao độngăchoărobotăkhiăđiăquaăkhôngăvùngăhẹp. Tốcăđộ di chuyển khi vào vùng ṿt c n ph i nhỏđể tránhăchoărobotăr i vào tr ng thái mù.
Hình 5.9. nh camera tránh vật c n.
73
Hình 5.11.Biểu đồ histogram. ii) Thuật toán xác định điểm mốc
Kết qu thực nghiệm thụtătoánăxácăđịnhăđiểm mốcăđ ợc trình bày trong hình 5.12 và 5.13. Hình 5.12 nh so sánh vùng màu trong nh với màu mẫu. Hình 5.13 là nh phát hiệnăhaiăđiềm mốc. Thụtătoánăxácăđịnhăđiểm mốc dựa vào nḥn d ng những màu sắcăđ năgi n, vì thế robot có thể nḥn d ng nhầm vƠăxácăđịnh vị trí sai nếu có một ṿt thể hoặc một vùng không gian gần có màu sắc giốngă nh ă điểm mốc. Ngoài ra ánh sáng vƠăkíchăth ớc của ṿt mốc cũngă nhăh ngăđến chấtăl ợng nḥn d ng ṿt mốc. Nếu ánh sáng quá tối sẽ khó nḥn d ng ṿt mốc,ăcònăkíchăth ớc ṿt mốc nhỏ sẽ choăraăvùngăđiểm sáng sau khi so sánh nhỏ dễ bị nhầm với nhiễu. Tuy nhiênăkíchăth ớc ṿt mốc lớn sẽ gây ra sai số khiăđoăkho ng cách từtơmăđiểm mốc đến robot do tâm vùng màu phát hiện có thể không trùng với tọaăđộ tơmăđiểm mốc. Một yếu tố khácă cũngă nhă h ngă đến kh nĕngă nḥn d ng màu là góc nhìn của camera so vớiăđiểm mốc. Góc nḥn d ng tốt nhấtălƠăkhiăđiểm mốcăđặt vuông góc vớiăh ớng nhìn của camera. Góc nhìn lớn nhất là khi ṿt mốcăđặt song song với robot, góc nhìn càng lớn thì kh nĕngănḥn d ng càng gi m.
74
Hình 5.12. nh so sánh màu điềm mốc với màu mẫu.
Hình 5.13.Phát hiện hai điềm mốc được gắn hai bên tường. iii)Thuật toán nhận d ng cửa
Hình 5.14, 5.15, 5.16 và 5.17 trình bày kết qu thụt toán nḥn d ng cửa. Hình 5.14 là nh camera, hình 5.15 thể hiện kết qu phát hiện c nh sử dụng thụt toán Canny. Sauăđóă nh tiếp tụcăđ ợc xử lý bằng thụt toán biếnăđổiăHoughăđể tìmăđ ng thẳng
75 trong nhănh ăhìnhă5.16.ăHìnhă5.17ăthể hiện kết qu tìm c nh cửa. Nḥn d ng cửa dựaătrênăđặcăđiểm c nhăđứngăđ ợc trích xuất từ hai quá trình xử lý nh là phát hiện c nh Canny và biến đổi Hough.ăĐặcăđiểmănƠyăth ng hay nhầm lẫn với các c nh t ngănh ătrongăhìnhă5.16,ăvìăthế để lo i bỏ những c nhănƠyăthìăth ng sử dụng thông số độ rộng của cửa. Tuy nhiên vẫn có nhữngătr ng hợp nḥn d ng nhầm là một c nh cửa và một c nhăt ng hay hai c nhăt ngădoăđộ rộng giữa hai c nh này sấp sỉ với thông số cửa do sai số dữ liệuăđoăcủa c m biến gây ra.
iv) Thuật toán nhận d ng vật thểđích
Kết qu thụt toán nḥn d ng ṿt thể đíchăđ ợc trình bày trong hình 5.18. Thông th ngăđể nḥn d ng tốt thì kho ng cách giữa ṿt thể cần nḥn d ng và camera ph i nhỏ, kho ng cách tốtăđể nḥn d ng qua thực nghiệm là nhỏh nă1m.ăViệc nḥn d ng ṿt thể bằngăđặcăđiểm cục bộ kết hợp với nḥn d ng màu ṿt thể giúp robot linh ho tăh nătrongăviệcăđiătớiăđiểmăđích.ăTuyănhiênăđểđ tăđ ợcăđiều này thì ṿt thểđíchă ph i có màu chủ đ oăđủ lớnăđể có thể sử dụng thụt toán nḥn d ngămƠu.ăĐối với những ṿt thể phức t p có nhiều màu sắc thì cần gắn thêm mộtăđiểm mốc t i ṿt đích.ăĐể nḥn d ng hiệu qu thì nh ṿt thể mẫuăđể xây dựng ṭpăđặcăđiểm của ṿt thể ph iăđ ợc chụp nhiều góc nhìn.
76
Hình 5.15.Phát hiện c nh trong nh sử dụng thuật toán Canny
77
Hình 5.17. Phát hiện cửa
78
5.2.3 K t qu th c nghi m thu t toán quy đ o ho ch cho robot
Kết qu thực nghiệm thụt toán quy ho chăchoărobotădiăđộngăđ ợc trình bày trong hình 5.19, 5.20, 5.21, 5.22.
79
80
81
82 Tọaăđộ banăđầu của robot là , ,� = 0,0,�
2 ,ătrongăđóă , là tọaăđộ của robot và � là góc quay của robot. Robot di chuyển dọcătheoăhƠnhălangăđể đếnăđiểmăđíchă nằmătrongăcĕnăphòngăthứ hai tính từ vị trí banăđầu của robot. Thụt toán tránh ṿt c n áp dụng trên robot thực nghiệm ch y ổnăđịnh, robot di chuyển tránh ṿt c n qua kho ng không gian hẹp bé nhất là 65cm so vớiăkíchăth ớc của robot là 40 × 45 cm nh ătrongăhìnhă5.19ăvƠă5.20.ăRobotănḥn d ng tốtăđiểm mốc vớiăkíchăth ớc 18 × 13 cm. Khi robot qua vị tríăđiểm mốc thứ 2, robot bắtăđầu tìm cửa sử dụng thụt toán nḥn d ng cửa và dữ liệuăđộsơuăđoăkho ng cách từ robot tới cửa. Do sai số gây ra b i c m biến nên khi di chuyển tới cửa robot bẻ góc lái không vào giữa cửa mà bị lệch về phía c nh cửaănh ăhìnhă5.21.ăRobotătiến hành nḥn d ng ṿt thể sau khi tìm ṿt thể bằng thụt toán nḥn d ng màu ṿt thể và di chuyển tới và dừngătr ớc ṿt thể một kho ng cách nhỏ l nă1ăm. Thụt toán kết thúc khi robot nḥn d ng thành công ṿt thểđích. Giá trị h ớng di chuyển củaărobotăđ ợc trình bày trong hình 5.23. �
2 vƠăkhiărobotăquayătráiăt ngăứng giá trịh ớng di chuyểnătĕngăvƠăng ợc l i.
83
Ch ng 6.
K t Lu n
Ch ngă6ăđề c̣p những kết qu mƠăđề tƠiăđ tăđ ợc, những h n chế vƠăh ớng phát triển tiếp theo củaăh ớng nghiên cứuăđể khắc phục những h n chế đóăvƠăhoƠnăthiện h nănữa nội dung củaăđề tài.
6.1 K t qu đ t đ c
Những kết qu đ tăđ ợcăquaăquáătrìnhăth căhiệnăđề tài:
ĐềătƠiăđƣăxơyădựngăđ ợcăthụtătoánăquyăho chăqũăđ oăchoărobotădựaătrênă thịăgiácămáyătínhăvƠăápădụngăthuơtătoánănƠyălênărobotădiăđộngăthựcănghiệm. Nhữngăthụtătoánăđ ợcăxơyădựngădựaătrênăsựăhỗătrợăcủaăch ngătrìnhăplayeră vƠăth ăviệnăOpenCV.
Robotăsauăkhiăápădụngăthụtătoánăcóăkh ănĕngădiăchuyểnătớiămộtăvịătríăđíchă trongămôiătr ngăđịnhăsẵn.ăKhiăgặpăṿtăc nărobotăcóăthểănḥnăbiếtăvƠătránhă ṿtăc n.ă
Robotăcóăkh ănĕng nḥnăd ngămƠuăsắc,ănḥnăd ngăcửaăvƠăṿtăthểăđíchăvìăthếă robotă cóă thểă tựă dòă tìmă ṿtă đíchă trongă vủngă khôngă giană chứaă ṿtă thểă mƠă khôngăcầnăbiếtătr ớcăvịătrí.
6.2 H n ch của đề tài
Do robot phụ thuộc nhiều vào b nă đồ củaă môiă tr ngă đ ợc cung cấp nên robot th ng bị h n chế b i không gian ho tăđộng. Ngoài ra, thông tin trong nh là lớn và
84 đaăd ngătùyăvƠoăđộ phức t p củaămôiătr ng mà robot ho tăđộng, nên việc thực hiện thụt toán chỉ dừng l i nhữngămôiătr ngăđ năgi n.ăTrongăđềtƠi,ămôiătr ng ho t động ph i không có ṿt thể có màu trùng vớiăđiểm mốc và không có ṿt c n ngay điềm mốc vì robot sẽ không nḥn d ngăđ ợcăđiểm mốc hoặcăđịnh vị sai vị trí. Do sai số gây ra b i encoder và càm biếnănênă đề tài chì dừng l i việcăđịnh vị vị trí t ngăđối của robot.
6.3 H ng phát tri n của đề tài
Do robot phụ thuộc nhiều vào b năđồ đ ợc cung cấpănênăh ớng phát triển tiếp theo củaăđề tài là xây dựng và áp dụng thụt toán xây dựng b năđồ cho robot, từđóăgiúpă robot linh ho tăh nătrongăviệc di chuyển.
85
TÀI LI U THAM KH O
[1] S. Y. Nof, "Handbook of industrial robotics," John Wiley and Sons, 1999, p. 1348.
[2] P. T. Cát, “XuăthêăphatătriểnăRobotătrênăthêăgi iăvaătinhăhinhănghiênăc uă Robotă ̉ăViê ̣tăNamăhiê ̣nănayă”ă T p chí tựđộng hóa ngày nay, vol. 123, no. 7, pp. 62 - 72, 2011.
[3] R. Szeliski, "Computer Vision: Algorithms and Applications," Texts in Computer Science, Springer, 2011, p. 812.
[4] G.ă N.ă DeSouza,ă andă A.ă C.ă Kak,ă “Visionă foră mobileă robotă navigation:ă aă survey,”ăIEEE trans.on Pattern Analysis and Machine Intelligence, vol. 24, no. 2, pp. 237 - 267, 2002.
[5] D.ă Kim,ă andă R.ă Nevatia,ă “Representationă andă Computationă ofă theă Spatială EnvironmentăforăIndoorăNavigation,”ăProc. Int’l Conf.Computer Vision and Pattern Recognition, pp. 475-482, 1994.
[6] S.ăAtiya,ăandăG.ăD.ăHager,ă“Real-Time Vision-BasedăRobotăLocalization,”ă
IEEE Trans. Robotics and Automation, vol. 9, no. 6, pp. 785 - 800, Dec. 1993.
[7] A.ăKosaka,ăandăA.ăC.ăKak,ă“FastăVision-Guided Mobile Robot Navigation Using Model-Based ReasoningăandăPredictionăofăUncertainties,”ăComputer Vision, Graphics, and Image Processing - Image Understanding, vol. 56, no. 3, pp. 271-329, 1992.
[8] H.ă P.ă Moravec,ă “Theă Stanfordă Cartă andă theă CMUă Rover,”ă Proc. IEEE Journal of Robotics and Automation, vol. 71, no. 7, pp. 872-884, 1983.
[9] Santos-Victor, G. Sandini, F. Curotto et al.,ă “Divergentă Stereoă foră Robotă Navigation:ă Learningă fromă Bees,”ăProc. IEEE CS Conf. Computer Vision and Pattern Recognition, 1993.
[10] T.ăOhno,ăA.ăOhya,ăandăS.ăYuta,ă“AutonomousăNavigation for Mobile Robots Referring Pre-RecordedăImageăSequence,”ăProc. IEEE Int’l Conf. Intelligent Robots and Systems, vol. 2, pp. 672-679, 1996.
[11] D.ăKim,ăandăR.ăNevatia,ă“RecognitionăandăLocalizationăofăGenericăObjectsă for Indoor Navigation Using Functionality,”ăImage and Vision Computing,
vol. 16, no. 11, pp. 729-743, 1998.
[12] V.ă Lumelsky,ă andă T.ă Skewis,ă “Incorporatingă Rangeă Sensingă ină theă Robotă Navigationă Function,”ă IEEE Transactions on Systems, Man, and Cybernetics, vol. 20, pp. 1058–1068, 1990.
86 [13] O.ă Khatib,ă “Real-time obstacle avoidance for manipulators and mobile robots,”ăInternational Journal of Robotics Research, vol. 5, no. 1, pp. 90–98, 1995.
[14] J.ăBorenstein,ăandăY.ăKoren,ă“TheăVectorăFieldăHistogramă – Fast Obstacle Avoidance for MobileăRobots,” IEEE Journal of Robotics and Automation,
vol. 7, no. 3, pp. 278 - 288, June 1991.
[15] H.ăMurase,ăandăS.ăNayar,ă“VisualăLearningăandăRecognitionăofă3DăObjectsă fromăAppearance,”ăInternational Journal of Computer Vision, vol. 14, pp. 5- 24, 1995.
[16] M.ă J.ă SWAIN,ă andă D.ă H.ă BALLARD,ă “Coloră Indexing,”ă International Journal of Computer Vision, vol. 7, no. 1, pp. 11 - 32, 1991.
[17] T.ă Tuytelaars,ă andă K.ă Mikolajczyk,ă “Locală Invariantă Featureă Detectors:ă Aă Survey,”ăFoundations and Trends in Computer Graphics and Vision, vol. 3, no. 3, pp. 177–280, 2007.
[18] K. Fukunaga, Introduction to Statistical Pattern Recognition, Boston: Academic Press, 1990.
[19] H.ăBay,ăT.ăTuytelaars,ăandăL.ăV.ăGool,ă“SURF:ăSpeededăupărobustăfeatures,”ă
Proceedings of the Ninth European Conference on Computer Vision pp. 404–417, 2006.
[20] N.ăH.ăĐông, Xây dựng mô hình robot di động và mã nguồn mở trên chương trình Player,ăĐ i họcăS ăPh m K̃ Thụt TP HCM, 2011.