1
Chương 1. Giới thiệu
Ni dung chnh
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
Xu hướng phát triển của robot hiện đại 1.1.
Theo dự đoán trong vòng 20 năm nữa mỗi người sẽ có nhu cầu sử dụng mt
robot cá nhân như nhu cầu mt máy tính PC hiện nay và robot sẽ là tâm điểm của
mt cuc 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 thch ứ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 chnh 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.
Những vấn đề của robot di động 1.2.
Robot di đng được định nghĩa là mt 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à tnh toán điện tử công suất làm tăng tnh 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.
Mt 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 mt 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à mt 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à mt phương pháp chung có
liên quan đến việc triển khai mt hệ thống di đng trong môi trường chưa xác định.
Đối với mt robot di đng tự đng, định hướng là mt công việc để di chuyển mt
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 tnh 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.
Mục tiêu đề tài và phương pháp thực hiện 1.3.
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 mt 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 mt 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 mt 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.
Sơ lược về nội dung đề tài 1.4.
Ni dung đề tài bao gồm 5 chương:
Chương 1: Giới thiệu: Sơ lược về ni 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á mt 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 ni 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: Ni 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: Ni 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
Ni dung chnh
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
Phương pháp tránh vật cản 2.1.
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 mt
số phơng pháp tránh vật cản tiêu biểu.
2.1.1. Phương pháp Bug
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 mt 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ó mt 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 nhtrong 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ụ thuc vào khoảng cách từ robot tới vật cản.
+ Phụ thuc 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à mt 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:
U
att
(q) =
k
att
d
2
goal
(q) (2.1)
Trong đó, k
att
là hê số tỷ lệ dơng và d
goal
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 đó
U
att
(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:
U
rep
(q)=
(2.2)
Trong đó là k
rep
hệ số tỷ lệ dơng, d(q) là khoảng cách từ robot đến vật cản. d
0
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 U
rep
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 d
0
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) = U
att
(q) +
(2.3)
Trong U
att
(q) là thế năng hút liên quan đến đch và
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 F
att
(q) = −U
att
của thế năng
hút và F
rep
(q) = −U
re
p 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 mt chiều từ biểu đồ vùng cửa sổ
được chọn.
Bước 3: Tnh 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 mt 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 mt cửa sổ vuông
*
chứa w
s
x w
s
ô 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 mt 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 mt 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 mt 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 mt
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 k
targ
. 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à s
max
, trong đó k
n
là cung biên ngoài gần với k
targ
gọi là biên gần và k
f
là biên xa đợc xác định bởi
biểu thức :
k
f
= k
n
+ s
max
(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ụ thuc 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ó mt máy tính xử lý nhanh do dữ liệu của cảm biến được
thu thập về xử lý mt cách liên tục.
+ Phải tnh 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
Thuật toán tránh vật cản 2.2.
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 mt 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à mt 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.
Đ rng 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à mt 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à (x
1
,y
1
) và kết thúc là
(x
2
,y
2
). Góc tơng quan β giữa robot và vật cản đợc tính bằng công thức:
β =
-
(2.8)
β sẽ có giá trị từ -
đến
so với trục góc của robot tại góc
của camera nh
trong Hình 2.10.
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 ct. Mt ô có giá trị là 10x10 pixel mt ô 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 pha 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à kch 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 tnh 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 mt ct. 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 pha 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à
kch 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ó kch 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 mt 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
Đ rng góc nhìn của camera là α= 57
0
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 mt 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:
h
k
= c
k
*2
(a – bd
k
) (2.9)
c
k
*2
: giá trị chắc chắn của ô góc hình quạt thứ k
d
k
: khoảng cách bé nhất từ robot đến các điểm ảnh trong mt góc hình quạt
thứ k
a, b : là những hằng số dơng
h
k
: 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 S
max
mà giá trị h
k
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à k
t
, k
p
nh trong Hình 2.14, trong đó k
t
là cung gần nhất bên trái, k
p
cung gần nhất bên phải xác định bởi công thức:
k
p
= k
t
+ S
max
(2.10)
19
Góc lái của robot đợc cho bởi công thức:
θ = (k
t
+ k
p
)/2 (2.11)
Hình 2.14: Góc lái θ của robot
Xác định vật thể đích 2.3.
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:
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ụ thuc 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.
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
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 mt 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 mt 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
21
Meanshift được dùng để xác định tâm của vùng điểm ảnh, đây là thuật toán tìm cực
trị địa phương của hàm phân bố mật đ dữ liệu.
Hình 2.16: Xác định các điểm ảnh có thông số màu trùng với vật mốc
Hình 2.17: Xây dựng biểu đồ Histogram màu sắc
2.3.1. Thuật toán MeanShift
Thuật toán Meanshift được giới thiệu lần đầu tiên bởi Fukunaga và Hostetler
vào năm 1975, thuật toán này được ứng dụng trong nhiều lĩnh vực trong đó có thị
giác máy tính. Thuật toán được sử dụng trong nhận dạng vật mốc nhằm mục đch
xác định tâm vùng màu. Ảnh đầu vào của thuật toán là ảnh xám sau khi đã qua bước
tìm điểm ảnh có thông số màu trùng với vật mốc. Để xác định được tâm vùng màu
thì thuật toán thực hiện việc tìm cực trị hàm phân bố mật đ của vùng dữ liệu được
22
mô tả như trong Hình 2.18. Dữ liệu lúc này là các điểm ảnh được gán giá trị là 255
(mức sáng nhất) nếu như điểm ảnh này có thông số màu trùng với màu của vật mốc.
Hình 2.18. Biểu đồ hàm phân bố mật đ dữ liệu
Hàm phân bố mật đ dữ liệu biểu diễn số lượng hay mật đ dữ liệu tập trung
xung quanh mt điểm nào đó trong tập dữ liệu.
Hàm phân bố mật đ dữ liệu được xác định bởi công thức:
(2.12)
Trong đó n là số phần tử điểm dữ liệu,
là hàm ước lượng mật đ
nhân. Hàm này dùng để ước lượng mật đ của biến ngẫu nhiên.
) (2.13)
Với là kch thước vùng cửa sổ chứa phần tử được xem xét, là hằng số
thực.
Cực trị hàm phân bố mật đ là điểm mà tại đó có số lượng lớn nhất hay mật đ
dày đặc nhất những điểm dữ liệu tập trung xung quanh điểm cực trị này so với
những điểm lân cận khác. Để xác định được cực trị của hàm phân bố mật đ cần tìm
Gradient của hàm phân bố mật đ bẳng công thức:
(2.14)
Thuật toán Meanshift được thực hiện theo 3 bước đó là Lựa chọn cửa sổ tìm
kiếm, Di chuyển cửa sổ và Xác định tâm vùng điểm ảnh.
23
Hình 2.19. Các bước thực hiện thuật toán Meanshift
Bước lựa chọn cửa sổ tìm kiếm bao gồm chọn kiểu cửa sổ (đa thức, hàm mũ,
hàm Gausse) và hình dạng cửa sổ (đối xứng hoặc không đối xứng, hình chữ nhật
hoặc hình tròn). Cửa sổ này sẽ có vị trí bất kỳ trong vùng dữ liệu. Sau đó tnh toán
để tìm ra vị trí có mật đ dữ liệu lớn nhất trong vùng dữ liệu, vị trí này gọi là tâm
vùng điểm ảnh. Tiếp theo di chuyển cửa sổ sao cho tâm của cửa sổ trùng với tâm
của vùng điểm ảnh vừa tìm được, hướng và khoảng cách di chuyển của cửa sổ phụ
thuc vào vectơ Meanshift như được trình bày trong Hình 2.20 và được tính theo
công thức:
=
)][
] (2.15)
Sau khi di chuyển cửa sổ đến vị trí mới thì tâm vùng ảnh và vectơ Meanshift
được tính toán lại. Việc di chuyển cửa sổ ngừng lại khi vectơ Meanshift có giá trị
bằng không.
Việc xác định được tọa đ tâm vùng màu hay nói theo cách khác việc xác định
tọa đ tâm của vật mốc trên khung ảnh có ý nghĩa quan trọng. Vì dựa vào tọa đ
này thuật toán nhận dạng vật mốc mới có thể xác định được chính xác khoảng cách
từ robot đến vật mốc. Khoảng cách này cũng chnh là thông số quan trong nhất
trong thuật toán nhận dạng vật mốc và xác định vị trí của robot trong môi trường
làm việc.
Bước 1:
Lựa chọn cửa sổ
tìm kiếm
Bước 2:
Di chuyển cửa sổ
Bước 3:
Xác định tâm vùng
điểm ảnh.
24
Hình 2.20. Mô tả hình học của thuật toán Meanshift
25
Chương 3. Chương trình điều khiển
Ni dung chnh
3.1 Nội dung chương trình điều khiển
3.2 Giải thuật chương trình do máy tính xử lý