Tài liệu Robot tự hành tránh vật cản sử dụng camera kinect

  • Số trang: 43 |
  • Loại file: PDF |
  • Lượt xem: 174 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 27125 tài liệu

Mô tả:

1 Chương 1. Giới thiệu Nội dung chính 1.1 Xu hướng phát triển của robot hiện đại 1.2 Những vấn đề của robot di động 1.3 Mục tiêu đề tài và phương pháp thực hiện 1.4 Sơ lược về nội dung đề tài 2 1.1. Xu hướng phát triển của robot hiện đại Theo dự đoán trong vòng 20 năm nữa mỗi người sẽ có nhu cầu sử dụng một robot cá nhân như nhu cầu một máy tính PC hiện nay và robot sẽ là tâm điểm của một cuộc cách mạng lớn sau Internet. Với xu hướng này, cùng các ứng dụng truyền thống khác của robot trong công nghiệp, y tế, giáo dục đào tạo, giải trí và đặc biệt là trong an ninh quốc phòng thì thị trường robot sẽ vô cùng to lớn. Robot đã có những bước tiến đáng kể trong hơn nửa thế kỷ qua. Robot đầu tiên được ứng dụng trong công nghiệp vào những năm 60 để thay thế con người làm những công việc nặng nhọc, nguy hiểm trong môi trường độc hại. Do nhu cầu sử dụng ngày càng nhiều trong quá trình sản xuất phức tạp nên robot công nghiệp cần có những khả năng thích ứng linh hoạt và thông minh hơn. Ngày nay, ngoài ứng dụng sơ khai ban đầu của robot trong chế tạo máy thì các ứng dụng khác như trong y tế, chăm sóc sức khỏe, nông nghiệp, đóng tàu, xây dựng, an ninh quốc phòng đang là động lực cho sự phát triển của ngành công nghiệp robot. Có thể kể đến những loại robot được quan tâm nhiều trong thời gian qua là: 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). Robot di động được nghiên cứu nhiều như xe tự hành trên mặt đất AGV (Autonomous Guided Vehicles), robot tự hành dưới nước AUV (Autonomous Underwater Vehicles), robot tự hành trên không UAV (Unmanned Arial Vehicles) và robot vũ trụ (Space robots). Với robot phỏng sinh học, các nghiên cứu trong thời gian qua tập trung vào hai loại chính là robot đi bộ (Walking robot) và robot dáng người (Humanoid robot). Bên cạnh đó các loại robot phỏng sinh học như cá dưới nước, các cấu trúc chuyển động phỏng theo sinh vật biển cũng được nhiều nhóm nghiên cứu, phát triển. 1.2. Những vấn đề của robot di động Robot di động được định nghĩa là một loại xe robot có khả năng tự di chuyển, tự vận động, dưới sự điều khiển tự động để thực hiện tốt những công việc được 3 giao. Môi trường hoạt động của robot có thể là đất, nước, không khí, không gian vũ trụ hay là sự tổ hợp của các môi trường trên. Bề mặt địa hình robot di chuyển có thể là bằng phẳng hoặc thay đổi lồi lõm. Những ứng dụng thực tế đòi hỏi những robot di động có tính tự động cao và những kỹ thuật hiện đại, bao gồm sự đa dạng của những cảm biến rẻ mà đáng tin cậy và tính toán điện tử công suất làm tăng tính tự động hóa của robot di động. Tính tự động hóa có nghĩa là robot phải dựa vào chính khả năng của nó để xuất ra những dữ liệu vận hành có ích từ bộ phận cảm biến và tự nó đưa ra quyết định thích hợp. Một trong các yêu cầu cơ bản của robot tự động thực thụ là khả năng định hướng tốt trong phạm vi môi trường chưa xác định và hình dung ra một bản đồ định hướng. Bằng cách sử dụng những quan sát thích hợp từ môi trường, kết hợp với bản đồ cùng lúc để định hướng cho robot đang là một yêu cầu cần nghiên cứu cho robot di động. Việc đồng thời định vị và vẽ bản đồ cùng lúc là một phương pháp chung có liên quan đến việc triển khai một hệ thống di động trong môi trường chưa xác định. Đối với một robot di động tự động, định hướng là một công việc để di chuyển một cách an toàn từ nơi này đến nơi khác. Việc định hướng gặp nhiều khó khăn do nhiều vấn đề khá phức tạp. Vấn đề gây trở ngại chính là những hạn chế của việc ước tính năng lượng, những khó khăn trong việc phát hiện và nhận biết đối tượng, những khó khăn trong việc tránh xung đột với các đối tượng khác nhau, và những khó khăn liên quan tới việc sử dụng thông tin cung cấp từ môi trường. 1.3. Mục tiêu đề tài và phương pháp thực hiện  Mục tiêu đề tài: Xây dựng mô hình mobile robot có khả năng tự động dò tìm và di chuyển đến điểm đích. Ngoài khả năng định hướng, robot phải tránh được các vật cản có trên quãng đường di chuyển. Mục đích sâu xa của đề tài là phát triển một robot tự động thông minh, có thể được sử dụng trong lĩnh vực phục vụ con người, giúp việc như 4 robot hướng dẫn du khách hoặc làm một số công việc đơn giản trong văn phòng hoặc tại gia như mang café, hút bụi, lau nhà, …  Phương pháp thực hiện: Thiết kế mô hình một robot di động tự động, trong đó bao gồm phần gia công cơ khí, mạch công suất, mạch vi điều khiển, đồng thời kết hợp kỹ thuật xử lý ảnh thông qua máy tính (hay thị giác máy tính). Khối thị giác được chọn là thiết bị chơi game Kinect, thông qua xử lý từ máy tính nó sẽ kết hợp với mạch vi điều khiển giúp robot có khả năng định hướng về đích và tránh vật cản hoàn toàn tự động. 1.4. Sơ lược về nội dung đề tài Nội dung đề tài bao gồm 5 chương:  Chương 1: Giới thiệu: Sơ lược về nội dung đề tài.  Chương 2: Phát hiện vật cản tính góc lái và xác định điểm đích: giới thiệu đánh giá một số phương pháp tránh vật cản và tìm ra phương pháp tối ưu nhất. Cuối cùng tìm hiểu thuật toán tìm điểm đích bằng màu sắc.  Chương 3: Chương trình điều khiển: Bao gồm nội dung chương trình điều khiển và lưu đồ thuật giải.  Chương 4: Kết quả thực nghiệm: Nội dung chương 4 tập trung vào các thuật toán để điều khiển robot.  Chương 5: Kết luận và hướng phát triển: Nội dung chương 5 trình bày tóm tắt các kết quả mà đề tài đã đạt được và hướng phát triển để khắc phục những giới hạn nhằm hoàn thiện đề tài tốt hơn. 5 Chương 2. Phát hiện vật cản tính góc lái và xác định điểm đích Nội dung chính 2.1 Phương pháp tránh vật cản 2.2 Thuật toán tránh vật cản 2.3 Xác định vật thể đích 6 2.1. Phương pháp tránh vật cản Tránh vật cản luôn là bài toán thường gặp trong robot di động, đối với những ứng dụng trong nhà thì môi trường mà robot di chuyển trong đó luôn là môi trường động và phức tạp, trong đó có nhiều vật cản và vị trí của những vật cản có thể ở bất kỳ đâu trên đường di chuyển của robot. Rất nhiều phương pháp tránh vật cản cho robot di động đã được nghiên cứu và phát triển, trong phần dưới đây sẽ đề cập một số phương pháp tránh vật cản tiêu biểu. Phương pháp Bug 2.1.1. Phương pháp Bug là phương pháp tránh vật cản cơ bản nhất, đây là phương pháp mô phỏng theo sự di chuyển của loài kiến. Theo đó, khi robot di chuyển và gặp chướng ngại vật trên đường đi thì robot sẽ di chuyển vòng quanh vật cản. Sau khi di chuyển hết một vòng chu vi vật cản robot sẽ xác định vị trí điểm nằm trên đường chu vi gần nhất với điểm đích, tại điểm này robot sẽ di chuyển thoát ra và đi về điểm đích như trong hình 2.1a. Tuy nhiên phương pháp này lại không hiệu quả như mong muốn nên đã có một số cải thiện và tạo ra phương pháp Bug2. Trong phương pháp Bug2 thì điểm thoát của robot là giao điểm giữa đường di chuyển quanh vật cản và điểm nối giữa điểm xuất phát và điểm đích như trong hình 4.1b. Hình 2.1: Phương pháp tránh vật cản Bug  Ưu điểm: + Đơn giản, dễ thực hiện. 7 + Xác định được đường biên của vật cản.  Nhược điểm: + Robot phải dừng lại trước vật cản để thu thập thông tin. + Do phương pháp này robot sẽ di chuyển quanh chu vi vật cản nên tốc độ xử lý chậm. + Phụ thuộc vào khoảng cách từ robot tới vật cản. + Phụ thuộc vào bề mặt, hình dáng của vật cản. 2.1.2. Phương pháp Potential Field Trong phương pháp Potential Field được đề xuất bởi Khatib, thì robot được xem là một chất điểm di chuyển trong môi trường mà trong đó chất điểm này chịu tác động của trường lực ảo được tạo ra bởi đích và các vật cản. Trong đó, trường lực tạo ra bởi đích gọi là trường lực hút và trường lực đẩy được tạo ra từ các vật cản. Trường lực được biểu diễn bằng những vecto lực và tùy vào vị trí của robot so với đích và vật cản mà vecto lực có độ lớn và hướng khác nhau. a) Trường lực hút Trường lực hút được hút thể hiện tương quan về vị trí giữa đích và các điểm vị trí robot trong môi trường như trong hình 2.2. Vị trí robot càng xa đích thì độ lớn của vecto lực hút càng lớn và ngược lại. Hàm thế năng của trường lực hút được định nghĩa dưới dạng hàm parabol: Uatt(q) = kattd2goal(q) (2.1) Trong đó, katt là hê số tỷ lệ dương và dgoal là khoảng cách từ điểm đích tới robot. Hàm thế năng là không âm và có giá trị cực tiểu khi robot ở vị trí đích khi đó Uatt(q)=0. 8 Hình 2.2: Trường lực hút biểu diễn dưới dạng biểu đồ điểm và vecto lực. b) Trường lực đẩy Trường lực đẩy thể hiện mối tương quan về vị trí giữa robot và vật cản như trong hình 2.3. Vecto lực đẩy có độ lớn càng lớn khi robot di chuyển gần đến vật cản và nhỏ dần khi robot di chuyển ra xa vật cản. Tuy nhiên, vecto lực đẩy không ảnh hưởng đến sự di chuyển của robot khi robot có khoảng cách đủ xa so với vật cản. Do đó hàm thế năng của trường lực đẩy được định nghĩa: Urep(q)={ ( ) (2.2) Trong đó là krep hệ số tỷ lệ dương, d(q) là khoảng cách từ robot đến vật cản. d0 là hằng số dương được gọi là khoảng cách ảnh hưởng của vật cản đối với robot. Hàm thế năng của trường lực đẩy Urep mang giá trị dương trong khoảng cách gần với vật cản và tiến đến vô cùng khi nằm trong vùng vật cản. Khi robot tiến ra xa vật cản với khoảng cách lớn hơn d0 thì trường thế đẩy tiến về giá trị 0. 9 Hình 2.3: Trường lực đẩy biểu diễn dưới dạng biểu đồ điểm. c) Tổng hợp lực ảo Robot di chuyển trong môi trường và chịu ảnh hưởng của trường lực tổng hợp, bao gồm trường lực hút và trường lực đẩy. U(q) = Uatt(q) + ∑ Trong Uatt(q) là thế năng hút liên quan đến đích và (2.3) là thế năng đẩy liên quan đến vùng vật cản. Sự ảnh hưởng của thế năng hút sẽ kéo robot về hướng mục tiêu, trong khi thế năng đẩy sẽ đẩy robot ra khỏi vật cản. Vecto của lực ảo 𝐹(p) được cho bởi gradient của vecto U: 𝐹(p) = −∇U(q)= - (2.4) Vecto 𝐹 được định nghĩa là tổng của hai vector Fatt(q) = −∇Uatt của thế năng hút và Frep(q) = −∇Urep của thế năng đẩy. 𝐹 (q) = 𝐹rep(q) + 𝐹att(q) (2.5) Lực 𝐹 là lực dẫn của robot, hướng của lực 𝐹 là hướng di chuyển của robot và cường độ lực thể hiện tốc độ của robot như hình 2.4. 10 Hình 2.4: Tổng hợp lực ảo tác động lên robot  Ưu điểm: + Phù hợp môi trường đơn giản không có nhiều vật cản. + Phương pháp này phù hợp với tránh vật cản bằng cảm biến siêu âm.  Nhược điểm: + Sập bẫy khi di chuyển đến ngõ cụt tạo bởi nhiều vật cản phức tạp. + Không qua được khe giữa hai vật cản. + Dao động khi gặp vật cản: hạn chế này sảy ra ở việc tính toán thuật toán. + Dao động khi đi trong ngõ hẹp: nguyên nhân do robot nhận được lực đẩy từ cả hai bức tường. 2.1.3. Phương pháp Vecto Field Histogram (VFH) Vecto Field Histogram (VFH) được giới thiệu bởi Borenstein và Korem là phương pháp tránh vật cản mà sử dụng biểu đồ lưới hệ tọa độ Đề Các hai chiều (histogram grid) để mô tả môi trường. Biểu đồ được cập nhật liên tục nhờ những dữ liệu khoảng cách đo được bởi cảm biến. Trong phương pháp VFH có ba bước thực hiện chính:  Bước 1: Xây dựng biểu đồ lưới hệ tọa độ Đề Các hai chiều về môi trường 11  Bước 2: Từ biểu đồ lưới hai chiều, chọn vùng cửa sổ hoạt động xung quanh robot từ đó rút ra biểu đồ biểu đồ cực một chiều từ biểu đồ vùng cửa sổ được chọn.  Bước 3: Tính toán điều khiển góc lái. a) Xây dựng biểu đồ lưới hai chiều Trong bước đầu tiên của phương pháp VFH là tạo ra biểu đồ lưới 2 chiều về môi trường xung quanh vị trí tức thời của robot và biểu đồ này được chia thành những ô lưới mà được đặt tên là vùng biểu đồ lưới C. Mỗi ô lưới mang 2 thông tin là vị trí ô lưới so với robot và giá trị chắc chắn (certainty value) biểu thị độ chắc chắn về khả năng vật cản nằm trong không gian ô lưới đó như hình 2.5. Hình 2.5: Bản đồ ô mắt lưới hai chiều. b) Xây dựng biểu đồ cực một chiều Ở bước hai thì biểu đồ hai chiều của môi trường sẽ được rút gọn về biểu đồ cực một chiều biểu thị những thông tin về vật cản. Trong vùng biểu đồ lưới 𝐶 ta chọn một cửa sổ vuông 𝐶* chứa ws x ws ô lưới và có kích thước bé hơn 𝐶 nhằm thu nhỏ phạm vi vùng mô tả. Tâm cửa sổ 𝐶* là vị trí của robot và sẽ di chuyển khi robot di chuyển. Biểu đồ cực một chiều biểu thị mối quan hệ về khoảng cách giữa robot với vật cản trong môi trường xung quanh, khoảng cách này được tính từ giá trị các ô lưới trong một cung (sector) với độ mở α0 như minh họa trong Hình 2.6. 12 Chuyển vùng cửa sổ tích cực 𝐶* thành biểu đồ cực H với giá trị của các ô tích cực trong lưới được đại diện bởi một vecto cản (obstacle vecto), hướng của vecto được xác định bởi góc β từ ô xem xét đến điểm trung tâm robot như trong Hình 2.7. Hình 2.6: Bản đồ ô luới vùng cửa sổ tích cực. Hình 2.7: Hướng và biên độ của một vecto cản. 13 c) Tính góc lái Biểu đồ cực chứa các đỉnh hay phần mà mật độ vật cản (POD) cao và vùng đáy là phần chứa POD thấp. Các giá trị mật độ vật cản sẽ được so sánh với một ngưỡng để xác định vùng có vật cản là vùng có POD lớn hơn ngưỡng và vùng an toàn có thể di chuyển là vùng có POD nhỏ hơn ngưỡng như miêu tả trong Hình 2.8. Thông thường sẽ có từ hai hoặc nhiều vùng an toàn vì thế thuật toán VFH sẽ chọn vùng an toàn phù hợp với hướng dẫn tới đích ktarg. Trong vùng an toàn được chọn thì số lượng cung lớn nhất (có mức POD nhỏ hơn ngưỡng) là smax, trong đó kn là cung biên ngoài gần với ktarg gọi là biên gần và kf là biên xa được xác định bởi biểu thức : kf = kn + smax (2.6) Để robot di chuyển tối ưu nhất qua vùng an toàn thì chọn góc lái vào giữa vùng an toàn như trong Hình 2.9: (2.7) Hình 2.8: Mức ngưỡng trên sơ đồ cực để chọn hướng di chuyển. 14 Hình 2.9: Mức ngưỡng và góc .  Ưu điểm + Xác định được chính xác vùng có vật cản. + Không phụ thuộc vào hình dáng, bề mặt của vật cản + Robot có khả năng vượt qua được các vật cản đặt rất gần nhau + Không bị dao động khi gặp vật cản và di chuyển ổn định khi đi qua các lối hẹp.  Nhược điểm + Các bước để thực hiện thuật toán phức tạp. + Cần có một máy tính xử lý nhanh do dữ liệu của cảm biến được thu thập về xử lý một cách liên tục. + Phải tính toán được thông tin khoảng cách từ robot tới vật cản: nhược điểm này được khắc phục bằng cách sử dung Camera Kinect do ưu điểm của Camera này là thu được dữ liệu ảnh độ sâu. 15 2.2. Thuật toán tránh vật cản Trong quá trình di chuyển đến điểm đích vật cản sẽ xuất hiện trên đường đi. Thuật toán đặt ra đó là robot sẽ xác định chính xác đó là vật cản và tính toán góc lái để di chuyển qua vùng vật cản một cách an toàn. Để giải quyết vấn đề này nhóm thống nhất rằng phương pháp tránh vật cản của VFH là tối ưu nhất vì VFH có khả năng điều khiển robot vượt qua được những vật cản đặt rất gần nhau, không bị dao động khi gặp vật cản và di chuyển ổn định khi qua các lối hẹp. Thuật toán tránh vật cản của robot được xây dựng dựa trên hai bước cơ bản là xây dựng biểu đồ histogram về môi trường và tính góc lái di chuyển robot. 2.2.1. Xây dựng biểu đồ histogram độ sâu Xây dựng biểu đồ histogram độ sâu về môi trường là một bước quan trọng làm nền tảng cho việc xác định vật cản, tính toán góc lái di chuyển qua vật cản. Biểu đồ histogram độ sâu thể hiện mối tương quan về khoảng cách giữa robot và các vật thể trong môi trường, thông tin khoảng cách được thu thập từ cảm biến. Độ rộng góc nhìn của camera là α tương ứng với độ phân giải ảnh theo trục ngang là z. Vật cản xuất hiện trên ảnh là một vùng điểm ảnh nên để xác định góc giữa vùng vật cản và robot thì căn cứ vào vị trí điểm ảnh mà tại đó bắt đầu giá trị khoảng cách vượt ngưỡng về bên trái của robot hoặc kết thúc giá trị khoảng cách vượt ngưỡng về bên phải của robot, vị trí điểm ảnh bắt đầu là (x1,y1) và kết thúc là (x2,y2). Góc tương quan β giữa robot và vật cản được tính bằng công thức: β= β sẽ có giá trị từ - đến trong Hình 2.10. so với trục góc của robot tại góc (2.8) của camera như 16 Hình 2.10: Mối tương quan về góc giữa robot và vật cản Để xây dựng được biểu đồ histogram độ sâu nhóm đã thực hiện như sau: (a) Tính toán độ sâu trung bình của từng sector. Tiếp theo (b)Tìm sector có độ sâu bé nhất. Sau đó bước cuối cùng và quan trọng nhất là (c) Xây dựng biểu đồ histogram độ sâu. a) Tính toán độ sâu trung bình của từng sector Sau khi lấy được ảnh độ sâu từ thiết bị Kinect độ phân giải 640x480 tiến hành chia khung hình thành 64 hàng và 48 cột. Một ô có giá trị là 10x10 pixel một ô như vậy được gọi là 1 sector như trong hình 2.11. tiếp theo tính giá trị độ sâu trung bình của từng sector. Hình 2.11: Chia khung ảnh thành các sector và tính giá trị trung bình độ sâu 17 b) Tìm sector có độ sâu bé nhất Mục đích của việc này là giúp robot nhận biết được phía trước mặt của robot có vật cản hay không có vật cản, nếu có thì vật cản nằm ở đâu, khoảng cách so với robot là bao nhiêu và kích thước của vật cản là như thế nào. Nhóm đã thực hiện quét tất cả 3072 sector và tìm ra những sector có khoảng cách nhỏ nhất so với camera. Đây là bước tiền đề cho xây dựng biểu đồ histogram độ sâu và việc tính góc lái chính xác cho robot di chuyển qua vùng có vật cản. Hình 2.12 là kết quả sau khi tính toán độ sâu trung bình của từng secto và tìm ra những secto có độ sâu trung bình nhỏ nhất của mỗi một cột. Nhìn vào hình ta thấy những secto có màu xanh lá cây là những sector có độ sâu trung bình nhỏ nhất nếu giá trị độ sâu đó nhỏ hơn hoặc bằng với ngưỡng mà ta cài đặt trước (ngưỡng trong đề tài là 1m) thì robot coi đó là vùng vật cản còn những sector còn lại là vùng không có vật cản. Ví dụ trên trả lời được câu hỏi phía trước mặt của robot có vật cản hay không có vật cản, nếu có thì vật cản nằm ở đâu, khoảng cách so với robot là bao nhiêu và kích thước của vật cản là như thế nào? Do chia nhỏ khung hình độ sâu ra thành các sector nên trong đề tài robot khả năng nhận dạng chính xác được những vật cản có kích thước rất nhỏ, chiều cao của vật cản cao hơn mặt sàn 10cm và cách robot một khoảng từ 70cm đến nhỏ hơn 1m. Hình 2.12: tìm sector có độ sâu nhỏ nhất 18 c) Xây dựng biểu đồ histogram độ sâu Độ rộng góc nhìn của camera là α= 570 theo tương ứng với độ phân giải ảnh theo trục ngang. Chia khung hình thành 64 ô. Thông tin khoảng cách được tính toán theo mỗi một góc hình quạt thứ k như minh họa trong hình 2.13, mỗi góc có độ lớn là 𝜏 nên giá trị n = , ở đây giá trị 𝜏 = 0.9 và α= 57 nên k = 64, k có giá trị từ 0 đến 63. Giá trị khoảng cách được tính theo công thức: hk = ck*2(a – bdk) (2.9) ck*2: giá trị chắc chắn của ô góc hình quạt thứ k dk : khoảng cách bé nhất từ robot đến các điểm ảnh trong một góc hình quạt thứ k a, b : là những hằng số dương hk : giá trị khoảng cách tác động tại góc hình quạt thứ k Hình 2.13: Biểu đồ histogram độ sâu. 2.2.2. Tính góc lái Việc tính toán góc lái cho robot phải dựa vào việc xác định vùng an toàn. Vùng an toàn để robot di chuyển là vùng có số lượng cung liên tiếp nhiều nhất Smax mà giá trị hk không vượt qua ngưỡng tác động. Vùng an toàn được giới hạn bởi hai cung biên là kt, kp như trong Hình 2.14, trong đó kt là cung gần nhất bên trái, kp cung gần nhất bên phải xác định bởi công thức: kp = kt + Smax (2.10) 19 Góc lái của robot được cho bởi công thức: θ = (kt + kp)/2 (2.11) Hình 2.14: Góc lái θ của robot 2.3. Xác định vật thể đích Hình 2.15 trình bày 4 bước cơ bản của thuật toán nhận dạng vật đích trong ảnh RGB thu được từ camera như sau: Bước 1 • Chọn thông số màu mẫu Bước 2 • Chuyển đổi ảnh RGB sang ảnh HSV Bước 3 • Tìm điểm ảnh có thông số màu trùng với màu mẫu Bước 4 • Xác định tọa độ tâm vùng màu Hình 2.15: Các bước nhận dạng vật đích trong ảnh thu từ camera  Bước 1: Chọn thông số màu mẫu Các thông số màu mẫu được chọn sao cho trùng với thông số màu của vật thể đích cần nhận dạng, thông thường các thông số màu này được chọn trước và lưu vào trong cơ sở dữ liệu. Màu sắc của vật thể đích trong ảnh thu bởi camera thì các thông số màu được thực hiện ngay trên ảnh thu được. Như vậy sự sai lệch về thông số màu chỉ phụ thuộc vào đặc tính kỹ thuật của camera và sự sai lệch này không ảnh hưởng đến thuật toán nhận dạng. 20  Bước 2: Chuyển đổi ảnh trong không gian màu RGB sang HSV Để có thể nhận dạng được vật thể đích dựa vào màu sắc, thuật toán nhận dạng phải tìm được vùng có màu sắc đặc trưng giống như vật thể đích trong ảnh thu được từ camera. Đối với ảnh màu RGB thì việc nhận dạng là rất khó thực hiện được vì không gian màu RGB dựa trên ba màu cơ bản đó là màu đỏ (Red), màu xanh lá (Green) và màu xanh dương (Blue) tổ hợp theo nhiều phương thức khác nhau để tạo thành các màu còn lại, bên cạnh đó trong cùng một vùng màu thì cường độ tại mỗi điểm không đồng nhất do đó cần chuyển đổi ảnh trong không gian màu RGB sang ảnh màu HSV. Trong OpenCV, H (Hue) có giá trị trong khoảng (0, 179) mang thông tin về màu sắc. S (Saturation) có giá trị (0, 255) cho thông tin về độ thuần khiết của màu. V (Value) có giá trị (0, 255) cho biết độ sáng của điểm ảnh. Đặc điểm của ảnh biểu diễn trong không gian màu HSV là mỗi màu sắc được mô tả và giải thích giống với việc mô tả và giải thích màu sắc của con người.  Bước 3: Tìm điểm ảnh có thông số màu trùng với vật đích Thông số màu sắc của mỗi điểm ảnh sẽ được so sánh với thông số màu của vật thể đích lưu trong cơ sở dữ liệu. Nếu điểm ảnh đang xét có thông số màu trùng với thông số màu của vật thể đích thì điểm ảnh đó sẽ được gán cho giá trị độ sáng lớn nhất là 255 (tương ứng với mức trắng) ngược lại thì điểm ảnh sẽ được gán cho giá trị độ sáng thấp nhất là 0 (tương ứng với mức tối) trong ảnh xám như trong Hình 2.16.  Bước 4: Xác định tọa độ tâm vùng màu trên khung ảnh: Sau khi đã đánh dấu những điểm ảnh có thông số màu sắc giống vật thể đích, bước tiếp theo là xác định vị trí mà mật độ cao nhất có các điểm ảnh với thông số màu giống vật thể đích. Khi số lượng điểm ảnh đạt đến một giá trị ngưỡng thì thuật toán sẽ xác định vùng có mật độ điểm ảnh này chính là vật đích, đồng thời xác định vị trí tâm của vùng điểm ảnh này để có được tọa độ tâm của vật đích trên khung ảnh. Tọa độ tâm vật thể đích là cơ sở cho việc xác định khoảng cách từ vật thể đích đến robot phục vụ cho thuật toán định vị và xây dựng lên biểu đồ histogram màu để tính toán góc lái cho robot di chuyển tới điểm đích. Hình 2.17. Thuật toán
- Xem thêm -