Các thành phần phần cứng

Một phần của tài liệu Điều hướng xe tự hành dùng trí tuệ nhân tạo (Trang 41)

3.1.1. Xe điều khiển Trophy Truck

Trophy Truck là một chiếc xe điều khiển từ xa với tốc độ cao như trong Hình 3.2. Chiếc xe này hoạt động trên tín hiệu tần số vô tuyến 2,4 GHz cung cấp phạm vi hoạt động lên đến 150 mét. Nó có đầy đủ chức năng với tay lái và có thể điều khiển tiến hoặc lùi. Chi tiết được đưa ra trong Hình 3.3.

Hình 3.1: Sơ đồ khối của mô hình xe tự hành

Hình 3.3: Chi tiết bên trong xe điều khiển

3.1.2. Động cơ Brushed Motor RC-540PH

 Type: Micro Motor  Voltage (V): 7.2V

 Torque: 228g.cm  Motor size: 35.8*50mm

 Construction: Permanent Magnet  No load speed: 20000rpm

 Commutation: Brush  No load current: 1.2A

 Protect Feature: Totally Enclosed  Stall torque: 1698g.cm

 Speed (RPM): 17317rpm  Brush: Carbon brush

 Continuous Current (A): 7.7A  Shaft diameter: 3mm

 Output Power: 40.5W

3.1.3. Động cơ RC Servo TowerPro MG946R

Đề tài sẽ chọn động cơ RC Servo TowerPro MG946R để điều khiển góc lái cho xe tự hành

RC Servo TowerPro MG946R như hình 3.5:

Hình 3.5: RC Servo TowerPro MG946R.

Bảng 3.1: Thông số hoạt động của RC Servo TowerPro MG946R.

Weight (Trọng lượng) 55gram

Dimension (Kích thước) 40.7*19.7*42.9 mm

Stall torque 10.5kg/cm(4.8V) – 13kg/cm(6V)

Operating speed (Tốc độ hoạt động) 0.20sec/60degree(4.8V) – 0.17s/60d(6V) Operating voltage (Điện áp hoạt động) 4.8V – 7.2V

Temperature range (Khoảng nhiệt độ) 0oC – 55oC

3.1.4. Waterproof Brushed ESC Controller WP-1040

ESC là mạch điện tử điều khiển và điều chỉnh vận tốc của động cơ điện. Nó cũng có thể điều khiển đảo chiều động cơ và phanh động.

Điều khiển tốc độ điện tử tuân theo tín hiệu tham chiếu tốc độ (bắt nguồn từ ga, cần điều khiển hoặc đầu vào thủ công khác) và thay đổi tốc độ chuyển đổi của mạng lưới transistor hiệu ứng trường (FET). Bằng cách điều chỉnh chu kỳ nhiệm vụ hoặc thay đổi tần số, tốc độ của động cơ sẽ được thay đổi. Hình 3.6 cho thấy ESC WP-1040, chống thấm nước và chống bụi, thích hợp cho mọi điều kiện thời tiết.

Hình 3.6: Waterproof Brushed ESC Controller WP-1040

3.1.5. Raspberry Pi 3 Model B

Raspberry Pi là một máy vi tính rất nhỏ gọn, kích thước hai cạnh chỉ cỡ một cái thẻ ATM. Người ta đã tích hợp mọi thứ cần thiết trong đó để bạn sử dụng như một cái máy vi tính. Trên bo mạch của Pi có CPU, GPU, RAM, khe cắm thẻ microSD, Wi-Fi, Bluetooth và 4 cổng USB 2.0. Khi mua Pi về chỉ việc cài hệ điều hành (thực ra là copy/paste cái thư mục vô thẻ nhớ), gắn chuột, bàn phím và màn hình là bắt đầu sử dụng được rồi (hoặc cao cấp hơn xíu là remote desktop từ một máy khác qua, hoặc SSH)

Lý do chọn sử dụng Raspberry Pi là vì nó có thiết kế nhỏ gọn, dễ dàng lắp đặt lên mô hình xe điều khiển. Ngoài ra nó còn hỗ trợ giao tiếp với các thiết bị ngoại vi (camera, usb) và các giao thức truyền nhận như: Bluetooth, I2C, SPI…, điều này giúp việc lập trình các hệ thống nhúng trở nên dễ dàng hơn.

3.1.6. Raspberry Pi Power Pack

Hình 3.8: Raspberry Pi Power Pack

Raspberry Pi Power Pack như trong hình 3.8 có được thiết kế nhỏ gọn nhưng hiệu năng cao với công suất lên đến 9 giờ liên tục. Raspberry Pi Power Pack sử dụng pin Lithium có thể sạc lại với dung lượng 3800mAh, cung cấp công suất 5.1V - 1.8A và chỉ nặng 80g. Vì nó có hai cổng USB, nó có thể cấp nguồn cho hai Raspberry Pi hoặc các phụ kiện khác, chẳng hạn như màn hình có thể tháo rời.

3.1.7. Raspberry Pi Camera Module

Trước khi xuất hiện camera, điều duy nhất có thể làm để thêm khả năng nhận biết hình ảnh, quay phim, chụp hình cho RPi là sử dụng một webcam cắm vào cổng USB. Với các webcam Logitech tích hợp sẵn định dạng mjpeg sẽ giúp RPi xử lý nhanh hơn. Nhưng các webcam Logitech lại có giá thành khá cao, nhất là webcam có độ phân giải lớn. Raspberry Pi Camera được tích hợp camera 5 megapixel có độ nhạy sáng cao, có thể chụp tốt ở nhiều điều kiện ánh sáng khác nhau, cả trong nhà và ngoài trời. Điểm đặc biệt mà camera mang lại đó là chụp hình độ nét cao trong lúc quay phim.

Khi sử dụng Raspberry Pi Camera chúng ta sẽ không tốn thêm cổng USB nào cho camera vì camera được gắn chắc chắn vào socket CSI. Điều này giúp hạn chế tình trạng nghẽn băng thông cho chip xử lý USB trên mạch Raspberry. Chiều dài cáp

Hình 3.9: Raspberry Pi Camera

nối camera đã được tính toán cẩn thận khi vừa đạt được độ dài cần thiết trong khi vẫn đảm bảo tốc độ truyền hình ảnh từ module về RPi (Hình 3.9)

3.1.8. Arduino Uno R3

Arduino Uno được điều khiển bởi vi điều khiển Atmega328. Nó có 14 đầu vào/ra (trong đó có 6 chân có thể sử dụng như đầu ra PWM), 6 ngõ ra Analog, một cổng USB, một jack nguồn, ICSP, một nút nhấn Reset. Board chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển, kết nối board với máy tính bằng cáp USB hoặc sử dụng nó với một bộ chuyển đổi AC sang DC hay pin để bắt đầu.

Bảng 3.2: Thông số của board Arduino Uno

Microcontroller ATmega328

Operating Voltage 5V

Input Voltage (recommended) 7V - 12V

Input Voltage (limits) 6V - 20V

Digital I/O Pins 14 (of which 6 provide PWM output)

Analog Input Pins 6

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB(ATmega328)

SRAM 2 KB (ATmega328)

EFPROM 1 KB (ATmega328)

Clock Speed 16 MHz

3.1.9. PWM/Servo Driver PCA9685

Mạch điều khiển 16 Chanel PWM PCA9685 được sử dụng để có thể xuất ra đồng thời 16 xung PWM từ 16 cổng khác nhau thông qua giao tiếp I2C sử dụng IC PCA9685, giúp bạn có thể điều khiển đồng thời 16 RC Servo hoặc Dimmer 16 thiết bị đồng thời, ...

Mạch điều khiển 16 Chanel PWM PCA9685 có cấu trúc phần cứng phần cứng đơn giản cũng như bộ thư viện có sẵn trên Arduino nên rất dễ dàng sử dụng và kết nối.

Thông số kỹ thuật:

 Mạch điều khiển 16 Chanel PWM PCA9685  IC chính: PCA9685

 Điện áp sử dụng: 2.3 ~ 5.5VDC.

 Số kênh PWM: 16 kênh, tần số: 40~1000Hz  Độ phân giải PWM: 12 bit.

 Giao tiếp: I2C (chấp nhận mức Logic TTL 3 ~ 5VDC)  Kích thước: 62.5mm x 25.4mm x 3mm

3.1.10. Encoder Omron E6B2-CWZ6C 10P/R

Hình 3.12: Encoder Omron E6B2-CWZ6C 10P/R 3.1.11. Pin Lipo 2S-30C 3600mAh

3.2. Sơ đồ kết nối phần cứng

Hình 3.14: Sơ đồ kết nối phần cứng

Trong hình 3.14, Pi Camera kết nối với Raspberry sử dụng giao thức điện CSI-2. PCA 9685 kết nối với Raspberry Pi qua hai chân I2C (SDA và SCL), 3.3V và đất. Động cơ được kết nối với Channel 0 và Servo với Channel 1. Arduino board được sử dụng để đọc các giá trị ga mong muốn từ PWM module PCA 9685, tốc độ thực tế đọc từ encoder sau đó duy trì vận tốc của xe với thuật toán điều khiển PID.

3.3. Cấu trúc phần cứng của mô hình xe tự hành

Sau khi thiết kế sơ đồ phần cứng và sơ đồ kết nối dây, xe tự hành được xây dựng bằng cách sửa đổi khung gầm RC Car với thành phần phần cứng ở được đề cập

ở phần 3.2.

Bên ngoài xe được thể hiện trong hình 3.15 và hình 3.16. Hình 3.17 minh họa thành phần bên trong xe.

Hình 3.15: Phía trên của mô hình xe tự hành

a)

b) c)

d)

Hình 3.17: Bên trong xe tự hành. (a) bên trong xe nhìn từ phía trên. (b) bánh răng

Chương 4: GIẢI THUẬT ĐIỀU KHIỂN CỦA MÔ HÌNH XE TỰ HÀNH

Chương này cung cấp sơ đồ thu thập dữ liệu đào tạo, sơ đồ điều hướng xe bằng mô hình được đào tạo, kiến trúc mạng nơron mô hình xe tự hành, phần mềm được sử dụng để thiết kế cấu trúc mạng.

4.1. Sơ đồ khối thu thập dữ liệu huấn luyện

Trong Hình 4.1, khi khởi động xe. Bước đầu tiên là kiểm tra kênh ga, nếu chúng ta điều chỉnh thanh ga thì chiếc xe sẽ chạy ở tốc độ đã nhận được từ cần điều khiển. Bước 2, kiểm tra các góc lái, nếu bạn điều chỉnh thanh góc lái, chiếc xe sẽ điều hướng với góc lái đã nhận được từ tay cầm điều khiển, nếu không chiếc xe sẽ chạy về phía trước. Tiếp theo, trong khi chiếc xe đang chạy, chúng tôi chụp ảnh đường với máy ảnh và lưu tên của hình ảnh, giá trị góc và ga tại điểm đó vào tập dữ liệu. Cuối cùng, nếu bạn muốn dừng xe, nhấn nút tắt.

4.2. Sơ đồ khối điều hướng mô hình xe tự hành

Để bắt đầu quá trình này, bạn nhấn nút khởi động, xe chạy và chụp ảnh rồi đưa nó đến mô hình CNN để dự đoán tốc độ và góc cho xe. Sau đó, chiếc xe sẽ chạy và điều hướng bằng chính nó với góc lái và ga được nhận từ mô hình CNN. Cuối cùng, để dừng xe, nhấn nút dừng như trong Hình 4.2.

4.3. Cấu trúc mạng và tối ưu các thông số

Một mạng nơ-ron tích chập được sử dụng để huấn luyện dữ liệu. Kiến trúc mạng bao gồm 9 lớp, bao gồm 1 lớp chuẩn hóa, 3 lớp chập, 3 lớp gộp tối đa và 2 lớp được kết nối hoàn toàn. Kiến trúc mạng của nghiên cứu này được tác giả mô tả trong Hình 4.3.

Lớp đầu tiên thực hiện chuẩn hóa tất cả các ảnh có giá trị pixel từ -1 đến 1. Các lớp pooling được thiết kế bằng thực nghiệm, tác giả sử dụng kernel có kích thước 5x5 với không bước trượt cho lớp đầu tiên, những kernel có kích thức là 3x3 và cũng không có bước trượt. Độ sâu tương ứng của mỗi lớp là 16, 32 và 64.

Các lớp max-pooling được xen kẽ với các lớp tích chập. Lớp max-pooling là một trong những công cụ mạnh mẽ thường được CNN sử dụng. Đây là một phương pháp thay đổi kích thước hình ảnh lớn nhưng giữ lại thông tin quan trọng nhất về chúng. Nó liên quan đến việc trượt một khung cửa sổ nhỏ dọc theo một hình ảnh và nhận được giá trị tối đa từ cửa sổ ở mỗi bước. Sau khi gộp, một hình ảnh sẽ có khoảng một phần tư pixel so với đầu. Điều này làm giảm số lượng hyperparameters cần phải tính toán, từ đó giảm thời gian tính toán và tránh việc overfitting. Tất cả các lớp max-pooling được chọn với kernel là 2x2 và không bước trượt.

Các lớp được kết nối hoàn toàn được thiết kế với việc giảm dần kích thước: 19456 và 500. Lớp đầu ra chắc chắn là 1 nơtron vì mô hình của chúng tôi dự đoán một giá trị như một lệnh điều khiển đầu ra cho góc lái.

Bên cạnh đó, chúng tôi cũng sử dụng kích hoạt lớp là ELUs (đơn vị tuyến tính theo cấp số nhân) theo từng lớp co giãn để cải thiện sự hội tụ. Các ELU chức năng cố gắng kích hoạt trung bình gần bằng không để tăng tốc độ học tập. Nó đã được chỉ ra rằng ELUs có thể có được độ chính xác phân loại cao hơn so với ReLUs [10]. Đầu ra của một lớp ReLU có cùng kích thước với đầu vào, sự khác biệt là tất cả các giá trị âm của hình ảnh sẽ bị xóa ngay sau đó.

x; x 0

f ( x) (4)

a(ex 1); x 0 Với a là siêu tham số và một điều kiện là a 0

Đối với đề tài này, chúng tôi đã sử dụng hàm MSE (Mean-Square-Loss) Chức năng này thông thường sử dụng cho các bài toán hồi quy mà chỉ đơn giản là giá trị trung bình của tổng bình phương khác biệt giữa kết quả thực tế và dự đoán.

1  2

MSE yiyi (5)

n  

Để tối ưu hóa sự mất mát này, thuật toán tối ưu hóa Adam đã được sử dụng. Thuật toán tối ưu hóa này thường được chọn cho ứng dụng học tập sâu. Tác giả sử dụng các tham số mặc định của Adam cung cấp trong Keras (learning rate of 0.001,1 0.9 ,2 0.999 , 1e 8 and decay = 0) [11].

Mạng nơron giải mã chứa nhiều lớp ẩn phi tuyến tính, điều này làm cho chúng trở thành các mô hình phức tạp và dẫn đến các mối quan hệ phức tạp giữa đầu vào và đầu ra của chúng. Để làm cho kiến trúc mạnh mẽ hơn và để ngăn chặn vấn đề overfitting, các lớp dropout được thêm vào mạng được thực hiện. Việc bỏ học sẽ vô hiệu hóa các tế bào thần kinh trong mạng bằng một xác suất nhất định và ngăn cản sự đồng thích hợp của các đối tượng. Đối với nghiên cứu này, tác giả áp dụng tỷ lệ dropout là 20% [12] (Hình 4.4).

a) b)

Hình 4.4: Lớp dropout. a) mạng nơ-ron tiêu chuẩn, b) mạng nơ-ron sau khi áp dụng dropout

4.4. Phần mềm và các thư viện sử dụng để lập trình 4.4.1. Giới thiệu thư viện Tensorflow

 TensorFlow là một thư viện phần mềm mã nguồn mở dành cho máy học trong nhiều loại hình tác vụ nhận thức và hiểu ngôn ngữ.

 Chạy trên desktop Linux hoặc Mac OS X 64-bit hoặc các hệ thống máy chủ, cũng như trên các nền tảng điện toán di động, bao gồm Android và iOS của Apple.

 TensorFlow có thể chạy trên nhiều CPU và GPU.

 TensorFlow cung cấp một API Python, cũng như một ít tài liệu API C/C++.

4.4.2. Giới thiệu thư viện Keras

 Keras là một framework machine learning được viết bằng Python nhằm giảm thiểu thời gian giữa việc lên các ý tưởng và giai đoạn thực hiện chúng. Nó bao gồm hai API high-level: Keras Sequential và Keras Functional.

 Nó có thể sử dụng chung với các thư viện Deep Learning nổi tiếng như Tensorflow.

 Dễ sử dụng, xây dựng model nhanh.  Keras có thể run trên cả CPUvà GPU.

Chương 5: THỰC NGHIỆM

Trong chương này, dữ liệu thu thập được sử dụng để huấn luyện kiến trúc mạng trong chương 4 và kết quả thực nghiệm sẽ được trình bày. Điều này bao gồm (1) môi trường thực nghiệm để thu thập dữ liệu, (2) mô tả tập dữ liệu, (3) phương pháp để tạo ra các nhiều dữ liệu khác nhau, (4) kết quả của quá trình huấn luyện và thử nghiệm.

5.1. Môi trường thực nghiệm

b)

a) c)

Hình 5.1: Quỹ đạo thực nghiệm 1: (a) Quỹ đạo hình bầu dục.(b) góc rẽ của đường đi .(c) mô hình xe đang di chuyển theo quỹ đạo

b)

a) c)

Hình 5.2:Quỹ đạo thực nghiệm 2: (a) quỹ đạo hình số 8. (b) và (c) biển báo hiệu chỉ đường

Để thu thập dữ liệu đào tạo, chúng tôi điều khiển mô hình xe tự hành theo quỹ đạo ngoài trời được tạo trên mặt phẳng rải nhựa để thu thập hình ảnh có đánh dấu thời gian.

Đường viền hình bầu dục là một đường dài 50 mét và rộng 70 cm với đường viền trong dải băng rộng 10 cm như trong Hình 5.1. Chiếc xe có thể được điều khiển để rẽ trái hoặc rẽ phải trong các đường cong bán kính 3 mét tại một thời điểm. Đường viền hình số 8 bao gồm hai vòng tròn tạo hình thành một giao lộ ngang tiếp tuyến được thể hiện trong Hình 5.2. Quỹ đạo dài 40 mét này có cả đường cong bên phải và bên trái. Bán kính đường cong là 3 mét. Có bốn biển báo giao thông có đường kính 15 cm được dựng lên trên các mép ngoài của đường để hướng dẫn cho xe.

5.2. Mô tả tập dữ liệu

Chuẩn bị dữ liệu là vấn đề rất cần thiết khi làm việc với các mạng học tập sâu. Raspberry Pi ghi lại hình ảnh và thông tin lái xe từ người dùng bằng tay lái xe xung quanh đường đua với tốc độ 5-6km / h. Dữ liệu được thu thập chứa hơn 15.500 hình ảnh ghép lại với góc lái. Độ phân giải ban đầu của hình ảnh là 160x120. Pi Camera được cấu hình để chụp ở tốc độ 10 khung hình / giây với thời gian phơi sáng 5000us để tránh hiện tượng mờ do rung động khi xe lái trên đường. Các hình ảnh mẫu của tập dữ liệu này được thể hiện trong Hình 5.3.

Hình 5.3: Tập dữ liệu thu thập được: (a) là các mẫu từ tập dữ liệu lái xe. (b), (c) và (d) là những hình ảnh điển hình trong tập dữ liệu

5.3. Các phương pháp để tạo ra các nhiều dữ liệu khác nhau

Một phần của tài liệu Điều hướng xe tự hành dùng trí tuệ nhân tạo (Trang 41)

Tải bản đầy đủ (DOC)

(69 trang)
w