1. Trang chủ
  2. » Luận Văn - Báo Cáo

Điều khiển robot tự hành bằng số ngón tay

20 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 1,87 MB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CƠ KHÍ BÀI TẬP LỚN ĐIỀU KHIỂN ROBOT TỰ HÀNH ĐỀ TÀI Điều khiển chuyển động và góc quay của xe tự hành theo số ngón tay Giảng viên TS Bùi Đình Bá Sinh viên thực hiện.

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CƠ KHÍ BÀI TẬP LỚN ĐIỀU KHIỂN ROBOT TỰ HÀNH ĐỀ TÀI: Điều khiển chuyển động góc quay xe tự hành theo số ngón tay Giảng viên: TS.Bùi Đình Bá Sinh viên thực MSSV Lớp Bùi Thế Sáng 20170883 CK.CĐT 05 – K62 Hoàng Nghĩa Lê Quân 20170866 CK.CĐT 05 – K62 SOEURN RAVY 20170278 CK.CĐT 01 – K62 Hà Nội 8/2021 MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu đề tài - Robot tự hành ( mobile robot ) hướng phát triển lĩnh vực robotic mà trọng tâm nghiên cứu chuyển động robot không gian định Robot tự hành thực lĩnh vực riêng biệt kể từ cuối năm 1960 dự án Shakey SRI Báo cáo N.J.Nilsson "A Mobile Automation: An Application of Artificial Intelligence Techniques" IJCAI 1969 đưa yếu tố "nhận thức", "lập đồ", "lập kế hoạch đường đi" khái niệm kiến trúc điều khiển Thập niên 1980 bùng nổ với dự án mobile robot cho thấy việc cần thiết để xét đến thuộc tính mơi trường thực tế, vấn đề bắt gặp dự án thiếu thực tế, thường cho robot sản phẩm trí tuệ nhân tạo - Trong vài năm trở lại robot tự hành phát triển vô nhanh chóng Hàng loạt nhà sản xuất oto cơng ty cơng nghệ lớn nghiên cứu tính tự hành như: Tesla, Uber, Toyota, Waymo, Apple Ford, Daimler, PWM, Honda, Google… Có thể thấy lợi ích mà xe tự hành mang lại tương lai ngành ô tô - Ngày với phát triển máy tính vi xử lý loại cảm biến giúp cho robot tự hành phát triển khơng ngừng Các tính robot tự hành đa dạng : robot di chuyển mơi trường độc hại, địa hình phức tạp, vẽ lại đồ môi trường truyền điều khiển trung tâm Robot điều khiển vi xử lý máy tính nhúng; hệ thống robot kiểm sốt máy tính trung tâm qua mạng khơng dây Việc tương tác với mơi trường bên ngồi thực nhờ vào cảm biến siêu âm, hồng ngoại camera Việc định hướng robot không gian thực GPS la bàn số - Trong đề tài nhóm thực điều khiển robot thơng qua việc nhận diện hình ảnh camera gửi tín hiệu điều khiển hình ảnh đến robot từ máy tính thơng qua mạng khơng dây 1.2 Công cụ thiết kế 1.2.1 Module ESP32 Module ESP32-WROOM-32 Sơ đồ ngoại vi module ESP32-WROOM-32 - ESP32-WROOM-32 module với nhiều tính cải tiến module dịng ESP8266 hỗ trợ thêm tính Bluetooth Bluetooth Low Energy (BLE) bên cạnh tính WiFi Sản phẩm sử dụng chip ESP32-D0WDQ6 với CPU điều khiển độc lập với tần số xung clock lên đến 240 MHz - Module hỗ trợ chuẩn giao tiếp SPI, UART, I2C I2S có khả kết nối với nhiều ngoại vi cảm biến, khuếch đại, thẻ nhớ (SD card),… Thơng số kĩ thuật • • • • • • • • Kích thước: 18 mm x 20 mm x mm CPU: Xtensa Dual-Core 32-bit LX6 với tần số hoạt động lên đến 240 MHz Bộ nhớ trong:  448 KBytes ROM cho booting tính lõi chip  520 KBytes SRAM chip dùng cho liệu lệnh instruction  KBytes SRAM RTC (gọi RTC SLOW Memory) để truy xuất co-processor  KBytes SRAM RTC (gọi RTC FAST Memory) dùng cho lữu liệu, truy xuất CPU RTC boot từ chế độ Deep-sleep  Kbit EFUSE, với 256 bit cho hệ thống (địa MAC cấu hình chip), 768 lại cho ứng dụng người dùng, gồm mã hóa nhớ Flash định ID cho chip Kết nối WiFi:  Wi-Fi: 802.11 b/g/n/e/i  Bluetooth: BR/EDR phiên v4.2 BLE Ethernet MAC hỗ trợ chuẩn: DMA IEEE 1588 Bus hỗ trợ mang CAN 2.0 Giao tiếp ngoại vi:  Bộ chuyển đổi ADC 12 bit, 16 kênh  Bộ chuyển đổi 8-bits DAC: kênh  10 chân để giao tiếp với cảm biến chạm (touch sensor)  IR (TX/RX)  Ngõ PWM cho điều khiển Motor  LED PWM: 16 kênh  Cảm biến Hall  Cảm biến nhiệt độ  X SPI  X I²S  X I²C  X UART Nhiệt độ hoat động ổn định: -40C đến 85C • • Điện áp hoạt động: 2.2-3.6V Dịng tiêu thụ ổn định: 80mA Ứng dụng • • • Module dùng nhiều ứng dụng thu thập liệu điều khiển thiết bị qua WiFi, Bluetooth Sử dụng cho ứng dụng tiết kiệm lượng, điều khiển mạng lưới cảm biến, mã hóa xử lí tiếng nói, xử lí Analog-Digital ứng dụng phát nhạc, vói file MP3… Module dùng cho thiết bị điện tử đeo tay đồng hồ thông minh… 1.2.2 Động servo sg90s - Được điều khiển cách điều chế độ rộng xung: Động điều khiển tín hiệu PWM với chu kì 20ms (50Hz) Độ rộng xung thay đổi từ ms đến ms để có điều khiển góc quay động – biến đổi từ đến 180 độ • • • - Có chân kết nối: Đỏ: Nguồn 5V Nâu: GND Cam: Điều khiển PWM CHƯƠNG 2: THIẾT KẾ ROBOT VÀ THUẬT TỐN NHẬN DIỆN SỐ NGĨN TAY ĐIỀU KHIỂN ROBOT 2.1 Thiết kế mơ hình Robot Sơ đồ nối dây mơ hình Robot - Tuy nhiên, thiếu động L298N nên nhóm sử dụng động servo để điều khiển: 0: servo quay độ • 1: servo quay 90 độ • 2: servo quay 180 độ • 4: servo quay 180 độ • 5: servo quay độ • 3: servo quay 90 độ 2.2 Xây dựng thuật toán nhận diện số ngón tay • - Các bước đếm ngón tay • Bước 1: Nhận diện bàn tay:  Sử dụng camera quay lại bàn tay trắng để loại bỏ nhiễu khơng mong muốn   • Sử dụng thư viện opencv để nhận diện bàn tay Cách nhận dạng: nhận dạng màu da người: Các hàm sử dụng: o cvtColor: chuyển ảnh từ định dạng RGB sang định dạng HSV o Sử dụng hàm inRange để giới hạn ngưỡng ảnh HSV tìm ảnh nhị phân cho bàn tay Bước 2: Đếm số ngón tay:  Tìm biên ngồi hình dạng tay Sử dụng findContour() để tìm biên dạng ngồi bàn tay Sau sử dụng lệnh ApproPoly để xấp xỉ hình dạng bàn tay   Ý tưởng xác định số ngón tay: Các ngón tay phần lồi lên bàn tay Và ngón có khoảng trống Từ điểm lồi khoảng trống, ta xác định số ng convexHull(): Tìm điểm lồi lên bàn tay  convexityDefect(): Tìm phần khuyết biên dạng so sánh với điểm lồi tìm lệnh convexHull Một khu vực khuyết ngón tay biểu thị ba điểm: điểm xanh lá, điểm xanh dương, điểm màu đỏ Bước : truyền liệu đến ESP 32  Nếu số ngón tay đếm khơng đổi sau xử lý 30 khung hình video gửi liệu đến esp32  Gửi liệu qua cổng serial port máy tính: o CreatfileA(): Hàm tạo cổng kết nối đến cổng COM( cổng kết nối với esp32) o WriteFile(): Gửi liệu đến cổng COM kết nối với ESP32 o Chuẩn kết nối: Serial port profile  Baudrate:115200  Bytesize:  Stopbit:  Dữ liệu gửi dạng chuỗi kí tự string o Esp32 nhận liệu từ máy tính  Sử dụng thư viện BluetoothSeria.h Arduino Ide để lập trình o Sử dụng thư viện Esp32servo.h để điều khiển servo  Điều khiển động servo chân D5  • CHƯƠNG 3: CHƯƠNG TRÌNH LẬP TRÌNH CHO ROBOT 3.1 Chương trình xử lý ảnh #include #include 10 #include #include #include #include #include using namespace std; using namespace cv; void PrintCommState(DCB dcb) { // In giá trị cấu trúc DCB wprintf( TEXT("\nBaudRate = %d, \nByteSize = %d, \nParity = %d, \nStopBits = %d\n"), dcb.BaudRate, dcb.ByteSize, dcb.Parity, dcb.StopBits); } // Hàm tính cosin góc từ ba điểm double cosine1(Point p1,Point p2, Point pmid) { double dx1 = p1.x - pmid.x; double dy1 = p1.y - pmid.y; double dx2 = p2.x - pmid.x; double dy2 = p2.y - pmid.y; return (dx1 * dx2 + dy1 * dy2) / (sqrt(dx1 * dx1 + dy1 * dy1) + sqrt(dx2 * dx2 + dy2 * dy2)); } int main() { /// /// Tạo cổng serial /// /// HANDLE hSerial = nullptr; 11 { cout > COM; if (COM == "n") break; string pc = "\\\\.\\COM6"; hSerial = CreateFileA(COM.c_str(), GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (hSerial == INVALID_HANDLE_VALUE) { if (GetLastError() == ERROR_FILE_NOT_FOUND) { //Báo lỗi mã lỗi int d = (int)GetLastError(); cout

Ngày đăng: 26/10/2022, 10:36

w