Nghiên cứu công cụ ros điều khiển cho robot tự hành phục vụ trong nhà máy công nghiệp

77 16 0
Nghiên cứu công cụ ros điều khiển cho robot tự hành phục vụ trong nhà máy công nghiệp

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ NGHIÊN CỨU CÔNG CỤ ROS ĐIỀU KHIỂN CHO ROBOT TỰ HÀNH PHỤC VỤ TRONG NHÀ MÁY CÔNG NGHIỆP NGUYỄN VĂN HIỂU Hieu.NVCB190045@sis.hust.edu.vn Ngành Kỹ Thuật Cơ Điện Tử Giảng viên hướng dẫn: TS Nguyễn Thị Ngọc Huyền Viện: Cơ Khí Chữ ký GVHD HÀ NỘI, 03/2021 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ NGHIÊN CỨU CÔNG CỤ ROS ĐIỀU KHIỂN CHO ROBOT TỰ HÀNH PHỤC VỤ TRONG NHÀ MÁY CÔNG NGHIỆP NGUYỄN VĂN HIỂU Hieu.NVCB190045@sis.hust.edu.vn Ngành Kỹ Thuật Cơ Điện Tử Giảng viên hướng dẫn: TS Nguyễn Thị Ngọc Huyền Viện: Cơ Khí Chữ ký GVHD HÀ NỘI, 04/2021 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn : Nguyễn Văn Hiểu Đề tài luận văn: Nghiên cứu công cụ ROS điều khiển cho rô bốt tự hành phục vụ nhà máy công nghiệp Chuyên ngành: Kỹ thuật Cơ Điện Tử Mã số học viên: CB190045 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày… .………… với nội dung sau: - Nên bổ sung mở đầu: tính cấp thiết, phạm vị đối tượng nghiên cứu tóm tắt nội dung luận văn - Nên bổ sung trang từ cụm từ viết tắt, đặt biệt cụm ROS - Chương 2: +Cần có phân tích rõ có sở chọn điều khiển, lựa chọn cảm biến dò đường, từ đưa tốn tránh vật cản robot +Cần rõ tài liệu tham khảo tính chọn động mục 2, 3,4 - Hướng phát triển đề tài cần trình bày rõ (chưa rõ câu mục này) - Phụ lục “Chương trình Arduino” dùng cho việc cần rõ luận văn - Trang lời cảm ơn, có nên để sau luận văn - Cần trích dẫn đủ tài liệu tham khảo bổ sung hầu hết số dẫn dùng hình bảng Ngày Giáo viên hướng dẫn tháng năm Tác giả luận văn CHỦ TỊCH HỘI ĐỒNG ĐỀ TÀI LUẬN VĂN Nghiên cứu công cụ ROS điều khiển cho robot tự hành phục vụ nhà máy công nghiệp Lời cảm ơn Trong suốt thời gian thực đề tài này, em nhận nhiều quan tâm, giúp đỡ q thầy cơ, gia đình bạn bè Em xin gửi lời cảm ơn sâu sắc đến thầy cô Bộ môn Máy Ma sát học – Viện Cơ Khí – Trường Đại Học Bách Khoa Hà Nội Đặc biệt hết quan tâm tận tình TS Nguyễn Thị Ngọc Huyền, người trực tiếp hướng dẫn em thời gian làm luận văn Em xin chân thành cảm ơn! Tóm tắt nội dung luận văn Trong luận văn này, việc nghiên cứu công cụ ROS điều khiển cho robot tự hành phục vụ nhà máy công nghiệp chia làm chương: Chương 1: Tổng quan robot tự hành công nghiệp Trong chương này, luận văn thể tình hình thực tiễn robot tự hành thực tế sản xuất Để tăng tính hiệu sử dụng robot, cần nâng cao khả giám sát điều khiển công cụ mới, điển hình ROS Việc ứng dụng cơng cụ cần thực nghiệm nên em tiến hành xây dựng mơ hình robot Chương 2: Thiết kế hệ thống điều khiển cho xe tự hành Trong chương này, nội dung tập trung xây dựng phương pháp thiết kế tích hợp hệ thống thực nghiệm robot tự hành kết luận văn Chương gồm nội dung sau: -Tính tốn thiết kế hệ thống khí, truyền động robot -Thiết kế hệ thống điều khiển cho robot -Tích hợp ứng dụng ROS vào điều khiển robot Chương 3: Xây dựng mơ hình kết mô Kết thiết kế liệu mơ Một mơ hình mơ xây dựng rút kết luận Học viên Ký ghi rõ họ tên MỤC LỤC CHƯƠNG TỔNG QUAN VỀ ROBOT TỰ HÀNH TRONG CÔNG NGHIỆP 1.1 Định nghĩa AGV 1.2 Lịch sử phát triển AGV 1.3 Tổng quan 1.4 1.3.1 Phương tiện 1.3.2 Hệ thống Các nghiên cứu công bố: CHƯƠNG THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN CHO ROBOT TỰ HÀNH 16 2.1 Phân tích yêu cầu xe tự hành dùng nhà máy cơng nghiệp lựa chọn loại mơ hình xe tự hành 16 2.2 2.3 2.4 2.1.1 Phân tích u cầu nhà máy cơng nghiệp 16 2.1.2 Lựa chọn loại mơ hình 17 Phương án thiết kế khí 18 2.2.1 Lựa chọn cấu lái 18 2.2.2 Lựa chọn truyền 20 Phương án thiết kế điều khiển 24 2.3.1 Lựa chọn điều khiển 25 2.3.2 Bài toán tránh vật cản 26 2.3.3 Tính chọn động 27 2.3.4 Lựa chọn Drive điều khiển động 29 2.3.5 Phương pháp điều chế độ rộng xung (PWM) 30 2.3.6 robot Ứng dụng giải thuật PID kết hợp với phương pháp PWM 31 2.3.7 Bài toán đọc vị trí trạm 33 2.3.8 Bài toán truyền nhận liệu 34 Tổng quan hệ điều hành Robot (ROS) 34 2.4.1 ROS File system 35 2.4.2 ROS Computation Graph 36 2.4.3 Ứng dụng công cụ ROS cho xe tự hành(Tránh vật cản) 38 CHƯƠNG XÂY DỰNG MƠ HÌNH VÀ KẾT QUẢ MÔ PHỎNG 44 3.1 3.2 Phương pháp thực nghiệm 44 3.1.1 Yêu cầu thực tế nhà máy 44 3.1.2 Sơ đồ mô áp dụng : 44 Kết 48 TÀI LIỆU THAM KHẢO 52 DANH MỤC HÌNH VẼ Hình 1.1 AGV kéo hàng nhà máy[1] Hình 1.2 Xe chở AGV dùng hệ thống băng chuyền[1] Hình 1.3 AGV dạng đẩy nhà máy sản xuất khí[1] Hình 1.4 AGV dạng xe nâng[1] Hình 1.5 Phân vùng an toàn cho AGV[2] Hình 1.6 Hệ thống an toàn thiết bị AGV[2] Hình 1.7 Hệ thống kho hàng Kiva Hình 1.8 Sơ đồ tháp hoạt động AGV[2] Hình 1.9 Mơ hình 3D AGV[3] Hình 1.10 Sơ đồ nguyên lí hoạt động AGV[3] Hình 1.11 Màn hình điều khiển AGV[3] Hình 1.12 Sơ đồ mô AGV[3] Hình 1.13 Sơ đồ khối phần cứng AGV[4] Hình 1.14 Sơ đồ khối phần mềm AGV[4] 10 Hình 1.15 Thiết kế 3D[5] 10 Hình 1.16 Kết kiểm tra vị trí[4] 10 Hình 1.17 Kiểm tra vật cản[4] 11 Hình 1.18 Kiểm tra bám đường[4] 11 Hình 1.19 Kiểm tra gắp đặt hàng[4] 11 Hình 1.20 Hình ảnh thực tế robot tự hành[5] 12 Hình 1.21 Sơ đồ kết nối thành phần hệ thống[5] 13 Hình 1.22 Vị trí thiết bị khung robot[5] 13 Hình 1.23 Sơ đồ khối hệ thống phần mềm điều khiển[5] 14 Hình 1.24 Hình ảnh thực tế đồ 2D[5] 14 Hình 2.1 Layout nhà máy 17 Hình 2.2 Xe AGV dạng xe chở 18 Hình 2.3 Robot Pioneer 3DX[6] 18 Hình 2.4 Robot Athena sử dụng cấu lái xe bánh[7] 19 Hình 2.5 DEWBOT XIII sử dụng cấu lái đồng bánh[8] 19 Hình 2.6 Bộ truyền đai[9] 20 Hình 2.7 Bộ truyền đai răng[9] 21 Hình 2.8 Bộ truyền xích[9] 21 Hình 2.9 Bộ truyền bánh răng[9] 22 Hình 2.10 Sơ đồ ngun lý mơ hình xe tự hành 23 Hình 2.11 Xe vào đường rẽ 24 Hình 2.12 Xe quay chỗ 24 Hình 2.13 Sơ đồ khối điều khiển chung hệ thống 24 Hình 2.14 Arduino Mega 2560[10] 25 Hình 2.15 Cảm biến siêu âm HC-SR05[11] 26 Hình 2.16 Bánh xe dẫn động 27 Hình 2.17 Sơ đồ phân tích lực 27 Hình 2.18 Động 57BL03A DC servo có giảm tốc[12] 29 Hình 2.19 Mạch cơng suất động DC Hbr-M công suất 200(W)[13] 30 Hình 2.20 Giản đồ thời gian xung PWM 30 Hình 2.21 Sơ đồ khối giải thuật PID Robot 31 Hình 2.22 Lưu đồ thuật tốn hiệu chỉnh thông số PID 33 Hình 2.23 Modul đọc thẻ RC522[14] 33 Hình 2.24 Mơ hình xe thiết kế Solidwork 1- Cảm biến tiệm cận, 2- Cảm biến siêu âm, 3-Mạch điều khiển Arduino 34 Hình 2.25 Mô tả chế quản lý thông số kỹ thuật Master.[15] 36 Hình 2.26 Mơ hình giao tiếp ROS.[15] 37 Hình 2.27 ROS Repository repository tồn tài ngun ROS.[15] 38 Hình 2.28 Computation Graph Navigation Stack.[15] 38 Hình 2.29 Costmap function[21] 40 Hình 2.30 Recovery Behavior move_base[17] 42 Hình 2.31 Chạy quét Map[16] 42 Hình 2.32 Kết qt map mơ hình nhà xưởng 43 Hình 3.1 Sơ đồ xưởng sản xuất 44 Hình 3.2 Sơ đồ khối mô [18] 45 Hình 3.3 Sơ đồ thuật tốn 46 Hình 3.4 Sơ đồ khối thuật tốn dẫn đường bán 47 Hình 3.5 Sơ đồ khối thuật toán dẫn đường thẳng 48 Hình 3.6 Kết số chuyến hàng thực thay đổi AGVt, thuật toán điều khiển 49 Hình 3.7 Kết thời gian vận chuyển trung bình thay đổi số AGV, thuật toán điều khiển 49 Hình 3.8 Kết thời gian chờ trung bình thay đổi số AGV, thuật tốn điều khiển 50 DANH MỤC BẢNG BIỂU Bảng 1.1 Định vị vị trí đồ[6] 15 Bảng 1.2 Bảng đánh giá khoảng cách đường đồ thực tế phòng [6] 15 Bảng 2.1 Thống kê yêu cầu từ nhà máy 16 Bảng 2.2 Thông số kỹ thuật Arduino Uno[10] 26 Bảng 3.1 Thống kê yêu cầu từ nhà máy 44 TÓM TẮT LUẬN VĂN THẠC SĨ Đề tài: Nghiên cứu công cụ ROS điều khiển cho robot tự hành phục vụ nhà máy công nghiệp Tác giả luận văn: Nguyễn Văn Hiểu Khóa: 2019B Người hướng dẫn: TS Nguyễn Thị Ngọc Huyền Từ khóa (keyword): robot, ROS, hệ thống giám sát điều khiển Nội dung tóm tắt: a)Lý chọn đề tài: Ngày nay, với phát triển sản xuất công nghiệp 4.0, yêu cầu đặt cho việc điều khiển giám sát robot ngày quan trọng Để đáp ứng yêu cầu cần lựa ứng dụng tảng công nghệ tiên tiến vào việc điều khiển robot, nâng cao độ xác, tính hiệu Trong tảng này, hệ điều hành robot, ROS ứng dụng rộng rãi thực tế sản xuất Việc nghiên cứu làm chủ hệ điều hành giúp ta nâng cao hiệu sản xuấ b)Mục đích nghiên cứu luận văn, đối tượng, phạm vi nghiên cứu Thiết kế robot di động, sử dụng cảm biến khoảng cách cảm biến khác với thuật toán định hướng ROS để xây dựng đồ có đặc tính phẳng tự di chuyển đồ tới vị trí đặt trước, đồng thời xử lý tránh vật cản chưa biết Với mục đích phát triển sâu xa trở thành robot cá nhân thực nhiều tác vụ nhằm giảm tải công việc cho người quét dọn, hút bụi, chuyển đồ,… phạm vi nhà nhà máy cơng nghiệp c)Tóm tắt đọng nội dung đóng góp tác giả Chương 1: Tổng quan robot AGV sản xuất Trong chương này, luận văn thể tình hình thực tiễn robot AGV thực tế sản xuất Để tăng tính hiệu sử dụng robot, cần nâng cao khả giám sát điều khiển cơng cụ mới, điển hình ROS Việc ứng dụng công cụ cần thực nghiệm nên em tiến hành xây dựng mơ hình robot Chương 2: Thiết kế hệ thống điều khiển cho robot tự hành Trong chương này, nội dung tập trung xây dựng phương pháp thiết kế tích hợp hệ thống thực nghiệm robot AGV kết luận văn Chương gồm nội dung sau: -Tính tốn thiết kế hệ thống khí, truyền động robot -Thiết kế hệ thống điều khiển cho robot -Tích hợp ứng dụng ROS vào điều khiển robot Chương 3: Xây dựng mơ hình kết mơ Kết thiết kế liệu mô xác định thuật toán điều khiển, số lượng AGV áp dụng d)Phương pháp nghiên cứu 53 Thiết kế tích hợp hệ thống: Mơ hình robot nghiên cứu q trình điều khiển giám sát thơng qua hệ điều hành ROS u cầu tích hợp: Để đảm bảo chức hệ thống, em sử dụng phương pháp thiết kế tích hợp kết cấu khí, hệ thống truyền động hệ thống giảm sát điều khiển cho đảm bảo hệ thống hoạt động chức tối ưu không gian Để thực điều cần có phân tích, đánh giá yêu cầu kỹ thuật, yêu cầu chức năng, sau phân tích khả tích hợp Từ đó, đưa tính tốn thiết kế phù hợp cho cụm e)Kết luận Đề tài ứng dụng giải thuật điều khiển định hướng hệ điều hành ROS Ứng dụng camera việc quét đồ phát vật cản giúp AGV xử lý hoạch định đường môi trường nhà máy Viêc ứng dụng giải thuật điều khiển, sử dụng công cụ hỗ trợ Gazebo simulator, Rvip vào tính tốn áp dụng AGV vào điều kiện thực tế nhà xưởng khác cách nhanh chóng, giảm thời gian, chi phí thử nghiệm Hướng phát triển Kết luận văn mức mô phỏng, áp dụng với mơ hình nhà xưởng cố định nên hướng phát triển sau - Triển khai thực tế vào nhà xưởng yếu tố nhiễu, ảnh hưởng đến độ xác, ổn định AGV cần xem xét - Mở rộng kết mô với kích thước nhà xưởng, điểm u cầu hàng(phịng tin cậy,phịng linh kiện, bảo dưỡng,….) để áp dụng tồn nhà máy - Ta nghiên cứu khả phân tán computational graph ROS nhiều máy tính liệu truyền qua mạng tới node máy -Để tăng chất lượng odometry, ta tích hợp thêm cảm biến IMU chun dụng GPS ROS Với khả ước lượng tọa độ xác hơn, ta tăng độ xác q trình SLAM tạo đồ cho robot 54 PHỤ LỤC Chương trình Arduino: #include #include #include //===================Define of Motor drive================ #define IN1 //analog Motor R #define IN2 22 //digital Motor R #define IN3 //analog Motor L #define IN4 24 //digital Motor L #define MAX_SPEED 255 //từ 0-255 #define MIN_SPEED //========================Define of Sensor================ #define Line_Ss_R 28 // at HIGH when don't have metal #define Line_Ss_L 30 // at HIGH when don't have metal #define Line_Ss_C 32 // at HIGH when don't have metal #define Trig 36 #define Echo 34 #define Green 33 #define Blue 35 #define Siren 37 #define SS_PIN 53 #define RST_PIN MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class 55 MFRC522::MIFARE_Key key; byte nuidPICC[4]; short int Speed_Def = 45; float Ratio = 0; //================== SET UP ============// void setup() { Serial.begin(9600); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode (Line_Ss_L, INPUT_PULLUP); pinMode (Line_Ss_R, INPUT_PULLUP); pinMode (Siren, OUTPUT); pinMode (Blue, OUTPUT); pinMode (Green, OUTPUT); pinMode (Trig, OUTPUT); pinMode (Echo, INPUT); SPI.begin(); // Init SPI bus rfid.PCD_Init(); // Init MFRC522 } 56 int a; String ID = ""; String ReadString; String ReadString_Old; int Station_Number = 0; //======================= LOOP ====================// void loop() { while (read_Range() < 20) { interrupt(); Serial.println("have obj at front of your car"); } Station_Number = read_Serial(); station_Request(Station_Number); ReadString = ""; //follow_Line(); //delay(5); } //====== Function Drive Stop At The Station Follow Request =====// void station_Request(int Station_Number) { if (read_Serial() == Station_Number) { while (read_RFID() == Station_Number && read_Serial() == Station_Number) { interrupt(); Serial.println(Station_Number); 57 if (read_Serial() == 0) { break; } delay(1); } //drive_Motors(100, 100, 1); //Serial.println(Station_Number); follow_Line(); } while (read_Serial() == 0) { drive_Motors(0, 0, 1); //Serial.println(read_Serial()); break; } } //========== Read Serial Com ===========// int read_Serial() { //while(!Serial.available()) {} while (Serial.available()) { delay(10); if (Serial.available() > 0) { char c = Serial.read(); //gets one byte from serial buffer ReadString += c; //makes the string readString } ReadString_Old = ReadString; 58 } return (ReadString_Old.toInt()); } //============= Interrupt ===============// void interrupt() { drive_Motors(0, 0, 5); digitalWrite(Siren, HIGH); delay(200); digitalWrite(Siren, LOW); delay(300); } //================== PID ===============// int Sensor_Err = 0; int Last_Err = 0; int Target = 0; float Kp = 10; float Ki = 0.5; float Kd = 2; int Time = 0; float Duration = 0; int Sum_Err = 0; float D_Err = 0; int Err_PID = 0; float PID_Value = 0; float PID(int err) { 59 int Now = millis(); Duration = (Now - Time) * 0.02; Err_PID = Target - err; Sum_Err += (Err_PID * Duration); D_Err = float((Err_PID - Last_Err) / Duration); // calculate PID PID_Value = Kp * float(Err_PID) + Ki * float(Sum_Err) + Kd * float(D_Err); if (err == 0) { Sum_Err = 0; } //Serial.println(PID_Value); Last_Err = Err_PID; Time = Now; return PID_Value * 3; } //============ Go follow line ==============// int Err = 0; void follow_Line() { short int Left_Speed = Speed_Def; short int Right_Speed = Speed_Def; while (1) { if (read_Ss_Line_R() == false && read_Ss_Line_L() == false && read_Ss_Line_C() == true) { Err = 0; break; } 60 else if (read_Ss_Line_R() == true && read_Ss_Line_L() == false && read_Ss_Line_C() == true) { Err = 2; break; } else if (read_Ss_Line_R() == true && read_Ss_Line_L() == false && read_Ss_Line_C() == false) { Err = 3; break; } else if (read_Ss_Line_R() == false && read_Ss_Line_L() == true && read_Ss_Line_C() == false) { Err = -3; break; } else if (read_Ss_Line_R() == false && read_Ss_Line_L() == true && read_Ss_Line_C() == true) { Err = -2; break; } else if (read_Ss_Line_R() == false && read_Ss_Line_L() == false && read_Ss_Line_C() == false) { Err = 0; break; } } Ratio = (PID(Err)); Left_Speed = Speed_Def - Ratio; Right_Speed = Speed_Def + Ratio; //Serial.println(Left_Speed); 61 //Serial.println(Right_Speed); drive_Motors(Left_Speed, Right_Speed, 5); } //=========RFID Read =======================// int Id = 0; int read_RFID() { // put your main code here, to run repeatedly: if ( ! rfid.PICC_IsNewCardPresent()) //Serial.println(F("the card isn't detected.")); return; if ( ! rfid.PICC_ReadCardSerial()) return; //Serial.println(F("A new card has been detected.")); for (byte i = 0; i < 4; i++) { nuidPICC[i] = rfid.uid.uidByte[i]; } for (int i = 0; i < ; i++) { ID = ID + nuidPICC[i]; } Id = ID.toInt(); if (Id == 20453) Id = 5; if (Id == -21416) Id = 3; if (Id == -11600) Id = 2; if (Id == 13656) 62 Id = 1; if (Id == -8421) Id = 4; //Serial.println(ID); ID = ""; if (read_Serial() ==1000) Id = 1000; return Id; } //====================MotorControl====================// void drive_Motors(short int L_Speed, short int R_Speed, int Drive_time) { if (L_Speed == & R_Speed == 0) { motor_L_Stop(); motor_R_Stop(); //delay(Drive_time); } else { if (L_Speed < 35) L_Speed = 35; if (R_Speed < 35) R_Speed = 35; motor_R_Go(R_Speed); motor_L_Go(L_Speed); } } void motor_R_Stop() { 63 digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); } void motor_L_Stop() { digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } void motor_R_Back(int speed) { //speed: từ - MAX_SPEED speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm khoảng từ - MAX_SPEED analogWrite(IN1, 255 - speed); digitalWrite(IN2, HIGH);// chân khơng có PWM } void motor_R_Go(int speed) { speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm khoảng từ - MAX_SPEED analogWrite(IN1, speed); digitalWrite(IN2, LOW);// chân khơng có PWM } void motor_L_Back(int speed) { //speed: từ - MAX_SPEED speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm khoảng từ - MAX_SPEED analogWrite(IN3, speed); digitalWrite(IN4, LOW);// chân PWM } 64 void motor_L_Go(int speed) { speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm khoảng từ - MAX_SPEED analogWrite(IN3, 255 - speed); digitalWrite(IN4, HIGH);// chân khơng có PWM } //================ Sensor Line =====================// bool read_Ss_Line_R() { if (digitalRead(Line_Ss_R) == 0) return true; else return false; } bool read_Ss_Line_L() { if (digitalRead(Line_Ss_L) == 0) return true; else return false; } bool read_Ss_Line_C() { if (digitalRead(Line_Ss_C) == 0) return true; else return false; } //=============== Sensor range ==================// 65 int read_Range() { unsigned long duration; //bien thoi gian, kieu du lieu cua micro int distance; //bien khoang cach //phat xung tu chan trig digitalWrite(Trig, LOW); //tat chan trig delayMicroseconds(2); digitalWrite(Trig, HIGH); //phat xung tu chan trig delayMicroseconds(10); digitalWrite(Trig, LOW); //tinh toan thoi gian duration = pulseIn(Echo, HIGH); distance = int(duration / / 29.412); return distance; } //================= Blink Led =======================// void green_Blink() { digitalWrite(Green, HIGH); delay(20); digitalWrite(Green, LOW); delay(20); } void blue_Blink() { digitalWrite(Blue, HIGH); delay(20); 66 digitalWrite(Blue, LOW); delay(20); } 67 ... dung luận văn Trong luận văn này, việc nghiên cứu công cụ ROS điều khiển cho robot tự hành phục vụ nhà máy công nghiệp chia làm chương: Chương 1: Tổng quan robot tự hành công nghiệp Trong chương... 1.4 Các nghiên cứu công bố: Nghiên cứu xe tự hành( AGV) điều khiển PLC Một nghiên cứu nước vào năm (2019) [4]đã nghiên cứu thiết kế mơ hình robot tự hành có điều khiểu ROS ứng dụng nhà máy sản... 3-Mạch điều khiển Arduino 2.4 Tổng quan hệ điều hành Robot (ROS) Hệ điều hành robot (ROS: Robot Operating System) hệ điều hành dành cho robot, dùng cho ứng dụng robot Về bản, ROS có khả cần thiết cho

Ngày đăng: 07/12/2021, 19:24

Mục lục

  • MỤC LỤC

  • CHƯƠNG 1.

  • CHƯƠNG 2.

  • CHƯƠNG 3.

  • KẾT LUẬN

  • KẾT LUẬN

  • TÓM TẮT LUẬN VĂN THẠC SĨ

  • PHỤ LỤC

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

Tài liệu liên quan