1. Trang chủ
  2. » Tất cả

(Luận án tiến sĩ) đ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 9 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

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 luan an 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 luan an ii LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng tơi, hồ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 luan an iii LỜI CẢM ƠN Luận án hoà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, cô giáo, thầy giáo tận tình hướng dẫn tác giả hồ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, đồ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 luan an 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 .6 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 luan an 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 tố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 toán 40 3.2 Thuật tố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 tố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 toá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 toá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 luan an 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 luan an 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 luan an viii BẢNG CÁC KÝ HIỆU CÁC THAM SỐ Ký hiệu Ý nghĩa Đơn vị ( x, y ,  ) Hệ tọa độ toà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 luan an 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 luan an 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 luan an 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 luan an 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 luan an 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 luan an 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" luan an 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); luan an 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 luan an 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); luan an 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 luan an PL23 Hình PL3.17 Cấu trúc lập trình phần mềm luan an PL24 - Node lấy tín hiệu từ Camera Astra /@/ "15120410023" : serial number > - Node tính tốn vị trí robot luan an 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 luan an PL26 luan an PL27 > luan an $(find ... khiển thích nghi phi tuyến khác điều 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. .. 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... 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 Có nhiều nghi? ?n cứu điều khiển bám quỹ đạo cho OMR công bố năm gần sử dụng điều khiển truyền thống PID, PID thích nghi

Ngày đăng: 01/02/2023, 08:55

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w