Tải bản đầy đủ (.pdf) (36 trang)

đồ án tốt nghiệp thiết kế robot tự hành bám line theo quỹ đạo đặt trước

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.95 MB, 36 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VINHKHOA ĐIỆN

NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA------

<b>ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ ROBOT TỰ HÀNH BÁM LINE</b>

<b>THEO QUỸ ĐẠO ĐẶT TRƯỚC</b>

<i><b>Giảng viên hướng dẫn: TS. Thái Hữu NguyênSinh viên thực hiện</b></i><b>: Nguyễn Ngọc Mạnh</b>

Nghệ An - 2023

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b> NHIỆM VỤ ĐỒ ÁN/LUẬN VĂN/TIỂU LUẬN TỐT NGHIỆP</b>

Họ tên sinh viên: Nguyễn Ngọc Mạnh Mã SV: 1405190001Hệ đào tạo: Đại học

Lớp: DHTDHCK14A1 Ngành: Tự Động HóaKhoa: Điện

[2]: Caroline Rees, iRobot Wins $7.2m Contract to Supply PackBot Robots to Brazilian government, < irobot-wins-7-2m-contract-to-supply-packbot-robots-to-brazilian-government/>.

[3]: Robot studies shed fast light on insect evolution, < 22/2/2017.

[4]: Anthony Cuthbertson , Obot dog spotmini from boston dynamics can open doors with its jaw, < opens- door-its-jaw-804613>, 2/13/2018.

[5]: AGV Navigation – Laser Navigation Technology, < 2/ >.[6]: Guidance systems, < products/ agv- automated-guided-vehicles-1/guidance-systems>

[7]: Navigation of automated guided vehicles using magnet spot guidance method,< [8]: January 2004 - Mars Rovers Landed, < directorates/ heo/scan/images/history/January2004.html>.

[10]: Toshiba’z ‘scorpion’ robot will look into Fukushima reactor,

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

< fukushima-2015jun30-story.html>, 30/6/2015.

[11]: So sánh Xiaomi Roborock Gen 2 và Gen 3, < roborock-gen-2-va-xiaomi-gen-3/>.

xiaomi-[12]: iRobot 510 PackBot Multi-Mission Robot, < projects/irobot-510-packbot-multi-mission robot/>.

[13]: Comercial Service Robot Intelligent Robot for Businesses Catering Restaurant Service Waiter Robot Deliver, < Comercial- Service-Robot-Intelligent-Robotfor_60648564885.html>.

<b>3. Nội dung phần thuyết minh </b>

CHƯƠNG 3: THIẾT KẾ LẬP TRÌNH VÀ GIẢITHUẬT TỐN DỊ LINE VÀ PID ĐIỀU KHIỂNĐỘNG CƠ

CHƯƠNG 3: THIẾT KẾ LẬP TRÌNH VÀ GIẢITHUẬT TỐN DỊ LINE VÀ PID ĐIỀU KHIỂNĐỘNG CƠ

15/3/2023

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

4 CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 15/4/2023

<b>6. Ngày giao nhiệm vụ Đồ án/Luận văn/Tiểu luận tốt nghiệp: Ngày …. tháng …..</b>

năm 20….

<b> THÁI HỮU NGUYÊN</b>

Bản nhiệm vụ Đồ án/Luận văn/Tiểu luận tốt nghiệp đã được Hội đồng khoa học củaKhoa …….………… thông qua ngày... tháng... năm 20…..

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>NHẬN XÉT ĐÁNH GIÁ CỦA GIÁO VIÊN CHẤM PHẢN BIỆN</b>

Đánh giá chất lượng đề tài tốt nghiệp về các mặt thu thập và phân tích số liệu ban đầu,cơ sở lí luận chọn phương án tối ưu, cách tính tốn chất lượng thuyết minh và bản vẽ, giátrị lí luận và thực tiễn đề tài.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>LỜI CẢM ƠN</b>

Đề tài “<b>Thiết kế robot tự hành bám line theo quỹ đạo đặt trước</b>” là nội dung Emđược giao để nghiên cứu và làm đồ án tốt nghiệp sau bốn năm học chương trình đại họcchuyên ngành Điện công nghiệp tại trường Đại học sư phạm kĩ thuật Vinh.

Để hồn thành q trình nghiên cứu và hoàn thiện đồ án tốt nghiệp này, lời đầu tiênem xin gửi lời cảm ơn chân thành cảm ơn tới tồn thể q Thầy Cơ.Đặc biệt là thầy TháiHữu Nguyên cùng với tri thức và tâm huyết của Thầy đã hướng dẫn, hỗ trợ và tạo điềukiện em hoàn thành đồ án tốt nghiệp tại trường. Nếu khơng có Thầy đồ án tốt nghiệp củaEm khó có thể hoàn thành được.

Cuối cùng, em xin cảm ơn những người thân, bạn bè đã luôn bên Em, động viên, sẻchia, giúp đỡ, cổ vũ tinh thần… Đó là nguồn động lực giúp Em hồn thành chương trìnhhọc và đồ án tốt nghiệp này.

<i><b> Nghệ An, ngày 15 tháng 4 năm2023 </b></i>

Sinh viên <b> </b>

<b> Nguyễn Ngọc MạnhMỤC LỤCCHƯƠNG 1: TỐNG QUAN...1</b>

1.1 Tổng quan về Mobile Robot...1

1.1.1 Phân loại Mobile robot...1

1.2 Ứng dụng của Mobile robot...5

1.2.1 Tổng quan về robot dò line:...8

1.2.2 Một số mơ hình robot dị line trong các cuộc thi:...8

1.2.3 Các thành phần xe dò line:...10

1.3 Mục tiêu và nhiệm vụ:...18

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>CHƯƠNG 2: LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ CƠ KHÍ VÀ HỆ THỐNG</b>

<b>ĐIỆN CHO ROBOT DÒ LINE...20</b>

2.1. Lựa chọn phương án thiết kế...20

2.1.1 Về Cơ khí:...20

2.1.2 Về phần điện:...20

2.2 Thiết kế cơ khí...21

2.2.1 Tính tốn kích thước xe...21

2.2.2 Tính tốn cơng suất cho động cơ:...22

2.2.3 Tính tốn moment xoắn động cơ...23

2.2.4 Điều kiện để xe vào cua mà không bị trượt:...24

2.2.5 Điều kiện để xe vào cua mà không bị lật:...25

2.2.6 Các thông số cơ bản của xe...25

2.2.7 Các tấm đế xe...26

2.2.8 Mô phỏng động học...27

2.3. Thiết kế hệ thống điện...30

2.3.1 Thiết kế khối cảm biến dò line:...30

2.3.4 Khối driver và động cơ...38

2.3.5 Khối nguồn...40

2.3.6 Điều khiển động cơ hai bánh xe...40

<b>CHƯƠNG 3: THIẾT KẾ LẬP TRÌNH VÀ GIẢI THUẬT TỐN DỊ LINE VÀ PIDĐIỀU KHIỂN ĐỘNG CƠ...44</b>

3.1 Sơ đồ khối hệ thống điều khiển...44

3.2 Lưu đồ giải thuật...45

3.3 Khối điều khiển:...45

3.4 Giải thuật dị line...47

3.5 Áp dụng thuật tốn PID...48

3.6 Phân tích chuyển động:...53

3.7 Giới thiệu phần mềm Arduino IDE...53

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

3.8 CODE cho robot dò line...55

<b>CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM...66</b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>DANH MỤC HÌNH</b>

Hình 1.1: Robot chuyển động bằng bánh xe (a) và bánh xích (b)...1

Hình 1.2: Robot truyền động bằng chân...2

Hình 1.2: Hệ thống Laser guidance [5]...2

Hình 1.3: Magnetic spot guidance [6]...3

Hình 1.4: Nguyên tắc hoạt động Magnetic spot guidance [7]...3

Hình 1.5: Nguyên tắc hoạt động magnetic guidace [8]...4

Hình 1.6: Wire guidance [9]...4

Hình 1.7: Robot Opportunity của NASA [10]...5

Hình 1.8: Robot Scorpion của TOSHIBA [11]...6

Hình 1.9: Robot vận chuyển hàng hóa [12]...6

Hình 1.10: Robot lau nhà Xiaomi Roborock Gen 3 [13]...7

Hình 1.11: Robot 510 PackBot được sản xuất bởi iRobot trang bị cho quân đội Mỹ[14]. .7Hình 1.12: Robot phục vụ nhà hàng của LKK Group [15]...8

Hình 1.13: Robot dị line “The Chariot” (a) và sơ đồ ngun lý của nó (b) [16]...9

a) Mơ hình xe dị line “Silvestre” b) Sơ đồ ngun lý xe “Silvestre”...9

Hình 1.14: Robot dò line Silvestre (a) và sơ đồ nguyên lý (b) [17]...9

Hình 1.15: Mơ hình xe dị line “Fireball” (a) và sơ đồ nguyên lý (b) [18]...10

Hình 1.16: Động cơ DC Servo giảm tốc GA25 [19]...12

Hình 1.17: Động Cơ Bước Step Motor NEMA17 NEMA23 Stepper [20]...12

Hình 1.23: Thuật tốn xấp xỉ đọc tín hiệu analog: xấp xỉ bậc hai (a)...15

Hình 1.24: Điều khiển tập trung (Centralized control)...16

Hình 1.25: Cấu trúc điều khiển phần cấp (Distributed control)...17

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Hình 2.1: Phương án xe 3 bánh 2 bánh sau dẫn động...20

Hình 2.2: Các lực tác dụng lên xe dị line...21

Hình 2.3: Mơ hình SolidWorks của xe dị line...25

Hình 2.4: Kích thước mặt mica phía dưới...26

Hình 2.5: Cụm ráp thân xe...26

Hình 2.6: Sơ đồ động học...27

Hình 2.7: Vận tốc xe và bánh trái, phải theo thời gian khi xe chạy thẳng...29

Hình 2.8: Vận tốc xe và bánh trái, phải theo thời gian khi xe chạy cung trịn...30

Hình 2.9: Thanh cảm biến dị line hồng ngoại BFD-1000 [22]...31

Hình 2.1: Mạch điện 1 cảm biến TCRC5000...32

Hình 2.11: Đồ thị quan hệ giữa IF và IC [23]...33

Hình 2.12: Đồ thị quan hệ IC và V [24]...34

Hình 2.13: Ảnh hưởng của việc đặt cảm biến lên switching distance...34

Hình 2.14: Vùng hoạt động của cảm biến TCR-5000...35

Hình 2.15: Khoảng cách giữa 2 cảm biến D (mm)...36

Hình 2.16: Phạm vi quét của 2 cảm biến liền kề...37

Hình 2.17: Sơ đồ khối cảm biến...37

Hình 2.18: Động cơ DC Servo giảm tốc GA25...38

Hình 2.19: Motor driver L298N [25]...38

Hình 2.20: Sơ đồ khối driver và động cơ [25]...39

Bảng 2.5: Các thơng số của motor driver L298N...39

Hình 2.21: Sơ đồ khố chung cho tồn hệ thống...40

Hình 2.22: Giản đồ thời gian của xung PWM...41

Hình 2.23 Đồ thị xung PWM 2 động cơ...43

Hình 2.24 Sơ đồ điều khiển vận tốc động cơ...43

Hình 3.1: Sơ đồ hệ thống điều khiển...44

Hình 3.2: Vi điều khiển Arduino Uno R3...45

Hình 3.3 Sơ đồ khối điều khiển...47

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Hình 3.4: Các mức lệnh điều khiển robot bám line...48

Hình 3.5 Điều khiển vịng kín PID...49

Hình 3.6: Mơ hình PID áp dụng cho bài robot dị line của bài...51

Hình 3.7: Đáp ứng động cơ 1 khi sử dụng bộ PID...52

Hình 3.8 Đáp ứng động cơ 2 khi sử dụng bộ PID...52

Hình 3.9 Giao diện phần mềm Arduino IDE...54

Hình 3.10 Các nút lệnh trong Arduino IDE...54

Hình 3.11 Vùng thơng báo trong Arduino IDE...54

Hình 4.1 Bản đồ sa bàn của robot dị line...66

Hình 4.2: Chạy thực nghiệm robot dò line...66

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>DANH MỤC BẢNG BIỂU</b>

Bảng 1.1: Đánh giá ưu, nhược điểm sơ đồ nguyên lý...11

Bảng 1.2: So sánh giữa các phương pháp đọc cảm biến:...16

Bảng 1.3: So sánh cấu trúc điều khiển tập trung và cấu trúc điều khiển phân cấp...17

Bảng 2.1: Thơng số xe dị line...25

Bảng 2.2: So sánh sánh ưu nhược điểm của số lượng cảm biến dị line...31

Bảng 2.3: Thơng số kỹ thuật của thanh cảm biến dò line hồng ngoại BFD-1000...32

Bảng 2.4: Thông số kỹ thuật của cảm biến TCR 5000...35

Bảng 2.5: Các thông số của motor driver L298N...39

Bảng 2.6: Số liệu khi thực nghiệm điều khiển vận tốc khi cấp xung PWM sử dụng driverL298... 42

Bảng 3.1: Thông số của Arduino uno R3...46

Bảng 3.2: thông số ki kp kd...53

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Hình 3.3 Sơ đồ khối điều khiển

Dựa vào sơ đồ khối điều khiển (hình 3.3), Arduino được nối như sau:

<b>3.4 Giải thuật dò line </b>

Chúng ta sẽ sử dụng thuật so sánh mã để dò line cho robot.

Khi xe hoạt động, sensor thu thập thông tin qua bộ chuyển đổi ADC chuyển thànhgiá trị tín hiệu và đưa về vi điều khiển. Giá trị nhận về sẽ được so sánh với một giá trị đặttrước. Nếu giá trị ADC (i) < giá trị ngữơng thì led thu thứ i đang ở phần sân, nếu ngượclại thì đang ở phần vạch

49

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Hình 3.4: Các mức lệnh điều khiển robot bám line

Ở đây mình mã hóa 4 cặp cảm biến của mình thành các giá trị từ 0 đến 7. Khi hoạtđộng ánh sáng từ led chiếu xuống đường nếu gặp đường nếu gặp đường nền màu trắngthì ánh sáng phản chiếu trở lại quang trở tương ứng, lúc đó tín hiệu được truyền về chântương ứng của vi điều khiển là mức 0. Nếu ánh sáng từ led xuống gặp line đen thì ánhsáng hầu như bị hấp thụ gần hết, lúc đó tín hiệu từ sensor báo về vi điều khiển về mức 1 .Dựa trên các mức lệnh để điều chỉnh tốc độ 2 bánh trái phải để đưa robot về quỹ đạo,phương pháp này đơn giản nhưng robot chạy không ổn định vì thế để khắc phục nhượcđiểm này ta áp dụng bộ điều khiển PID vào để hiệu chỉnh

<b>3.5 Áp dụng thuật toán PID </b>

Để giải thuật toán PID chúng ta cần giải thuật điều khiển vi tích phân

PID là một bộ điều khiển sử dụng cơ chế phản hồi feedback trong hệ thống cơngnghiệp. PID sẽ tính toán các giá trị “ sai số” là hiệu số đo được của thiết bị trên thực tế vàgiá trị mà mình mong muốn. Giải thuật tính tốn của PID bao gồm 3 thông số riêng biệt,gọi là điều khiển 3 khâu: các giá trị tỉ lệ (Proportional), tích phân (Integral), đạo hàm(Derivative), giá trị tỉ lệ xác định của sai số hiện tại, giá trị tích phân xác định tác độngcủa các sai số quá khứ và vi phân xác tác động của tốc độ biến đổi sai số. Nhờ vậy mà tacó mối quan hệ: P phụ thuộc vào sai số hiện tại, I phụ thuộc vào tích lũy sai số trong quákhứ và D dự đoán các sai số trong tương lai, dựa vào tốc độ thay đổi của hiện tại.

50

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Hình 3.5 Điều khiển vịng kín PID

<b>Phương trình PID tổng qt:</b>

<b>- Hàm lỗi e(t) tại thời điểm t: độ lệch giữa giá trị mong muốn và giá trị đo được:</b>

e(t) = V - V<small>setmo</small>(t)Trong đó:

V<small>set</small>: Setpoint Value (giá trị điện áp mong muốn).

V<small>mo</small> (t): Measurable Output Value (giá trị điện áp đo được tại thời điểm t).

<b>Khâu tỉ lệ Proportional: điều khiển tỉ lệ với giá trị lỗi hiện tại.</b>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>Integral (hàm tích phân): điều khiển tương ứng với mức lỗi được tích lũy theo</b>

thời gian. I<sub>out</sub>=K<sub>i</sub>.

Trong đó:

I<small>out</small>: thừa số tích phân của đầu ra

K<small>i</small>: độ lợi tích phân, 1 thơng số điều chỉnh

e: sai số

t: thời gian tức thời

r: một biến trung gian

<b>Derivative (hàm vi phân): </b>

điều khiển tương ứng với tốc độ thay đổi của lỗi, hay độ dốc lỗi theo thời gian.

D<sub>out</sub>=K<small>d</small>.<sup>d</sup>dt<sup>e (t)</sup>

Trong đó:

D<small>out</small>: thừa số vi phân đầu ra

K<small>d</small>: Độ lợi vi phân, một thơng số điều chỉnh

Độ lợi tích phân: Giá trị càng lớn kéo theo sai số ổn định bị khử càng nhanh. Đổi lạilà độ vọt lố càng lớn: bất kỳ sai số âm nào được tích phân trong suốt đáp ứng quá độ phảiđược triệt tiêu tích phân bằng sai số dương trước khi tiến tới trạng thái ổn định.

Độ lợi vi phân: Giá trị càng lớn càng giảm độ vọt lố, nhưng lại làm chậm đáp ứngquá độ và có thể dẫn đến mất ổn định do khuếch đại nhiễu tín hiệu trong phép vi phân saisố.

52

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>Mơ hình PID áp dụng cho robot dị đường:</b>

Hình 3.6: Mơ hình PID áp dụng cho bài robot dị line của bài

Giải thuật PID được tích hợp vào trong giải thuật điều khiển robot dò đường để tínhtốn và xuất ra các giá trị PWM điều khiển 2 động cơ gắn với 2 bánh sau của robot dựavào độ sai lệch giữa giá trị đo đạc ngõ vào và giá trị mong muốn. Độ sai lệch, hay cịn gọilà giá trị lỗi, được tính tốn trong giải thuật PID là độ lệch giữa trạng thái hiện tại củarobot so với đường đi. Có nghĩa là, độ sai lệch giữa giá trị hiện tại của bộ cảm biến so vớigiá trị của cảm biến trong trường hợp robot chạy thẳng về phía trước. Việc áp dụng giảithuật PID trên robot dò đường sử dụng cảm biến quang được trình bày bằng một sơ đồkhối như hình

Chương trình điều khiển sử dụng giải thuật PID. Ở đây mình mã hóa 4 cặp cảm biếnthành các giá trị từ. Và thuật tốn sẽ ln đặt setpoint =các giá trị nằm giữa cảm biến 2 và3 để xe luôn bám theo vạch.

Các bước thực hiện chương trình PID như sau:P=error;

I=I + previous_I;

D= error - previous_error;

PID_value= (Kp * P) + (Ki * I) + (Kd * D); previous_I=error;

previous_error = error;Trong đó:

P là sai số hiện tại

53

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

I là sai số trong quá khứD là sai số tương lai

Ta mô phỏng trên matlab được các kết quả trước và sau khi sử dụng thuật toán PIDnhư sau

Hình 3.7: Đáp ứng động cơ 1 khi sử dụng bộ PIDĐộ vọt lố bằng 0

Hình 3.8 Đáp ứng động cơ 2 khi sử dụng bộ PID

54

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

Như vậy sau khi điều chỉnh thì chúng ta có bản hệ số Ki, Kp,Kd cho động cơ tráiphải như sau:

- Khi vận tốc của hai bánh bằng nhau sẽ tiến thẳng

- Khi hai bánh có cùng vận tốc nhưng ngược chiều robot sẽ quay tròn

- Khi vận tốc của bánh trái lớn hơn bánh phải thì robot rẽ phải, bánh phải lớn hơnbánh trái thì quay trái

<b>3.7 Giới thiệu phần mềm Arduino IDE</b>

<i><b>Giao diện:</b></i>

55

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Hình 3.9 Giao diện phần mềm Arduino IDE

Hình 3.11 Vùng thông báo trong Arduino IDE

Những thông báo từ IDE sẽ được hiển thị tại đây. Để ý rằng góc dưới cùng bên phảihiển thị loại board Arduino và cổng COM được sử dụng. Luôn chú ý tới mục này bởi nếuchọn sai loại board hoặc cổng COM, bạn sẽ không thể upload được code của mình.

56

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

Chúng ta có thể tìm thấy một vài hướng dẫn khắc phục các lỗi thường gặp khi lậptrình Arduino tại Lỗi của Arduino? Và các lỗi thường gặp khi lập trình Arduino

<i><b>Một số lưu ý</b></i>

Khi lập trình, cần chọn port (cổng kết nối khi gắn board vào) và board (tên boardmà bạn sử dụng). Giả sử, đang dùng mạch Arduino Uno, và khi gắn board này vào máytính bằng cáp USB nó được nhận là COM4 thì bạn chỉnh như thế này là có thể lập trìnhđược.

<b>3.8 CODE cho robot dị line </b>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

int motorInput3 = 9;int motorInput4 = 10;

int ENB = 11; //Motor Phải

//Initial Speed of Motorint initial_motor_speed = 88;

// PID Constantsfloat Kp = 25;float Ki = 0;float Kd = 15;

float error = 0, P = 0, I = 0, D = 0, PID_value = 0;float previous_error = 0, previous_I = 0;

int flag = 0;

void setup(){

pinMode(sensor1, INPUT); pinMode(sensor2, INPUT); pinMode(sensor3, INPUT); pinMode(sensor4, INPUT);

pinMode(motorInput1, OUTPUT); pinMode(motorInput2, OUTPUT); pinMode(motorInput3, OUTPUT); pinMode(motorInput4, OUTPUT);

58

</div>

×