Chương 1. Tỏ ng quan đè tà i 1. Tình hình nghiên cứu 1. Nhiệm vụ củ a luận văn 1.
Lợi ích và ý nghĩa củ a đè tà i Chương 2. Cơ sở lý thuyết liên quan 2. Lý thuyết bộ lọc Kalman 6 2. Giải thuật phát hiện đối tượng OpenTLD 2.
Động lực học mô hình máy bay bốn cánh quạt Chương 3. Hệ thống ổn định hình ảnh tích hợp 3. Phương pháp ổn định hình ảnh sử dụng Kalman 3. Giải thuật đo vận tốc, độ dời từ optical flow và quadrotor 3.
Giải thuật cho bộ lọc Kalman Multirate Chương 4. Hệ thống máy bay nhận diện và bám mục tiêu chuyển động 4. Mô hình hoá hệ thống máy bay bám vật thể chuyển động 4. Giải thuật điều khiển Image Based Visual Servoing 4.
Phương trình động lực học của máy bay 4. Bộ điều khiển cân bằng cho máy bay bốn cánh 4. Bộ điều khiển vị trí cho máy bay bốn cánh 4. Hệ thống mã nguồn mở Ardupilot 4.
Xây dựng mô hình và hiện thực giải thuật Chương 5. Kết quả thực hiện 7. Bộ ổn định hình ảnh tích hợp 7. Hệ thống nhận diện và điều khiển bám theo mục tiêu Chương 6.
Kết luận và hướng phát triển 8. Kết luận đề tài 8. Hướng phát triển đề tài 7 Chương 2. Cơ sở lý thuyết liên quan 2.
Lý thuyết bộ lọc Kalman R.Kalman cho xuất bản nghiên cứu của mình vào năm 1960, đưa ra một phương pháp đệ quy để rời rạc hóa dữ liệu trong bộ lọc tuyến tính. Kể từ đó, việc giải quyết các bài toán kỹ thuật số trong nhiều lĩnh vực đã trở nên dễ dàng hơn rất nhiều. Bộ lọc Kalman được mở rộng ra nghiên cứu và ứng dụng thực tế, đặc biệt là trong lĩnh vực xử lý tín hiệu tự động hay hỗ trợ bài toán định vị. Bộ lọc Kalman thu thập và kết hợp linh động các tín hiệu từ nhiều nguồn cảm biến thành phần.
Mỗi khi mẫu thống kê nhiễu trên các cảm biến được xác nhận, bộ lọc Kalman sẽ cho ước lượng giá trị tối ưu (do đã loại được nhiễu), và có độ phân bổ ổn định. Bộ lọc Kalman là thuật toán xử lí dữ liệu hồi quy tối ưu, nó tối ưu đối với chi tiết cụ thể trong bất kì tiêu chuẩn có nghĩa nào. Bộ lọc Kalman tập hợp tất cả thông tin được cung cấp tới giải thuật, xử lý các giá trị sẵn có, ước lượng các giá trị quan tâm, sử dụng các hiểu biết về động học, thiết bị giá trị và hệ thống, để mô tả số liệu thống kê của hệ thống nhiễu và những thông tin bất kì về điều kiện ban đầu của các giá trị cần ước lượng. Đối với bộ lọc Kalman, thuật ngữ “lọc” không có ý nghĩa như các bộ lọc khác.
Đây là một giải thuật tính toán và ước lượng thống kê tối ưu tất cả các thông tin ngõ vào được cung cấp tới nó để có được một giá trị ra đáng tin cậy nhất cho việc xử lý tiếp theo. Mặc dù phải tốn khá nhiều thời gian xử lý lệnh, nhưng với tốc độ hiện tại của các vi điều khiển thời gian thực làm việc tính toán ước lượng tối ưu của bộ lọc này trở nên đơn giản và đáng tin cậy rất nhiều. Nhờ có cơ chế tự cập nhật các giá trị cơ sở (bias) tại mỗi thời điểm tính toán, cũng như xác định sai lệch của kết quả đo trước với kết quả đo sau nên giá trị đo luôn được ổn định, chính xác, gần như không bị sai số về độ lợi và độ lệch pha của các tín hiệu. Hơn thế, được xây dựng bởi hàm trạng thái, do vậy bộ lọc Kalman có thể kết hợp không chỉ hai tín hiệu từ hai cảm biến, mà có thể kết hợp được nhiều cảm biến đo ở những dải tần khác nhau của cùng một giá trị đại lượng vật 8 lý.
Chính vì điều này, làm bộ lọc Kalman trở nên phổ dụng hơn tất cả những bộ lọc khác trong việc xử lý tín hiệu chính xác của các cảm biến tọa độ, như cảm biến la bàn, GPS, góc, gyro… Hình 2. Sơ đồ khối mạch lọc Kalman Hình 2.1 cho ta thấy mô hình hóa hoạt động của mạch lọc Kalman. Ta có tín hiệu đo được và có mô hình của tín hiệu đo được để sau đó áp dụng vào trong hệ thống phương trình của mạch lọc để ước lượng trạng thái quan tâm. Ở đây thực ra tín hiệu đo là không khó, phương trình đã có sẵn, cái chúng ta cần chính là mô hình hoá hệ thống.
Để có thể ứng dụng một cách hiệu quả mạch lọc Kalman thì chúng ta phải mô hình hóa và xác định được một sự thay đổi của trạng thái cần ước lượng (estimate) hoặc ước đoán (predict). Thuật toán Kalman rời rạc: Bộ lọc Kalman đề cập đến bài toán tổng quát đi ước lượng trạng thái của một quá trình được mô hình hóa một cách rời rạc theo thời gian bằng một phương trình ngẫu nhiên tuyến tính như sau: 𝑥𝑘 = 𝐴𝑥𝑘−1 + 𝐵𝑢𝑘−1 + 𝑤𝑘−1 (2.1) và kết quả đo đạc 9 𝑧𝑘 = 𝐻𝑥𝑘 + 𝑣𝑘 (2.2) Trong đó 𝑤 và 𝑣 là 2 vectơ biến ngẫu nhiên đại diện cho nhiễu hệ thống và nhiễu đo đạc, hai biến ngẫu nhiên này độc lập và được giả sử là tuân theo phân bố Gauss với trung bình bằng 0 và ma trận hiệp biến (covariance) lần lượt là 𝑄 và 𝑅 𝑤~𝑁(0, 𝑄), 𝑣~𝑁(0, 𝑅). Nếu vector trạng thái 𝑥 có kích thước là 𝑛, thì ma trận 𝐴 sẽ có kích thước là 𝑛 𝑥 𝑛. 𝐵 (𝑛 𝑥 𝑙) là ma trận phụ thuộc vào tín hiệu điều khiển 𝑢 với 𝑢 là vector có kích thước là 𝑙.
Vector đo đạc 𝑧 có kích thước là 𝑚 nên ma trận 𝐻 sẽ là 𝑚 𝑥 𝑛. Chú ý rằng các ma trận 𝑄, 𝑅, 𝐴, 𝐻 có thể thay đổi theo thời gian (từng bước 𝑘), nhưng ở đây chúng được coi như không đổi. Đến đây ta thấy bài toán lọc Kalman chính là đi tìm giá trị ước lượng và ước đoán của trạng thái 𝑥 khi ta biết được sự biến thiên của nó và ta đo được một đại lượng 𝑧 mà phụ thuộc tuyến tính vào 𝑥. Ví dụ trong bài toán chuyển động, ta biết được quy luật thay đổi của vận tốc, nhưng ta lại có thể đo được sự thay đổi của vị trí.
Khi đó, cái ta cần tìm là vận tốc ước lượng. Nếu ta giả sử 𝑥𝑘− và 𝑥𝑘 lần lượt là tiên nghiệm và tiền nghiệm ước lượng của giá trị 𝑥 tại thời điểm 𝑘. Giá trị tiên nghiệm thu được chỉ dựa vào mô hình hệ thống (1), còn giá trị hậu nghiệm là giá trị thu được sau khi đã có kết quả đo đạc 𝑧𝑘 (2). Khi đó sai số của ước đoán tiên nghiệm và hậu nghiệm lần lượt là 𝑒𝑘− = 𝑥𝑘 − 𝑥− 𝑘 (2.3) Ma trận hiệp biến của 2 sai số trên được tính lần lượt theo công thức 𝑃𝑘− = 𝐸(𝑒𝑘− 𝑒𝑘−𝑇 ) (2.5) 10 Phương trình (2.5) có nghĩa là giá trị nghiệm sau đó của ước lượng 𝑥 sẽ được tính bằng giá trị tiên nghiệm của nó và sau đó thêm/bớt đi một tí dựa vào sai số giữa giá trị đo được và giá trị đo đạc ước đoán 𝐻𝑥𝑘−.
𝐾 ở đây chính là độ lợi (gain) của bộ lọc Kalman. Câu hỏi đặt ra là làm thế nào để chọn 𝐾 tối ưu nhất. Tối ưu ở đây theo nghĩa là covariance của sai số của ước lượng nghiệm sau đó 𝑒𝑘 = 𝐾(𝑧𝑘 − 𝐻𝑥𝑘− ) là nhỏ nhất. Bằng cách thay 𝑒𝑘 vào trong biểu thức tính 𝑃𝑘 rồi sau đó lấy đạo hàm của 𝑃𝑘 theo 𝐾, ta sẽ tìm ra được giá trị 𝐾 mà tương ứng với 𝐾𝑘 = 𝑃𝑘− 𝐻 𝑇 (𝐻𝑃𝑘− 𝐻 𝑇 + 𝑅)−1.
𝐾𝑘 thay đổi theo thời gian 𝑘 và chính là độ lời cần tìm của mạch lọc Kalman trong mỗi ước đoán. Tóm lại mạch lọc Kalman bao gồm 2 bước: 1) Ước đoán trạng thái tiên nghiệm 2) Dựa vào kết quả đo để hiệu chỉnh lại ước đoán. Ta có thể tóm tắt lại hoạt động của mạch lọc Kalman bằng các phương trình sau: Hình 2.2 Thuật toán Kalman 11 Giả sử ta đã có giá trị ước đoán 𝑥𝑘−1 ở tại thời điểm (𝑘 − 1) và biết được giá trị điều khiển 𝑢𝑘−1 (Giá trị ban đầu tại thời điểm 0 được chọn 𝑥0 = 𝐻𝑧0). Lúc đó chúng ta chỉ cần lần lượt tiến hành các tính toán từ 1 đến 2 ở bước 1 rồi từ 1 đến 3 trong bước 2 như trong hình dưới đây.
Hình trên tóm tắt cơ bản của mạch lọc Kalman. Khó khăn của mạch lọc Kalman là làm thế nào để mô hình hóa các trạng thái và đo đạc để có được 2 phương trình (2.5) từ đó có thể áp dụng thuật toán Kalman. Giải thuật phát hiện đối tượng OpenTLD Giải thuật phát hiện đối tượng OpenTLD được công bố lần đầu tiên bởi Zdenek Kalal trên MatLab. OpenTLD là một thuật toán tracking thông dụng và có độ tin cậy cao với khả năng học và training dữ liệu on-line so với những giải thuật khác cần phải lấy mẫu và thực hiện off-line training và cần một lượng mẫu đủ lớn để tăng tính chính xác của giải thuật.
Từ tên của giải thuật chúng ta cũng có thể biết nó bao gồm ba thành phần chính T(tracking)-L(learning)-D(detection): Hình 2. Mô hình của giải thuật OpenTLD 12 • Tracking: Sử dụng Adaptive Tracking với giải thuật Lucas-Kanade with pyramids và sự hỗ trợ của phương pháp sai số Forward-Backard kết quả tập trung vào 50% các điểm đặc trưng đáng tin cậy. • Detection: Một hệ thống phân loại được học dữ liệu mới từ mỗi khung hình sử dụng phương pháp học máy Ensemble và 1-NN. Với mỗi khung hình mới, bộ phân loại được đánh giá từ sai số ước lượng của tín hiệu phản hồi, từ đó bộ phân loại được cập nhật và chính xác hơn qua thời gian.
Sơ đồ của hệ thống dection trong OpenTLD • Learning: Sử dụng phương pháp học P-N (Positive-Negative) từ hệ thống phân loại đối tượng, từ đó đánh nhãn các mảnh “đối tượng” (Positive) và “nền” (Negative). Đối tượng Positive được phát hiện từ bộ tracking và nền Negative được cung cấp từ bộ detection. Phương pháp learning trong OpenTLD 13 Với khả năng detect được đối tượng mà không cần có bất kỳ hiểu biết gì về đối tượng trước đó đi kèm khả năng tự học on-line để làm chính xác bộ tracking theo thời gian xử lý, OpenTLD được sử dụng nhiều trong các ứng dụng máy bay tự hành phát hiện và điều khiển bám theo vật thể không xác định. Động lực học mô hình máy bay bốn cánh quạt 2.