Thiết kế xe dò line

40 0 0
Thiết kế xe dò line

Đ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

Giang viên hướng dẫn Lê Tuấn Sang. Robot dò line là loại Robot có thể đi theo đường vẽ có sẵn hoặc các vật cản, bản đồ để Robot có thể nhận biết và di chuyển. Nhằm mục đích đi đến vị trí đề ra ban đầu. Dù chỉ là 1 ứng dụng rất nhỏ, nhưng đây chính là cơ sở để phát triển những dự án lớn và tối tân hơn.

CHƯƠNG TỔNG QUAN 1.1 Giới thiệu - Trong xã hội nay, với tiến KH-KT sống người trở nên đầy đủ phát triển, đất nước đà phát triển cơng nghiệp hóa đại hóa đất nước, ngành công nghệ kỹ thuật điều khiển tự động hóa đóng vai trị quan trọng công nghệ 4.0 hệ thống điều khiển hay băng chuyền sản xuất, có hầu hết cơng ty, nhà máy lớn nhằm giúp người giảm thiểu vấn đề - Robot đóng vai trị vơ quan trọng việc đẩy mạnh hiệu tốc độ sản xuất, bảo vệ người lao động, tăng sản lượng giảm chi phí hoạt động sản xuất - Robot sở thiết lập ngành công nghiệp chủ động, giúp đảm bảo tiêu chuẩn an toàn đáp ứng yêu cầu tốc độ ngày cao, tập quán sản xuất độ xác kỹ thuật Việc hợp tính đổi cơng nghệ robot mang lại cho nhà sản xuất nhiều lợi thế, đặc biệt tính an tồn tiêu chuẩn - Chúng không thực cơng việc bệnh viện, nhà kho, phịng thí nghiệm mà cịn tham gia vào mơi trường nguy hiểm, độc hại Tuy nhiên, bên cạnh tính hữu ích, robot cịn ẩn chứa nhiều nguy gây nguy hiểm cho người rủi ro trình sản xuất Nếu kỹ thuật robot khơng có biện pháp phịng ngừa thích hợp chỗ, robot gây nhiều thương tích cho người lao động thiệt hại lớn cho doanh nghiệp cố xảy ra, vấn đề đặt tự động hóa q trình sản xuất nguồn cơng nhân lao động bị thất nghiệp dẫn đến cân xã hội 1.2 Các mơ hình thực tế Hình 1.1 Mơ hình xe dị line thực tế MCR kit hãng Renesas Trường Đại Học Trà Vinh 1.3 Các nghiên cứu khoa học Hình 1.2 Cuộc thi lập trình xe dị line CKC – ECR lần – 2016 Trường Cao Đẳng Kỹ Thuật Cao Thắng 1.4 Các vấn đề liên quan 1.4.1 Sơ đồ nguyên lý - Phương án - Xe ba bánh có hai bánh chủ động độc lập bánh bị động Hình 1.3 Sơ đồ nguyên lý bánh chủ động bánh bị động + Ưu điểm: Xe bánh đồng phẳng, bẻ qua tương đối dể dàng qua điểm chuyển hướng đột ngột bán kính cong nhỏ Trọng tâm dịch phía sau nên khoảng cách từ trọng tâm đến đầu cảm biến lớn, việc cảm biến yêu cầu độ cân tốt, kết cấu xe đơn giản, bánh xe đồng phẳng tiếp xúc với mặt đất + Nhược điểm: Bánh tự lựa phía trước nên cần chịu một tác động nhỏ làm xe văng đừng line, xe mang tải nặng qua cua dể bị lất - Phương pháp thường sử dụng trường hợp xe di chuyển mặt phẳng chở thêm tải cân - Phương án Hình 1.4 Sơ đồ nguyên lý xe điều khiển bánh - Xe điều khiển bánh chủ động + Ưu điểm: Xe di chuyển linh hoạt, gia tốc hãm phanh, khoảng cách cảm biến mặt đường đảm bảo, xe bánh dù qua cua mang tải nặng khó lật xe bánh + Nhược điểm: Xe dẫn động động riêng biệt nên phưc tạp để đồng động điều khiển phức tạ, khó đảm bảo co bánh xe ln đồng phẳng , Khó qua cua đặc điểm bánh xe tự lựa - Phương pháp sử dụng xe cần độ cứng cao khó lật di chuyển 1.4.2 Về cảm biến - Hiện robot dò line sử dụng cảm biến quang để nhận biết vị trí tương đối xe dị line phương pháp có độ xác cao - Cảm biến quang, cảm biến hồng ngoại, camera sử dụng phổ biến thi robot dị line Điển hình như: quang điện trở hay phototransistor kết hợp với LED, cảm biến QTR – 8RC 5RC Ba loại cảm biến hoạt động với nguyên lý giống nhau, thu thu tín hiệu phản xạ từ phát xuống mặt đất Từ xử lý kết để xác định vị trí xe so với đường line - Dựa đặc tính độ nhạy cao so với loại cảm biến khác có phương án sử dụng loại sensor đề xuất: + Phototransistor kết hợp với LED hồng ngoại QTR-8RC QTR – 5RC + Camera + Cảm biến quang a) Camera - Camera có chức ghi lại hình ảnh đường line đưa thơng tin sai lệch vị trí tương đối line so với xe + Ưu điểm: Độ xác cao, bị nhiễu + Nhược điểm: Tốc độ xử lý ảnh cần nhiều thời gian, yêu cầu xử lý nhiều xe bị hạn chế tốc độ b) Cảm biến quang điện trở cảm biến hồng ngoại - Cảm biến quang điện trở cảm biến hồng ngoại có nguyên tắc hoạt động tương tự nhau, cảm biến bao gồm ánh sáng phản xạ xương đất nguồn thu ánh sáng phản xạ từ xử lý tín hiệu đưa vị trí xe so với line Phần lớn cảm biến hồng ngoại sử dụng nhiều thời gian đáp ứng nhanh, linh hoạt Hình 1.5 Nguyên lý hoạt động cảm biến quang trở - Nguyên tắc hoạt động phototransistor cung cảm biến QTR dựa vào tín hiệu ánh sáng phản xạ từ nguồn phát để nhận tín hiệu dạng điện áp Đối với đường đua mà mau line màu có đồ tương phản cao, LED hồng ngoại cho độ nhạy cảm cao cần phải che chắn để chống nhiễu, Sử dụng cảm biến QTR hiệu - Giải thuật xử lý tín hiệu - Có giải thuật xử lý đề xuất: + So sánh + Xấp xỉ - Với phương pháp so sánh: Dùng so sánh xác định trạng thái đóng/ngắt sensor, sau suy vị trí xe theo bảng trạng thái định sẵn Với phương pháp sai số phụ thuộc vào khoảng cách sensor tốc độ xử lý 00100 Line nằm 11000 Line Nằm lệch bên trái 00011 Line nằm lệch bên phải Tín hiệu mức cao ví trí có Line Tín hiệu thấp vị trí khơng có Line Hình 1.6 Giải thuật xử lý với tín hiệu phương pháp so sánh - Với phương pháp xấp xỉ: Vị trí xe suy từ giá trị analog đọc từ cảm biến Thời gian xử lý phụ thuộc vào thời gian đọc ADC tất sensor vi điều khiển, lâu phương pháp thứ nhất, nhiên độ xác cao nhiều Hình 1.7 Giải thuật xấp xỉ bậc 1.4.3 Về động - Về xe đua dò line hầu hết sử dụng động DC làm cấu chấp hành Đặc điểm động DC đa dạng kích thước, moment, chủng loại driver, dể dàng lắp đặt điều khiển xác 1.4.4 Các cấu trúc điều khiển - Về cấu trúc điều khiển robot dò line có module bao gồm module sensor, module điều khiển module điều khiển động Trong đó, có hai phương pháp chủ yếu để kết nối mudule với phương pháp điều khiển tập trung phân cấp - Cấu trúc điều khiển phân cấp - Mạch điều khiển phân cấp sử dụng nhiều vi điều khiển, vi điều khiển đảm nhận chức riêng Nhờ có chuyển biệt hóa, vi điều khiển đảm nhận công việc giúp kiểm tra lỗi chương trình dể dàng chức thực đồng thời không cần phải đợi bỏ qua tác vụ ngắt giao tiếp tín hiệu giao tiếp tín hiệu vi điêu điều khiển tuyệt đối xác, khơng bị nhiễu Sensor Slaver1 Slaver1 Master Slaver1 Driver Driver Right Motor Lelf Motor Hình 1.8 Sơ đồ mạch điều khiển khẩn cấp - Cấu trúc điều khiển tập trung - Mạch sử dụng vi điều khiển đảm nhận tất chức nhờ vào mà phần cứng đơn giản Tuy nhiên, khơng có chuyển biệt hóa nên khó cho việc kiểm tra lỗi chương trình, chức tính tốn vận tốc bánh xe điều khiển động vận tốc mong muốn Không thưc đồng thời, chức thực chức khác phải đợi - Trong phương pháp điều khiển tập trung MCU nhận tín hiệu từ cảm biến, xử lí liệu truyền tín hiệu cho cấu tác động Sensor Micro controller Driver Driver Lelf Wheel Motor Right Wheel Motor Hình 1.9 Sơ đồ mạch điều khiển tập trung 1.4.5 Giải thuật điều khiển - Dựa vào yêu cầu robot dò line phải bám đoạn đường thẳng, cong sai số vị trí line bị gấp khúc giải thuật điều khiển phổ biến cho xe đua dò line điều khiển Following tacking, PID… cho hệ thống lái xe kết hợp với PID cho động Ngoài điều khiển phổ biến thường dùng cho ứng dụng điều khiển khác - Về sai số tối đa robot suốt trình, sai số trình xe di chuyển đường thẳng hay đường cong phụ thuộc vào sai số xác định vị trí xe thơng sensor tối đa 5.4mm - Bộ điều khiển PID Tín hiệu đặt PID Hàm truyền Bộ điều khiển Đối tượng điều khiển Hình 1.10 Bộ điều khiển PID - Bộ điều khiển PID: hoạt động theo chế phản hooig vòng điều khiển, tính tốn giá trị sai số hiệu số giá trị tín hiệu biến đổi giá trị đặt mong muốn Bộ điểu khiển thực giảm tối đa sai số cách điều chỉnh giá trị điều khiển đầu vào (KP, KI, KD) 𝑡 𝑢(𝑡) = 𝑘𝑝 𝑒(𝑡) + 𝑘𝐼 ∫ 𝑒(𝑡)𝑑(𝑡) + 𝑘𝐷 𝑑𝑒(𝑡) 𝑑𝑡 - Bộ điều khiển Following tracking - Bộ điều khiển Following tracking phát triển cho mơ hình robot bám line nay, điều khiển vận hành dựa sai số xe đường line theo phương tiếp tuyến 𝑒1 , theo phương pháp tuyến 𝑒2 , theo góc lệch xe với line 𝑒3 , dựa vào sai số để điều khiển xe thông qua biến điều khiền vận tốc góc 𝜔 vận tốc dài v theo phương trình sau: { v = vR cose3 + k1 e1 ω = k V2 e2 + ωR + k sine3 Trong đó: k1 , k , k hệ điều khiển 1.5 Mục tiêu phương pháp thực đề tài - Mục tiêu đề tài: Thiết kế chế tạo xe robot dò line thực việc bám line di chuyển nhanh sà bàn - Phương pháp nghiên cứu lý thuyết: nhóm tìm hiểu qua sách tài liệu, đồ án sinh viên khoá trước, trang wed liên quan đến xe dò line - Những dề sau cần tìm hiểu, nghiên cứu thiết kế: + Bài tốn dị đường sử dụng cảm biến dò line qua điều khiển PID + Tính tốn tốn động học xác định mối liên hệ chuyển động + Phương pháp điều khiển động 1.6 Đặt đầu - Từ mục tiêu yêu cầu đề tài: + Vận tốc tối đa: 𝑉𝑚𝑎𝑥 = 𝑚/𝑠 + Bán kính vịng tối thiểu : 𝑅𝑚𝑖𝑛 = 50𝑐𝑚 + Vận tốc mong muốn đạt V= 0.8 𝑚/𝑠 + Gia tốc mong muốn a=1 m/s + Khối lượng xe: 350 gram + Màu sắc đường line: đen + màu nền: trắng + Bề rộng đường line: 24(mm) Hình 1.11 Sà bàn xe dị line CHƯƠNG 2: LỰA CHỌN PHƯƠNG PHÁP PHÙ HỢP 2.1 Lựa chọn sơ đồ nguyên lý - Theo yêu cầu đề việc kết hợp bám line, khả đổi hướng đột ngột vị trí, kết cấu đơn giản, giá thành chế tạo phù hợp Vì dựa vào phương án mục 1.4 Nhóm đề xuất chọn sơ đồ nguyên lý xe ba bánh có hai bánh chủ động bánh bị động Hình 2.1 Sơ đồ nguyên lý xe hai bánh chủ động bánh bị động 2.2 Đề xuất cảm biến - Theo yêu cầu đề sai số bám line tối đa robot khả mà xe bám line tốt đoạn gấp khúc đột ngột giải thuật xử lý cảm biến cân nhắc chọn phương pháp phù hợp với đường đua giải thuật bám line tốt 2.3 Lựa chọn cảm biến - Để đáp ứng nhu cầu : + Khả đáp ứng nhanh thay đổi màu sắc trắng đen + Có khả nhận biết đoạn đường line gấp khúc đột ngột + bị nhiễu + Dể tìm hiểu dể dàng tìm kiếm dể mua thị trường, giá hợp lý - Vậy dựa loại cảm biến đề xuất mục 1.4 phướng án phù hợp chọn cảm biến hồng ngoại Vì cảm biến hồng ngoại có thu phát hồng ngoại, hoạt 10 CHƯƠNG : MƠ HÌNH THỰC NGHIỆM 4.1 Mơ hình kết xe chạy - Nhóm hồn thành việc chế tạo mơ hình vận hành thực tế Tuy xe hoàn thành việc bám Line sai số bám Line lớn bị trí đặc biệt sau - Lên bảng vẽ, bố trí thiết bị cắt khung chế tạo mơ hình - Bố trí thiết bị + Kích thước bao xe phụ thuộc vào kích thước việc xếp linh kiện, điện tử, khoảng cách mô sensor bánh chủ động Ngoài tỉ lệ kích thước dài rộng xe nên ta chọn theo kích thước 10-15cm nhằm giảm thiếu tối đa ảnh hưởng yếu tố tác động lên xe Các thiết bị đặt xe: STT Tên thiết bị Số lương Động + Gá 2 Bánh chủ động Mini N20 Bánh bị động mắt trâu Module Drive 8833 Mạch cảm biến Arduino Khối Pin - Chiều dài bánh xe chủ động đến cảm biến 15cm - Khoảng cách từ bánh xe chủ động 10cm 26 Vật liệu thân xe: PCB Hình 4.1 Bảng vẻ PCB 27 - Hồn thành mơ hình xe Hình 4.2 Mơ hình xe 28 - Khi xe khởi động bắt đầu chạy đường Line, độ vọt lố (overshoot) lớn nên tốc độ điều khiển rên đường Line đoạn thẳng ổn định Hình 4.3 Kết thực nghiệm xe bắt đầu chạy 29 - Khi xe chạy đến đoạn cua tốc độ điều khiên chưa xác, dẫn đến sai số dị line gần đến đoạn cua khơng ổn định Hình 4.4 kết thực nghiệm qua đoạn cua 30 - Khi xe vừa cua qua khỏi đoạn cua 90° tốc độ ổn định, xe bắt đầu tăng tốc đoạn đường thẳng Line xe có quan tính khiến sai số đoạn đường thẳng lớn Hình 4.5 Thực nghiệm xe vừa qua đoạn cua 𝟗𝟎° đến đoạn tăng tốc 31 4.2 Nhận xét kết thực nghiệm - Như so với kết mô phỏng, kết bám line thực tế robot giống với mô đoạn đường thẳng, xe thể dao động hai bên đường line Gía trị sai số thực tế xe lại thoả mãn yêu cầu đề sai số điểm chuyển hướng 90° Các lý dẫn đến việc tăng sai số bao gồm: + Sai số lắp đặt động trục động + Sai số tốc độ động + Sai số hệ thống cảm biến khác biệt môi trường thực nghiệm - Để khắc phục sai số cần giải pháp đề bao gồm: + Thực thí nghiệm nhằm đánh giá sai số vận tốc động để đưa vào mô + Thực nghiệm thí nghiệm để đánh giá ảnh hưởng mơi trường thực nghiệm lên giá trị đọc hệ thống cảm biến để xử lý biện pháp phù hợp 32 CHƯƠNG 5: KẾT LUẬN 5.1 Kết - Kết tương đối xác, đạt yêu cầu đặt ra, chạy đường line, thiết kế khí đảm bảo độ cững vững - Hạn chế: Cảm biến dễ bị nhiễu, tốc độ xe chạy chưa ổn định, điểm rẽ bắt line chưa tốt xe chạy chưa ổn định, điểm rẽ mạnh sai số lớn - Nguyên nhân: + Do mặt khí xe thi cơng chưa xác + Do tốc độ bánh chưa mang tải khác + Do qn tính - Trong q trình làm đồ án nhóm cịn gặp nhiều vấn đề thực tiễn khác vơí lý thuyết học Từ cần phải bổ sung nhiều lỗ hỏng trình học cần phải hiểu rõ trình thiết kế lập trình robot bám đường đơn giản 5.2 Hướng phát triển - Dựa vào cách hoạt động robot dò line phat triển rộng để tạo loại robot khác, phục vụ lĩnh vực sống cần phải tiếp tục nghiên cứu xe dò line hướng phát triển đến dò line vật cản - Cần phải cải tiến xe nhanh hơn, xác việc sử dụng động có eccoder - Xây dựng thuật tốn hồn chỉnh xác 33 TÀI LIỆU KHAM KHẢO M Russo and M Ceccarelli, “A Survey on Mechanical Solutions for Hybrid Mobile Robots,” Robotics, vol.9, no 2, p.32, May 2020 Benbouabdallah, Karim & Qi-dan, Zhu (2012) Design of a fuzzy logic controller for a JH Su et al An Intelligent Line Following Robot Project for Introductory Robot Courses, World Transactions on Eng and Technology Education, Vol 8, No.4, pp.455- 461, 2010 Huu Danh Lam et al., Smooth Tracking Controller for AGV through Junction axing, Tuyển tập HN điện tử lần VCM-2014.pp-597-601 Vietnam,2014 Fortune Institute of Technology, The line following robot speed contest (2007), August 2009, www.ee.fjtc.edu.tw/contest/contest.htm 34 PHỤ LỤC - CODE ĐIỀU KHIỂN XE #include QTRSensors qtr; int IN1 = 4; int IN2 = 5; // Right motor int IN3 = 6; int IN4 = 7; // Left motor int buttoncalibrate = ; //or pin A3 int buttonstart = ; const uint8_t SensorCount = 5; int PID_out; uint16_t sensorValues[SensorCount]; bool manualCalibration = 1; int lastError; void setup() { pinMode(IN1, OUTPUT); // sets the pin as output pinMode(IN2, OUTPUT); // sets the pin as output pinMode(IN3, OUTPUT); // sets the pin as output pinMode(IN4, OUTPUT); // sets the pin as output // configure the sensors qtr.setTypeRC(); qtr.setSensorPins((const uint8_t[]){A2,A3,A4,A5,A6}, SensorCount); 35 qtr.setEmitterPin(2); delay(500); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); // turn on Arduino's LED to indicate we are in calibration mode Serial.begin(115200); if (manualCalibration) { uint16_t minVal[5] = {444,420,416,412,352}; uint16_t maxVal[5] = {2500,2500,2500,2500,2500}; qtr.calibrationOn.initialized = true; qtr.calibrationOn.minimum = (uint16_t *)realloc(qtr.calibrationOn.minimum,sizeof(uint16_t) * 5); qtr.calibrationOn.maximum = (uint16_t *)realloc(qtr.calibrationOn.maximum,sizeof(uint16_t) * 5); for (uint8_t i = 0; i < SensorCount; i++) { qtr.calibrationOn.minimum[i] = minVal[i]; qtr.calibrationOn.maximum[i] = maxVal[i]; } } else { // 2.5 ms RC read timeout (default) * 10 reads per calibrate() call // = ~25 ms per calibrate() call // Call calibrate() 400 times to make calibration take about 10 seconds for (uint16_t i = 0; i < 400; i++) if(digitalRead(buttoncalibrate) == HIGH) { qtr.calibrate(); 36 } } digitalWrite(LED_BUILTIN, LOW); // turn off Arduino's LED to indicate we are through with calibration // print the calibration minimum values measured when emitters were on Serial.print("Minimum: "); for (uint8_t i = 0; i < SensorCount; i++) { Serial.print(qtr.calibrationOn.minimum[i]); Serial.print('\t'); } Serial.println(); //print the calibration maximum values measured when emitters were on Serial.print("Maximun: "); for (uint8_t i = 0; i < SensorCount; i++) { Serial.print(qtr.calibrationOn.maximum[i]); Serial.print('\t'); } if(digitalRead(buttonstart) == HIGH) Serial.println(); delay(400); } void loop() { uint16_t position = qtr.readLineBlack(sensorValues); int error = position - 2000; 37 PID_out = 0.1 * error + 0.1 * (error - lastError)/0.01; lastError = error; int Speed0 = 250; int Left_Out = max(min(Speed0 + PID_out,255),-255); int Right_Out = max(min(Speed0 - PID_out,255),-255); if (Left_Out >= 0) { Motor_Left(Left_Out,1); } else { Motor_Left(abs(Left_Out),0); } if (Right_Out >=0) { Motor_Right(Right_Out,1); } else { Motor_Right(abs(Right_Out),0); } delay(3); } //Serial.print("SENSOR VALUE = "); //Serial.print(position); //Serial.print(" PID OUT = "); //Serial.println(PID_out); 38 void Motor_Right(int turnspeed, bool direction) // forward, reverse { if (direction) { analogWrite(IN1 , 0); analogWrite(IN2 , turnspeed); } else { analogWrite(IN1 , turnspeed); analogWrite(IN2 , 0); } } void Motor_Left(int speed, bool direction) // forward, reverse { if (direction) { analogWrite(IN3 , speed); analogWrite(IN4 , 0); } else { analogWrite(IN3 , 0); analogWrite(IN4 , speed); } } void Turn_Right(int speed) { Motor_Right(speed,1); 39 Motor_Left(speed,0); } void Turn_Left(int speed) { Motor_Right(speed,0); Motor_Left(speed,1); } 40

Ngày đăng: 03/04/2023, 20:51

Tài liệu cùng người dùng

Tài liệu liên quan