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

Luận văn Tiến sĩ Kỹ thuật Điện: Điều khiển mặt động thích nghi bám quỹ đạo cho robot tự hành bốn bánh đa hướng

127 11 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

Mục đích nghiên cứu của Luận án nhằm xây dựng mô hình vật lý cho FWOMR, chế tạo bộ điều khiển trên cơ sở vi điều khiển và kỹ thuật lập trình nhúng cho FWOMR nhằm chạy thử nghiệm các thuật toán mới đề xuất. Mời các bạn cùng tham khảo!

BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ …… ….***………… HÀ THỊ KIM DUYÊN ĐIỀU KHIỂN MẶT ĐỘNG THÍCH NGHI BÁM QUỸ ĐẠO CHO ROBOT TỰ HÀNH BỐN BÁNH ĐA HƯỚNG LUẬN ÁN TIẾN SĨ KỸ THUẬT ĐIỆN, ĐIỆN TỬ VÀ VIỄN THÔNG Hà Nội - 2020 i VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ …… ….***………… HÀ THỊ KIM DUYÊN ĐIỀU KHIỂN MẶT ĐỘNG THÍCH NGHI BÁM QUỸ ĐẠO CHO ROBOT TỰ HÀNH BỐN BÁNH ĐA HƯỚNG Chuyên ngành : Kỹ thuật điều khiển tự động hóa Mã số: 52 02 16 LUẬN ÁN TIẾN SĨ KỸ THUẬT ĐIỆN, ĐIỆN TỬ VÀ VIỄN THÔNG Người hướng dẫn khoa học: GS.TS Phan Xuân Minh TS Phạm Văn Bạch Ngọc Hà Nội – 2020 ii LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi, hoàn thành hướng dẫn GS.TS Phan Xuân Minh TS Phạm văn Bạch Ngọc Các kết nêu luận án trung thực chưa cơng bố cơng trình khác Tôi xin chịu trách nhiệm lời cam đoan Hà nội, tháng 10 năm 2020 Tác giả Hà Thị Kim Duyên iii LỜI CẢM ƠN Luận án hồn thành với nỗ lực khơng ngừng tác giả giúp đỡ từ thầy giáo hướng dẫn, bạn bè người thân Đầu tiên, tác giả xin bày tỏ lời tri ân tới GS.TS Phan Xuân Minh TS Phạm Văn Bạch Ngọc, giáo, thầy giáo tận tình hướng dẫn tác giả hoàn thành luận án Tác giả xin gửi lời cảm ơn tới thầy, cô giáo cán Viện Công nghệ thông tin, Học viện Khoa học Công nghệ (Viện Hàn lâm Khoa học Cơng nghệ Việt Nam) nhiệt tình giúp đỡ tạo môi trường nghiên cứu tốt để tác giả hồn thành cơng trình mình; cảm ơn thầy, cô đồng nghiệp nơi mà tác giả tham gia viết có góp ý xác để tác giả có công bố ngày hôm Tác giả xin cảm ơn tới Ban Giám hiệu trường Đại học Công nghiệp Hà Nội, đồng nghiệp khoa Điện tử nơi tác giả công tác ủng hộ để luận án hoàn thành thời hạn Cuối cùng, tác giả xin gửi tới gia đình, bạn bè, người thân lời cảm ơn chân thành đồng hành tác giả suốt thời gian qua Hà Nội, tháng 10 năm 2020 Nghiên cứu sinh Hà Thị Kim Duyên iv MỤC LỤC Trang phụ bìa……… ………………………………………………… ……… i LỜI CAM ĐOAN .ii LỜI CẢM ƠN iii MỤC LỤC iv DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT vii BẢNG CÁC KÝ HIỆU CÁC THAM SỐ viii DANH MỤC CÁC BẢNG ix DANH MỤC HÌNH VẼ xi MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ ROBOT TỰ HÀNH BỐN BÁNH ĐA HƯỚNG 1.1 Robot tự hành di chuyển bánh đa hướng 1.2 Bài toán điều khiển bám quỹ đạo 1.2.1 Giai đoạn lập phương án chuyển động 1.2.2 Giai đoạn thiết kế quỹ đạo 1.2.3 Điều khiển bám theo quỹ đạo chuyển động 1.3 Tổng quan tình hình nghiên cứu ngồi nước 1.3.1 Tình hình nghiên cứu nước 1.3.2 Tình hình nghiên cứu ngồi nước 11 1.4 Kết luận chương 16 CHƯƠNG MƠ HÌNH HĨA VÀ THUẬT TỐN ĐIỀU KHIỂN BÁM QUỸ ĐẠO CHO ROBOT TỰ HÀNH BỐN BÁNH ĐA HƯỚNG 17 2.1 Xây dựng mơ hình động học, động lực học cho robot tự hành bốn bánh đa hướng 17 2.1.1 Bánh xe Omni 17 2.1.2 Mơ hình động học robot tự hành bốn bánh đa hướng [41], [42] 19 2.1.3 Mơ hình động lực học robot tự hành bốn bánh đa hướng [41], [42] 22 2.1.4 Mơ kiểm chứng kết mơ hình hóa mơ hình robot 23 2.2 Một số thuật toán điều khiển bám quỹ đạo cho robot tự hành bốn bánh đa hướng thông dụng 24 2.2.1 Bộ điều khiển PID cho FWOMR 25 v 2.2.2 Bộ điều khiển trượt cho FWOMR 26 2.2.3 Bộ điều khiển đa mặt trượt cho FWOMR 28 2.2.4 Mô kiểm chứng thuật toán 31 2.3 Kết luận chương 35 CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN THÍCH NGHI BÁM QUỸ ĐẠO CHO ROBOT TỰ HÀNH BỐN BÁNH ĐA HƯỚNG 36 3.1 Thuật toán điều khiển mặt trượt động 36 3.1.1 Xây dựng thuật toán điều khiển bám quĩ đạo mặt trượt động cho FWOMR… 36 3.1.2 Mơ kiểm chứng kết thuật tốn 40 3.2 Thuật toán điều khiển mặt trượt động thích nghi mờ điều khiển bám quỹ đạo cho FWOMR 44 3.2.1 Thuật toán điều khiển mặt trượt động thích nghi mờ 44 3.2.2 Mơ kiểm chứng thuật tốn 47 3.3 Thuật toán điều khiển mặt trượt động thích nghi nơ ron mờ điều khiển bám quỹ đạo cho FWOMR 50 3.3.1 Xấp xỉ thành phần bất định mơ hình FWOMR sử dụng mạng nơ ron bán kính xuyên tâm 50 3.3.2 Xây dựng luật mờ cho AFNNDSC 55 3.3.3 Kết mô 56 3.4 Kết luận chương 62 CHƯƠNG CHẾ TẠO ROBOT TỰ HÀNH BỐN BÁNH ĐA HƯỚNG VÀ CHẠY THỬ NGHIỆM THUẬT TOÁN ĐIỀU KHIỂN 64 4.1 Thiết kế chế tạo robot tự hành bốn bánh đa hướng 64 4.1.1 Thiết kế cấu, khí xây dựng Omni thực tế 64 4.1.2 Thiết kế cấu trúc mạch điều khiển cho robot 65 4.1.3 Phần mềm điều khiển cho robot 66 4.2 Cài đặt thuật toán chạy thử nghiệm 67 4.2.1 Lập trình phần mềm nhúng vi xử lý thuật tốn điều khiển 67 4.2.2 Kết robot môi trường Gazebo Rviz để mô kiểm chứng…… 69 4.2.3 Kết chạy thực nghiệm thực tế 70 vi 4.3 Kết luận chương 73 KẾT LUẬN VÀ KIẾN NGHỊ 74 DANH MỤC CƠNG TRÌNH CỦA TÁC GIẢ 76 TÀI LIỆU THAM KHẢO 78 PHỤ LỤC 86 vii DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Chữ viết tắt Tiếng anh Tiếng việt NCS FWOMR OMR RBFNN DSC AFDSC ANNDSC Nghiên cứu sinh Four-wheeled Omnidirectional Robot tự hành bốn bánh đa Mobile Robot hướng Omnidirectional Mobile Robot Robot tự hành đa hướng Radial Basis Function Neural Mạng Nơ ron bán kính xuyên Network tâm Dynamic Surface Control Mặt trượt động Adaptive Fuzzy Dynamic Surface Điều khiển mặt trượt động Control Adaptive thích nghi mờ Neural Network Điều khiển mặt trượt động Dynamic Surface Control thích nghi nơ ron Adaptive Fuzzy Neural Network Điều khiển mặt trượt động Dynamic Surface Control thích nghi mờ, nơ ron Multi Surface Sliding Control Điều khiển đa mặt trượt Proportional–Integral– Bộ điều khiển tỷ lệ vi tích Derivative phân Personal Computer Máy tính cá nhân SMC Sliding Mode Control Điều khiển trượt VSS Variable Structure System Hệ thống có cấu trúc thay đổi MCU Micro Control Unit Vi điều khiển FLS Fuzzy Logic System Hệ logic mờ ROS Robot Operating System Hệ điều hành robot AFNNDSC MSSC PID PC viii BẢNG CÁC KÝ HIỆU CÁC THAM SỐ Ký hiệu Ý nghĩa Đơn vị ( x, y ,  ) Hệ tọa độ tồn cục (q)  Góc lệch robot so hệ tọa độ gốc Rad/s vi Vận tốc bánh m/sec ωi Vận tốc góc bánh fi Lực kéo bánh N M Khối lượng robot kg d Khoảng cách tâm robot tới bánh m H Ma trận chuyển đổi hệ trục tọa độ vx Vận tốc dài m/s vy Vận tốc pháp tuyến m/s r Bán kính bánh xe M (q) Ma trận khối lượng momen quán tính G (q) Vector trọng lực, G ( q )  d Vector thành phần nhiễu bất định e1 Sai lệch bám quỹ đạo robot e2 Sai lệch bám vận tốc robot J Mô men quán tính xe q Biến khớp F Lực ma sát C Ma trận hệ số lực ma sát nhớt G Ma trận hệ số lực ma sát culomb  Đầu vào lọc thông thấp x1d Quỹ đạo đặt T Thời gian trích mẫu  Hệ số mặt trượt  Tín hiệu điều khiển hệ thống  eq Tín hiệu điều khiển giữ trạng thái hệ thống hệ rad/sec m N.m N s ix thống mặt trượt  sw Tín hiệu điều khiển, lái trạng thái hệ thống mặt trượt c1 , c2 , c3 Hệ số điều khiển DSC  Véc tơ chứa thành phần bất định mơ hình robot  Ma trận trọng số mạng Nơ ron S Mặt trượt  Sai lệch mạng nơ ron Chuẩn ma trận bậc F Chuẩn ma trận bậc không gian F PL14 Hình PL3.7 Mạch in thiết kế Altium 3.3.2 Mạch driver động DC Servo Mạch cầu H dùng IC kích FET chuyên dụng IR2184 cho phép điều khiển động với dòng liên tục 10A dòng tức thời lên đến 30A Mạch thiết kế dành cho ứng dụng điều khiển tốc độ vị trí cho động DC Hình PL3.1 Sơ đồ nguyên lý mạch cầu H driver động DC Servo PL15 Mosfet sử dụng mạch IRF840 cho dòng đỉnh tối đa 22A Điện áp hoạt động lên tới 500VDC Dòng liên tục 8A chế độ cầu kép Điện áp cấp cho FET cao dịng nhỏ Với ứng dụng cầu FET cho robot điện áp cấp thường 24V~25,6V Chu kỳ xung nhỏ cho dịng qua FET lớn, nên băm xung tần số cao có lợi cơng suất hơn, robot chạy nhanh khỏe Sử dụng IC kich FET chuyên dụng IR2184 bảo đảm FET dẫn tốt, chống tượng trùng dẫn có hãm động tốt Diode sử dụng cho IR2184 phải có tần số hoạt động cao Driver có biến trở dùng chỉnh dịng giới hạn qua động giúp bảo vệ thiết bị Tín hiệu vào điều khiển bao gồm: DIR+, DIR-, PWM+, PWM- Điều giúp người dùng dễ dàng tùy chọn tín hiệu điều khiển tác động mức cao hay mức thấp Board gồm led SMD báo nguồn báo chiều quay động Hình PL3.9 Mạch cầu H dùng để điểu khiển động 3.3.3 Khối nguồn cung cấp: Hình PL3.10 Mạch nguồn cung cấp 5V PL16 Bên cạnh có sử dụng mạch có IC LM2576-5 để hạ áp từ 12V xuống 3.3V ưu điểm :  Bản thân IC nguồn Switching nguyên khối nên cần thêm vài linh kiện điện tử  Điện áp vào dải từ 7VDC-40VDC, dòng lên đến 3A, dòng áp ổn định  Sự tiêu hao lượng thấp Hình PL3.11 Sơ đồ nguyên lý mạch nguồn 3.3V 3.3.4 Các khối giao tiếp  Khối giao tiếp RS232 RF: Hình PL3.12 Mạch giao tiếp RS232 PL17  Khối mạch giao tiếp không dây RF Hình 3.13 Mạch truyền thơng COM to USB Hình PL3.14 Mạch truyền thơng RF  Khối giao tiếp blutooth HC05 Bluetooth chuẩn truyền thông không dây để trao đổi liệu khoảng cách ngắn Chuẩn truyền thơng sử dụng sóng radio ngắn (UHF radio) dải tần số ISM (2.4 tới 2.485 GHz) Khoảng cách truyền module vào khoảng 10m Module HC-05 thiết kế dựa chip BC417 sử dụng nhớ flash ngồi 8Mbit Hình PL3.15 Sơ đồ modul HC - 05 HC-05 có hai chế độ hoạt động Command Mode Data Mode Ở chế độ Command Mode ta giao tiếp với module thơng qua cổng serial module PL18 tập lệnh AT quen thuộc Ở chế độ Data Mode module truyền nhận liệu tới module bluetooth khác Chân KEY dùng để chuyển đổi qua lại hai chế độ Ở chế độ SLAVE: Ta cần thiết lập kết nối từ smartphone, laptop, usb bluetooth để dị tìm module sau pair với mã PIN 1234 Sau pair thành cơng, ta có cổng serial từ xa hoạt động baud rate 9600 Ở chế độ MASTER: module tự động dị tìm thiết bị bluetooth khác (1 module bluetooth HC-05, usb bluetooth, bluetooth laptop ) tiến hành pair chủ động mà không cần thiết lập từ máy tính smartphone 3.4 Code lập trình điều khiển robot tự hành bốn bánh đa hướng 3.4.1 Code vi điều khiển cho robot Phần mềm viết code cho vi điều khiển STM32F103C8T6 IAR Hình PL3.16 Giao diện phần mềm IAR Chương trình lập trình vi điều khiển: /* Includes */ #include "main.h" /* Private includes */ /* USER CODE BEGIN Includes */ #include "stdio.h" #include "stdlib.h" #include "string.h" PL19 #include "math.h" /* USER CODE END Includes */ /* USER CODE BEGIN PV */ // UART variable uint8_t rx_data; char rx_index; char rx_buffer[20]; char temp[100]; int check_var = 0; //encoder variable int pulse_counter1 = 0, pulse_counter2 = 0, pulse_counter3 = 0, pulse_counter4 = 0; //velocity variable double k = sqrt(2)/2; float vx = 0, vy = 0, w_angle = 0; float w_reference1_temp = 0; float w_reference2_temp = 0; float w_reference3_temp = 0; float w_reference4_temp = 0; float w_reference1 = 0, w_reference2 = 0, w_reference3 = 0, w_reference4 = 0; float w1 = 0, w2 = 0, w3 = 0, w4 = 0; float e1 = 0, e2 = 0, e3 = 0, e4 = 0; float pre_e1 = 0, pre_e2 = 0, pre_e3 = 0, pre_e4 = 0; float const max_pwm = 300; //robot variable float d_robot = 0.25; //robot radius float r_wheel = 0.07; /* Private function prototypes -*/ void SystemClock_Config(void); PL20 static void MX_GPIO_Init(void); static void MX_TIM3_Init(void); static void MX_TIM2_Init(void); static void MX_USART3_UART_Init(void); static void MX_TIM9_Init(void); static void MX_TIM12_Init(void); static void MX_TIM5_Init(void); /* USER CODE BEGIN PFP */ void check_w_ref() { sprintf(temp, "vx_ref = %.2f\n", vx); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); sprintf(temp, "vy_ref = %.2f\n", vy); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); sprintf(temp, "w_ref = %.2f\n", w_angle); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); sprintf(temp, "w1_temp = %.2f, w1_ref = %.2f\n", w_reference1_temp ,w_reference1); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); sprintf(temp, "w2_temp = %.2f, w2_ref = %.2f\n", w_reference2_temp ,w_reference2); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); sprintf(temp, "w3_temp = %.2f, w3_ref = %.2f\n", w_reference3_temp ,w_reference3); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); sprintf(temp, "w4_temp = %.2f, w4_ref = %.2f\n", w_reference4_temp PL21 ,w_reference4); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); HAL_Delay(2000); } void signal_feedback_w_wheel() { sprintf(temp, "w1 = %.2f rpm r\n", w1); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); sprintf(temp, "w2 = %.2f rpm r\n", w2); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); sprintf(temp, "w3 = %.2f rpm r\n", w3); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(100); sprintf(temp, "w4 = %.2f rpm r\n", w4); HAL_UART_Transmit(&huart3, temp, strlen(temp), 10); HAL_Delay(2000); } int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_TIM3_Init(); MX_TIM2_Init(); MX_USART3_UART_Init(); MX_TIM9_Init(); MX_TIM12_Init(); MX_TIM5_Init(); HAL_TIM_Base_Start_IT(&htim2); PL22 HAL_UART_Receive_IT(&huart3, &rx_data, 1); Init_Motor1(); Init_Motor2(); Init_Motor3(); Init_Motor4(); /* USER CODE END */ } /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOE, M01_EN_R_Pin|M01_EN_L_Pin|M02_EN_L_Pin|M02_EN_R_Pin |M02_3_3V_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(M01_3_3V_GPIO_Port, M01_3_3V_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(M01_GND_GPIO_Port, M01_GND_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(M02_GND_GPIO_Port, M02_GND_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, M03_EN_R_Pin|M03_EN_L_Pin|M03_3_3V_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(M03_GND_GPIO_Port, M03_GND_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(M04_GND_GPIO_Port, M04_GND_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, M04_3_3V_Pin|M04_EN_L_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(M04_EN_R_GPIO_Port, M04_EN_R_Pin, GPIO_PIN_SET); *****END OF FILE****/ 3.4.2 Code lập trình ROS cho TX2 điều khiển cho robot - Node lấy tín hiệu từ Lidar PL23 Hình PL3.17 Cấu trúc lập trình phần mềm PL24 - Node lấy tín hiệu từ Camera Astra /@/ "15120410023" : serial number > - Node tính tốn vị trí robot type="rf2o_laser_odometry_node" PL25 # topic where the lidar scans are being published # topic where tu publish the odometry estimations # wheter or not to publish the tf::transform (base->odom) # frame_id (tf) of the mobile robot base A tf transform from the laser_frame to the base_frame is mandatory # frame_id (tf) to publish the odometry estimations # (Odom topic) Leave empty to start at point (0,0) # Execution frequency # verbose - Node tính tốn điều khiển PL26 PL27 > $(find ... HÀ THỊ KIM DUYÊN ĐIỀU KHIỂN MẶT ĐỘNG THÍCH NGHI BÁM QUỸ ĐẠO CHO ROBOT TỰ HÀNH BỐN BÁNH ĐA HƯỚNG Chuyên ngành : Kỹ thuật điều khiển tự động hóa Mã số: 52 02 16 LUẬN ÁN TIẾN SĨ KỸ THUẬT ĐIỆN, ĐIỆN... khiển cho robot tự hành đa hướng khơng cịn khó khăn Với xu hướng đó, NCS chọn đề tài: ? ?Điều khiển mặt động thích nghi bám quỹ đạo cho robot tự hành bốn bánh đa hướng? ?? Nội dung nghi? ?n cứu luận. ..  Nghi? ?n cứu thuật toán điều khiển bám quỹ đạo cho đối tượng OMR Phân tích đề xuất thuật tốn điều khiển thích nghi bám quỹ đạo cho robot tự hành bốn bánh đa hướng nhằm nâng cao chất lượng bám

Ngày đăng: 08/06/2021, 07:17

Xem thêm:

Mục lục

    1.1. Khối bộ điều khiển DSC

    1.3. Bộ điều khiển DSC-NN-Fuzzy

    2. Thiết kế và chế tạo cơ khí, truyền động robot tự hành bốn bánh đa hướng

    3. Mạch điện tử điều khiển và lập trình điều khiển robot tự hành bốn bánh đa hướng

    3.1. Mạch điện tử điều khiển cho robot

    3.2. Kit xử lý hiệu năng cao Jetson TX2:

    3.3. Mạch điều khiển Slave sử dụng vi điều khiển ARM:

    3.3.1. Mạch điều khiển sử dụng vi điều khiển STM32F103

    3.3.2. Mạch driver động cơ DC Servo

    3.3.3 Khối nguồn cung cấp:

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w