Nghiên cứu, thiết kế robot điều khiển theo quỹ đạo ứng dụng la bàn số và cảm biến khoảng cách

64 451 8
Nghiên cứu, thiết kế robot điều khiển theo quỹ đạo ứng dụng la bàn số và cảm biến khoảng cách

Đ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

Nghiên cứu, thiết kế robot điều khiển theo quỹ đạo ứng dụng la bàn số và cảm biến khoảng cách

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CƠ KHÍ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ ĐỀ TÀI: NGHIÊN CỨU, THIẾT KẾ ROBOT ĐIỀU KHIỂN THEO QUỸ ĐẠO ỨNG DỤNG LA BÀN SỐ CẢM BIẾN KHOẢNG CÁCH Giáo viên hướng dẫn : Th.s Lê Ngọc Duy Nhóm sinh viên thực hiện: Lớp : Cơ điện tử – K10 Hà Nội – 2019 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Hà Nội, ngày tháng năm 2018 Giáo viên hướng dẫn NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Hà Nội, ngày tháng năm 2018 Giáo viên phản biện LỜI NÓI ĐẦU Kỹ thuật robot lĩnh vực phát triển nhanh chóng, công nghệ mũi nhọn kỉ 21 Cùng với phát triển xã hội, kỹ thuật robot ngày ứng dụng rộng rãi vào sống người Ngày nay, thấy robot làm thay người nhiều cơng việc Đó công việc mà người cảm thấy nhàm chán, khó thực hiện, u cầu độ xác có mức độ nguy hiểm cao Ví dụ robot lau nhà, robot lắp ráp công nghiệp, robot ngành lượng hạt nhân, robot để thám hiểm vũ trụ… Để góp phần giúp sinh viên hiểu cấu tạo nguyên lí hoạt động Mobile robot nhóm em chọn đề tài Mobile robot bánh di chuyển theo quỹ đạo, ứng dụng la bàn số cảm biến khoảng cách Dựa kiến thức tìm hiểu loại Mobile robot truyền thống, nhóm em ứng dụng thêm la bàn số để tăng tính xác điều khiển tối ưu quỹ đạo robot Em xin chân thành cám ơn thầy Lê Ngọc Duy hướng dẫn, nhiệt tình giúp đỡ chúng em trình thực đồ án Chúng em gửi lời cảm ơn tới nhà trường, đặc biệt q thầy mơn khí, điện tử, người trang bị kiến thức tảng giúp đỡ chúng em thời gian qua Do kiến thức hạn chế nên đồ án nhiều sai sót Chúng em mong giúp đỡ đóng góp thầy bạn để đồ án hoàn thiện Chúng em xin chân thành cảm ơn! Sinh viên thực đồ án MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG CHƯƠNG TỔNG QUAN VỀ MOBILE ROBOT ĐIỀU KHIỂN THEO QUỸ ĐẠO 1.1 Lịch sử nghiên cứu 1.1.1 Giới thiệu chung Robot Robot từ người lao động hệ ngơn ngữ Sla-vơ Cho đến có nhiều định nghĩa khác robot Những định nghĩa có nội dung tương tự Robot hay người máy loại máy thực công việc cách tự động điều khiển máy tính vi mạch điện tử lập trình Robot tác nhân khí, nhân tạo, thường hệ thống khíđiện tử Với xuất chuyển động mình, robot gây cho người ta cảm giác giác quan giống người Từ "robot" (người máy) thường hiểu với hai nghĩa: robot khí phần mềm tự hoạt động Ngày nay, người ta tranh cãi vấn đề: “Một loại máy đủ tiêu chuẩn để gọi robot?” Một cách gần xác, robot phải có vài (không thiết phải đầy đủ) đặc điểm sau đây: - Không phải tự nhiên, tức người sáng tạo - Có khả nhận biết mơi trường xung quanh - Có thể tương tác với vật thể mơi trường Có thơng minh, có khả đưa lựa chọn dựa môi trường điều khiển cách tự động theo trình tự - lập trình trước Có khả điều khiển lệnh để thay đổi tùy theo yêu cầu người sử dụng - Có thể quay tịnh tiến theo hay nhiều chiều - Có khéo léo vận động Phân loại Mobile Robot: Có thể phân loại Mobile robot theo phương pháp di chuyển - Robot có chân, di chuyển giống người hay động vật Robot di chuyển xích, đai Robot di chuyển bánh xe Các dạng điều khiển: - Robot điều khiển từ xa tay qua sóng RF, wifi, hồng ngoại hay Bluetoot…Robot điều khiển từ xa giúp người tránh khỏi nguy hiểm, di chuyển theo robot - Thực thi theo lộ trình: dạng robot thường thấy robot dò line, phát đường theo vạch sẵn; hay lập trình sẵn quỹ đạo robot di chuyển theo quỹ đạo - Robot hoạt động độc lập với chuyển động ngẫu nhiên: Về chuyển động nhảy bật lên tường, hay di chuyển khoảng không gian định, có sử dụng cảm biến tránh vật cản robot hút bụi, máy cắt cỏ… Ứng dụng Mobile robot: Mobile robot dùng nhà máy vận chuyển hàng hóa Hình 1-1: Robot vận chuyển hàng hóa tự động kho hàng Amazon Ứng dụng đời sống, hỗ trợ người làm việc nhà hút bụi, lau bể bơi, giám sát an ninh, cắt cỏ, đồ chơi… 10 Hình 1-2: Robot hút bụi Samsung POWERbot Ứng dụng môi trường độc hại, nơi người tới, hay tới cách khó khăn, nguy hiểm hỏa, đáy biển, núi lửa… Hình 1-3: Robot thám hiểm Sao Hỏa Curiosity NASA 1.1.2 Giới thiệu chung robot omni Robot Omni loại mobile robot di chuyển bánh xe ứng dụng nhiều thực tế quỹ đạo chuyển động đa dạng Đặc biệt Omni có kết cấu lạ với bánh xe, phối hợp hoạt động bánh xe lại cho ta khả điều khiển tốt quỹ đạo robot 50 3.4 CHẾ TẠO, LẮP RÁP THỬ NGHIỆM MƠ HÌNH 3.4.1 Chế tạo hệ thống khí Khung máy: phận để lắp ráp chi tiết, linh kiện khác máy nên tính tốn, chế tạo phù hợp với mơ hình, khả chịu tải, độ vững chắc, đủ kích thước lắp ráp linh kiện Khung bao gồm đế bảo vệ phía trên, kết nối với khớp nối U Các chi tiết gia công, cắt máy cắt Plasma CNC, sau gia cơng nguội để đảm bảo tính thẩm mĩ, an tồn cho người đảm bảo xác lắp ráp Riếng khớp nối U, sau cắt Plasma chấn để tạo biên dạng Hình 4-37: Khung máy sau lắp ráp Bánh xe omni: mua cửa hàng hshop.vn Hình 4-38: Bánh xe omni 58mm Khớp nối trục động cơ: mua cửa hàng hshop.vn 51 Hình 4-39: khớp nối trục động bánh omni 3.4.2 Hệ thống điện, điện tử Hệ thống điện, điện tử chúng em sử dụng phụ thuộc vào yêu cầu, công Robot, chúng em tìm hiểu loại linh kiện có thị trường tổng hợp để chọn cho tối ưu với mơ hình cần đạt Tổng hợp linh kiện điện tử sử dụng mơ hình: Bảng 4-8 :Các linh kiện điện, điện tử STT Tên linh kiện Hình ảnh Địa mua Arduino Mega 2560 Banlinhkien.vn Arduino Nano Banlinhkien.vn Driver L298 Hshop.vn 52 Module bluetooth Banlinhkien.vn Cảm biến MPU-6050 Banlinhkien.vn La bàn số HMC5883L Banlinhkien.vn Mạch hạ áp Nguồn (Pin) Banlinhkien.vn Chotroihn.vn 53 3.4.3 Mơ hình hồn chỉnh Hình 4-40: Mơ hình hồn chỉnh Kết luận 54 TÀI LIỆU THAM KHẢO [1] A Ashmore and N Barnes, Omni-drive Robot Motion on Curved Paths: The Fastest Path between Two Points Is Not a Straight-Line, AI 2002: Advances in Artificial Intelligence, vol 2557, 2002, pp 225-236 [2] T.A Baede, Motion control of an omni directional mobile robot, Traineeship report DCT 2006, 2006 [3] P Oliveira, Armando J Sousa, A Paulo Moreira and Paulo J Costa: Dynamical models for omni-directional robots with and wheels helder [4] Raul Rojas, Holonomic control of a robot with an omni directional drive, Kunstliche Intelligenz, 2006 [5] Tham khảo từ nguồn youtuber Kris Temmerman, Omni wheel Robot, 2017 55 PHỤ LỤC Chương trình điều khiển Arduino: #include #include int dir1 = 8; int dir2 = 9; int dir3 = 10; int pwm1 = 5; int pwm2 = 6; int pwm3 = 7; String tinhieu; int goc; float vx, vy; int v1, v2, v3; float Vtt = 137; //toc dat 137 vong/phut float Vquay = 137; double kp = , ki = , kd = 0.01;//thông số PID long temp; volatile long encoderPos1 = 0; volatile long encoderPos2 = 0; volatile long encoderPos3 = 0; 56 double input1 = 0, output1 = 0, setpoint1 = 0; PID myPID1(&input1, &output1, &setpoint1, kp, ki, kd, DIRECT); double input2 = 0, output2 = 0, setpoint2 = 0; PID myPID2(&input2, &output2, &setpoint2, kp, ki, kd, DIRECT); double input3 = 0, output3 = 0, setpoint3 = 0; PID myPID3(&input3, &output3, &setpoint3, kp, ki, kd, DIRECT); void setup() { pinMode(dir1, OUTPUT); pinMode(dir2, OUTPUT); pinMode(dir3, OUTPUT); pinMode(pwm1, OUTPUT); pinMode(pwm2, OUTPUT); pinMode(pwm3, OUTPUT); pinMode(2, INPUT_PULLUP); // định dạng encoder cổng pinMode(11, INPUT_PULLUP); // định dạng encoder cổng pinMode(3, INPUT_PULLUP); // định dạng encoder cổng pinMode(12, INPUT_PULLUP); // định dạng encoder cổng pinMode(4, INPUT_PULLUP); // định dạng encoder cổng pinMode(13, INPUT_PULLUP); // định dạng encoder cổng A1 B1 A2 B2 A3 B3 57 attachInterrupt(0, encoder1, FALLING); // cập nhật vị trí encoder1 attachInterrupt(0, encoder2, FALLING); // cập nhật vị trí encoder2 attachInterrupt(0, encoder3, FALLING); // cập nhật vị trí encoder3 TCCR1B = TCCR1B & 0b11111000 | 1; ngăn nhiễu // cài đặt 31KHz PWM động myPID1.SetMode(AUTOMATIC); myPID1.SetSampleTime(1); myPID1.SetOutputLimits(-255, 255); myPID2.SetMode(AUTOMATIC); myPID2.SetSampleTime(1); myPID2.SetOutputLimits(-255, 255); myPID3.SetMode(AUTOMATIC); myPID3.SetSampleTime(1); myPID3.SetOutputLimits(-255, 255); Serial.begin(9600); // Kết nối bluetooth module tốc độ 9600 } void encoder1() //đọc tốc độ động từ cổng encoder B1 { if (digitalRead(11) == HIGH) else encoderPos1++; encoderPos1 ; } void encoder2() //đọc tốc độ động từ cổng encoder B2 { 58 if (digitalRead(12) == HIGH) else encoderPos2++; encoderPos2 ; } void encoder3() //đọc tốc độ động từ cổng encoder B3 { if (digitalRead(13) == HIGH) else encoderPos2++; encoderPos2 ; } void quaythuan() { analogWrite(pwm1, output1); analogWrite(pwm2, output2); analogWrite(pwm3, output3); digitalWrite(dir1, HIGH); digitalWrite(dir2, HIGH); digitalWrite(dir3, HIGH); } void quaynguoc() { analogWrite(pwm1, output1); analogWrite(pwm2, output2); analogWrite(pwm3, output3); digitalWrite(dir1, LOW); digitalWrite(dir2, LOW); digitalWrite(dir3, LOW); 59 } void ngung() { digitalWrite(pwm1, LOW); digitalWrite(pwm2, LOW); digitalWrite(pwm3, LOW); } void tinhtien() { vx = cos(goc * PI / 180); vy = sin(goc * PI / 180); v1 = vx; v2 = sqrt(3) / * vy - 0.5 * vx; v3 = sqrt(3) / * vy + 0.5 * vx; boolean dir1 = v1 < ? true : false; boolean dir2 = v2 < ? true : false; boolean dir3 = v3 < ? true : false; v1 = Vtt * abs(v1); v2 = Vtt * abs(v2); v3 = Vtt * abs(v3); } void loop() { if (Serial.available() > 0) // có kết nối cổng serial 60 { while (1) { tinhieu = Serial.readStringUntil('w'); // đọc chuỗi dc gửi tới if (tinhieu.startsWith("s")) { tinhieu.replace("s", ""); // tách chuỗi lấy tín hiệu analog goc = tinhieu.toInt(); setpoint1 = v1; // chuyển tính hiệu thành kiểu int //cài đặt tốc độ động input1 = encoderPos1; // nhận liệu từ encoder1 myPID1.Compute(); setpoint2 = v2; // tính tốn đầu dc1 //cài đặt tốc độ động input2 = encoderPos2; // nhận liệu từ encoder2 myPID2.Compute(); setpoint1 = v3; // tính tốn đầu dc2 //cài đặt tốc độ động input3 = encoderPos3; // nhận liệu từ encoder3 myPID3.Compute(); // tính tốn đầu dc3 tinhtien(); analogWrite(pwm1, output1); analogWrite(pwm2, output2); analogWrite(pwm3, output3); delay(10); 61 } if (tinhieu.startsWith("T")) { setpoint1 = Vquay; //cài đặt tốc độ động input1 = encoderPos1 ; // nhận liệu từ encoder1 myPID1.Compute(); setpoint2 = Vquay; // tính toán đầu dc1 //cài đặt tốc độ động input2 = encoderPos2 ; // nhận liệu từ encoder2 myPID2.Compute(); setpoint1 = Vquay; // tính tốn đầu dc2 //cài đặt tốc độ động input3 = encoderPos3 ; // nhận liệu từ encoder3 myPID3.Compute(); // tính tốn đầu dc3 quaythuan(); } if (tinhieu.startsWith("N")) { setpoint1 = Vquay; //cài đặt tốc độ động input1 = encoderPos1 ; // nhận liệu từ encoder1 myPID1.Compute(); setpoint2 = Vquay; // tính tốn đầu dc1 //cài đặt tốc độ động input2 = encoderPos2 ; // nhận liệu từ encoder2 myPID2.Compute(); // tính tốn đầu dc2 62 setpoint1 = Vquay; //cài đặt tốc độ động input3 = encoderPos3 ; // nhận liệu từ encoder3 myPID3.Compute(); // tính tốn đầu dc3 quaynguoc(); } if (tinhieu.startsWith("o")) { ngung(); } delay(10); } } } 63 Chương trình lập trình ứng dụng điều khiển điện thoại: 64 ... Mobile robot nhóm em chọn đề tài Mobile robot bánh di chuyển theo quỹ đạo, ứng dụng la bàn số cảm biến khoảng cách Dựa kiến thức tìm hiểu loại Mobile robot truyền thống, nhóm em ứng dụng thêm la bàn. .. máy tính (thiết kế quỹ đạo) kết hợp với Board mạch điều khiển để điều khiển Robot di chuyển theo quỹ đạo có sẵn Từ ứng dụng cơng việc vận chuyển, giám sát, xác định quỹ đạo tối ưu giúp Robot di... tổng quát sử dụng rộng rãi hệ thống điều khiển công nghiệp- điều khiển PID sử dụng phổ biến số điều khiển có phản hồi Một điều khiển PID tính tốn giá trị ‘sai số hiệu số giá trị thông số đo giá

Ngày đăng: 05/06/2019, 09:00

Từ khóa liên quan

Mục lục

  • NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

  • CHƯƠNG 1. TỔNG QUAN VỀ MOBILE ROBOT ĐIỀU KHIỂN THEO QUỸ ĐẠO

    • 1.1. Lịch sử nghiên cứu

      • 1.1.1. Giới thiệu chung về Robot

      • 1.1.2. Giới thiệu chung về robot omni

      • 1.2. Mục tiêu của đề tài

      • 1.3. Phương pháp thực hiện đề tài

      • CHƯƠNG 2. MÔ HÌNH TOÁN HỌC MOBILE ROBOT ĐIỀU KHIỂN THEO QUỸ ĐẠO

        • 2.1. Tính toán, lựa chọn phương pháp điều khiển

        • 2.2. Mô hình toán học hệ thống cơ khí

          • 2.2.1. Mô hình hóa robot

          • 2.2.2. Tính toán động học, động lực học cho robot

          • 2.2.3. Tính toán động học cho robot cho một số chuyển động cơ bản

          • 2.3. Mô hình toán học hệ thống điều khiển

            • 2.3.1. Bộ điều khiển động cơ PID

            • 2.3.2. Xây dựng mô hình động cơ điện một chiều dưới dạng hàm truyền

            • CHƯƠNG 3. TÍNH TOÁN, THIẾT KẾ ROBOT ĐIỀU KHIỂN THEO QUỸ ĐẠO

              • 3.1. Tính toán thiết kế hệ thống cơ khí

                • 3.1.1. Thiết kế phần đế và nắp robot omi

                • 3.1.2. Thiết kế khớp nối U

                • 3.1.3. Lựa chọn bánh xe omni

                • 3.1.4. Khớp nối bánh xe với động cơ

                • 3.1.5. Tính toán chọn động cơ

                • 3.2. Tính toán, thiết kế hệ thống điện, điện tử

                  • 3.2.1. Lựa chọn vi điều khiển trung tâm

                  • 3.2.2. Vi điều khiển Arduino Nano

                  • 3.2.3. Lựa chọn module bluetooth

                  • 3.2.4. Lựa chọn driver

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

Tài liệu liên quan