Professional Documents
Culture Documents
Máy Bay Không Người Lái Bám Đối Tượng
Máy Bay Không Người Lái Bám Đối Tượng
MÃ SỐ:SV2018-66
SKC 0 0 6 7 2 8
DJI inspire 2 (hình 1.1) là một sản phẩm trong nhiều dòng multicopter được DJI,
công ty chuyên về drone lớn nhất thế giới nghiên cứu và phát triển, chỉ nặng có 2.9 kg
nhưng Inspire có tốc độ bay tối đa xấp xỉ 108 km/h với trọng lượng cất cánh tối đa là
3.5 kg và vận tốc lên thẳng 7m/s. Bộ điều khiển của máy bay cho phép tầm hoạt động
lên tới 5 km và trần bay là 3 km, pin của inspire cho phép thời gian bay lên tới 19 phút
và dặc biệt ở phiên bản DJI inspire 2 cho phép nó mang tới 2 viên pin tăng thời gian
bay của máy bay lên gấp đôi. Với hệ thống cảm biến được tích hợp trong thân và camera
gắn bên dưới thân khiến cho Inspire có khả năng quay phim với hộ phân giải khá cao
cũng như phát hiện vật cản từ khoảng cách 20m. Hệ thống lái tự động với nhiều chế độ
bay được nhà sản xuất lập trình sẵn giúp người sử dụng dễ dàng điều khiển cũng như
giúp máy bay tự hạ cánh khi người điều khiển bị mất kiểm soát với máy bay. Với những
ưu điểm ở trên cũng như giá thành, DJI inspire đang là sản phẩm bán chạy trên thị
trường.
1.2.2. Máy bay không người lái điều khiển bằng suy nghĩ
Các nhà nghiên cứu ở trường Đại học Minnesota ở Mỹ phối hợp với Hội Khoa
học quốc gia đang thử nghiệm dùng suy nghĩ để điều khiển quadcopter thông qua một
loại mũ trùm đầu thông minh (hình 1.2). Đại học Minnesota cho biết dự án này nhằm
giúp nghiên cứu các thiết bị hỗ trợ cho người tàn/khuyết tật, ví dụ chân/tay máy hoặc
bộ đồ có thể điều khiển thông qua suy nghĩ. Nhóm nghiên cứu hi vọng một ngày nào
đó có thể sử dụng công nghệ này để hỗ trợ các phi hành gia. Ngoài ra, hình 1.3 là một
nghiên cứu khác cũng có ý tưởng điều khiển drone bằng suy nghĩ ở Florida.
Hình 1.2. Điều khiển Drone bằng suy nghĩ của nhóm ĐH Minnesota.
3
Hình 1.4. Máy bay không người lái Little Ripper của Úc.
Máy bay không người lái hiện tại đặc biệt đang được quan tâm trong lĩnh vực hỗ
trợ cứu hộ. Nhờ vào khả năng di chuyển linh hoạt, có thể bay vào và quay trở ra những
khu vực nguy hiểm mà khó có thể đưa đội cứu hộ hoặc máy bay trực thăng vào, máy
bay không người lái đang dần thay thế con người trong những nỗ lực đó, những công
việc mà những nhà nghiên cứu đánh giá là sẽ phải hao tốn rất nhiều thời gian và sức lực
nếu phải thực thi bằng con người. Ngoài ra, máy bay không người lái còn được ứng
dụng để tiếp tế lương thực và thuốc vào những khu vực dịch bệnh hay những vùng đang
bị kiểm dịch, không khí độc hại. Hình 1.4 là hình của chiếc máy bay Little Ripper đã
cứu sống hai người bơi gặp nạn trên biển trong chuyến cứu hộ được cho là đầu tiên trên
thế giới bằng drone tại Úc.
4
Hình 1.5. Drone được nghiên cứu bởi nhóm sinh viên Phòng thí nghiệm Hệ thống
thông minh Trường Đại học Sư phạm Kỹ thuật Tp.HCM.
Mô hình của nhóm sinh viên ngành Điện – Điện tử Đại học Sư phạm Kỹ thuật
Tp. Hồ Chí Minh chưa giải quyết triệt để vấn đề nhiễu của cảm biến gia tốc, chỉ dùng
tín hiệu từ gyroscope để điều khiển nên mô hình vẫn chưa cân bằng (hình 1.5).
Hình 1.6. Mô hình quadcopter của sinh viên Trường Đại học Bách khoa Đà Nẵng.
5
Nhóm sinh viên của trường đại học Bách khoa Đà Nẵng đã khắc phục được vấn
đề nhiễu của cảm biến gia tốc kết hợp với tín hiệu từ gyroscope nên mô hình có độ ổn
định khá tốt khi bay (hình 1.6).
1.3.2. Nghiên cứu cho mục đích quân sự
Ở các cấp độ nghiên cứu cao hơn cùng với những đề tài có tính phức tạp lớn,
tình hình nghiên cứu thiết bị bay không người lái mà cụ thể là quadcopter đã đạt được
các kết quả rất khả quan. Nhiều mô hình đã đáp ứng được các yêu cầu đặt ra. Tính phức
tạp của hệ thống cũng được nâng cao với nhiều loại cảm biến khác nhau. Đi đầu trong
lĩnh vực này hiện nay vẫn là các phòng, trung tâm nghiên cứu kỹ thuật thuộc bộ quốc
phòng với hàng chục mẫu máy bay không người lái khác nhau phục vụ cho các nhiệm
vụ quân sự, nghiên cứu khoa học, quan sát trên không, tìm kiếm cứu nạn. Hình 1.7 là
một mô hình Quadcopter MD4-1000 của Bộ quốc phòng Việt Nam.
Hình 1.7. Mô hình Quadcopter MD4-1000 của Bộ quốc phòng Việt Nam.
1.4. Đề xuất phương án
Qua những nội dung mà nhóm thu thập được ở trên về tình hình nghiên cứu và
phát triển của máy bay không người lái cả trong nước và trên thế giới, đã cho thấy đây
là một đề tài nghiên cứu mới mẻ đồng thời mang tính ứng dụng cao. Tuy nhiên có thể
thấy tình hình nghiên cứu trong nước vẫn còn khá sơ sài và chưa có nhiều thành công.
Nhận thấy được tiềm năng và tầm quan trọng của việc nghiên cứu máy bay không
người lái trong việc tự động xác định mục tiêu và hạ cánh trên đó, ứng dụng trong những
trường hợp bám theo và hạ cánh trên xe của tội phạm, hoặc máy bay tiếp tế hàng hóa
xuống tàu thủy… nhóm nghiên cứu đã đề xuất một phương án thuật toán điều khiển cho
6
chủ đề này. Thuật toán điều khiển kết hợp giữa điều khiển thông thường và kĩ thuật xử
lý ảnh, sử dụng một camera quan sát để xác định mục tiêu và hạ cánh ngay trên đó sao
cho an toàn và chính xác nhất.
7
Sự đinh hướng Quadcopter được biểu thị bởi 3 góc Euler qua ma trận xoay:
𝑐𝜙 . 𝑐𝜓 − 𝑐𝜃 . 𝑠𝜙 . 𝑠𝜓 −𝑠𝜙 . 𝑐𝜓 − 𝑐𝜃 . 𝑐𝜙 . 𝑠𝜓 𝑠𝜃 . 𝑠𝜓
𝑅 = [𝑐𝜃 . 𝑠𝜙 . 𝑐𝜓 + 𝑐𝜙 . 𝑠𝜓 𝑐𝜃 . 𝑐𝜙 . 𝑐𝜓 − 𝑠𝜙 . 𝑠𝜓 −𝑠𝜃 . 𝑐𝜓 ] (2.4)
𝑠𝜃 . 𝑠𝜙 𝑠𝜃 . 𝑐𝜙 𝑐𝜃
Lực nâng của các rotor:
Fi b.i 2 , (i 1, 2,3, 4) (2.5)
Lực nâng cho cả hệ thống được mô tả bởi công thức (2.16):
4 4
2 (2.6)
𝑇 = ∑ |𝐹𝑖 | = ∑ 𝜔𝑖
𝑖=1 𝑖=1
Ta có momen quay hồi chuyển phụ thuộc vào các yếu tố vận tốc xoay với u1, u2,
u3, u4 lần lượt là các đơn vị momen quay các chuyển động roll, picth, yaw hay vận tốc
quay uT = ( u1, u2, u3, u4 ) và vận tốc góc i máy bay sẽ đạt được (2.10)
𝑔(𝑢) = 𝜔1 + 𝜔2 + 𝜔3 + 𝜔4 (2.10)
Kết hợp các phương trình trên ta có hệ phương trình động học:
𝑢1
𝑥̈ =−(cos ∅ sin 𝜃 cos 𝜓 + 𝑠𝑖𝑛∅ sin 𝜓). (2.11)
𝑚
𝑢1
𝑦̈ =−(cos ∅ sin 𝜃 cos 𝜓 − 𝑠𝑖𝑛∅ cos 𝜓). (2.12)
𝑚
𝑢1
𝑧̈ =𝑔 − (cos ∅ cos 𝜃). (2.13)
𝑚
𝐼𝑦 −𝐼𝑧 𝐼 𝐿
∅̈=𝜃̇𝜓̇ ( )− 𝑅 𝜃̇ 𝑔(𝑢) + 𝑢2 (2.14)
𝐼𝑥 𝐼𝑥 𝐼𝑥
𝐼 −𝐼 𝐼 𝐿
𝜃̈=∅̇𝜓̇ ( 𝑧 𝑥 )− 𝑅 ∅̇𝑔(𝑢) + 𝑢3 (2.15)
𝐼𝑦 𝐼𝑦 𝐼𝑦
𝐼𝑥 −𝐼𝑦 1
𝜓̈=∅̇𝜃̇( )+ 𝑢4 (2.16)
𝐼𝑧 𝐼𝑧
mg
Lực đẩy TMT WP (Trọng lượng được mang bởi 1 cánh quạt)
4
Vận tốc dòng khí cho mỗi cánh quạt:
WP
VI (m / s)
2s S (2.18)
2.1.3. Lý thuyết hệ thống IMU và cảm biến MPU
2.1.3.1 Hệ thống IMU
IMU (inertial Measurement Unit) là một thiết bị điện tử đo và xác định các giá
trị vận tốc, phương hướng, gia tốc trọng trường của một phương tiện chuyển động, điển
hình là máy bay, tên lửa hay các thiết bị bay trong không gian, các thiết bị di chuyển
trên biển và các thiết bị di chuyển trên bộ. IMU sử dụng kết hợp các loại cảm biến bao
11
gồm: cảm biến gia tốc (acclesrometers), con quay hồi chuyển (Gyroscopes) và cả cảm
biến từ trường ( magnestometer ) tùy theo yêu cầu của thiết bị. IMU thường được dùng
để điều khiển quá trình chuyển động của các phương tiện có người lái hoặc robot tự
hành. [7-8]
Đơn vị đo lường quán tính là thành phần chính của hệ thống dẫn đường quán
tính INS ( Inertial Navigation System) được sử dụng hầu hết trong các kỹ thuật hàng
hải, hàng không, phương tiện đường bộ cũng như trong robot tự hành. Các dữ liệu thu
thập được từ các cảm biến trong hệ thống IMU cho phép máy tính có thể xác dịnh vị trí
của phương tiện chuyển động bằng cách sử dụng phương pháp dẫn đường dự đoán
(dead-reckoning).
Hệ thống INS được cấu thành bởi 2 thành phần là IMU và Navigation computer
(máy tính dẫn đường).
Trong đó:
- Navigation computer có nhiệm vụ chuyển đổi các hệ tọa độ, tính toán gia tốc
trọng trường và thực hiện các thuật toán tích phân.
- IMU có nhiệm vu đọc các giá trị ( gia tốc, góc quay…) đo được từ các cảm
biến ( acclerometers, gyroscopes …) sau đó các dữ liệu sẽ được gửi về máy tính để tính
toán và xác định vị trí hiện tại dựa trên vận tốc và thời gian.
Nhược điểm cơ bản nhất của IMU trong viêc ̣ định vi ̣đó là chúng thường bi ̣lỗi
tích lũy theo thời gian. Bởi vì hê ̣thống dẫn đường cập nhật liên tục những thay đổi được
phát hiện dựa vào vi ̣trí đã được tính toán trước đó, bất kì một sai số nào trong quá trình
đo lường dù là nhỏ cũng sẽ được tích lũy dần theo thời gian. Điều này dẫn đến việc trôi
các giá trị các đại lượng tính toán dẫn đến sự thay đổi khác biệt ngày càng tăng lên giữa
giá tri ̣vị trí mà hệ thống tính toán được và giá trị thực tế của thiết bị. Vì vậy nên IMU
thường chỉ là một thành phần trong hệ thống định vị. Để đảm bảo độ chính xác của hệ
thống dẫn đường, các khối thiết bị khác điển hình là module GPS (Global Positon
system), cảm biến trọng trường, cảm biến vận tốc bên ngoài ( để bù sự trôi vận tốc), hệ
thống đo khí áp ( dùng đo khí áp để hiệu chỉnh giá trị độ cao), cảm biến la bàn điện tử
(giúp xác định từ trường ) có nhiệm vụ hiệu chỉnh các giá trị sai lệch IMU mắc phải
trong quá trình chuyển động của thiết bị.
Hình 2.4 mô tả các góc trong hệ quy chiếu. [2-6]
12
q q0 q3
T
q1 q2
2
(2.20)
q q0 q q2 q3 1
2
1
2 2 2
Áp dụng vào phép quay không gian. Với vector trục quay u ( u là 1 vector vị đơn
vị, ux 2 u y 2 u y 2 1 ) và góc quay thì ta sẽ có một quaterion quay. Khi đó ta được ma
Các hàm atan và arcsin chỉ có giá trị trong khoảng [ , ] . Vì thế ta thay các
2 2
hàm atan thành atan2 để bao gồm tất cả các không gian.
2.1.3.3 Cảm biến MPU 6050
Cảm biến MPU là một trong những cảm biến đang được dùng nhiều trong các
hệ thống IMU. Cảm biến MPU có hai cảm biến chính của hệ thống IMU là cảm biến
Gyro và cảm biến Accelerometer. Hiện nay cảm biến MPU vẫn đang được nghiên cứu
phát triển hoàn thiện hơn như thêm một số cảm biến đo từ trường và cảm biến đo áp
suất khí quyển để xác định chiều cao. [7-8]
2.1.3.3.1 Gyroscope
Gyro (gyroscope) hay con quay hồi chuyển, là một thiết bị đo đạt hoặc duy trì
phương hướng, dựa trên các nguyên tắc bảo toàn mô men động lượng. Hiện nay gyro
14
gồm 3 loại là: Gyro cơ học (Spinning Mass Gyro), Gyro điện tử (MEMS Gyro), Gyro
quang học(Optical Gyro). Nghiên cứu này chỉ đề cập đến Gyro điện tử.
Gyro điện tử (Hình 2.5) hay còn gọi là gyro rung (Vibrating Gyroscope) đo vận
tốc xoay của vật, với chuyển động ngõ vào và ngõ ra là chuyển động tịnh tiến ( thường
là dao động). Với cấu tạo gồm một khối proof mass dao động theo một phương được
gọi là phương sơ cấp. Khi khối này bị quay quanh một trục làm xuất hiện lực Coriolis
khiến nó có thêm dao động theo phương khác, gọi là phương thứ cấp. Trên phương
chuyển động thứ cấp này có gắn bản cực tụ điện để nhận biết sự thay đổi điện dung gây
bởi chuyển động này và từ đó suy ra vận tốc xoay, đây chính là giá trị cần đo của gyro
– cảm biến vận tốc góc. Với giá thành thấp hơn hẳn so với các loại gyro khác, gyro điện
được ứng dụng nhiều trong lĩnh vực dân dụng. Công nghệ chế tạo các vi cơ cấu, vi cảm
biến và hệ thống vi cơ điện (MEMS- micro electromechanical system) đang phát triển
nhanh chóng trên toàn thế giới, và ngày càng được ứng dụng nhiều để sản xuất ra những
thiết bị đo quán tính với sản lượng lớn và giá thành hạ. Cảm biến gyro rung vi cơ
(micromechanical vibrating gyro) hay cảm biến đo vận tốc góc có tiềm năng rất lớn
trong nhiều ứng dụng như là những cảm biến cơ sở trong lĩnh vực dò đường và điều
khiển. Các cảm biến MEMS thường không có độ chính xác cao và giá thành rất thấp.
Tuy nhiên khả năng hoat động của cảm biến có thể được nâng cấp nhờ các công cụ khác
như các bộ lọc để xử lý tín hiệu.
Phương trình dùng để tính vận tốc thay đổi góc Euler từ Gyro như sau:
t
0 sin cos x
1 0 cos cos sin cos y (2.24)
t cos
cos sin sin cos cos z
t
Với Ψ, θ, Φ lần lượt là góc Euler tại thời điểm lấy mẫu trước đó (t-1). Góc
Euler tại thời điểm hiện tại được xác định như sau:
(t ) (t 1) t
(t ) (t 1) t
t (2.25)
(t )
(t 1)
t
2.1.3.3.3 Cảm biến gia tốc
Gia tốc là đại lượng vật lý đặc trưng cho sự thay đổi của vận tốc theo thời gian.
Gia tốc là đại lượng cơ bản dùng để mô tả chuyển động. Giống như vận tốc thì gia tốc
là đại lượng hữu hướng (vector).
Gia tốc kế (Accelerometer) là thiết bị dùng để đo sự thay đổi của đại lượng gia
tốc. Ngày này các cảm biến gia tốc không còn xa lạ với thế giới công nghệ, nó là một
trong những thành phần quan trọng của các thiết bị điện tử như smartphone, máy tính
bảng, các hệ thống dẫn đường, hệ thống ổn định trong camera hay các thiết bị có sự
nhận biết về độ nghiêng khác. Gia tốc kế cho phép ta biết khi nào thiết bị được di chuyển
khỏi vị trí ban đầu cũng như di chuyển như thế nào nhờ vào việc ghi nhận sự thay đổi
của gia tốc theo cả phương và chiều. như chúng ta biết thì đơn vị của gia tốc là m/s2.
Tuy nhiên đối với các hệ thống đo lường quán tính thì cảm biến gia tốc kế thường có
đơn vị là g (g = 9.8 m/s2 là gia tốc trọng trường). Như vậy việc đo gia tốc chính là đo
sự thay đổi giữa gia tốc động học trong không gian quán tính so với gia tốc trọng trường.
Để hiểu cách xác định gia tốc trong không gian. Ta có thể dựa vào mô hình sau:
16
Phần lớn các cảm biến gia tốc là các cảm biến điện thay cho cảm biến cơ. Sự
thay đổi của gia tốc sẽ làm các thành phần điện thay đổi theo nhờ vào việc gắn thêm
một cuộn dây bên ngoài proof mass. Khi có sự dịch chuyển nhỏ của proof mass thì sẽ
sinh ra 1 dòng điện trong cuộn dây, tạo ra một lực điện từ theo chiều ngược lại. Đo dòng
điện trong cuộn dây ta sẽ xác định được chiều và độ lớn của gia tốc.
Với sự phát triển của công nghệ MEMS (microelectromechanical systems)các
loại gia tốc kế được sản xuất hàng loạt với giá thành thấp và chất lượng khá tốt.
2.1.3.3.4 Xử lý tín hiệu từ cảm biến gia tốc
Hình 2.8. Tính toán góc nguyên (Tilt) từ cảm biến gia tốc.
Hình 2.8 mô tả cách tính toán góc nguyên từ cảm biến gia tốc.
Dựa vào gia tốc đo được theo các trục x, y, z ta sẽ xác định các góc nghiêng roll,
pitch. Trong hệ tọa độ tương đối XbYbZb ta có các giá trị gia tốc trọng trường: Xb =
Yb = 0 và Zb = 1g. Chuyển sang hệ tọa đọ tuyệt đối ta sẽ có các giá trị theo các trục
tương ứng x, y, z là Ax, Ay, Az.
Dựa vào công thức biểu diễn mối quan hệ giữa hệ tọa độ tuyệt đối và tương đối:
X b ' cos cos cos cos sin X b
Y ' cos sin sin cos cos sin sin sin sin cos Yb (2.26)
b
Zb cos sin cos sin cos sin cos sin cos cos Zb
Ax 2 Ay 2 Az 2 1 (2.30)
2.1.3.4. Xử lý nhiễu
Như cách một gia tốc đo các lực tác động lên một vật thể, nó không chỉ đo trọng
lực mà còn là các lực khác. Mỗi lực nhỏ hoạt động trên đối tượng được đo hoàn toàn và
được coi là một lực đối với phép đo. Cảm biến gia tốc là một cảm biến dễ bị nhiễu.
Trong quadcopter, động lực của hệ thống, chẳng hạn như sự rung của động cơ, cũng sẽ
ảnh hưởng đến cảm biến gia tốc. Do đó, việc sử dụng một bộ lọc chắc chắn là cần thiết.
Bên cạnh đó, vì sự tích phân theo thời gian, phép đo của con quay hồi chuyển có xu
hướng trôi dạt và không trở về 0 khi hệ thống trở về vị trí ban đầu của nó. Dữ liệu con
quay hồi chuyển chỉ đáng tin cậy trong một thời gian ngắn và nó bắt đầu trôi dạt trong
một thời gian dài.
Cảm biến gia tốc luôn có độ lệch trên mỗi trục nên giá trị đo thường hơi khác so
với giá trị thực tế. Ngoài ra, giá trị của gia tốc thường khá can thiệp làm cho việc đo
lường càng thêm khó khăn.
Con quay hồi chuyển (gyro), cũng như gia tốc, cũng có độ lệch trong các giá trị
đo được. Một vấn đề khác có thể gặp phải với con quay hồi chuyển là sự trôi tín hiệu,
có nghĩa là tín hiệu thay đổi dần dần theo thời gian. Tuy nhiên, điểm cộng là con quay
hồi chuyển ít nhạy cảm với nhiễu hơn là cảm biến gia tốc.
Các giải pháp được đặt ra để giải quyết những vấn đề này. Với offset là hằng số,
chỉ cần đo giá trị đó và thực hiện phép trừ giữa giá trị đo được và giá trị bù trừ. Với tín
hiệu nhiễu, chúng ta có thể sử dụng một bộ lọc thông thấp, sự trôi dạt của con quay hồi
chuyển có thể được xử lý bằng cách sử dụng bộ lọc thông cao vì độ trễ khá chậm.
Một cách khác, để đo chính xác góc quay, có một giải pháp rất phổ biến là sử
dụng cả gyro và gia tốc để đo góc và sử dụng một số thuật toán để gộp hai giá trị này
lại với nhau để thu được kết quả chính xác. Một số thuật toán thường được sử dụng là:
19
- Bộ lọc bù: Đây là bộ lọc đơn giản nhưng hiệu quả nhất.
- Bộ lọc Kalman: hơi phức tạp nhưng phổ biến nhất và rất hiệu quả.
- Bộ lọc Mahony và bộ lọc Madgwick: Đây là những bộ lọc khá mới so với phần
trên nhưng cũng rất hiệu quả.
Một bộ lọc bù cho thấy hiệu quả nhất trong trường hợp này. Trong thời gian
ngắn, dữ liệu từ con quay hồi chuyển (gyrData) được sử dụng vì độ chính xác cao. Về
lâu dài, dữ liệu từ gia tốc kế (accData) được sử dụng vì nó không trôi dạt. Ở dạng đơn
giản nhất, công thức lọc trông như sau [7-8]:
angle = alpha*(angle + gyrData*dt) + (1-alpha)*accData (2.31)
Trong phương trình (2.41), alpha là hệ số lọc (0 <alpha <1) và angle là đầu ra
của bộ lọc. Giá trị góc quay được cập nhật mỗi vòng lặp. Bộ lọc sẽ kiểm tra xem các
giá trị đo được từ gia tốc có hợp lý hay không. Nếu bất kỳ giá trị nào quá lớn hoặc quá
nhỏ, đó là nhiễu và bộ lọc bù sẽ cố gắng giảm ảnh hưởng của nhiễu này để tính toán tốt
hơn. Ví dụ, nếu alpha là 0,98, bộ lọc sẽ cập nhật lại góc để tính bằng cách lấy 98% giá
trị hiện tại được tính bằng con quay hồi chuyển và thêm 2% giá trị góc tính bằng gia tốc
kế. Nó luôn được đảm bảo rằng các giá trị đo được sẽ không trôi dạt và cũng rất chính
xác trong ngắn hạn.
Hình 2.9 cho thấy một tín hiệu ban đầu (màu xanh) và tín hiệu được xử lý (màu
đỏ) với một bộ lọc bù.
đo về từ thực tế sau đó hiệu chỉnh xuất tín hiệu ngõ ra phù hợp với set point đặt vào bộ
điều khiển. Trên thực tế, có rất nhiều bộ điều khiển như bộ điều khiển trượt, bộ điều
khiển LQR, bộ điều khiển LQG, bộ điều khiển PID… Tùy thuộc vào mô hình hệ thống
và yêu cầu mà ta lựa chọn bộ điều khiển sao cho phù hợp và giải quyết được bài toán
đặt ra tối ưu nhất. Mỗi bộ điều khiển đều có ưu nhược điểm riêng, ở đây ta xét về bộ
điều khiển PID số.
Bộ PID (Propotional Integral Derivative) là bộ điều khiển vi tích phân tỉ lệ. Tuy
đã ra đời rất lâu, nhưng đến nay luật điều khiển PID vẫn được dùng nhiều trong các ứng
dụng điều khiển các mô hình, hệ thống tự động. Bộ PID có khả năng điều khiển hệ
thống đáp ứng tốt các chỉ tiêu chất lượng như thời gian quá độ ngắn, đáp ứng nhanh,
triệt tiêu được sai lệch tĩnh, giảm độ vọt lố cho hệ thống. Giải thuật PID có sơ đồ khối
vòng kín như hình 2.10.
lập. Vì khi hệ thống tồn tại e(t) > 0 thì khâu tích phân sẽ làm tăng tín hiệu điều khiển và
ngược lại khi e(t) < 0 thì sẽ giảm tín hiệu điều khiển. Tuy nhiên, nhược điểm thành phần
tích phân chính là tác động bộ điều khiển sẽ đáp ứng chậm, đôi khi làm xấu đi đặc tính
động học của hệ thống hoặc làm hệ thống mất ổn định nếu ki quá lớn. Thành phần vi
de(t )
phân u (t ) Kd . có nhiệm vụ như bộ phanh trong bộ điều khiển PID, có thể dự
dt
đoán trước được giá trị ngõ ra từ đó điều chỉnh đầu ra phù hợp với thay đổi sai số, làm
tăng tốc độ đáp ứng của hệ. Ngoài ra, khâu vi phân giúp hệ thống ổn định một số quá
trình mà các khâu tỉ lệ và tích phân không làm được. Nhược điểm của khâu vi phân là
rất nhạy với nhiễu đo hay giá trị đặt do tính đáp ứng nhanh.
Trong điều khiển tự động có rất nhiều phương pháp chỉnh định và lựa chọn thông
số cho bộ điều khiển PID. Do đó, tùy thuộc vào đối tượng điều khiển và yêu cầu bài
toán đặt ra mà ta chọn phương pháp điều khiển sao cho phù hợp như phương pháp giải
tích, phương pháp Ziegler- Nichols, điều chỉnh thông số PID bằng thuật toán di truyền,
thuật toán bầy đàn, v.v…Tuy nhiên, ngoài thực tế thì kinh nghiệm cũng là một trong
những phương pháp quan trọng và được sử dụng rộng rãi. Phương pháp lựa chọn thông
số theo kinh nghiệm ta quan tâm tới tác động của từng thông số trong bảng 2.1, gồm 3
bước như sau: bước 1 điều chỉnh 2 thông số Ki = Kd = 0, sau đó tăng từ từ giá trị Kp
sao cho ngõ ra dao động xung quanh giá trị đặt. Bước 2 ta giữ nguyên giá trị kp vừa
chỉnh định và giá trị Ki = 0 sau đó, tăng dần giá trị Kd sao cho hệ thống tăng đáp ứng
ngõ ra và giảm độ vọt lố. cuối cùng ta tăng hệ số ki đến giá trị phù hợp sao cho hệ thống
có đủ thời gian xử lý và giảm sai số về không khi hệ thống ở trạng thái xác lập.
2.1.4.1 Khâu tỉ lệ
Khâu tỉ lệ làm thay đổi giá trị đầu ra tỉ lệ với giá trị sai số hiện tại.
22
P( out ) K p .e t (2.33)
Trong đó:
P(out) là thừa số tỉ lệ ở đầu ra
Kp là hằng số độ lợi tỉ lệ
e(t) là sai số theo thời gian
Khi có sự thay đổi lớn ở đầu ra mà sai số thay đổi nhỏ sẽ làm độ lợi của khâu tỉ
lệ lớn. Nếu độ lợi của khâu tỉ lệ quá lớn sẽ làm hệ thống không ổn định. Ngược lại, độ
lợi nhỏ là do đáp ứng đầu ra nhỏ trong khi sai số đầu vào lớn điều này sẽ làm bộ điều
khiển kém nhạy hoặc đáp ứng chậm. Nếu độ lợi của khâu tỉ lệ quá thấp thì có thể dẫn
tới đáp ứng điều khiển không thỏa mản yêu cầu hệ thống khi có nhiểu tác động. Hình
2.11 mô tả đáp ứng của khâu tỉ lệ.
Trong đó:
Iout : Đáp ứng ngỏ ra của khâu tích phân
Ki : Độ lợi tích phân
e(t) : sai số theo thời gian (SP – PV)
23
Khâu tích phân giúp tăng tốc độ đáp ứng của hệ thống để hệ thống nhanh đạt tới
điểm đặt và khử dư sai số ổn định. Tuy nhiên vì khâu tích phân tích lũy sai số nên nó
có thể khiến giá trị hiện tại vọt lố qua giá trị đặt.
Hình 2.12 mô tả đáp ứng của khâu tích phân.
Tuy nhiên đối với các hệ thống khác nhau sẽ phù hợp hơn với mỗi phương pháp. Một
phương pháp được sử dụng nhiều là phương pháp thủ công và dựa vào kinh nghiệm
phân tích hệ thống.
Phương pháp thủ công và dựa vào kinh nghiệm: trước tiên cần có cái nhìn tổng
quan về hệ thống, các yếu tốc tác động vào làm mất ổn định hệ thống, tìm hiểu phân
tích hoạt động của đối tượng để từ đó phán đoán cần sử dụng bộ điều khiển nào cho hợp
lý hoặc có thể thử từng bộ một (PID, PI, PD,…).
Đối với bộ điều khiển PID hoặc PD: đầu tiên cho khởi động hệ thống làm việc
bình thường với các hệ số Kp = Ki =Kd = 0. Đánh giá hoạt động của hệ thống trước khi
sử dụng PID, sau đó tăng Kp để tạo dao động, tức hệ thống có sự đáp ứng lại đối với
nhiểu, có thể tăng hệ số Kp đến một giá trị tạm được, giá trị có thể làm cho hệ thống đủ
đáp ứng và chấp nhận vọt lố hay dao động. Tiếp theo ta tăng Kd, lúc này thành phần vi
phân sẽ đóng vai trò làm phanh thắng giúp hệ thống chống lại sự dao động làm giảm
mức độ vọt lố, tăng Kd cho tới khi nào thấy đáp ứng khá tốt, mới chỉ hiệu chỉnh Kp, Kd
chúng ta cũng có thể tìm được một cặp hệ số Kp, Kd phù hợp với hệ thống, nếu không
tìm được hệ số Kd phù hợp thì ta có thể tăng hoặc giảm Kp sau đó lại hiệu chỉnh Kd.
Nếu hệ thống ổn định nhưng chưa về điểm đặt thì ta có thể thêm thành phần Ki giúphệ
thống có thể về điểm đặt và giúp quá trình nhanh hơn. Nhưng nếu tăng Ki quá lớn hệ
thống rất dễ mất ổn định.
2.1.5. Xử lý ảnh
2.1.5.1. Thư viện OpenCV
Những năm gần đây, một khái niệm mới trong lĩnh vực khoa học máy tính đã ra
đời, đó là khái niệm “Computer vision” – “Thị giác máy tính” mà một phân ngành gần
với nó là kỹ thuật xử lý hình ảnh (gọi tắt là “xử lý ảnh”). Xử lý ảnh là một phân ngành
trong xử lý tín hiệu số, với tín hiệu xử lý là hình ảnh số. Hình ảnh được xử lý có thể là
ảnh tĩnh, hoặc những frame ảnh được cắt ra từ video. Kể từ khi ra đời, kỹ thuật xử lý
ảnh đã hỗ trợ con người trong rất nhiều lĩnh vực, như y học với máy chụp cắt lớp (chụp
CT – Computer Tomography), trong đời sống hằng ngày như nhận dạng biển số xe,
nhận dạng khuôn mặt, nhận dạng chữ viết tay, nhận dạng chuyển động trong bóng tối,
xử lý ảnh thiên văn, v.v… Bên cạnh đó, kỹ thuật xử lý ảnh phát triển đã cung cấp thêm
sự lựa chọn cho những nhà phát triển robot, khi mà giờ đây, robot có thể sử dụng camera
25
giúp thu thập và xử lý tín hiệu ảnh nhằm nhận biết với thế giới bên ngoài tốt hơn, toàn
diện hơn và ở khía cạnh nào đó là gần gũi với cách hoạt động của con người hơn.
Kỹ thuật xử lý ảnh xem hình ảnh là một ma trận hai chiều, mỗi điểm ảnh (pixel)
là một phần tử của ma trận hai chiều đó, từ đó sử dụng những phép tính, phép biến đổi
toán học trên ma trận để xử lý hình ảnh, nhằm đạt được những mục đích như: nhận dạng
khuôn mặt, nhận dạng đường biên, nhận dạng chữ viết tay, v.v… trong một số yêu cầu
đặt biệt, như tính khoản cách và kích thước của vật, thông số về máy ảnh được sử dụng
để chụp ảnh cũng cần được biết đến, như thông số về tiêu cự, kích thước cảm biến,
v.v… Hiện nay, kỹ thuật xử lý ảnh có thể được tiếp cận từ hai hướng, đầu tiên là sử
dụng bộ công cụ Image Processing và Image Acquistion của phần mềm Mathlab cho
hãng MathWorks phát hành, hướng thứ hai là sử dụng thư viện mã nguồn mở OpenCV.
Phần mềm Matlab là một phần mềm lập trình và mô phỏng hướng đối tượng rất
mạnh được rất nhiều kỹ sư, nhà khoa học và những tổ chức nghiên cứu sử dụng. Mathlab
có thể lập trình để xử lý, mô phỏng hầu như tất cả mọi lĩnh vực, mọi hiện tượng, mọi
đối tượng trong đời sống, giúp các nhà khoa học có thể xây dựng những mô hình toán
của đối tượng nhằm nghiên cứu những tác động và ảnh hưởng vốn không thể thực hiện
trong thực nghiệm đến đối tượng đó, từ đó có thể đưa ra những dự báo, chẩn đoán và
sữa chữa những sai sót, khuyết điểm của đối tượng kịp thời. Matlab hỗ trợ cho người
sử dụng rất nhiều bộ công cụ, trong đó hai bộ công cụ Image Processing và Image
Acquistion chuyên dùng để xử lý ảnh. Điểm trừ lớn nhất của Matlab xuất phát từ điểm
mạnh lớn nhất của phần mềm này, đó là tính hỗ trợ mạnh mẽ cho người dùng, điều này
dẫn đến yêu cầu phần cứng khi chạy chương trình Matlab là rất cao, đặc biệt là những
phiên bản R2012 trở về sau. Khi hoạt động, Matlab chiếm rất nhiều tài nguyên của hệ
thống, vì vậy không thích hợp để chạy trên những thiết bị cầm tay như máy tính bảng
hoặc điện thoại di động. Bên cạnh đó, Matlab sử dụng ngôn ngữ lập trình riêng của
mình, trong khi đa phần những robot hiện tại được lập trình bằng ngôn ngữ C/C++,
chính vì vậy, ta rất khó để nhúng Matlab vào chương trình xử lý ảnh cho robot. Robot
di chuyển bám mục tiêu mà nhóm đang xây dựng hướng đến tính nhỏ gọn và linh hoạt,
phần ghi hình và xử lý hình ảnh được đảm nhiệm bởi một điện thoại chạy hệ điều hành
Android, vì vậy, chương trình Matlab không thích hợp để sử dụng trong trường hợp
này.
26
Nhằm giải quyết vấn đề xử lý ảnh và thị giác máy tính cho robot, dự án xây dựng
một thư viện xử lý ảnh mã nguồn mở đã được khởi động vào những năm 1999, ban đầu,
thư viện được sự hỗ trợ từ Intel và sau đó được Willow Garage – một phòng thí nghiệm
chuyên nghiên cứu về công nghệ robot hỗ trợ. Ngày nay, thư viện mã nguồn mở này
được biết đến rộng rãi với tên gọi OpenCV (Open Source Computer Vision). OpenCV
là thư viện về thị giác máy tính, với hơn 500 hàm và hơn 2500 các thuật toán đã được
tối ưu về xử lý hình ảnh. OpenCV được thiết kế để sử dụng tối đa sức mạnh của các
dòng chip đa lõi, nhằm thực hiện các phép tính trong thời gian thực và nó có thể chạy
trên nhiều nền tảng khác nhau (cross – platform) như Window, Linux, Mac, iOS,
Android, cũng như được lập trình với nhiều ngôn ngữ khác nhau như: C, C++, Java,
Python, v.v… Có thể nói, sự hỗ trợ mạnh mẽ từ thư viện OpenCV đã giúp những người
chưa có kinh nghiệm về xử lý ảnh tiếp cận với ngành khoa học thú vị này dễ dàng hơn
rất nhiều. Chính vì những ưu điểm của thư viện OpenCV, nên nhóm quyết định sử dụng
thư viện này làm công cụ chính giúp xử lý hình ảnh cho robot. Thư viện OpenCV được
nhúng vào phần mềm Android Studio và được lập trình bằng ngôn ngữ Java.
2.1.5.2. Không gian màu
Không gian màu là một mô hình toán học mô tả các màu sắc trong thực tế dưới
dạng số học. Trong thực tế, có rất nhiều không gian màu được sử dụng và những mục
đích khác nhau, những không gian màu thường gặp là RGB, HSV, CMYK, v.v…
Không gian màu RGB (hình 2.14) là không gian màu thường gặp nhất, được sử
dụng phổ biến trong đồ họa máy tính và nhiều thiết bị kỹ thuật số. Ý tưởng của không
gian màu RGB là kết hợp ba màu cơ bản “đỏ” – red, “xanh lá” – green và “xanh dương”
– blue để tạo thành nhiều màu sắc khác nhau. Không gian màu RGB thường được biểu
diễn là một khối lập phương, với trục x là màu đỏ, trục y là xanh lá và trục z là xanh
dương. Với một ảnh số được mã hóa bằng 24bit, thì mỗi kênh màu sẽ chiếm 8bit, giá
trị trải dài từ 0 đến 255, với mỗi giá trị của từng kênh màu khi kết hợp lại với nhau, ta
sẽ được một màu khác nhau. Như vậy, đối với ảnh 24bit, ta sẽ có thể biểu diễn được
2553 màu sắc khác nhau.
27
(H, S, V) sẽ cho ta một màu sắc mà ở đó mô tả đầy đủ thông tin về máu sắc, độ đậm
đặc và độ sáng của màu đó.
Không gian màu HSV là không gian màu chính nhóm sử dụng để nhận biết màu
sắc của đối tượng cần theo dõi. Tuy nhiên, trong thư viện OpenCV, không gian mau
HSV đã được sửa đổi đôi chút, cụ thể, giá trị H không đi từ 0o đến 360o mà nhận giá trị
từ 0o đến 180o, tập giá trị của S và V rộng hơn, trải dài từ 0 đến 255.
2.1.5.3. Chuyển đổi không gian màu giữa RGB và HSV
Một ảnh màu khi được thu về Matlab hoặc thư viện OpenCV sẽ được mô tả bằng
không gian màu RGB và được định dạng ở dạng ma trận ba lớp (lớp “red”, lớp “green”
và lớp “blue”), trong đa số trường hợp ta thường chuyển ảnh màu về ảnh xám (ảnh gray)
để xử lý, vì ảnh xám là ảnh một lớp, các thao tác tính toán sẽ đơn giản hơn rất nhiều đối
với ảnh màu. Một ảnh màu sẽ được chuyển thành ảnh xám theo công thức: ứng với mỗi
pixel, pixel của ảnh xám sẽ được tính theo công thức:
0.2989×Red + 0.5870×Green + 0.1140×Blue (2.36)
Tuy nhiên, trong một số trường hợp đặc biệt, như nhận diện màu sắc, ta không
thể chuyển ảnh sang ảnh xám, mà phải chuyển đổi từ không gian màu RGB sang không
gian màu HSV, vì vậy, bài toán chuyển đổi qua lại giữa không gian màu RGB và HSV
được đặt ra. Giả sử ta có một điểm màu trong không gian màu RGB là (R; G; B), các
bước chuyển sang không gian HSV như sau:
Đặt: M = Max (R; G; B); m = Min (R; G; B); C = M – m.
Nếu M = R, H’ = [(G – B)/C] mod 6,
Nếu M = G, H’ = [(B – R)/C] + 2
Nếu M = B, H’ = [(R – G)/C] + 4.
Khi có H’, ta tính H theo công thức: H = H’×60. Trong trường hợp C = 0, H =
0o. Sau đó, ta tính V bằng công thức: V = M, S = C/V. Trong trường hợp V = 0 hoặc C
= 0, S sẽ nhận giá trị 0.
Hình 2.16 mô tả một hình ảnh trong 2 không gian màu khác nhau.
29
Hình 2.16. Hình ảnh RGB (trái) và hình ảnh HSV (phải).
2.1.6. Bộ lọc Kalman
Một giả thuyết phổ biến trong nhiều thuật toán theo dõi dựa trên thị giác được
trình bày cho đến nay là chuyển động của một đối tượng sẽ thay đổi rất ít giữa hai khung
tiếp theo. Do đó, vị trí của đối tượng trong khung thực tế là xấp xỉ vị trí của đối tượng
trong các khung tiếp theo. [17-18]
Bài viết này nhằm mục đích khai thác khái niệm quỹ đạo đối tượng. Giả định là
sự thay đổi vị trí của một đối tượng trong mỗi khung chuyển động tuân theo mô hình
toán học theo thời gian. Và vector chuyển động được mô hình hóa như một hệ thống
tuyến tính thời gian rời rạc được mô tả bằng phương trình sau:
x[t+1] = F x[t] + v[t] (2.37)
Trong phương trình trên, x [t] đại diện cho trạng thái hệ thống và mô tả giá trị
chính xác của mỗi hệ số của vector chuyển động tại thời điểm t, bao gồm đạo hàm bậc
nhất và đạo hàm bậc hai, ma trận F đại diện cho mô hình động thứ hai, v [t] là viết tắt
của các lỗi được thực hiện bởi quá trình mô hình hóa. Lỗi này được định nghĩa là một
chuỗi các nhiễu như nhiễu trắng, nhiễu Gaussian.
Từ phương trình (2.37), một phương trình đo lường như sau được xác định:
z[t+1] = H x[t+1] + w[t+1] (2.38)
Phương trình này mô tả mối quan hệ giữa phương trình đo lường z [t] và trạng
thái hệ thống x [t]. Mối quan hệ này được xác định bởi ma trận H và do lỗi w [t]. Lỗi
được mô hình hóa bởi w [t] tính toán tất cả các điểm không chính xác có thể có trong
ước lượng chuyển động.
30
Áp dụng bộ lọc Kalman cho hệ thống được xác định bởi phương trình (2.37) và
(2.38), có thể thực hiện theo dõi chuyển động đệ quy. Tại mỗi quan sát mới của chuyển
động đối tượng, z [t] thu được thông qua ước lượng chuyển động. Theo các quan sát
được đo lường và các mô hình động học, bộ lọc Kalman cập nhật vectơ trạng thái x [t].
Bộ lọc này tích hợp theo thời gian thông tin thời gian có sẵn cho từng đối tượng.
Tuy nhiên, bộ lọc Kalman không phải lúc nào cũng đưa ra dự đoán chính xác.
Điều này thường xảy ra khi các đối tượng không thể dự đoán được và làm sai lệch bộ
lọc Kalman. Trong trường hợp này, để có kết quả tốt hơn, dự đoán thô được sử dụng,
đó là chuyển động ước tính cuối cùng của vật thể, x [t]. Điều này sẽ đại diện cho một
dự đoán đầu tiên về vị trí và chuyển động của đối tượng trong tương lai.
Một thử nghiệm luôn luôn là cần thiết để quyết định khi nào tốt hơn để sử dụng,
như một dự đoán, chuyển động ước tính cuối cùng, x [t], thay vì sử dụng dự đoán chuyển
động Kalman x[t+1 = t]. Để giải quyết điều này, một kỹ thuật đã được đề xuất dựa trên
ước lượng lỗi bù chuyển động. Đối tượng được dự đoán được bù với cả x [t] và
x[t+1=t]. Sự bù trừ chuyển động giữa hai giá trị này tạo ra sai số trung bình nhỏ hơn
được chọn làm dự đoán tốt hơn. [17]
2.2. Giới thiệu thiết bị phần cứng và sơ đồ kết nối
2.2.1. Khung S500
Hình 2.17 và 2.18 mô tả khung S500 4-Axis PCB Quadcopter sợi Cacbon.
Hình 2.20. Sơ đồ khối nguyên lý hoạt động và điều khiển động cơ BLDC.
Hình 2.20 mô tả sơ đồ khối nguyên lý hoạt động và điều khiển động cơ BLDC.
Nguyên lý hoạt động của động cơ: để động cơ quay thì ta phải cấp nguồn điện vào các
cuộn dây (stator), các cuộn dây được cấp điện sẽ sinh ra từ trường biến thiên bên trong
rotor, lúc này cuộn dây trở thành một cực có từ tính làm cho các nam châm trong roto
này quay một góc nhỏ vì tính hút đẩy của nam châm. Khi ta lần lượt đóng ngắt điện ở
các cuộn dây và thay đổi thứ tự cấp điện cho các cuộn dây theo thứ tự sẽ làm cho rotor
quay liên tục. Với tần số cấp xung lớn sẽ làm cho rotor quay với tốc độ cao. Nguyên lý
điều khiển động cơ: để điều khiển động cơ DCBL (3pha) ta cần tạo một nguồn xoay
chiều 3 pha. Để tạo ra từ trường quay cùng pha với nam châm của rotor, ESC (hay bộ
điều khiển driver) phải xác định được vị trí của năm châm vĩnh cửu và vận tốc của nó.
Có 2 cách là sử dụng cảm biến nhận biết vị trí của rotor ( cảm biến Hall) và cách cảm
33
ứng 1 trong 3 pha của xung điện từ trường phản hồi ( xung BEMF – Back
ElectroMagnetic Field phulses). Đối với phần lớn các động cơ dùng trong mô hình bay
thì đều dùng phương pháp cảm ứng xung BEMF. Hình 2.21 mô tả sơ đồ nguyên lý đơn
giản của động cơ một chiều không chổi than với 3 cuộn dây trên stator.
Hình 2.21. Sơ đồ nguyên lý đơn giản của động cơ một chiều không chổi than với 3
cuộn dây trên stator.
Hình 2.22 mô tả trình tự cấp điện cho các cuộn dây, hình 2.23 là một mạch điều
khiển BLDC đơn giản.
Mô hình toán học (2.39)
d
vab R (ia ib ) L (ia ib ) eb ec
dt
d
vbc R (ib ic ) L (ic ia ) ea eb
dt
(2.39)
d
vca R (ic ia ) L (ic ia ) ec ea
dt
d (w m )
Te k f w m J TL
dt
Trong đó I, v, e là dòng điện, điện áp và suất điện động, w là tốc độ quay của
rotor, R là điện trở, L là điện cảm. Công thức suất điện động và momen có thể viết như
sau: (công thức 2.40)
ke
ea Wm F (e )
2
ke 2
eb Wm F ( e )
2 3
(2.40)
ke 4
ec Wm F ( e )
2 3
kt 2 4
Te [F ( e ) ia F ( e ) ib F ( e ) ic ]
2 3 3
2.2.2.3. Động cơ DJI 2212 920KV
Rating 920kv
Shaft 8.0mm
sản xuất cung cấp. Trong nghiên cứu này, Arduino đóng vai trò điều khiển chính, có
nhiệm vụ điều khiển cân bằng và điều hướng cho máy bay, tiếp nhận tín hiệu từ
Raspberry Pi (sẽ được đề cập trong phần sau) để điều khiển hạ cánh.
SRAM 2 KB
EEPROM 1 KB
Tần số 16 MHz
39
thoại di động ) bao gồm CPU , GPU , bộ xử lí âm thanh /video , và các tính năng khác…
tất cả được tích hợp bên trong chip có điện năng thấp này.
So với các phiên bản cũ (bản 1 và 2) thì ở bản Raspberry Pi 3B có CPU với tốc
độ xử lí lên tới 1.2 Ghz giúp tốc độ xử lý nhanh hơn từ 30% - 40% so với phiên bản
Raspberry Pi 2. Bộ nhớ tạm RAM cũng được nâng cấp lên 1GB giúp cho người sử dụng
có thể thực hiện nhiều tác vụ cùng 1 lúc hơn, module wifi cũng được tích hợp vào bo
mạch giúp cho việc kết nối máy tính với mạng internet dễ dàng hơn. Trong nghiên cứu,
Raspberry Pi đóng vai trò xử lý ảnh và chuyển tín hiệu tọa độ của mục tiêu đến Arduino.
Để thỏa mãn các yêu cầu cảu bài toán ban đầu là thời gian bay của mô hình trong
khoảng từ 10-15 phút nên sau khi tính toán, nhóm quyết định chọn Pin lipo 3S có điện
áp 12.6V, dung lượng là 2200 mAh cho dòng xả tối đa là 6600mA.
2.2.9. Cánh quạt
2.2.9.1. Tổng quan
Cánh quạt dùng cho quad-rotor là loại tốc độ thấp (slow flyer). Ngoài loại cánh
tractor thông dụng (còn gọi là cánh CCW, counter clockwise), quadrotor cần có cánh
pusher (còn gọi là cánh CW, clockwise) quay theo chiều nghịch lại để triệt tiêu các
moment xoắn sinh ra. Tùy vào loại động cơ sẽ sử dụng cũng như khối lượng mô hình
cần nâng mà cánh quạt sẽ được chọn cho phù hợp.
Theo đề nghị của nhà sản xuất thì với loại động cơ DJI 2212 - 920kv nên dùng
các cánh quạt loại 8045/8055/9443/9450/1038.
2.2.9.2. Cánh quạt tự siết DJI Phantom 2 Vision 9-Inch
Hình 2.38 là hình ảnh của bộ cánh quạt được sử dụng trong nghiên cứu.
Loại Tự siết
Kích thước 9.4 x 4.3 inch
Màu Trắng
46
Tiêu cự 2.3 mm
Đèn LED Có
khoảng cách. Cảm biến siêu âm HC-SR04 bao gồm bộ phát, bộ thu và mô-đun điều
khiển.
Để tính toán khoảng cách, truyền xung kích hoạt ít nhất 10 micro giây đến Pin
HC-SR04 Trig. Sau đó, HC-SR04 tự động gửi sóng âm thanh 8 kHz và đợi cho đầu ra
cạnh tăng ở chân Echo. Khi chụp cạnh tăng xảy ra tại pin Echo, khởi động Timer và đợi
cạnh rơi trên chốt Echo. Khi cạnh rơi xuống được giữ ở chân Echo, chúng ta sẽ đọc số
đếm của Timer. Số thời gian này (được gọi là T) là thời gian mà bộ cảm biến yêu cầu
để phát hiện một đối tượng và trả về từ một đối tượng.
Hình 2.40. Biểu đồ thời gian của cảm biến siêu âm HC-SR04.
Hình 2.40 biểu thị biểu đồ thời gian của cảm biến siêu âm HC-SR04.
Khoảng cách đo từ cảm biến tới vật thể được tính như sau:
𝑇(𝑔𝑖â𝑦) 𝑚
𝐾ℎ𝑜ả𝑛𝑔 𝑐á𝑐ℎ (𝑚é𝑡 ) = ∗ 343 (𝑡ố𝑐 độ â𝑚 𝑡ℎ𝑎𝑛ℎ − ) (2.41)
2 𝑠
2.2.11.2. Cảm biến siêu âm HC-SR04
Hình 2.41 là hình ảnh của cảm biến siêu âm HC-SR04.
Góc đo 15o
Hình 2.46. Cửa sổ với các thanh điều khển giá trị H, S, V với thư viện OpenCV.
Một khi màu sắc được xác định sử dụng không gian màu HSV, phương pháp
phân ngưỡng được sử dụng để chuyển đổi ảnh sang định dạng nhị phân. Sau đó, dùng
hàm tìm kiếm đường biên để vẽ đường hình chữ nhật bao quanh mục tiêu. Vị trí của
mục tiêu được xác định là tâm của hình chữ nhật. Hình 2.47 mô tả quá trình xử lý một
khung hình. [13-16]
51
Hình 2.47. Từ trái qua phải, từ trên xuống dưới: ảnh gốc, ảnh được chuyển sang hệ
màu HSV, ảnh được phân ngưỡng, ảnh đầu ra.
2.3.2.2. Dự đoán chuyển động sử dụng bộ lọc Kalman
Hình 2.48 mô tả các phương trình của bộ lọc Kalman, các phương trình này được
chia thành hai phần, “dự đoán” và “hiệu chỉnh”. Phần “dự báo” ước đoán chuyển động
hay trạng thái kế tiếp và phần “hiệu chỉnh” có nhiệm vụ tính toán lỗi và cập nhật lại
thống số của bộ lọc. [17-18]
Ý tưởng của thuật toán là mô hình có thể tự động nghiêng trái hay phải để điều
chỉnh vị trí của mô hình trong không gian bằng cách thay đổi điểm đặt của các góc roll
và pitch sao cho khoảng cách giữa tâm của khung hình và tọa độ dự đoán nhỏ nhất có
thể. Trong trường hợp này, khung hình của camera có độ phân giải 320x240, khoảng
cách giữa tâm khung hình và tọa độ dự đoán sẽ được so sánh với 50, trong mặt phẳng
hình ảnh 2D, khoảng cách này sẽ được tính như sau:
Distance = sqrt[ (160-x)^2 + (120-y)^2 ] (2.42)
Trong đó (160, 120) là tọa độ tâm của khung hình. Khi Distance nhỏ hơn 50, tín
hiệu điều khiển Quadcopter sẽ giảm gas để có thể hạ cánh trên mục tiêu.
53
Hình 2.49. Lưu đồ của thuật toán xác định mục tiêu.
Mô tả lưu đồ (hình 2.49):
- Sau khi camera được bật, hình ảnh sẽ được thu liên tục.
- Hình ảnh sẽ được chuyển đổi sang dạng nhị phân để xác định vị trí mục tiêu.
- Thông tin vị trí của mục tiêu sẽ được gửi đi dưới dạng tọa độ x, y.
54
Hình 3.2. Mục tiêu được sử dụng trong nghiên cứu (60x60cm).
3.2. Các kết quả thực nghiệm
3.2.1. Dự đoán chuyển động với bộ lọc Kalman
Bộ lọc Kalman cho kết quả dự đoán tốt, vị trí hiện tại cách vị trí dự đoán khoảng
0.5 giây. Hình 3.3 mô tả một số kết quả xử lý ảnh với bộ lọc Kalman.
Hình 3.4 (a-d) và 3.4 (e-h): thí nghiệm được thực hiện trong nhà từ độ cao 1 mét
và 1.5 mét so với mặt đất. Kết quả cho thấy mô hình có thể đáp cánh trên mục tiêu tuy
nhiên độ chính xác chưa cao.
Hình 3.6 (a-d). Một thí nghiệm hạ cánh với độ chính xác cao.
Sau khi cải thiện thuật toán hạ cánh và chỉnh sửa lại code, mô hình hiện nay có
thể hoạt động tốt và cho kết quả đáp cánh chính xác hơn. Hình 3.6 (a-d) mô tả một thí
nghiệm cho kết quả hạ cánh với độ chính xác cao. Hình 3.7 mô tả một vị trí hạ cánh với
độ chính xác cao.
nhau trong môi trường không có gió và nhiệt độ từ 25-30 độ C. Từ các thí nghiệm cho
thấy một số kết luận:
- Mô hình hoạt động tốt trong phòng dưới sự điều khiển của tay cầm và thời
lượng bay liên tục từ 10 đến 15 phút.
- Mô hình có thể tự động nghiên trái phải khi đang bay trên không.
- Chương trình thuật toán xử lý ảnh cho độ chính xác cao trong cả việc xác định
và dự đoán chuyển động của mục tiêu.
- Mô hình có khả năng tự đáp cánh lên mục tiêu khá tốt với độ chính xác 80%,
có nghĩa là có 8 trên 10 lần đáp cánh thành công lên mục tiêu.
61
[13] Khamar Basha Shaik, Ganesan P, V.Kalist, B.S.Sathish, and J.Merlin Mary
Jenitha, “Comparative Study of Skin Color Detection and Segmentation in HSV and
YCbCr Color Space,” in 3rd International Conference on Recent Trends in
Computing 2015 (ICRTC 2015), Ghaziabad, India, Mar. 12-13, 2015, pp. 41-48.
[14] Rafael C. Gonzalez and Richard Eugene Woods, Digital Image Processing
(English) (3rd Edition).
[15] Shamik Sural, Gang Qian and Sakti Pramanik, Segmentation And Histogram
Generation Using The HSV Color Space For Image Retrieval, Dept. of Computer
Science and Engineering, 3115 Engineering Building, Michigan State University,
East Lansing, MI 48824, USA.
[16] Chi-Tinh Dang, Hoang-The Pham, Thanh-Binh Pham, and Nguyen-Vu Truong,
“Vision Based Ground Object Tracking Using AR.Drone Quadrotor,” in
International Conference on Computer Applications & Information
Security (ICCAIS), Nha Trang City, Vietnam, Nov. 25-28, 2013, pp. 146-151.
[17] Francesco Ziliani, and Fabrice Moscheni, KALMAN FILTERING MOTION
PREDICTION FOR RECURSIVE SPATIO-TEMPORAL SEGMENTATION AND
OBJECT TRACKING. Signal Processing Laboratory, Swiss Federal Institute of
Technology, CH-1015 Lausanne, Switzerland.
[18] K Rameshbabu, J.Swarnadurga , G.Archana , and K.Menaka, “Target Tracking
System Using Kalman Filter”, International Journal of Advanced Engineering
Research and Studies, India.
[19] Daewon Lee, Tyler Ryan, and H. Jin. Kim, “Autonomous Landing of a VTOL
UAV on a Moving Platform Using Image-based Visual Servoing,” in 2012 IEEE
International Conference on Robotics and Automation (ICRA 2012), RiverCentre,
Saint Paul, Minnesota, USA, May. 14-18, 2012, pp. 971-976.
[20] A. Zul Azfar and D. Hazry, “Simple GUI Design for Monitoring of a
Remotely Operated Quadcopter Unmanned Aerial Vehicle,” in 2011 IEEE 7th
International Colloquium on Signal Processing and its Applications.
64
PHỤ LỤC
Nghiên cứu này cũng được viết thành một bài báo khoa học và đã được nộp cho
Hội nghị Công nghệ xanh và phát triển bền vững, dự kiến tổ chức tại Trường Đại học
Sư phạm Kỹ thuật Tp.HCM, 23-24/11/2018, bài báo đã thông qua phản biện và được
chấp nhận.
Hội nghị được đồng tổ chức bởi Trường Đại học Sư phạm Kỹ thuật Tp.HCM
(Việt Nam), Sở Khoa học và Công nghệ Tp.HCM, Hệ thống IEEE, Việc Quốc gia Năng
lượng Mặt Trời (Ấn Độ), Trường Đại học Khoa học Ứng dụng Kaohsiung (Đài Loan)
và Trường Đại học Kun Shan (Đài Loan).
S K L 0 0 2 1 5 4