Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 99 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
99
Dung lượng
6,29 MB
Nội dung
iv LI CM T Đầu tiên, tôi xin gửi lời cám ơn chân thành đến TS. Ngô Văn Thuyên – người đã trực tiếp hướng dẫn tôi một cách tận tình và chu đáo từ khi xây dựng cho đến lúc thực hiện và hoàn thành đề tài ny. Trong quá trình làm đề tài, thầy luôn theo sát tiến trình thực hiện của tôi và có những gợi ý giúp tôi định hướng gii quyết những vấn đề khó khăn gặp phi. Bên cnh đó, gia đình luôn là chỗ dựa và là nguồn động viên vô cùng to lớn tiếp sức cho tôi trong suốt quá trình nghiên cứu đề tài. Cuối cùng tôi xin gửi lời cm ơn đến anh Nguyễn Hừng Đông và anh Nguyễn Hoàng Anh là những người hỗ trợ tôi trong quá trình xây dựng đề tài. Những ý kiến đóng góp của các anh đã giúp tôi hoàn thiện tốt hơn đề tài của mình. Xin chân thành cm ơn! Biên Hòa, ngày 10 tháng 10 nằm 2011 Học Viên Nguyễn Hữu Nam v TÓM TT CameraăngƠyăcƠngăđợcăsửădụngănhiềuătrongăcácăứngădụngătrênărobotădiăđộngădoă khănĕngăcungăcấpăthôngătinăvềămôiătrngăchínhăxácăhnăcácăloiăcmăbiếnănhă siêuăơm,ălaser.ăCameraăcóăthểăcungăcấpăcácăthôngătinăvềămƠuăsắc,ăhìnhădángăcủaăṿtă thể,ăkhongăcáchătớiăṿtăthểătrongăkhiăcácăcmăbiếnănhăsiêuăơm,ălaserăchỉăcungăcấpă thôngătinăvềăkhongăcách.ăĐềătƠiăxơyădựngăthụtătoánăquyăhochăqũăđoăchoărobotă diăđộngăsửădụngăthịăgiácămáyătính. Robotăcóăkhănĕngădiăchuyểnătrongămộtămôiătrngăđịnhăsẵn,ătrongăđóăbnăđồăcủaă môiătrngăđợcăcungăcấpăchoărobot. Trongăquáătrìnhădiăchuyểnărobotăđịnhăhớngă dựaătrênăbnăđồ.ăViệcăxácăđịnhăvịătríăcủaărobotătrongămôiătrngădiăchuyểnădựaătrênă k̃ăthụtădeadăreckoningămƠăchủăyếuălƠădựaăvƠoăencoderăcủaăbánhăxeăchoăsaiăsốălớnă vƠăcóătínhăchấtăcộngădồn.ăRobotăđợcătrangăbịăcameraăchoăphépăxácăđịnhăvịătríăcácă cácăđiểmămốcăđợcăthêmăvƠoătrênăđngădiăchuyểnăđểăxácăđịnhăliăvịătríăcủaărobot.ă ViệcăxácăđịnhăđiểmămốcădựaătrênăthụtătoánănḥnădngămƠuăsắc,ăđiểmămốcăcóămƠuă đồngănhấtăvƠăđợcăđịnhătrớc.ăCácăṿtăcnăsẽăxuấtăhiệnăngẫuănhiênătrênăđngădiă chuyển,ărobotăphiăcóăkhănĕngănḥnăbiếtăvƠădiăchuyểnăquaăṿtăcn.ăĐểătránhăṿtăcnă robotăsửădụngăthôngătinăđộăsơuătừăcmăbiếnăđểăxơyădựngăbiểuăđồăhistogramăvềămôiă trngătừăđóăxácăđịnhăvùngăanătoƠnăcóăthểădiăchuyểnăqua.ăBnăđồăchỉăchoăbiếtăvùngă điểmăđíchăsẽăđợcăđặtămƠăkhôngăchoăbiếtăvịătríăchínhăxácăvìăthếărobotăsẽăphiăsửă dụngăthụtătoánănḥnădngăđểătìmăkiếmăṿtăthểăđích. MôăhìnhărobotădiăđộngăsửădụngălƠăloiăbaăbánhăxeăkiểuăláiăviăsai.ăCmăbiếnăđợcăsửă dụngăchoărobotălƠăcameraăKinect.ăKinectăgồmăhaiăcameraăvƠămộtăcmăbiếnăchiếuăIRă cungăcấpăchoărobotăhaiădữăliệuăchínhălƠănhăvƠădữăliệuăđộăsơu.ăMáyătínhăthuătḥpădữă liệuătừăcamera,ăthựcăhiệnăcácăthụtătoánădựaătrênăcácăthăviệnăcủaăOpenCV.ăChngă trìnhăxửălýăvƠăđiềuăkhiểnărobotăđợcăviết trênănềnăphầnă mềmămƣănguồnă măđiềuă khiểnărobotăthôngădụngăPlayer. vi ABSTRACT Cameras have been widely used on mobile robots due to the ability to provide more accurate information of the working environment compared to ultrasonic and laser sensor. Cameras can provide information about color, shapes of and distance to objects whereas ultrasonic and laser sensors can only give information on distance. This thesis presented a motion planning method for mobile robots using computer vision. The robot can move in a known environment with a map being provided. On moving, the robot will localize its self based on the provided map. The position of robot provides by dead reckoning method which is based on the encoders attached with the robot wheels is inaccurate and accumulative in error. The robot is equipped with a camera that allows it to determine its position at a certain point with beacons. The recognition of beacons is based on their colors. The robot can also recognize the obstacle on its course to avoid them. To avoid the obstacles, the robot constructs an obstacle histogram of the environment from which it can determine the safe path. The robot is not given the exact position of the goal object but only its area and color. The robot moves to the goal using object recognition algorithm. The mobile robot platform is equipped with 2 differential drive wheels and a caster one. Kinect Camera is used in this thesis. The Kinect is equipped with two cameras, and IR to provide the image and depth of each pixel. A computer is used collect the data from the camera and perform motion planning algorithms using available library of OpenCV. Control commands are sent to the robot based on the protocol in Player, a popular open source code to link with robot. vii MC LC LI CAM ĐOAN iii LI CM T iv TÓM TT v MC LC vii DANH SÁCH CÁC CH VIT TT x DANH SÁCH CÁC BNG xi DANH SÁCH CÁC HÌNH xii Chng 1 Gii Thiu 1 1.1 Tổng quan chung về lƿnh vc nghiên cứu 1 1.2 Mc tiêu nghiên cứu 4 1.3 Phm vi nghiên cứu 4 1.4 Phng pháp nghiên cứu 4 Chng 2. Th Giác Máy Tính vƠ Th Vin OpenCV 5 2.1 Gii thiu 5 2.2 S phát trin của th giác máy tính 7 2.3 Lƿnh vc ứng dng 9 2.4 H thng th giác máy tính 11 2.5 Th vin mã ngun mở OpenCV 12 Chng 3 Các Phng Pháp Quy Hoch Qu Đo Cho Robot 19 viii 3.1 Phng pháp đnh hng 19 3.1.1 Phng pháp đnh hng da trên bn đ 20 3.1.2 Đnh hng da trên xây dng bn đ 24 3.1.3 Đnh hng không da trên bn đ 25 3.2 Phng pháp tránh vt cn 28 3.2.1 Phng pháp Bug 28 3.2.2 Phng pháp Potential Field 29 3.2.3 Phng pháp Vecto Field Histogram (VFH) 32 3.3 Phng pháp nhn dng vt th 37 3.3.1 Phng pháp so khp đặc đim hình hc 38 3.3.2 Phng pháp nhn dng da trên din mo 39 3.3.3 Phng pháp nhn dng da trên đặc đim cc b 41 Chng 4 Thut Toán Quy Hoch Qu Đo 44 4.1 Quy hoch qu đo 44 4.1.1 Bn đ môi trng 44 4.1.2 Gii thut quy hoch qu do chuyn đng 46 4.2 Thut toán tránh vt cn 47 4.2.1 Xây dng biu đ histogram 47 4.2.2 Tính góc lái 49 4.3 Thut toán đnh v trí bằng đim mc 49 4.3.1 Tìm đim mc trên nh 50 4.3.2 Thut Toán Meanshift 52 ix 4.3.3 Đnh v trí bằng đim mc 55 4.4 Phát hin ca 56 4.4.1 Đặc đim ca 56 4.4.2 Thut toán phát hin ca 57 4.5 Tìm vt th đích 58 4.5.1 Thut toán nhn dng vt th đích 59 4.5.2 Phng pháp nhn dng SURF 59 Chng 5 Mô Hình Robot Di Đng VƠ Kt Qu Thc Nghim 64 5.1 Mô hình robot di đng 64 5.1.1 Mô hình h thng 64 5.1.2 Cm bin camera Kinect 66 5.2 Kt qu thc nghim 70 5.2.1 Bn đ môi trng 70 5.2.2 Kt qu thc nghim các thut toán 71 5.2.3 Kt qu thc nghim thut toán quy đo hoch cho robot 78 Chng 6 Kt Lun 83 6.1 Kt qu đt đc 83 6.2 Hn ch của đề tài 83 6.3 Hng phát trin của đề tài 84 TÀI LIU THAM KHO 85 x DANH SÁCH CÁC CH VIT TT ADC – Analog to Digital Converter AGV – Autonomous Guided Vehicles API – Application Programming Interface AUV – Autonomous Underwater Vehicles FPS – Frames Per Second HighGUI – High level Graphical User Interface KDE – Kernel Density Estimation MCU – Micro Controler Unit OpenCV – Open Source Computer Vision PCA – Principal Component Analysis PCM – Pulse Code Modulation POD – Polar Obstacle Density QVGA – Video Graphics Array SDK – Software development kit SURF – Speeded Up Robust Features UAV – Unmanned Arial Vehicles VCP – Vehicle Center Point VGA – Video Graphics Array VHF – Vecto Field Histogram xi DANH SÁCH CÁC BNG BNG TRANG Bng 2.1: MôătămộtăsốăthụtătoánăriêngăbiệtăcủaăthƠnhăphầnăCvAux Bng 2.2: Mô t chngătrìnhătìmăđng thẳng sử dụng biếnăđổi Hough Bng 5.1: Mô t thông số k̃ thụt của camera Kinect 15 16 68 xii DANH SÁCH CÁC HÌNH HÌNH Hình 1.1. Một số loi robot đã và đang được nghiên cứu. Hình 2.1. Mối tương quan giữa thị giác máy tính và các lĩnh vực khác (nguồn: http://en.wikipedia.org/wiki/File:CVoverview2.svg, truy c̣p ngày 1/10/2011). Hình 2.2. Một số thuật toán của thị giác máy tính . Hình 2.3. Một số ứng dụng của thị giác máy tính. (a) xe tự hành thám hiểm sao Hỏa. (b) nh y sinh. (c) kiểm tra lỗi của sn phẩm. (d) Kiểm soát lưu lượng xe. Hình 2.4. Cấu trúc hệ thống thị giác máy tính. Hình 2.5. Cấu trúc cơ bn của OpenCV. Hình 2.6. nh trước và sau khi sử dụng biến đổi Hough. Hình 2.7. Thuật toán tìm đường tròn sử dụng biến đổi ảough. Hình 2.8. Thuật toán nhận dng khuôn mặt. Hình 2.9. Thuật toán tìm màu áo. Hình 3.1. Bn đồ môi trường với những điểm mốc bằng hình tròn. Hình 3.2. Vị trí ban đầu và vị trí sau khi di chuyển của robot. (a) Di chuyển tịnh tiến. (b) Di chuyển quay. Hình 3.3. Mô hình robot di chuyển theo đường dẫn. Hình 3.4. Điểm mốc dng mã vch. Hình 3.5. Bn đồ môi trường. (a) bn đồ lý tưởng. (b) bn đồ do robot xây dựng. Hình 3.6. Mô t phương pháp định hướng dựa trên chuyển động quang TRANG 2 6 8 10 11 13 17 17 18 18 22 22 23 24 25 26 xiii học. Hình 3.7. Định hướng dựa trên nhận dng diện mo. Hình 3.8. Phương pháp tránh vật cn Bug. Hình 3.9. Trường lực hút biểu diễn dưới dng biểu đồ điềm và vecto lực. Hình 3.10. Trường lực đẩy biểu diễn dưới dng biểu đồ điềm. Hình 3.11. Tổng hợp lực o tác động lên robot. Hình 3.12. Bn đồ ô mắt lưới hai chiều Hình 3.13. Bn đồ ô luới vùng cửa sổ tích cực. Hình 3.14. ảướng và biên độ của một vecto cn. Hình 3.15. Biểu đồ cực một chiều. Hình 3.16. Mức ngưỡng trên sơ đồ cực để chọn hướng di chuyển. Hình 3.17. Mức ngưỡng và góc . Hình 3.18. Cấu trúc hình học của vật thể. (a) nh ban đầu. (b) nh đo hàm.(c) Kết nối đường thẳng. (d) nh vật thể ở một góc nhìn khác. (nguồn: http://www.packet.cc/files/mach-per-3D-solids.html, truy cập ngày 1/10/2011 ). Hình 3.19. Biểuă diễnă ṿtă thểă trongă khôngă giană đaă điểmă (nguồn:ă http://www.cs.columbia.edu/CAVE/projects/app_match,ă truyă c̣pă ngƠyă 1/10/2011). Hình 3.20. nh và biểu đồ màu không gian ba chiều của vật mẫu. Hình 3.21. So sánh vật thể trong hai hình sử dụng đặc điểm cục bộ. Hình 4.1. Bn đồ môi trường cung cấp cho robot. Hình 4.2. Gii thuật quy hoch quỹ đo của robot. Hình 4.3. Mối tương quan về góc giữa robot và vật cn. 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 45 46 48 [...]... ng dựa trên thị giác đ ợcă chiaă lƠmă 2ă h ớngă khácă nhauă đóă lƠă địnhăh ớng dựa trên thị giác cho những ứng dụng trong nhà (Indoor) và những ứng dụng ngoài tr i (Outdoor) [4].ăNh ăđƣăđề c̣p trên trongăh ớngăđề tài này chỉ đề c̣pă đếnă địnhă h ớng dựa trên thị giác cho những ứng dụng trong nhà Việcă định 19 3 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot h ớng dựa trên thị giác đƣăđ ợc nghiên cứu trên. .. là xây dựng thụt toán quy ho ch qũ đ o cho robot dựa trên thị giác máy tính Thụtătoánăđ ợc thực nghiệm trên mô hình robot thựcăđiều khiển trên Player và OpenCV Khi di chuyển từ điểmăbanăđầuăđếnăđích, robot ph i có kh nĕngă tránh ṿt c n.ăĐể di chuyển, robot dựa trên vị trí cho b i encoder kết hợp vớiăđịnh vị dựa trên cácăđiểm mốc sử dụng thị giác máy tính Robot có kh nĕngăxácăđịnh ṿt đíchăqua thụt... lo i một số lo i robot đƣăvƠăđangăđ ợc nghiên cứuănh tay máy robot (Robot Manipulators),ă robot di động (Mobile Robots), robot phỏng sinh học (Bio Inspired Robots) và robot cá nhân (Personal Robots) [2] Tay máy robot bao gồm các lo i robot công nghiệp (Industrial Robot) nh ă hìnhă 1.1a, robot y tế (Medical Robot) và robot trợ giúpă ng i tàn ṭtă (Rehabilitation robot) .ă Robot di động đ ợc nghiên... triểnăđángăchúăýălƠăsự t ngătácăgiữa thị giác máy tính vƠăđồ họa máy tính nghiên cứu b iăSeitzăvƠăSzeliskiă(1999),ăđặc biệt trong phối c nh và mô mình hóa dựa trên nh Đến tḥp niên 2000, có thể thấyăđ ợc sự nhăh ng lẫn nhau giữa thị giác máy tính vƠă đồ họa máy tính ngày càng tr nên sâu rộngă h n,ărất nhiều chủ đề đề c̣pă đến việc phối c nh dựa trên nhănh ăghépănối nh, mô hình hóa dựa trên nh của Mann và Picard... đềuă đ tă đ ợc một kết qu nhấtă định cho nhữngă tr ng hợp cụ thể trong các ứng dụng khác nhau Hình 2.1 Mối tương quan giữa thị giác máy tính và các lĩnh vực khác(nguồn: http://en.wikipedia.org/wiki/File:CVoverview2.svg, truy cập ngày 1/10/2011) 6 2 Thị Giác Máy Tính Và Thư Viện OpenCV 2.2 S phát tri n của th giác máy tính Những khái niệmăđầu tiên về thị giác máy tính đ ợcăhìnhăthƠnhăvƠoăđầu nhữngănĕmă... sốă nhữngă ứngă dụngătiêuăbiểuătrongănhữngălĩnhăvựcăkể trên đ ợcăminhăhọaătrongăhìnhă2.4 Hình 2.3 Một số ứng dụng của thị giác máy tính (a) xe tự hành thám hiểm sao ảỏa (b) nh y sinh (c) kiểm tra lỗi của s n phẩm (d) Kiểm soát lưu lượng xe 10 2 Thị Giác Máy Tính Và Thư Viện OpenCV 2.4 H th ng th giác máy tính Cấuătrúcăcủaămộtăhệăthống thị giác máy tính phụăthuộcănhiềuăvƠoăứngădụngăcụăthểă củaăhệăthốngăđó,ăvìăthếămỗiămộtăhệăthốngăl... thuyếtă đểă xơyă dựngă thụtătoán quy ho chăqũăđ o cho robot Ph ngăphápăkh oăsát:ăkh oăsátănhữngămôăhình robot tựăhƠnhăhiệnăcó Ph ngăphápăthựcănghiệm:ăápădụngănhữngăthụtătoánăđƣăxơyădựngăvƠoămôă hình robot 4 2 Thị Giác Máy Tính Và Thư Viện OpenCV Chương 2 Th Giác Máy Tính vƠ Th Vi n OpenCV Phầnă đầuă ch ngă 2ă giớiă thiệuă tổngă quană vềă lĩnhă vựcă thị giác máy tính vớiă nhữngă h ớngăphátătriểnăkhácănhauăvƠănhữngăứngădụng,ălợiăíchămangăl... trong khi di chuyển lớn iii) Định vị trí theo phương pháp theo vết đường dẫn Robot di chuyểnătrongămôiătr ng dựa vƠoăđ ng dẫn trên đ nƠyă đ ợc thiết ḷp sẵn và nhiệm vụ của robot sẽ dòătheoă đ ngăđi,ăcácăđ ng dẫn ng dẫnăđể di chuyển nh ătrongăhìnhă3.3 Động c Bộ phát hiện sai lệch Khuếchăăđ i Sensor Hình 3.3 Mô hình robot di chuyển theo đường dẫn 23 3 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot Để có... ớc trong việcăđịnh vị trí của robot đ ợcăchiaănh ăsau: Lấy thông tin từ c m biến:ăđốiăvớiăđịnhăh ớng dựa trên thị giác thìăb ớcănƠyă lƠăthuătḥpăvƠăxửălýă nhătừăcamera Phát hiện điểm mốc:ăviệcăphátăhiệnăđiểmămốcăthôngăqua thị giác máy tính, ă ṿtămốcăcóăthểăđ ợcăphátăhiệnănh ănḥnăd ngăvềăhìnhădáng,ăkíchăth ớcăhoặcă mƠuăsắc 20 3 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot So sánh giữa điểm mốc... động quayăđể tính toán vị trí mới củaănóănh ăminhăhọa trong hình 3.2 Hình 3.2 Vị trí ban đầu và vị trí sau khi di chuyển của robot (a) Di chuyển tịnh tiến (b) Di chuyển quay 22 3 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot ( ’, ’, ∅’).ă ă Ph Vị tríă bană đầu của robot là ngă trìnhă thể hiện mối quan hệ giữa tịnh tiến ′ ′ Ph = ( , , ∅ ) và vị trí sau khi di chuyển ’ = ∅′ = ∅ + − và ’ khi robot di chuyển . cứuănh tay máy robot (Robot Manipulators), robot di động (Mobile Robots), robot phỏng sinh học (Bio Inspired Robots) và robot cá nhân (Personal Robots) [2]. Tay máy robot bao gồm các loi robot. CameraăngƠyăcƠngăđợcăsửădụngănhiềuătrongăcácăứngădụng trên robot di động doă khănĕngăcungăcấpăthôngătinăvềămôiătrngăchínhăxácăhnăcácăloiăcmăbiếnănhă siêuăơm,ălaser.ăCameraăcóăthểăcungăcấpăcácăthôngătinăvềămƠuăsắc,ăhìnhădángăcủaăṿtă thể,ăkhongăcáchătớiăṿtăthểătrongăkhiăcácăcmăbiếnănhăsiêuăơm,ălaserăchỉăcungăcấpă thôngătinăvềăkhongăcách.ăĐềătƠiăxơyădựngăthụtătoán quy hochăqũăđo cho robot di động sửădụng thị giác máy tính. Robot cóăkhănĕng di chuyểnătrongămộtămôiătrngăđịnhăsẵn,ătrongăđóăbnăđồăcủaă môiătrngăđợcăcungăcấp cho robot. Trongăquáătrình di chuyển robot địnhăhớngă dựa trên bnăđồ.ăViệcăxácăđịnhăvịătríăcủa robot trongămôiătrng di chuyển dựa trên k̃ăthụtădeadăreckoningămƠăchủăyếuălƠ dựa vƠoăencoderăcủaăbánhăxe cho saiăsốălớnă vƠăcó tính chấtăcộngădồn. Robot đợcătrangăbịăcamera cho phépăxácăđịnhăvịătríăcácă cácăđiểmămốcăđợcăthêmăvƠo trên đng di chuyểnăđểăxácăđịnhăliăvịătríăcủa robot. ă Việcăxácăđịnhăđiểmămốc dựa trên thụtătoánănḥnădngămƠuăsắc,ăđiểmămốcăcóămƠuă đồngănhấtăvƠăđợcăđịnhătrớc.ăCácăṿtăcnăsẽăxuấtăhiệnăngẫuănhiên trên đng di chuyển, robot phiăcóăkhănĕngănḥnăbiếtăvƠ di chuyểnăquaăṿtăcn.ăĐểătránhăṿtăcnă robot sửădụngăthôngătinăđộăsơuătừăcmăbiếnăđểăxơyădựngăbiểuăđồăhistogramăvềămôiă trngătừăđóăxácăđịnhăvùngăanătoƠnăcóăthể di chuyểnăqua.ăBnăđồăchỉ cho biếtăvùngă điểmăđíchăsẽăđợcăđặtămƠăkhông cho biếtăvịătríăchínhăxácăvìăthế robot sẽăphiăsửă dụngăthụtătoánănḥnădngăđểătìmăkiếmăṿtăthểăđích điểmăbanăđầuăđếnăđích, robot phi có kh nĕngă tránh ṿt cn.ăĐể di chuyển, robot dựa trên vị trí cho bi encoder kết hợp vớiăđịnh vị dựa trên cácăđiểm mốc sử dụng thị giác máy tính. Robot có kh nĕngăxácăđịnh ṿt đíchăqua