BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI ĐỒ ÁN TỐT NGHIỆP KHOA ĐIỆN CHUYÊN NGÀNH Công nghệ kĩ thuật Điện Điện tử ĐỀ TÀI Nghiên cứu xây dựng hệ thống điều khiển chuyển động cho robot di dộng Ng.
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI ĐỒ ÁN TỐT NGHIỆP KHOA: ĐIỆN CHUYÊN NGÀNH: Công nghệ kĩ thuật Điện-Điện tử ĐỀ TÀI: Nghiên cứu xây dựng hệ thống điều khiển chuyển động cho robot di dộng Người hướng dẫn: ThS Bùi Thị Khánh Hòa Sinh viên thực hiện: Lê Anh Hùng - 2018605224 Huỳnh Văn Khôi - 2018605180 HÀ NỘI, 2022 MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU LỜI CẢM ƠN TÓM TẮT NỘI DUNG ĐỒ ÁN CHƯƠNG TỔNG QUAN VỀ ROBOT DI ĐỘNG 1.1 Tổng quan rô-bốt tự hành 1.2 Hệ thống dẫn đường cho rô-bốt 14 1.2.1 Thành phần hệ thống dẫn đường .15 1.2.2 Điều khiển chuyển động cho rô-bốt 16 1.3 Kết luận 21 CHƯƠNG CÁC PHƯƠNG PHÁP ĐIỀU HƯỚNG RÔ BỐT TỰ HÀNH 22 2.1 Tổng quan chung 22 2.2 Mơ hình lực xã hội 23 2.2.1 Lực hút người tới điểm mục tiêu .24 2.2.2 Lực tương tác gây người khác môi trường .25 2.2.3 Lực tương tác gây đối tượng khác mơi trường 26 2.2.4 Thực thi Mơ hình lực xã hội 27 2.3 Mơ hình điều hướng tương hỗ lai ghép dùng vận tốc 28 2.3.1 Mơ hình điều hướng chướng ngại vật vận tốc 29 2.3.2 Mơ hình điều hướng tương hỗ dùng vận tốc 32 2.3.3 Tổng qt mơ hình điều hướng tương hỗ lai ghép dùng vận tốc .35 2.4 So sánh SFM HRVO 37 2.5 Kết luận chương 39 CHƯƠNG THIẾT KẾ VỀ CƠ KHÍ ROBOT 40 3.1 Thiết kế khí .40 3.1.1 Khung robot .40 3.1.2 Bánh xe 40 3.2 Thiết kế mạch điện tử 41 3.2.1 Sơ đồ khối hệ thống 41 3.2.2 Phân tích khối 42 CHƯƠNG PHẦM MỀM THIẾT KẾ .53 4.1 Bài toán di chuyển robot 53 4.2 Tránh vật cản độ cao 54 4.3 Lưu đồ thuật toán 55 4.4 Phần mềm mô 55 4.4.1 Giới thiệu chung phần mềm Matlab2017b 56 4.4.2 Hướng dẫn mô robot hút bụi MATLAB2017b 58 CHƯƠNG KẾT LUẬN VÀ ĐÁNH GIÁ .61 5.1 Kết luận 61 5.2 Đánh giá kết đạt 61 5.3 Hướng phát triển đề tài .61 PHỤC LỤC .62 TÀI LIỆU THAM KHẢO 72 DANH MỤC HÌNH ẢNH Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình 1-1 Rơ-bốt AGV sử dụng vận chuyển hàng hóa .9 1-2 Rô-bốt điều dưỡng bệnh viện nhà dưỡng lão 10 1-3 Một số loại rô-bốt di chuyển chân 11 1-4 Mơ hình rơ-bốt tự hành .12 1-5 Sơ đổ khối hệ thống dẫn đường cho rô-bốt .15 1-6 Những đề xây dựng quỹ đạo chuyển động rô-bốt 17 1-7 Phân loại xây dựng quỹ đạo chuyển động 18 2-1 Rô-bốt di chuyển môi trường đông đúc 22 2-2 Mơ hình hóa lực theo SFM 23 2-3 Vị trí tương đối robot A người B tốn 28 2-4 Cấu trúc hình học nón chạm 29 2-5 Cấu trúc hình học 30 2-6 Cấu trúc hình học VO, 31 2-7 Hiện tượng dao động sử dụng VO 32 2-8 Cấu trúc Hình học RVO B 33 2-9 Tổng quát hóa .34 2-10 Rơ-bốt lựa chọn vận tốc ưu thích 35 2-11 Cấu trúc Hình học HRVO 36 3-1 Đế Robot nhìn từ xuống .40 3-2 Bánh xe chủ động bánh xe điều hướng 41 3-3 Sơ đồ khối hệ thống 42 3-4 Cell Pin Ultrafire 18650 43 3-5 IC LM2576 44 3-6 Cấu tạo bên LM2576 44 3-7 Sơ đồ mạch nguồn cho motor 45 3-8 Khối nạp Pin 45 3-9 Cảm biến siêu âm SRF05 46 3-10 Sơ đồ Modun cảm biến SRF05 .46 3-11 SRF05 Timing Diagram Mode .47 3-12 Sơ đồ SRF04 48 3-13 SRF05 Timing Diagram Mode .48 3-14 Module TCRT5000 49 3-15 Module L298 version 51 3-16 Động giảm tốc + bánh xe chủ động 52 4-1 Các khoảng cách để chọn hướng cho Robot 54 4-2 Module cảm biến hồng ngoại TCRT5000 54 4-3 Lưu đồ thuật tốn chương trình 55 4-4 Giao diện MATLAB hình máy tính 58 DANH MỤC BẢNG BIỂU Bảng 1-1 Ký hiệu số loại rơ-bốt điển hình 13 Bảng 1-2 Sự khác xây dựng quỹ đạo cục toàn cục 19 Bảng 2-1 so sánh hiệu HRVO SFM hai tình .39 Bảng 3-1 Thơng số Arduino Uno R3 50 LỜI CẢM ƠN Trong suốt thời gian theo học Đại Học, chúng em nhận nhiều giúp đỡ quý thầy cơ, anh chị bạn bè Với lịng kính trọng biết ơn sâu sắc em xin gửi lời cám ơn chân thành đến: Ban giám hiệu trường đại học Công Nghiệp Hà Nội thầy cô khoa Điện dạy tạo điều kiện thuận lợi giúp đỡ chúng em trình học tập làm đồ án Chúng em xin chân thành cảm ơn Bùi Thị Khánh Hịa ln tận tâm nhiệt tình hướng dẫn q trình hồn thiện đồ án nhóm Tuy nhiên hạn chế kiến thức thời gian nên đồ án khơng tránh thiếu sót, chúng em kính mong nhận góp ý Thầy/Cơ để đồ án hồn thiện TÓM TẮT NỘI DUNG ĐỒ ÁN Ngày nay, với ứng dụng khoa học kỹ thuật, giới có chuyển biến rõ rệt ngày tiên tiến hơn, đại Sự phát triển công nghệ, đặc biệt công nghệ tự động tạo hàng loạt dây chuyền sản xuất, thiết bị máy móc đại với đặc điểm vượt trội xác cao, tốc độ nhanh, khả thích ứng, chun mơn hóa… ứng dụng rộng rãi công nghiệp đại Cùng với phát triển mạnh mẽ vũ bão khoa học kỹ thuật ngày nay, ngành robotic đóng vai trò quan trọng, tiên phong làm tảng cho lĩnh vực khoa học công nghệ tự động hoá khác Nhiều ứng dụng ngành nghề, lĩnh vực khác đòi hỏi cần phải trang bị thiết bị hoàn toàn tự động làm việc theo chương trình hay người điều khiển robot Thiết kế chế tạo robot kết hợp lĩnh vực máy tính, điện tử, viễn thơng, khí, phối hợp ứng dụng vi điều khiển hệ thống thơng tin liên lạc sóng vơ tuyến hình thành hướng nghiên cứu phát triển không ngừng khoa học kỹ thuật Với lý chúng em xin áp dụng vào đề tài: “ Nghiên cứu xây dựng hệ thống điều khiển chuyển động cho robot di động ” CHƯƠNG TỔNG QUAN VỀ ROBOT DI ĐỘNG Chương trình bày tổng quan rô-bốt tự hành, đặc điểm chuyển động rô-bốt chuyển động chân, rô-bốt chuyển động bánh hệ thống dẫn đường cho rô-bốt: thu thập xử lý thông tin (rô-bốt nhận thơng tin từ cảm biến trích xuất liệu có ý nghĩa); định vị xây dựng đồ (bản địa hóa mơi trường xung quanh rơ-bốt thành đồ xác định vị trí môi trường đấy); xây dựng quỹ đạo chuyển động (rô-bốt lựa chọn đường phù hợp tới vị trí mục tiêu); thực thi chuyển động (rơ bốt phải tính tốn vận tốc để điều khiển chuyển động rô-bốt để đạt quỹ đạo xây dựng) 1.1 Tổng quan rô-bốt tự hành Trong vài thập kỷ gần đây, rô-bốt tự hành (trong luận văn dùng thuật ngữ “rô-bốt") trở thành lĩnh vực nghiên cứu khoa học mở rộng nhanh Do khả động linh hoạt, rô-bốt ứng dụng cho nhiều nhiệm vụ khác giám sát khu vực, thăm dò hành tinh, tuần tra an ninh, hỗ trợ cứu nạn cứu hộ, dịch vụ cá nhân, dịch vụ y tế Trong công nghiệp, rô-bốt ứng dụng đa dạng để phối hợp với cánh tay rô-bốt thực nhiều nhiệm vụ lặp lại Điều không đem lại hiệu cao sản xuất cơng nghiệp mà cịn giảm nguy hiểm cho người lao động Những cánh tay rô-bốt gắn chặt vào vị trí cụ thể dây chuyền lắp ráp, di chuyển với tốc độ, độ xác cao liên tục thời gian dài để thực công việc lặp lặp lại hàn điểm, phun sơn hay môi trường độc hại nhà máy hạt nhân Trong ngành công nghiệp điện tử, bảng mạch có kích thước nhỏ, gắn loại linh kiện với độ xác cao trở nên phổ biến nhờ tham gia cánh tay rô-bốt Các thành phần rô-bốt gồm điều khiển chuyển động, cấu chấp hành vận động, cảm biến phục vụ nhận thức môi trường, hệ thống dẫn đường, điều hướng Nhận thức môi trường dựa cảm biến liên quan đến lĩnh vực phân tích, xử lý tín hiệu, thị giác máy tính kỹ thuật nhận dạng Bài toán điều hướng yêu cầu kiến thức thuật tốn lập trình quỹ đạo, định vị, tìm đường bám đường Nội dung luận văn tập trung nghiên cứu rô-bốt hệ thống điều khiển chuyển động cho rơ-bốt mơi trưởng có nhiều vật cản chuyển động Rơ-bốt di chuyển giới thực để hoàn thành mục tiêu mà khơng có tương tác người quan sát môi trường xung quanh để chủ động phịng tránh Hình 1-1 Rơ-bốt AGV sử dụng vận chuyển hàng hóa Rơ-bốt sử dụng bánh, chân để di chuyển mặt đất sử dụng cánh thiết bị bay Đồng thời, rơ-bốt di chuyển mơi trưởng tịa nhà, phịng, nhà máy, bệnh viện thi điều khơng thể tránh khỏi đẩy vật cản người, bàn, ghế, tù Rơ-bốt di chuyển tới vị trí mong muốn môi trường trang bị hệ thống có khả xác định vị trí vật cần Từ thông tin đấy, thuật tốn 10 xây dựng, rơ-bốt thực điều khiển phận chuyển động để tránh va chạm với vật cản tới vị trí mong muốn cách an tồn xác Rơ-bốt ngày có nhiều ý nghĩa lĩnh vực công nghiệp, thương mại, y tế, ứng dụng khoa học phục vụ đời sống người Có thể kể tới rơ-bốt AGV sử dụng vận chuyển hàng hóa, nguyên vật liệu đến địa điểm đánh dấu sẵn mà không cần đến can thiệp người Hình 1.1, rơ-bốt điều dưỡng bệnh viện nhà dưỡng lão Hình 1.2; rơ-bốt hoạt động môi trường đặc biệt, nhà máy hạt nhân rơ-bốt thám hiểm; rơ-bốt làm việc ngồi vũ trụ; rơ-bốt hút bụi, cắt cỏ, hay rô-bốt hoạt động lĩnh vực sản xuất nông nghiệp v.v (a) (b) (c) (d) Hình 1-2 Rơ-bốt điều dưỡng bệnh viện nhà dưỡng lão Căn theo theo chức năng, theo dạng đường hay theo cách thức di chuyển, rô-bốt phân chia thành loại khác B2: Khi giao diện MATLAB xuất hiện, ta click vào Add - Ons => tiếp tục chọn Manage Add – Ons sau xuất giao diện sau B3: Click chuột phải vào biểu tượng Sim.I.am, sau chọn open folder xuất giao diện B4: Click chuột phải vào biểu tượng simiam.mlappinstall ta cài vào phần App Tiếp đến ta chọn App, sau click vào biểu tượng Sim.I.am xuất giao diện B5: Click vào biểu tượng Play giao diện mô CHƯƠNG KẾT LUẬN VÀ ĐÁNH GIÁ 5.1 Kết luận Trong thời gian tuần hoàn thiện đồ án, giúp đỡ cô ThS Bùi Thị Khánh Hịa thầy khoa nhóm đạt số kết định việc áp dụng kiến thức học trường lớp vào giải vấn đề thực tế Do chưa có nhiều kinh nghiệm việc gia cơng khí, thiết kế mô nên tránh khỏi thiếu sót hạn chế Chúng em mong có góp ý từ phía thầy để hồn thiện đề tài nhóm 5.2 Đánh giá kết đạt Một số kết đạt nhóm q trình hồn thiện đồ án: - Xây dựng thiết kế mơ hồn thiện vận hành đáp ứng yêu cầu đặt ban đầu đề tài - Xây dựng sơ đồ khối lưu đồ thuật toán hệ thống - Ứng dụng thành thạo kiến thức đào tạo trường lớp Tuy đặt số kết định nhóm chúng em nhận thấy mơ hình tồn số hạn chế như: - Hệ thống có quy mơ nhỏ - Thiết kế hệ thống mơ chưa chỉnh chu hạn chế kiến thức kĩ nhóm 5.3 Hướng phát triển đề tài Để hồn thiện đề tài nhóm chúng em đề xuất số phương án phát triển sau: - Thiết kế mơ hình chun nghiệp Điều chỉnh phần mềm phần cứng để hệ thống tối ưu CHƯƠNG PHỤC LỤC Hàm xác định khoảng cách từ cảm biến siêu âm đến vật cản int objectDistance_cm (byte angle) { srf05.writ e(angle); delay(50 0); unsigned long duration;//biến đo thời gian int distance;//biến lưu khỏag cách /* phát xung từ chân trig */ digitalWrite(trig,0);//tắt chân trig delayMicroseconds(2); digitalWrite(trig,1);//phát xung từ chân trig delayMicroseconds(5);// xung có độ dài microSeconds digitalWrite(trig,0);//tắt chân trig /*tính tốn thời gian*/ duration = pulseIn(echo,HIGH);//đo độ rộng xung HIGH chân echo ( http://arduino.vn/reference/pulsein ) distance = int(duration/2/29.412);//tính khoảng cách đến vật //delay(200); return distance; } Hàm trạng thái dịch chuyển Robot void robotMover (byte inR1, byte inR2, byte inL1, byte inL2, byte action) { /* inR1 inR2 chân tín hiệu động bên phải inL1 inL2 chân tín hiệu động bên trái action= đứng yên action =1 thẳng action =2 lùi lại action =3 quaytrái action =4quayphải action =5 rẽ trái action =6 rẽ phải action =7 rẽ lùi trái action =8 rẽ lùi phải */ switch (action) { case 0:// không di chuyển motorControlNoSpeed(inR1, inR2, 0); motorControlNoSpeed(inL1, inL2, 0); break; case 1://đi thẳng motorControlNoSpeed(inR1, inR2, 1); motorControlNoSpeed(inL1, inL2, 1); break; case 2:// lùi lại motorControlNoSpeed(inR1, inR2, 2); motorControlNoSpeed(inL1, inL2, 2); break; case 3:// quay trái motorControlNoSpeed(inR1, inR2, 1); motorControlNoSpeed(inL1, inL2, 2); break; case 4:// quay phải motorControlNoSpeed(inR1, inR2, 2); motorControlNoSpeed(inL1,i nL2,1); break; case 5:// rẽ trái motorControlNoSpeed(inR1, inR2, 1); motorControlNoSpeed(inL1, inL2, 0); break; case 6:// rẽ phải motorControlNoSpeed(inR1, inR2, 0); motorControlNoSpeed(inL1, inL2, 1); break; case 7:// rẽ lùi trái motorControlNoSpeed(inR1, inR2, 2); motorControlNoSpeed(inL1, inL2, 0); break; case 8:// rẽ lùi phải motorControlNoSpeed(inR1, inR2, 0); motorControlNoSpeed(inL1, inL2, 2); break; default: action = 0; } } Hàm gán tín hiệu điều khiển động void motorControlNoSpeed (byte in1,byte in2, byte direct) { // in1 and in2 chân tín hiệu để điều khiển motor // tốc độ mặc định lớn // direct includes: // // 0:Dừng 1:đi theo hƣớng thứ // 2:đi theo hƣớng lại switch (direct) case 0:// Dừng không quay digitalWrite(in1,L OW); digitalWrite(in2,L OW); break; case 1:// Quay chiều thứ digitalWrite(in1,H IGH); digitalWrite(in2,L OW); break; case 2:// Quay chiều thứ digitalWrite(in1,L OW); digitalWrite(in2,H IGH); break; //default: } } Hàm điều khiển void objectAvoider (byte inR1, byte inR2, byte inL1, byte inL2, byte allow_distance, int turn_back_time) {robotMover(inR1,inR2,inL1,inL2,1); Serial.println("Tiến"); //delay(10); int front_distance=objectDistance_cm (90); int left_distance; int right_distan ce; int max_distanc e; int sensorValue = digitalRead(10); delay(10); if ((front_distance > allow_distance)&&(sensorValue==0)) { robotMover(inR1,inR2,inL1, inL2,1); Serial.println("Tiến"); delay(10); } if ((front_distance