HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG NGUYỄN ĐÌNH THÔNG LUẬN VĂN TỐT NGHIỆP THIẾT KẾ BỘ ĐIỀU KHIỂN VẬN TỐC VÀ VỊ TRÍ CHO QUADCOPTER SỬ DỤNG CẢM BIẾN OPTICAL FLOW KỸ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG
NGUYỄN ĐÌNH THÔNG
LUẬN VĂN TỐT NGHIỆP
THIẾT KẾ BỘ ĐIỀU KHIỂN VẬN TỐC VÀ VỊ TRÍ CHO QUADCOPTER SỬ DỤNG CẢM BIẾN OPTICAL FLOW
KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
Trang 2Note:
Some pages (forewords, thesis overview, ) was removed from the original version, the main content is kept the same
Trang 3MỤC LỤC
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HỒ CHÍ MINH 1
MỤC LỤC 3
DANH MỤC HÌNH VẼ 7
DANH MỤC BẢNG 10
DANH MỤC TỪ VIẾT TẮT 11
TÓM TẮT LUẬN VĂN 1
MỞ ĐẦU 2
Chương 1 Giới thiệu 4
1.1 Giới thiệu chung về UAV và quadcopter 4
1.2 Tình hình nghiên cứu về UAV 5
1.3 Mục tiêu và nội dung của luận văn 8
1.3.1 Lý do chọn đề tài 8
1.3.2 Tính thiết thực của đề tài luận văn 9
1.3.2.1 Bộ điều khiển 9
1.3.2.2 Điều khiển quadcopter bằng Optical Flow 9
1.3.3 Mục tiêu và nội dung 10
Chương 2 Hệ thống cảm biến và phần cứng 11
2.1 Sơ đồ kết nối của hệ thống 11
2.2 Phần cứng 12
2.2.1 Pin Lipo 12
2.2.2 Động cơ BLDC 14
2.2.3 Bộ điều khiển ESC 15
Trang 42.2.4 Cánh quạt 15
2.2.5 Tay cầm DEVO7 16
2.2.6 Đọc tín hiệu PPM 17
2.2.7 Khung quadcopter 18
2.3 Hệ thống cảm biến 19
2.3.1 Cảm biến vận tốc góc và gia tốc MPU6050 19
2.3.2 Cảm biến từ trường HMC5883 21
2.3.3 Cảm biến độ cao dùng sóng siêu âm HC-SR04 21
2.3.4 Cảm biến Optical Flow PX4FLOW 22
2.3.4.1 Giới thiệu và thông số kỹ thuật của PX4FLOW 22
2.3.4.2 Calib cảm biến của px4flow 25
2.3.4.3 Giải thuật xử lý giữ liệu của px4flow 25
2.4 Mạch Altium 27
2.4.1 Sơ đồ mạch Schematics 28
2.4.2 Sơ đồ mạch PCB 29
Chương 3 Cơ sở lý thuyết 32
3.1 Lập trình vi điều khiển ARM 32
3.1.1 Bo mạch STM32F407 Discovery vi điều khiển 32 bits ARM Cortex M4 33 3.1.2 Lập trình trên vi điều khiển ARM Cortex M4 34
3.1.2.1 Thư viện lập trình 34
3.1.2.2 Hệ thống ngắt trên vi điều khiển ARM Cortex M4 35
3.1.2.3 Giao tiếp I2C 39
3.2 Đơn vị ước lượng trạng thái 41
Trang 53.2.1 Quy ước hệ trục tọa độ 42
3.2.2 Quaternion 43
3.2.2.1 Đại số về quaternion 44
3.2.2.2 Phương trình động học dưới dạng quaternion 47
3.2.3 Giải thuật Mahony Filter 48
3.2.4 Bộ lọc thông thấp 51
3.2.4.1 Giải thuật bộ lọc bù 52
3.2.4.2 Giải thuật bộ lọc trung bình ( moving averaging filter ) 52
3.3 Xây dựng phương trình toán và động lực học 54
3.3.1 Mô hình động cơ và cánh quạt 54
3.3.1.1 Hệ thống động cơ, cánh quạt và ESC 54
3.3.1.2 Mối liên hệ giữa tốc độ động cơ và xung PWM 55
3.3.1.3 Mối liên hệ giữa tốc độ động cơ và lực tạo ra 55
3.3.1.4 Mối liên hệ giữa tốc độ động cơ và điện áp cấp cho động cơ 56
3.3.2 Phương tình động lực học của quadcopter 56
3.3.3 Phương trình động lực học vật rắn 58
3.3.4 Phương trình tuyến tính hóa quanh điểm làm việc 60
Chương 4 Thiết kế bộ điều khiển 60
4.1 Lý thuyết bộ điều khiển PID 60
4.1.1 Bộ điều khiển PID tổng quát 60
4.1.2 Bộ điều khiển cascade PID 61
4.2 Áp dụng bộ điều khiển cho hệ thống quadcopter 62
4.2.1 Bộ điều khiển góc roll pitch yaw 62
4.2.1.1 Bộ điều khiển góc roll, pitch, yaw 62
Trang 64.2.1.2 Áp dụng thuật toán điều khiển roll, pitch, yaw 62
4.2.2 Bộ điều khiển độ cao 65
4.2.2.1 Chế độ tự động cất cánh và xác định thrust hover 65
4.2.2.2 Thiết kế bộ điều khiển giữ độ cao 65
4.2.3 Bộ điều khiển vận tốc và vị trí bằng Optical Flow 67
4.2.3.1 Chuyển đổi vị trí giữa Reference Frame và Body Frame 67
4.2.3.2 Bộ điều khiển vận tốc 70
4.2.3.3 Bộ điều khiển giữ vị trí 72
Chương 5 Kết quả của hệ thống và hướng phát triển đề tài 73
5.1 Kết quả và chất lượng của hệ thống 73
5.1.1 Hệ thống quadcopter được xây dựng 73
5.1.2 Kết quả cân bằng roll pitch yaw 75
5.1.3 Kết quả giữ độ cao 77
5.1.4 Kết quả giữ vận tốc và vị trí dùng Optical Flow 77
5.2 Hướng phát triển của đề tài 79
5.2.1 Sử dụng RTOS 80
5.2.2 Áp dụng bộ lọc Extended Kalman Filter và GPS 80
5.2.3 Tích hợp máy tính nhúng 80
TÀI LIỆU THAM KHẢO 82
Trang 7DANH MỤC HÌNH VẼ
Hı̀nh 1.1.1 Máy bay phản lực chiến đấu Sukhoi Su-57 4
Hı̀nh 1.1.2 Quadcopter sử dụng mạch bay DJI Naza 5
Hı̀nh 1.2.1 Mạch điều khiển Pixhawk 4, đều có thể sử dụng firmware của Ardupilot hoặc PX4 6
Hı̀nh 1.2.2 Ứng dụng Drone để phục vụ cho nông nghiệp của khoa Kỹ thuật hàng không Đại học bách khoa TP HCM 7
Hı̀nh 1.2.3 Drone quay phim và chụp hình DJI Phantom 7
Hı̀nh 1.2.4 Luận văn hệ thống định vị trong nhà với độ chính xác 2cm của sinh viên Bách Khoa HCM 8
Hı̀nh 1.3.1 Hệ thống quadcopter có tích hợp GPS 9
Hı̀nh 2.1.1 Thành phần phần cứng đầy đủ của hệ thống 11
Hı̀nh 2.1.2 Sơ đồ kết nối và giao tiếp các thành phần chính của quadcopter 12
Hı̀nh 2.2.1 Pin Phantom LiPo 13
Hı̀nh 2.2.2 Đồ thị điện áp và thời gian thể hiện đặc tuyến xả của pin LiPo 6C 14
Hı̀nh 2.2.3 Động cơ BLDC 14
Hı̀nh 2.2.4 Bộ điều khiển ESC cho động cơ BLDC 15
Hı̀nh 2.2.5 Cánh quạt cho quadcopter 16
Hı̀nh 2.2.6 Bộ điều khiển DEVO 7 16
Hı̀nh 2.2.7 Bộ chuyển đổi cho RX DEVO7 PWM to PPM 17
Hı̀nh 2.2.8 Sơ đồ tín hiệu xung PPM 18
Hı̀nh 2.2.9 Khung quadcopter S500 Carbon Fiber Arms 19
Hı̀nh 2.3.1 Cảm biến MPU6050 20
Hı̀nh 2.3.2 Cảm biến từ trường HMC5883 21
Hı̀nh 2.3.3 Giãn đồ đọc khoảng cách từ cảm biến sóng siêu âm HC-SR04 22
Hı̀nh 2.3.4 Cảm biến px4flow 23
Hı̀nh 2.3.5 Damping foam cho px4flow 23
Hı̀nh 2.3.6 Đồ thị kết quả calib px4flow trên trục y 25
Trang 8Hı̀nh 2.3.7 Hình mình hoạ sự thay đổi góc roll, pitch ảnh hưởng lên flow nhận
được 26
Hı̀nh 2.3.8 Sự ảnh hưởng của độ cao tới độ dịch chuyển thực tế 27
Hı̀nh 2.4.1 Mạch Schematics 28
Hı̀nh 2.4.2 PCB lớp bottom 29
Hı̀nh 2.4.3 PCB lớp top 30
Hı̀nh 2.4.4 Cả hai lớp 31
Hı̀nh 2.4.5 Lớp bottom mạch PCB đã gia công thực tế 32
Hı̀nh 3.1.1 Mạch phát triển STM32F4 Discovery 33
Hı̀nh 3.1.2 Mô hình của hệ thống firmware dùng thư viện CMSIS trên nền vi điều khiển ARM-Cortex M4 34
Hı̀nh 3.1.3 Các thư viện hỗ trợ lập trình chip STM32 và mức trừu tượng tương ứng 35
Hı̀nh 3.1.4 Sơ đồ khối NVIC minh họa ngắt GPIO trên vi điều khiểm ARM Cortex M4 36
Hı̀nh 3.1.5 Một phần của bảng vector ngắt chip STM32F407VG 37
Hı̀nh 3.1.6 Chế độ chọn nhóm ngắt NVIC 38
Hı̀nh 3.1.7 Mô hình kết nối phần cứng giao tiếp I2C 39
Hı̀nh 3.1.8 Giãn đồ đọc dữ liệu px4flow dùng I2C 40
Hı̀nh 3.2.1 Quy ước hệ tọa độ BF và EF 42
Hı̀nh 3.2.2 Quy ước chiều và góc xoay 43
Hı̀nh 3.2.3 Minh họa phép xoay dùng đại số quaternion 46
Hı̀nh 3.2.4 Lưu đồ giải thuật Mahony Filter 49
Hı̀nh 3.2.5 Đồ thị đáp ứng miền tần số của bộ lọc thông thấp 51
Hı̀nh 3.3.1 Hệ thống điều khiển động cơ BLDC 54
Hı̀nh 3.3.2 Quy ước số thứ tự và chiều quay của động cơ 58
Hı̀nh 4.1.1 Sơ đồ tổng quát bộ điều khiển cascade PID 61
Hı̀nh 4.2.1 Sơ đồ bộ điều khiển góc roll, pitch, yaw 62
Hı̀nh 4.2.2 Sơ đồ bộ điều khiển PID độ cao 66
Trang 9Hı̀nh 4.2.3 Hệ tọa độ phương x-y quadcopter 68
Hı̀nh 4.2.4 Chuyển đổi vận tốc từ BF sang RF 69
Hı̀nh 4.2.5 Chuyển đổi tọa độ vị trí từ RF sang BF 70
Hı̀nh 4.2.6 Sơ đồ bộ điều khiển vận tốc 70
Hı̀nh 4.2.7 Sơ đồ bộ điều khiển vị trí 72
Hı̀nh 5.1.1 Hệ thống quadcopter được thiết kế 73
Hı̀nh 5.1.2 Mặt dưới của quadcopter 74
Hı̀nh 5.1.3 Hệ thống quadcopter đang hoạt động trên không 75
Hı̀nh 5.1.4 Kết quả điều khiển góc roll, pitch 76
Hı̀nh 5.1.5 Kết quả điều khiển tốc độ góc 76
Hı̀nh 5.1.6 Kết quả giữ độ cao dùng cảm biến siêu âm 77
Hı̀nh 5.1.7 Kết quả giữ vị trí với px4flow 79
Hı̀nh 5.1.8 Kết quả điều khiển giữ vị trí với px4flow theo thời gian 79
Hı̀nh 5.2.1 Mô hình tích hợp máy tính nhúng Odroid trên bộ điều khiển bay Pixhawk 81
Trang 10DANH MỤC BẢNG
Bảng 2.1 Các dữ liệu của px4flow i2c integral frame 25
Bảng 5.1 Bảng thông số bộ điều khiển roll, pitch, yaw 76
Bảng 5.2 Bảng thông số bộ điều khiển độ cao 77
Bảng 5.3 Bảng thông số bộ điều khiển vận tốc và vị trí 78
Trang 11DANH MỤC TỪ VIẾT TẮT ARM: Acorn RISC Machine, dòng vi điều khiển của ARM Holdings BF: Body Frame, hệ tọa độ gắn với vật
BLDC: Brushless DC Electric Motor, động cơ một chiều không chổi than CMSIS: Cortex Microcontroller Software Interface Standard
DCM: Direction Cosine Matrix
EF: Earth Frame, hệ tọa độ gắn với mặt đất
ESC: Electronics Speed Controller, bộ điều khiển tốc độ điện tử
I2C: Inter-Integrated Circuit
INS: Indoor Navigation System, hệ thống định vị trong nhà
NVIC: Nested Vector Interrupt Controller, bộ quản lý ngắt lồng nhau PID: Proportional Integral Derivative, khâu tỷ lệ - tích phân – vi phân PPM: Pulse Position Modulation, điều chế xung theo vị trí
PWM: Pulse Width Modulation, điều chế xung theo độ rộng
RF: Reference Frame, hệ tọa độ tham chiếu
RTOS: Real Time Operating System, hệ điều hành thời gian thực
UAV: Unmanned Aerial Vehicle, phương tiện bay không người lái
Trang 12KÝ HIỆU TOÁN HỌC VÀ CÁC ĐẠI LƯỢNG VẬT LÝ
𝜙, 𝜃, 𝜓 theo thứ tự là roll, pitch, yaw
𝑠 = s𝛼 = sin (𝛼), 𝑐 = c𝛼 = cos (𝛼), 𝑡 = t𝛼 = tan (𝛼)
×: tích có hướng
torque: moment xoắn
thrust: lực gây nên chuyển động theo các phương tịnh tiến
𝑅 : ma trận chuyển từ hệ tọa độ A sang hệ tọa độ B
g: gia tốc trọng trường tại nơi hoạt động
m: khối lượng của vật
Trang 131
TÓM TẮT LUẬN VĂN Giới thiệu một số chủ đề quan trọng trong việc thiết kế hệ thống lập trình bằng
vi điều khiển STM32 Luận văn tập trung vào việc nghiên cứu thiết kế và điều khiển UAV quadcopter, xây dựng mô hình toán để hiểu rõ nguyên lý hoạt động
và các thành phần có ảnh hưởng đến việc điều khiển quadcopter, giới thiệu bộ điều khiển PID và cascade PID, sử dụng thuật toán điều khiển PID, trong đó phần trọng tâm là sử dụng cảm biến PX4FLOW để điều khiển vận tốc vị trí hai phương ngang Cuối cùng trình bày kết quả chất lượng của hệ thống quadcopter đã thiết kế bằng các số liệu thực tế, hướng phát triển của đề tài Luận văn được chia thành 8 chương, ở mỗi đầu chương đều có tóm tắt cụ thể
về nội dung tương ứng
Chương 1 Giới thiệu:
Chương 2 Hệ thống cảm biến và phần cứng
Chương 3 Cơ sở lý thuyết
Chương 4 Thiết kế bộ điều khiển
Chương 5 Kết quả của hệ thống và hướng phát triển đề tài
Trang 142
MỞ ĐẦU Lời đầu tiên em xin cảm ơn tất cả các quý thầy cô đã dạy và hướng dẫn
em trong suốt 4 năm học đã qua Quá trình học tập tại trường Đại học Bách Khoa Tp Hồ Chính Minh đã cung cấp cho em rất nhiều kiến thức bổ ích quý giá
để tạo thành nền tảng vững chắc cho em trong cuộc sống và sự nghiệp sau này
Trường Đại Học Bách Khoa là một môi trường tốt để học tập và phát triển, nơi mà ta có thể gặp những con người sáng tạo, tài giỏi và ai cũng có phần nào đó để mình cần học hỏi để hoàn thiện bản thân hơn, điều đó làm cho em cảm thấy may mắn khi được học tập và rèn luyện tại ngôi trường này
Luận văn này là cơ hội cho em tổng hợp lại tất cả những kiến thức của mình đã học được và khả năng nghiên cứu giải quyết vấn đề em đã đạt được trong quá trình học để giải quyết vấn đề Em xin chân thành cảm ơn thầy Huỳnh Thái Hoàng đã tận tình chỉ bảo và hướng dẫn em trong quá trình làm Đề cương và nay là Luận văn Thầy đã rất nhiệt tình giúp đỡ và chỉ bảo em trong việc định hướng con đường đi đúng đắn và cách giải quyết các vấn đề khó khăn gặp phải, cách làm việc có kế hoạch thích hợp Và đồng thời em cũng xin cảm
ơn thầy Ngô Đình Trí đã hỗ trợ về thiết bị và kiến thức cho em Bên cạnh đó em cũng xin cảm ơn sự giúp đỡ của các người bạn em trong ngôi trường Bách Khoa trong cả 4 năm học sát cánh cùng nhau và trưởng thành hơn trong môi trường học tập tại Đại học Bách Khoa
Em cũng xin dành lời cảm ơn này cho gia đình, bạn bè và thầy cô luôn ở bên và hỗ trợ em trong cuộc sống và quá trình học tập tại trường
Tp Hồ Chí Minh, tháng 12 năm 2018
Nguyễn Đình Thông
Trang 153
Trang 164
Chương 1 Giới thiệu
Giới thiệu chung về UAV quadcopter và tình hình phát triển của đề tài hiện nay, cũng như trình bày về ý nghĩa, nội dung và mục tiêu của luận văn thực hiện 1.1 Giới thiệu chung về UAV và quadcopter
Hı̀nh 1.1.1 Máy bay phản lực chiến đấu Sukhoi Su-57 Việc nghiên cứu để thiết kế và điều khiển chính xác các hệ thống máy bay luôn
là một lĩnh vực được chú trọng trong ngành nghiên cứu robot và hàng không, bởi các hệ thống máy bay nói chung được áp dụng rộng rãi trong các lĩnh vực dân dụng, quân sự hay khoa học vũ trụ Đặc biệt đối với thiết bị bay không người lái (UAV), bởi các tính năng ưu việt của nó như: có khả năng hoạt động tự động hoặc được điều khiển từ xa, khả năng hoạt động ở những nơi mà con người khó tiếp cận trong một số lĩnh vực như quan sát núi lửa, quan trắc môi trường, gieo trồng, phun thuốc trừ sâu nông nghiệp…
Quadcopter được sử dụng rất rộng rãi và tương lai sẽ được ứng dụng rất nhiều trong các ứng dụng khác như: cứu hộ, vận chuyển hàng hóa, quay camera hành trình, khảo sát địa hình,…
Trang 175
Hı̀nh 1.1.2 Quadcopter sử dụng mạch bay DJI Naza Quadcopter thuộc họ multi-copter và được coi là dạng multi-copter phổ biến nhất, nó gồm có bốn cánh chong chóng, ưu điểm của UAV multi-copter so với các hệ thống bay khác như máy bay trực thăng hay máy bay cánh bằng đó là dễ điều khiển, tính ổn định cao, khả năng giữ vị trí đứng yên trong không gian tốt,
và khả năng cất cánh và đáp theo phương thẳng đứng (Vertical Take Off and Landing)
1.2 Tình hình nghiên cứu về UAV
Dự án mã nguồn mở lớn hàng đầu về robot UAV hiện nay là: Ardupilot, PX4, inav, paparazzi,… được xây dựng bởi những chuyên gia hàng đầu trong lĩnh vực robot, linux, phần mềm, mô phỏng
Trang 186
Hı̀nh 1.2.1 Mạch điều khiển Pixhawk 4, đều có thể sử dụng firmware của
Ardupilot hoặc PX4 Điểm đặc biệt của các dự án mã nguồn mở đó là chúng ta có thể truy cập vào
mã nguồn của nó, từ đó có thể tham khảo và học hỏi những kiến thức để xây dựng lên hệ thống riêng của mình
Hiện nay, người ta tập trung vào xây dựng các ứng dụng của quadcopter vào thực tế giúp ích cho cuộc sống Ví dụ như các sinh viên, thầy cô trong trường Đại học Bách Khoa TP Hồ Chí Minh đã có một số thành công trong lĩnh vực chế tạo và ứng dụng các thiết bị bay Ví dụ như các giải thuật và hệ thống điều khiển cân bằng quadcopter/hexacopter, thiết kế cơ khí và công suất để cho nó có thể chịu tải trọng lớn và thời gian hoạt động tốt Một số ví dụ như:
Trang 197
Hı̀nh 1.2.2 Ứng dụng Drone để phục vụ cho nông nghiệp của khoa Kỹ thuật
hàng không Đại học bách khoa TP HCM
Hı̀nh 1.2.3 Drone quay phim và chụp hình DJI Phantom
Trang 208
Hı̀nh 1.2.4 Luận văn hệ thống định vị trong nhà với độ chính xác 2cm của sinh
viên Bách Khoa HCM 1.3 Mục tiêu và nội dung của luận văn
1.3.1 Lý do chọn đề tài
Đề tài nghiên cứu và chế tạo mô hình máy bay quadcopter là một đề tài đòi hỏi kiến thức tổng hợp của rất nhiều lĩnh vực như là: thiết kế cơ khí, động lực học, khí động học, mạch điều khiển và lập trình vi điều khiển, xử lý cảm biến và áp dụng các giải thuật điều khiển, giao tiếp máy tính và truyền nhận tín hiệu, xử lý nhiễu… Nên đây là một đề tài có nhiều thử thách
Khối lượng kiến thức khá nhiều do đó việc hiểu hoàn toàn hệ thống và điều khiển tất cả các thành phần là rất khó, nên trong luận văn này sẽ tận dụng một vài kết quả nghiên cứu để có thể định tính về vài yếu tố ảnh hưởng tới hệ thống, và cũng sử dụng một số giả thiết cho việc đơn giản hóa bài toán điều khiển
Bộ điều khiển vận tốc và vị trí bằng Optical Flow là một đề tài hiện nay ở Việt Nam chưa có nhiều người nghiên cứu, đa phần là chỉ sử dụng bộ điều khiển có sẵn tích hợp Optical Flow với phần mềm của các hãng Do vậy nội dung đề tài
có tính mới mẻ khi tích hợp giữa việc tự thiết kế bộ điều khiển trên STM32, và
Trang 21Điều khiển động học và động lực học quadcopter là bước đầu tiên để có thể phát triển một hệ thống ứng dụng vào các nhiệm vụ cụ thể mà có ý nghĩa thực tiễn tận dụng lợi thế của loại robot bay trên không, như đã giới thiệu một vài thành tựu ở (1.2)
1.3.2.2 Điều khiển quadcopter bằng Optical Flow
Hı̀nh 1.3.1 Hệ thống quadcopter có tích hợp GPS
Trang 2210
Hiện nay thiết bị định vị phổ biến nhất là GPS và hệ thống định vị trong nhà (INS), tuy nhiên hệ thống GPS và INS cho kết quả giá trị vị trí và vận tốc ở một khoảng sai số khá lớn (≥ 3𝑚) và ở các khu vực bị che chắn bởi cây cối, tòa nhà trong nhà, có thể một lúc chỉ nhận được 4,5 vệ tinh hoặc không nhận được thì giá trị hệ thống GPS không thể sử dụng
Khắc phục những hạn chế của hệ thống GPS và INS, Optical Flow được dùng để
đo chính xác vận tốc của quadcopter
Các hệ thống được đặt cố định để định vị quadcopter, như hệ thống POXYZ, hệ thống xác định vị trí bằng VICON cần phải được lắp đặt, cài đặt mới có thể sử dụng, và chỉ hoạt động trong môi trường không gian nhất định, đây chính là nhược điểm mà hệ thống giữ vị trí bằng Optical Flow sẽ khắc phục
1.3.3 Mục tiêu và nội dung
Áp dụng các giải thuật xử lý dữ liệu cảm biến, xây dựng phương trình động học
và động lực học cho quadcopter, từ đó thiết kế bộ điều khiển cho quadcopter trên nền vi điều khiển ARM trên board STM32F407VG Xây dựng hệ thống quadcopter hoàn chỉnh, giữa phần cứng, phần điện điện tử, giao tiếp cảm biến
và phần mềm, tiếp theo xây dựng các phương trình toán cho quadcopter, xử lý
dữ liệu cảm biến bằng các thuật toán phù hợp trên vi điều khiển, từ đó thiết kế các bộ điều khiển thích hợp cho hệ Bay quadcopter thực tế và thu thập dữ liệu, đánh giá chất lượng hệ thống từ đó áp dụng các kiến thức để hiệu chỉnh đạt được kết quả mong muốn
Mục tiêu kết quả: hiểu được bản chất chuyển động của quadcopter, điều khiển
hệ quadcopter cân bằng ổn định, giữ được độ cao và vị trí 2 phương ngang x,y
Trang 2311
Chương 2 Hệ thống cảm biến và phần cứng
Chương này sơ lược thành phần phần cứng và giới thiệu các cảm biến được sử dụng, sơ đồ kết nối và giao tiếp được sử dụng tương ứng Ngoài ra còn trình bày về đặc tính cần chú ý của cảm biến
2.1 Sơ đồ kết nối của hệ thống
Hı̀nh 2.1.1 Thành phần phần cứng đầy đủ của hệ thống
Trang 2412
Hı̀nh 2.1.2 Sơ đồ kết nối và giao tiếp các thành phần chính của quadcopter Dưới đây sẽ trình bày cụ thể về hệ thống phần cứng và cảm biến được mô tả bằng hai sơ đồ ở trên được dùng cho mô hình quadcopter trong luận văn 2.2 Phần cứng
Trang 2513
Hı̀nh 2.2.1 Pin Phantom LiPo Pin Phamtom là loại pin Lipo 4 cells, dung lượng 4480mAh, điện áp cung cấp từ [14.5𝑉 → 16.8𝑉]
Trang 2614
Hı̀nh 2.2.2 Đồ thị điện áp và thời gian thể hiện đặc tuyến xả của pin LiPo 6C
Ta thấy rằng khi chúng ta sử dụng năng lượng của pin Lipo thì điện áp của nó giảm dần theo đồ thị Hình 3.3 Khi sử dụng pin Lipo cần chú ý về cách sử dụng nếu không có thể gây ra hiện tượng pin phồng, chai pin, tuổi thọ pin giảm nhanh, cháy nổ
2.2.2 Động cơ BLDC
Hı̀nh 2.2.3 Động cơ BLDCĐộng cơ được sử dụng là phantom, thông số kỹ thuật
Trang 27+ Điện áp hoạt động: 14.8V ( pin Lipo 4 cells )
+ Thrust tối đa: 850 gram
2.2.3 Bộ điều khiển ESC
Hı̀nh 2.2.4 Bộ điều khiển ESC cho động cơ BLDC
Là mạch công suất điều khiển động cơ BLDC, nhờ có ESC mà ta có thể khiển động cơ BLDC như điều khiển động cơ servo chỉ với bằng xung PWM
2.2.4 Cánh quạt
Để tạo ra lực đẩy nhờ khí động lực học thì hình dạng cánh quạt và chiều quay phải phù hợp
Trang 2917
2.2.6 Đọc tín hiệu PPM
Tín hiệu của điều khiển TX, RX là xung có chu kỳ T=20ms, và Ton (đơn vị microseconds) trong mỗi chu kỳ là tín hiệu của kênh đó, PPM encoder là bộ chuyển đổi tín hiệu PWM của nhiều kênh được gộp lại và điều chế thành xung PPM
Hı̀nh 2.2.7 Bộ chuyển đổi cho RX DEVO7 PWM to PPM
Bộ chuyển đổi sang PPM sẽ giúp tiết kiệm chân GPIO cho vi điều khiển sử dụng vào các mục đích khác
Trang 3119
Hı̀nh 2.2.9 Khung quadcopter S500 Carbon Fiber Arms 2.3 Hệ thống cảm biến
2.3.1 Cảm biến vận tốc góc và gia tốc MPU6050
MPU6050 tích hợp hai cảm biến vận tốc góc (gyroscope) và gia tốc kế (accelerometer)
Trang 3220
Hı̀nh 2.3.1 Cảm biến MPU6050 Vấn đề thường gặp phải nhất của gyro là drift (độ trôi) tích lũy chậm theo thời gian Nguyên nhân bởi vì do các tác động cơ khí, rung động tác động lên gyro, sau một thời gian sử dụng thì giá trị trôi này tích lũy lên đáng kể, làm giá trị đo góc không còn chính xác
Dù vậy, điểm mạnh của gyro là ít bị nhiễu hơn gia tốc kế, nghĩa là giá trị tức thời của nó đáng tin cậy
Đặc tính cảm biến gia tốc kế
Gia tốc kế luôn có offset trên mỗi trục làm cho giá trị đo được thường lệch
đi so với thực tế một chút Ngoài ra, giá trị đo từ cảm biến thường nhạy với rung động cơ khí dù rất nhỏ khiến cho giá trị tức thời của nó không đáng tin cậy, do đó chúng ta chỉ sử dụng giá trị trung bình của acc thì nó mới có hữu hiệu, điểm mạnh của gia tốc kế là nếu để lâu dài thì không bị trôi như gyroscope, do vậy gia tốc kế có vai trò hiệu chỉnh lại độ trôi của gyro trong thuật toán fuse dữ liệu cho bộ ước lượng trạng thái
Trang 3321
2.3.2 Cảm biến từ trường HMC5883
Hı̀nh 2.3.2 Cảm biến từ trường HMC5883 + Độ phân giải 5 milli-gauss
+ Giao tiếp I2C
Cảm biến từ trường đo từ trường của Trái Đất từ đó xác định được hướng, từ trường của Trái Đất ở những vùng khác nhau có đặc tính khác nhau, do vậy khi mua các loại cảm biến từ trường ta cần phải calib chúng trước khi sử dụng Cảm biến từ trường khi được gắn ở gần các thiết bị điện tử rất dễ bị nhiễu, đặc biệt là gần các động cơ, bởi vì từ trường sinh ra bởi các động cơ thay đổi liên tục trong quá trình hoạt động, do vậy cảm biến từ trường cần được đặt xa các thiết bị điện càng tốt
2.3.3 Cảm biến độ cao dùng sóng siêu âm HC-SR04
+ Tầm hoạt động đo khoảng cách: 2cm – 400cm
+ Tần số cập nhật, cỡ 18Hz
Độ chính xác của cảm biến siêu âm cao nên ta chỉ cần dùng bộ lọc bù là có thể
sử dụng dữ liệu để sử dụng
Trang 3422
Hı̀nh 2.3.3 Giãn đồ đọc khoảng cách từ cảm biến sóng siêu âm HC-SR04 Tuy nhiên cảm biến HC-SR04, ultrasonic sensor có đặc tính là ảnh hưởng lớn bởi nhiễu cơ khí, nên giá trị chỉ đúng ở khoảng cách gần khi gắn lên khung quadcopter (từ 2cm – 100 cm)
2.3.4 Cảm biến Optical Flow PX4FLOW
2.3.4.1 Giới thiệu và thông số kỹ thuật của PX4FLOW
Sản phẩm nghiên cứu của ETH Zurich, ưu điểm của nó là có thể hoạt động trong môi trường ánh sáng thấp
PX4FLOW là một dự án mã nguồn mở, do đó ta có thể chỉnh sửa code ( thay đổi thuật toán, truy cập trực tiếp cảm biến ), build và nạp lại tuy theo nhu cầu của mình
Trang 35Hı̀nh 2.3.5 Damping foam cho px4flow Các dữ liệu trả về của px4flow khi đọc integral frame tại địa chỉ 0x16
Trang 3624
int16_t pixel_flow_x_integral accumulated flow in radians*10000
around x axis since last I2C readout [rad*10000]
int16_t pixel_flow_y_integral accumulated flow in radians*10000
around y axis since last I2C readout [rad*10000]
int16_t gyro_x_rate_integral accumulated gyro x rates in
radians*10000 since last I2C readout [rad*10000]
int16_t gyro_y_rate_integral accumulated gyro y rates in
radians*10000 since last I2C readout [rad*10000]
int16_t gyro_z_rate_integral accumulated gyro z rates in
radians*10000 since last I2C readout [rad*10000]
uint32_t integration_timespan accumulation timespan in
microseconds since last I2C readout [microseconds]
uint32_t sonar_timestamp time since last sonar update
[microseconds]
int16_t ground_distance Ground distance in meters*1000
[meters*1000]
values [0:bad quality;255: max
Trang 37Khi ta nghiêng quadcopter, đồng thời nghiêng luôn PX4FLOW smart camera nhưng vẫn giữ nguyên vị trí của nó, thì qua công thức thì vận tốc của nó trong
hệ tọa độ body phải bằng 0
Hı̀nh 2.3.6 Đồ thị kết quả calib px4flow trên trục y Kết quả calib thành công khi flow và gyro rate có cùng giá trị
2.3.4.3 Giải thuật xử lý giữ liệu của px4flow
Tính flow thực tế bằng các bù gyro
Trang 3826
Hı̀nh 2.3.7 Hình mình hoạ sự thay đổi góc roll, pitch ảnh hưởng lên flow nhận
được flow_x, flow_y được tính nhờ so sánh sự các biệt giữa các frame ảnh liên tiếp nhau với tốc độ cực cao bằng thuật toán SAD, khi hoạt động, px4flow được gắn trên quadrotor có thể bị rung lắc, làm kết quả hình ảnh so sánh khác so với khi px4flow cố định, px4flow được tích hợp sẵn cảm biến gyroscope để phát hiện chuyển động 3 trục, và bù lại sự nhiễu động này
𝑝𝑖𝑥𝑒𝑙 = 𝑓𝑙𝑜𝑤 − 𝑔𝑦𝑟𝑜 𝑝𝑖𝑥𝑒𝑙 là số điểm ảnh thực tế di chuyển sau khi bù ảnh hưởng của gyroscope
Bù độ cao
Trang 3927
Hı̀nh 2.3.8 Sự ảnh hưởng của độ cao tới độ dịch chuyển thực tế
Hình bên trái, khi ở khoảng cách gần (1 mét so với mặt đất), cùng một lượng dịch chuyển là 10cm, nhưng nó sẽ nhận được lượng flow nhiều hơn so với khi ở
xa (2 mét so với mặt đất)
Khi camera px4flow dịch chuyển được 1 lượng pixcel nhất định, thì nếu càng ở
xa mặt phẳng đang nhìn, cùng với lượng khác biệt thì độ dịch chuyển thực tế càng lớn, do đó ta bù thêm độ cao
Mạch PCB được thiết kế nhằm cho các kết nối phần cứng chắc chắn và các kết nối được đảm bảo một cách tốt nhất khi quadcopter hoạt động Và đồng thời có thể thay thế bo mạch điều khiển và phần cứng khi hư hỏng dễ dàng
Trang 4028
2.4.1 Sơ đồ mạch Schematics
Dựa trên kết nối đã được trình bày ở mục 3.1
Hı̀nh 2.4.1 Mạch Schematics