TÓM TẮT ĐỀ TÀI 1. Đặt vấn đề Robot tự hành hay robot di động (mobile robot hay được viết tắt là mobot) được định nghĩa là một loại xe robot có khả năng tự dịch chuyển, tự vận động (có thể lập trình lại được) dưới sự điều khiển tự động có khả năng hoàn thành công việc được giao. Theo lý thuyết, môi trường hoạt động của Robot tự hành có thể là đất, nước, không khí, không gian vũ trụ hay tổ hợp giữa chúng. Địa hình bề mặt mà robot di chuyển trên đó có thể bằng phẳng hoặc thay đổi, lồi lõm. Đề tài nghiên cứu khoa học này đi sâu nghiên cứu Robot tự hành dò đường trong mê cung. 2. Mục tiêu đề tài Mục tiêu của đề tài là thiết kế, thi công, điều khiển robot tự hành. Mobile robot có thể hoạt động ổn định, tự tìm đường đi đến vị trí đích đã xác định sẵn trong mê cung, có thể học nhanh chóng cách tìm đường đi khi thay đổi hình dạng mê cung sử dụng thuật toán tìm kiếm theo chiều sâu trong trí tuệ nhân tạo. 3. Nội dung nghiên cứu Dựa vào nguyên lý hoạt động của Mobile robot tôi đã thiết kế mô hình bằng các phương pháp cụ thể như sau: Khảo sát phân tích tổng hợp: Phân tích cách thức hoạt động của Mobile robot để thiết kế bộ phận dò tìm có độ chính xác cao nhất, bộ phận xử lí tín hiệu có tốc độ cao nhất đồng thời có giá thành thấp và tuổi thọ cao… Khảo sát tính khả thi của từng thuật toán nhỏ trong trí tuệ nhân tạo. Từ thuật toán sử dụng, hình thành nên mô hình robot phục vụ cho những yêu cầu từ thuật toán đưa ra. Thực nghiệm: dùng phương pháp thực nghiệm để kiểm tra tính khả thi của từng thuật toán. Đánh giá kết quả dựa trên quá trình thực nghiệm. 4. Nội dung từng chương của đề tài Chương 1: Tổng quan Chương này kể về sự hình thành robot từ sơ khai đến sự phát triển rộng lớn như ngày nay, cũng như tương lai, xu hướng phát triển của robot. Định nghĩa, phân loại Mobile robot, định nghĩa mê cung là gì. Chương 2: Cơ sở lý thuyết. Nội dung của chương này là trình bày lý thuyết về trí tuệ nhân tạo và các thuật toán tìm kiếm trong trí tuệ nhân tạo. Chương 3: Cấu tạo Robot di động Chương này chủ yếu trình bày sơ lược về cấu trúc hoạt động của ATMEGA 328, chi tiết cảm biến, thiết kế mạch cảm biến cũng như mạch điều khiển động cơ, thiết kế về phần cơ khí và phần điện cho mô hình robot di động và mô hình robot hoàn chỉnh. Chương 4: Thuật toán điều kiển và chương trình nạp Chương này trình bày lưu đồ thuật toán tìm kiếm của đề tài. Chương 5: Kết luận và hướng phát triển. Chương này trình bày những kết quả đạt được trong luận văn, các mặt hạn chế và hướng phát triển của đề tài. LỜI CẢM ƠN Để thực hiện khóa luận tốt nghiệp, tôi đã nhận được rất nhiều sự chỉ dẫn, giúp đỡ và động viên quý báu từ quý thầy, cô và bạn bè. Trước hết, tôi xin bày tỏ lòng biết ơn đối với thầy Đoàn Xuân Nam, người thầy hướng dẫn đã tận tình chỉ cho tôi phương hướng thực hiện đồ án tốt nghiệp, thầy cũng đã cung cấp cho tôi rất nhiều kiến thức chuyên sâu để thực hiện đề tài. Bên cạnh đó, sự hợp tác và giúp đỡ của bạn bè và các thế hệ sinh viên đi trước cũng giúp tôi rất nhiều trong việc thực hiện đề tài này. Tôi cũng xin cảm ơn gia đình đã luôn chăm sóc và quan tâm đến việc học của tôi, luôn tự hào vì có gia đình luôn động viên tôi trong quá trình học tập. Và cuối cùng, tôi xin gửi lời cảm ơn tới những người đã tham gia giúp đỡ tôi trong quá trình thực hiện mà tôi chưa nêu lên ở đây, sự giúp đỡ của họ dù ít hay nhiều cũng đóng góp một phần vào kết quả thực hiện đề tài đồ án tốt nghiệp này. Tp. Hồ Chí Minh, ngày…. tháng …năm…. Sinh Viên Thực Hiện MỤC LỤC NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 1 NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 2 TÓM TẮT ĐỀ TÀI 3 LỜI CẢM ƠN 5 MỤC LỤC HÌNH ẢNH 8 LỜI MỞ ĐẦU 1 CHƯƠNG 1. GIỚI THIỆU CHUNG 2 1.1 Giới thiệu sơ lược về robot 2 1.1.1 Sự tác động của Robot lên xã hội 2 1.1.2 Tương lai, xu hướng phát triển của Robot 3 1.2 Phương pháp thiết kế robot di động 4 1.3 Định nghĩa và phân loại Robot 4 1.4 Mê cung đường (Maze line) 5 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 7 2.1 Không gian bài toán 7 2.2 Chiến lược tìm kiếm 7 2.2.1 Tìm kiếm suy diễn tiến 7 2.2.2 Chiến lược tìm kiếm suy diễn lùi 8 2.3 Giải thuật tìm kiếm 8 2.3.1 Giải thuật tìm kiếm theo chiều rộng (Breadth_First_Search) 9 2.3.2 Giải thuật tìm kiếm theo chiều sâu (Depth First Search) 10 2.3.3 Giải thuật tìm kiếm truyền lùi ( Back Tracking search ) 12 2.4 Tìm Kiếm Heuristic 13 2.4.1 Giải thuật tìm kiếm Best_First_Search 14 2.4.2 Hàm đánh giá heuristic 16 CHƯƠNG 3. CẤU TẠO ROBOT DI ĐỘNG 17 3.1 Khái quát về cấu tạo của Robot di động 17 3.2 Cảm biến hồng ngoại 17 3.2.1 Thiết kế mạch cảm biến 19 3.2.2 LM358 loại dán 20 3.3 Atmega328P 22 3.3.1 Thông số ATMEGA328P 22 3.4 Mạch điều khiển động cơ 23 3.4.1 Mạch cầu H 23 3.4.2 IC L298 24 3.4.3 Thiết kế mạch điều khiển động cơ 26 3.4.4 LED 0805 27 3.4.5 Biến trở 10k 27 3.4.6 Điện trở dùng trong mạch 28 3.4.7 Transitor 28 3.4.8 Diode 1N4007 M7 1A SMD 29 3.5 Động cơ DC 29 3.6 Nguồn cấp 31 3.7 Sơ đồ nguyên lý Mobile Robot 31 3.8 Mô hình robot di động sau khi hoàn thành 35 CHƯƠNG 4. THUẬT TOÁN ĐIỀU KHIỂN 37 4.1 Các phương pháp giải quyết vấn đề cơ bản 37 4.1.1 Các chiến lược tìm kiếm 37 4.1.2 Tìm kiếm theo chiều sâu 37 4.2 Lưu đồ giải thuật tìm đường đi cho Robot 39 4.3 Thuật toán LSRB 39 4.4 Tối ưu hóa đường đi 45 4.5 Ví dụ minh họa 46 4.6 Chương trình nạp cho AT MEGA328 54 4.6.1 Phần khai báo 54 4.6.2 Phần động cơ 55 4.6.3 Phần cảm biến 66 CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 70 5.1 Kết luận 70 5.2 Hướng phát triển 70 TÀI LIỆU THAM KHẢO 71 MỤC LỤC HÌNH ẢNH Hình 1. 1 Wheel Robot 5 Hình 1. 2 Một số hình dạng của mê cung 6 Hình 1. 3 Mê cung đường đơn giản 6 Hình 2. 1 Không gian trạng thái của bài toán tìm kiếm theo chiều rộng 9 Hình 2. 2 Không gian trạng thái của phương pháp tìm kiếm theo chiều sâu. 11 Hình 3. 1 Sơ đồ khối cấu tạo robot di động 17 Hình 3. 2 Led phát và thu hồng ngoại 18 Hình 3. 3 Photodiode 18 Hình 3. 4 Cách cảm biến hoạt động 19 Hình 3. 5 Sơ đồ nguyên lý mạch cảm biến hồng ngoại 20 Hình 3. 6 LM358 loại dán 20 Hình 3. 7 Sơ đồ chân LM358 21 Hình 3. 8 ATMEGA328P 22 Hình 3. 9 Sơ đồ nguyên lý động cơ quay theo chiều thuận 23 Hình 3. 10 Sơ đồ nguyên ly động cơ DC quay theo chiều nghịch 23 Hình 3. 11 PowerSO20 24 Hình 3. 12 L298 25 Hình 3. 13 Sơ đồ nguyên lý mạch điều khiển động cơ sử dụng L298 27 Hình 3. 14 led0805 27 Hình 3. 15 biến trở 10k 28 Hình 3. 16 trở 330 28 Hình 3. 17 transitor 3904 29 Hình 3. 18 Diode 1N4007 M7 29 Hình 3. 19 Động cơ quay thuận 30 Hình 3. 20 Động cơ quay nghịch 30 Hình 3. 21 Động cơ DC giảm tốc GA12 31 Hình 3. 22 Pin 18650 31 Hình 3. 23 Sơ đồ nguyên lý 34 Hình 3. 24 Mạch in 35 Hình 3. 25 Phía bên phải của Robot 36 Hình 4. 1 Tìm kiếm theo chiều sâu. 38 Hình 4. 2 Cách Mobile tìm đường đến đích 39 Hình 4. 3 Cách Mobile robot tìm đường đi ngắn nhất 39 Hình 4. 4 Đặt tên cảm biến 40 Hình 4. 5 Những kết quả cảm biến khi đi theo đường thẳng 40 Hình 4. 6 Trường hợp cảm biến đặt gần nhau 41 Hình 4. 7 Các khả năng robot gặp phải 41 Hình 4. 8Chỉ rẽ trái, thẳng hoặc rẽ trái 42 Hình 4. 9 Chỉ rẽ phải, thẳng hoặc rẽ phải 42 Hình 4. 10 Ngã 3, ngã 4 và đích đến 42 Hình 4. 11 Chỉ rẽ Trái 43 Hình 4. 12 Chỉ rẽ phải 43 Hình 4. 13 Chữ T 43 Hình 4. 14 Ngã tư 44 Hình 4. 15 Thẳng hoặc rẽ trái 44 Hình 4. 16 Thẳng hoặc rẽ phải 44 Hình 4. 17 Đích 45 Hình 4. 18 Đường cụt 45 Hình 4. 19 Điểm xuất phát 47 Hình 4. 20 Điểm đi thẳng hoặc rẽ phải 47 Hình 4. 21 Robot đi thẳng 47 Hình 4. 22 Robot tiếp tục đi thẳng 48 Hình 4. 23 Robot quay đầu 48 Hình 4. 24 Sau quay đầu robot tiếp tục chạy thẳng. 48 Hình 4. 25 Robot rẽ trái 49 Hình 4. 26 Robot ghi nhớ ký tự “R” 49 Hình 4. 27 Robot ghi nhớ ký tự “RL” 49 Hình 4. 28 Robot ghi nhớ ký tự “RLR” 50 Hình 4. 29 Robot ghi nhớ ký tự “RLRB” 50 Hình 4. 30 Robot ghi nhớ ký tự “RLRBL” 50 Hình 4. 31 Robot ghi nhớ ký tự “RLB” 51 Hình 4. 32 Robot ghi nhớ ký tự “RLBL” 51 Hình 4. 33 Robot ghi nhớ ký tự “RS” 51 Hình 4. 34 Robot ghi nhớ ký tự “RSB” 52 Hình 4. 35 Robot ghi nhớ ký tự “RSBL” 52 Hình 4. 36 Robot ghi nhớ ký tự “RR” 52 Hình 4. 37 Robot ghi nhớ ký tự “RRL” 53 Hình 4. 38 Robot ghi nhớ ký tự “RRLL” 53 Hình 4. 39 Robot ghi nhớ ký tự “RRLLD” 53 Hình 4. 40 Robot tối ưu đường đi 54 LỜI MỞ ĐẦU Cùng với sự phát triển nhanh chóng của các ngành khoa học kỹ thuật, công nghệ chế tạo robot cũng phát triển theo. Robot ngày càng gia tăng về số lượng, lẫn chất lượng nhằm đáp ứng cho nhu cầu tự động hoá các quy trình sản xuất, các nhu cầu trong thám hiểm... cũng như phục vụ cho đời sống con người. Trong xu thế sử dụng robot ngày càng nhiều trong sản xuất và sinh hoạt, ở Việt Nam, ngành công nghiệp robot cũng đang từng bước phát triển. Tuy nhiên các robot này chỉ sản xuất dưới dạng người máy công nghiệp, các tay máy hoặc như các máy phục vụ cho nhu cầu giải trí. Trong khi đó, loại robot di động vẫn chưa được chú ý nhiều, mặc dù đây là loại robot có tiềm năng rất lớn, có thể dùng trong nhiều mục đích khác nhau như: giải trí trong gia đình, phục vụ trong các công sở, trong các mục đích quân sự, và dùng nhiều trong thám hiểm hành tinh. Tiêu biểu trong họ robot này có thể kể đến như: chó robot Aibo, xe tự hành Sojourner thám hiểm sao hỏa và các loại robot dò mìn ... Robot di động là một lĩnh vực có nhiều tiềm năng, nên dù hạn chế về kiến thức và ít ỏi về tài liệu nhưng tôi cố gắng thực hiện đồ án tốt nghiệp về đề tài này ở mức độ đơn giản. Dù đã cố gắng nhưng cũng còn rất nhiều sai sót, khuyết điểm. Tôi rất mong được sự chỉ bảo thêm nơi quý thầy cô và bạn bè. Tôi xin chân thành cảm ơn sự quan tâm của quý thầy cô và bạn bè. CHƯƠNG 1. GIỚI THIỆU CHUNG 1.1 Giới thiệu sơ lược về robot Trên 1921, trên sân khấu kịch nói ở Tiệp Khắc, trong tác phẩm nhan đề “R.U.R” hay “Rossuum’s Universal Robot’s” của Karel Capek, xuất hiện nhân vật “Robotnik” có nghĩa là công nhân. Nhân vật trong vở diễn mô tả một khối cơ khí rập khuôn hình dáng con người. Sau đó những cỗ máy này được dùng trong chiến tranh và cuối cùng đã quay lại chống loài người đã sáng tạo ra chúng. Tuy nhiên trước đó người Hi Lạp đã chế tạo những tượng đá có thể chuyển động được, đó chính là sự bắt đầu của những gì chúng ta gọi là Robot. Trong phần lớn trường hợp danh từ Robot hiện nay hàm ý những cỗ máy nhân tạo có thể thực hiện những công việc hay những hành động khác thường, được thực hiện bởi con người. Đa số các Robot ngày nay được sử dụng trong các nhà máy để chế tạo những sản phẩm như xe hơi và điện tử, máy móc công nghiệp. Những loại khác được dùng trong các công việc nghiên cứu, thám hiểm mặt đất, đại dương và trên các hành tinh khác. Robot thường có 3 phần chính: Bộ não (Brain): Thường là một máy tính, vi xử lý hoặc vi điều khiển. Các bộ phận cơ khí và chấp hành (Actuator): Động cơ, piston, cơ câu kẹp, bánh răng, bánh xe. Cảm biến (Sensor): Thị giác, âm thanh, nhiệt độ, chuyển động, ánh sáng, xúc giác... Với 3 thành phần này, Robot có thể tương tác và tác động đến môi trường của chúng ta trở nên hữu dụng. 1.1.1 Sự tác động của Robot lên xã hội Vì Robot được dùng chủ yếu trong sản xuất, nên chúng ta có thể thấy được sự tác động của chúng lên những sản phẩm chúng ta dùng hằng ngày. Thường thì sự tác động này mang tính tích cực, làm cho sản phẩm trở nên tốt hơn, giá rẻ hơn. Robot cũng được dùng trong những trường hợp mà nó có thể làm tốt hơn con người như giải phẫu, ở đó sự chính xác cao rất cần thiết. Robot còn được dùng trong thám hiểm những nơi nguy hiểm như núi lửa hoặc trong việc dò mìn, điều này cho phép chúng ta hoàn thành công việc mà không gây nguy hiểm cho ta. Tuy nhiên vẫn có những vấn đề với Robot. Như bất cứ loại máy nào, Robot có thể ngưng hoạt động và ngay cả gây tai nạn. Chúng là những cỗ máy mạnh mẽ, con người để cho nó tự điều khiển một vài công việc. Khi có một hành động nào đó đi sai hướng thì những điều nguy hiểm nhất có thể xảy ra. May mắn là điều này ít khi xảy ra vì hệ thống Robot được thiết kế với nhiều đặc tính an toàn, sẽ giới hạn những thiệt hại có thể. Ngoài ra, vấn đề sẽ trở nên rất nghiêm trọng nếu Robot được sử dụng vào những mục đích xấu, chống lại con người. Ngày nay điều này đã trở thành hiện thực, với những hình thức khác nhau của kỹ thuật như chế tạo vũ khí và vật liệu sinh học. 1.1.2 Tương lai, xu hướng phát triển của Robot Robot đã có những bước tiến đáng kể trong hơn nửa thế kỷ qua. Robot đầu tiên được ứng dụng trong công nghiệp vào những năm 60 để thay thế con người làm những công việc nặng nhọc, nguy hiểm trong môi trường độc hại. Do nhu cầu sử dụng ngày càng nhiều trong quá trình sản xuất phức tạp nên robot công nghiệp cần có những khả năng thích ứng linh hoạt và thông minh hơn. Ngày nay, ngoài ứng dụng sơ khai ban đầu của robot trong chế tạo máy thì các ứng dụng khác như trong y tế, chăm sóc sức khỏe, nông nghiệp, đóng tàu, xây dựng, an ninh quốc phòng đang là động lực cho sự phát triển của ngành công nghiệp robot. Có thể kể đến những loại robot được quan tâm nhiều trong thời gian qua là: tay máy robot, robot di động (Mobile Robots), robot phỏng sinh học (Bio Inspired Robots) và robot cá nhân (Personal Robots). Robot di động được nghiên cứu nhiều như xe tự hành trên mặt đất AGV (Autonomous Guided Vehicles), robot tự hành dưới nước AUV (Autonomous Underwater Vehicles), robot tự hành trên không UAV (Unmanned Arial Vehicles) và robot vũ trụ (Space robots). Với robot phỏng sinh học, các nghiên cứu trong thời gian qua tập trung vào hai loại chính là robot đi bộ (Walking robot) và robot dáng người (Humanoid robot). Bên cạnh đó các loại robot phỏng sinh học như cá dưới nước, các cấu trúc chuyển động phỏng theo sinh vật biển cũng được nhiều nhóm nghiên cứu, phát triển. 1.2 Phương pháp thiết kế robot di động
Trang 1NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
1
Trang 2NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
2
Trang 3TÓM TẮT ĐỀ TÀI
1 Đặt vấn đề
Robot tự hành hay robot di động (mobile robot hay được viết tắt là mobot) đượcđịnh nghĩa là một loại xe robot có khả năng tự dịch chuyển, tự vận động (có thể lậptrình lại được) dưới sự điều khiển tự động có khả năng hoàn thành công việc đượcgiao Theo lý thuyết, môi trường hoạt động của Robot tự hành có thể là đất, nước,không khí, không gian vũ trụ hay tổ hợp giữa chúng Địa hình bề mặt mà robot dichuyển trên đó có thể bằng phẳng hoặc thay đổi, lồi lõm Đề tài nghiên cứu khoa họcnày đi sâu nghiên cứu Robot tự hành dò đường trong mê cung
3 Nội dung nghiên cứu
Dựa vào nguyên lý hoạt động của Mobile robot tôi đã thiết kế mô hình bằng cácphương pháp cụ thể như sau:
- Khảo sát phân tích tổng hợp: Phân tích cách thức hoạt động của Mobile robot
để thiết kế bộ phận dò tìm có độ chính xác cao nhất, bộ phận xử lí tín hiệu cótốc độ cao nhất đồng thời có giá thành thấp và tuổi thọ cao…
- Khảo sát tính khả thi của từng thuật toán nhỏ trong trí tuệ nhân tạo
- Từ thuật toán sử dụng, hình thành nên mô hình robot phục vụ cho những yêucầu từ thuật toán đưa ra
- Thực nghiệm: dùng phương pháp thực nghiệm để kiểm tra tính khả thi của từngthuật toán
- Đánh giá kết quả dựa trên quá trình thực nghiệm
4 Nội dung từng chương của đề tài
3
Trang 4Chương 1: Tổng quan
Chương này kể về sự hình thành robot từ sơ khai đến sự phát triển rộng lớn nhưngày nay, cũng như tương lai, xu hướng phát triển của robot Định nghĩa, phân loạiMobile robot, định nghĩa mê cung là gì
Chương 2: Cơ sở lý thuyết.
Nội dung của chương này là trình bày lý thuyết về trí tuệ nhân tạo và các thuật toántìm kiếm trong trí tuệ nhân tạo
Chương 3: Cấu tạo Robot di động
Chương này chủ yếu trình bày sơ lược về cấu trúc hoạt động của ATMEGA 328,chi tiết cảm biến, thiết kế mạch cảm biến cũng như mạch điều khiển động cơ, thiết kế
về phần cơ khí và phần điện cho mô hình robot di động và mô hình robot hoàn chỉnh
Chương 4: Thuật toán điều kiển và chương trình nạp
Chương này trình bày lưu đồ thuật toán tìm kiếm của đề tài
Chương 5: Kết luận và hướng phát triển
Chương này trình bày những kết quả đạt được trong luận văn, các mặt hạn chế vàhướng phát triển của đề tài
LỜI CẢM ƠN
Để thực hiện khóa luận tốt nghiệp, tôi đã nhận được rất nhiều sự chỉ dẫn, giúp đỡ vàđộng viên quý báu từ quý thầy, cô và bạn bè
4
Trang 5Trước hết, tôi xin bày tỏ lòng biết ơn đối với thầy Đoàn Xuân Nam, người thầyhướng dẫn đã tận tình chỉ cho tôi phương hướng thực hiện đồ án tốt nghiệp, thầy cũng
đã cung cấp cho tôi rất nhiều kiến thức chuyên sâu để thực hiện đề tài
Bên cạnh đó, sự hợp tác và giúp đỡ của bạn bè và các thế hệ sinh viên đi trước cũnggiúp tôi rất nhiều trong việc thực hiện đề tài này
Tôi cũng xin cảm ơn gia đình đã luôn chăm sóc và quan tâm đến việc học của tôi,luôn tự hào vì có gia đình luôn động viên tôi trong quá trình học tập
Và cuối cùng, tôi xin gửi lời cảm ơn tới những người đã tham gia giúp đỡ tôi trongquá trình thực hiện mà tôi chưa nêu lên ở đây, sự giúp đỡ của họ dù ít hay nhiều cũngđóng góp một phần vào kết quả thực hiện đề tài đồ án tốt nghiệp này
Tp Hồ Chí Minh, ngày… tháng …năm… Sinh Viên Thực Hiện
MỤC LỤ
5
Trang 6NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 1
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 2
TÓM TẮT ĐỀ TÀI 3
LỜI CẢM ƠN 5
MỤC LỤC HÌNH ẢNH 8
LỜI MỞ ĐẦU 1
CHƯƠNG 1 GIỚI THIỆU CHUNG 2
1.1 Giới thiệu sơ lược về robot 2
1.1.1 Sự tác động của Robot lên xã hội 2
1.1.2 Tương lai, xu hướng phát triển của Robot 3
1.2 Phương pháp thiết kế robot di động 4
1.3 Định nghĩa và phân loại Robot 4
1.4 Mê cung đường (Maze line) 5
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 7
2.1 Không gian bài toán 7
2.2 Chiến lược tìm kiếm 7
2.2.1 Tìm kiếm suy diễn tiến 7
2.2.2 Chiến lược tìm kiếm suy diễn lùi 8
2.3 Giải thuật tìm kiếm 8
2.3.1 Giải thuật tìm kiếm theo chiều rộng (Breadth_First_Search) 9
2.3.2 Giải thuật tìm kiếm theo chiều sâu (Depth First Search) 10
2.3.3 Giải thuật tìm kiếm truyền lùi ( Back Tracking search ) 12
2.4 Tìm Kiếm Heuristic 13
2.4.1 Giải thuật tìm kiếm Best_First_Search 14
2.4.2 Hàm đánh giá heuristic 16
CHƯƠNG 3 CẤU TẠO ROBOT DI ĐỘNG 17
3.1 Khái quát về cấu tạo của Robot di động 17
3.2 Cảm biến hồng ngoại 17
3.2.1 Thiết kế mạch cảm biến 19
3.2.2 LM358 loại dán 20
6
Trang 73.3 Atmega328P 22
3.3.1 Thông số ATMEGA328P 22
3.4 Mạch điều khiển động cơ 23
3.4.1 Mạch cầu H 23
3.4.2 IC L298 24
3.4.3 Thiết kế mạch điều khiển động cơ 26
3.4.4 LED 0805 27
3.4.5 Biến trở 10k 27
3.4.6 Điện trở dùng trong mạch 28
3.4.7 Transitor 28
3.4.8 Diode 1N4007 M7 1A SMD 29
3.5 Động cơ DC 29
3.6 Nguồn cấp 31
3.7 Sơ đồ nguyên lý Mobile Robot 31
3.8 Mô hình robot di động sau khi hoàn thành 35
CHƯƠNG 4 THUẬT TOÁN ĐIỀU KHIỂN 37
4.1 Các phương pháp giải quyết vấn đề cơ bản 37
4.1.1 Các chiến lược tìm kiếm 37
4.1.2 Tìm kiếm theo chiều sâu 37
4.2 Lưu đồ giải thuật tìm đường đi cho Robot 39
4.3 Thuật toán LSRB 39
4.4 Tối ưu hóa đường đi 45
4.5 Ví dụ minh họa 46
4.6 Chương trình nạp cho AT MEGA328 54
4.6.1 Phần khai báo 54
4.6.2 Phần động cơ 55
4.6.3 Phần cảm biến 66
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 70
5.1 Kết luận 70
5.2 Hướng phát triển 70
TÀI LIỆU THAM KHẢO 71
7
Trang 8MỤC LỤC HÌNH ẢN
Hình 1 1 Wheel Robot 5
Hình 1 2 Một số hình dạng của mê cung 6
Hình 1 3 Mê cung đường đơn giản 6Y Hình 2 1 Không gian trạng thái của bài toán tìm kiếm theo chiều rộng 9
Hình 2 2 Không gian trạng thái của phương pháp tìm kiếm theo chiều sâu
Hình 3 1 Sơ đồ khối cấu tạo robot di động 17
Hình 3 2 Led phát và thu hồng ngoại 18
Hình 3 3 Photodiode 18
Hình 3 4 Cách cảm biến hoạt động 19
Hình 3 5 Sơ đồ nguyên lý mạch cảm biến hồng ngoại 20
Hình 3 6 LM358 loại dán 20
Hình 3 7 Sơ đồ chân LM358 21
Hình 3 8 ATMEGA328P 22
Hình 3 9 Sơ đồ nguyên lý động cơ quay theo chiều thuận 23
Hình 3 10 Sơ đồ nguyên ly động cơ DC quay theo chiều nghịch 23
Hình 3 11 PowerSO-20 24
Hình 3 12 L298 25
Hình 3 13 Sơ đồ nguyên lý mạch điều khiển động cơ sử dụng L298 27
Hình 3 14 led0805 27
Hình 3 15 biến trở 10k 28
Hình 3 16 trở 330 28
Hình 3 17 transitor 3904 29
Hình 3 18 Diode 1N4007 M7 29
Hình 3 19 Động cơ quay thuận 30
Hình 3 20 Động cơ quay nghịch 30
Hình 3 21 Động cơ DC giảm tốc GA12 31
Hình 3 22 Pin 18650 31
Hình 3 23 Sơ đồ nguyên lý 34
Hình 3 24 Mạch in 35
Hình 3 25 Phía bên phải của Robot 36Y Hình 4 1 Tìm kiếm theo chiều sâu 38
Hình 4 2 Cách Mobile tìm đường đến đích 39
Hình 4 3 Cách Mobile robot tìm đường đi ngắn nhất 39
Hình 4 4 Đặt tên cảm biến 40
Hình 4 5 Những kết quả cảm biến khi đi theo đường thẳng 40
Hình 4 6 Trường hợp cảm biến đặt gần nhau 41
Hình 4 7 Các khả năng robot gặp phải 41
Hình 4 8Chỉ rẽ trái, thẳng hoặc rẽ trái 42
8
Trang 9Hình 4 9 Chỉ rẽ phải, thẳng hoặc rẽ phải 42
Hình 4 10 Ngã 3, ngã 4 và đích đến 42
Hình 4 11 Chỉ rẽ Trái 43
Hình 4 12 Chỉ rẽ phải 43
Hình 4 13 Chữ T 43
Hình 4 14 Ngã tư 44
Hình 4 15 Thẳng hoặc rẽ trái 44
Hình 4 16 Thẳng hoặc rẽ phải 44
Hình 4 17 Đích 45
Hình 4 18 Đường cụt 45
Hình 4 19 Điểm xuất phát 47
Hình 4 20 Điểm đi thẳng hoặc rẽ phải 47
Hình 4 21 Robot đi thẳng 47
Hình 4 22 Robot tiếp tục đi thẳng 48
Hình 4 23 Robot quay đầu 48
Hình 4 24 Sau quay đầu robot tiếp tục chạy thẳng 48
Hình 4 25 Robot rẽ trái 49
Hình 4 26 Robot ghi nhớ ký tự “R” 49
Hình 4 27 Robot ghi nhớ ký tự “RL” 49
Hình 4 28 Robot ghi nhớ ký tự “RLR” 50
Hình 4 29 Robot ghi nhớ ký tự “RLRB” 50
Hình 4 30 Robot ghi nhớ ký tự “RLRBL” 50
Hình 4 31 Robot ghi nhớ ký tự “RLB” 51
Hình 4 32 Robot ghi nhớ ký tự “RLBL” 51
Hình 4 33 Robot ghi nhớ ký tự “RS” 51
Hình 4 34 Robot ghi nhớ ký tự “RSB” 52
Hình 4 35 Robot ghi nhớ ký tự “RSBL” 52
Hình 4 36 Robot ghi nhớ ký tự “RR” 52
Hình 4 37 Robot ghi nhớ ký tự “RRL” 53
Hình 4 38 Robot ghi nhớ ký tự “RRLL” 53
Hình 4 39 Robot ghi nhớ ký tự “RRLLD” 53
Hình 4 40 Robot tối ưu đường đi 54
9
Trang 10LỜI MỞ ĐẦU
Cùng với sự phát triển nhanh chóng của các ngành khoa học kỹ thuật, công nghệchế tạo robot cũng phát triển theo Robot ngày càng gia tăng về số lượng, lẫn chấtlượng nhằm đáp ứng cho nhu cầu tự động hoá các quy trình sản xuất, các nhu cầutrong thám hiểm cũng như phục vụ cho đời sống con người
Trong xu thế sử dụng robot ngày càng nhiều trong sản xuất và sinh hoạt, ở ViệtNam, ngành công nghiệp robot cũng đang từng bước phát triển Tuy nhiên các robotnày chỉ sản xuất dưới dạng người máy công nghiệp, các tay máy hoặc như các máyphục vụ cho nhu cầu giải trí Trong khi đó, loại robot di động vẫn chưa được chú ýnhiều, mặc dù đây là loại robot có tiềm năng rất lớn, có thể dùng trong nhiều mục đíchkhác nhau như: giải trí trong gia đình, phục vụ trong các công sở, trong các mục đíchquân sự, và dùng nhiều trong thám hiểm hành tinh Tiêu biểu trong họ robot này có thể
kể đến như: chó robot Aibo, xe tự hành Sojourner thám hiểm sao hỏa và các loại robot
dò mìn
Robot di động là một lĩnh vực có nhiều tiềm năng, nên dù hạn chế về kiến thức và ít
ỏi về tài liệu nhưng tôi cố gắng thực hiện đồ án tốt nghiệp về đề tài này ở mức độ đơngiản Dù đã cố gắng nhưng cũng còn rất nhiều sai sót, khuyết điểm Tôi rất mong được
sự chỉ bảo thêm nơi quý thầy cô và bạn bè
Tôi xin chân thành cảm ơn sự quan tâm của quý thầy cô và bạn bè
CHƯƠNG 1 GIỚI THIỆU CHUNG
1.1 Giới thiệu sơ lược về robot
Trên 1921, trên sân khấu kịch nói ở Tiệp Khắc, trong tác phẩm nhan đề “R.U.R”hay “Rossuum’s Universal Robot’s” của Karel Capek, xuất hiện nhân vật “Robotnik”
có nghĩa là công nhân Nhân vật trong vở diễn mô tả một khối cơ khí rập khuôn hìnhdáng con người Sau đó những cỗ máy này được dùng trong chiến tranh và cuối cùng
đã quay lại chống loài người đã sáng tạo ra chúng
10
Trang 11Tuy nhiên trước đó người Hi Lạp đã chế tạo những tượng đá có thể chuyển độngđược, đó chính là sự bắt đầu của những gì chúng ta gọi là Robot Trong phần lớntrường hợp danh từ Robot hiện nay hàm ý những cỗ máy nhân tạo có thể thực hiệnnhững công việc hay những hành động khác thường, được thực hiện bởi con người.
Đa số các Robot ngày nay được sử dụng trong các nhà máy để chế tạo những sảnphẩm như xe hơi và điện tử, máy móc công nghiệp Những loại khác được dùng trongcác công việc nghiên cứu, thám hiểm mặt đất, đại dương và trên các hành tinh khác.Robot thường có 3 phần chính:
- Bộ não (Brain): Thường là một máy tính, vi xử lý hoặc vi điều khiển
- Các bộ phận cơ khí và chấp hành (Actuator): Động cơ, piston, cơ câu kẹp, bánhrăng, bánh xe
- Cảm biến (Sensor): Thị giác, âm thanh, nhiệt độ, chuyển động, ánh sáng, xúcgiác
Với 3 thành phần này, Robot có thể tương tác và tác động đến môi trường củachúng ta trở nên hữu dụng
1.1.1 Sự tác động của Robot lên xã hội
Vì Robot được dùng chủ yếu trong sản xuất, nên chúng ta có thể thấy được sự tácđộng của chúng lên những sản phẩm chúng ta dùng hằng ngày Thường thì sự tác độngnày mang tính tích cực, làm cho sản phẩm trở nên tốt hơn, giá rẻ hơn Robot cũngđược dùng trong những trường hợp mà nó có thể làm tốt hơn con người như giải phẫu,
ở đó sự chính xác cao rất cần thiết Robot còn được dùng trong thám hiểm những nơinguy hiểm như núi lửa hoặc trong việc dò mìn, điều này cho phép chúng ta hoàn thànhcông việc mà không gây nguy hiểm cho ta
Tuy nhiên vẫn có những vấn đề với Robot Như bất cứ loại máy nào, Robot có thểngưng hoạt động và ngay cả gây tai nạn Chúng là những cỗ máy mạnh mẽ, con người
để cho nó tự điều khiển một vài công việc Khi có một hành động nào đó đi sai hướngthì những điều nguy hiểm nhất có thể xảy ra May mắn là điều này ít khi xảy ra vì hệthống Robot được thiết kế với nhiều đặc tính an toàn, sẽ giới hạn những thiệt hại cóthể
11
Trang 12Ngoài ra, vấn đề sẽ trở nên rất nghiêm trọng nếu Robot được sử dụng vào nhữngmục đích xấu, chống lại con người Ngày nay điều này đã trở thành hiện thực, vớinhững hình thức khác nhau của kỹ thuật như chế tạo vũ khí và vật liệu sinh học.
1.1.2 Tương lai, xu hướng phát triển của Robot
Robot đã có những bước tiến đáng kể trong hơn nửa thế kỷ qua Robot đầu tiênđược ứng dụng trong công nghiệp vào những năm 60 để thay thế con người làm nhữngcông việc nặng nhọc, nguy hiểm trong môi trường độc hại Do nhu cầu sử dụng ngàycàng nhiều trong quá trình sản xuất phức tạp nên robot công nghiệp cần có những khảnăng thích ứng linh hoạt và thông minh hơn Ngày nay, ngoài ứng dụng sơ khai banđầu của robot trong chế tạo máy thì các ứng dụng khác như trong y tế, chăm sóc sứckhỏe, nông nghiệp, đóng tàu, xây dựng, an ninh quốc phòng đang là động lực cho sựphát triển của ngành công nghiệp robot
Có thể kể đến những loại robot được quan tâm nhiều trong thời gian qua là: tay máyrobot, robot di động (Mobile Robots), robot phỏng sinh học (Bio Inspired Robots) vàrobot cá nhân (Personal Robots) Robot di động được nghiên cứu nhiều như xe tự hànhtrên mặt đất AGV (Autonomous Guided Vehicles), robot tự hành dưới nước AUV(Autonomous Underwater Vehicles), robot tự hành trên không UAV (Unmanned ArialVehicles) và robot vũ trụ (Space robots) Với robot phỏng sinh học, các nghiên cứutrong thời gian qua tập trung vào hai loại chính là robot đi bộ (Walking robot) và robotdáng người (Humanoid robot) Bên cạnh đó các loại robot phỏng sinh học như cá dướinước, các cấu trúc chuyển động phỏng theo sinh vật biển cũng được nhiều nhómnghiên cứu, phát triển
1.2 Phương pháp thiết kế robot di động
Cấu trúc của một Robot chuyển động thường gồm hai phần: phần cứng và phầnmềm, ngoài ra còn có hệ thống cơ khí làm bộ phận chuyển động và khung để chứa cácthành phần bên trong của Robot Phần cứng của Robot là thuật ngữ chỉ các mạch điện
tử trong Robot, quyết định tiềm năng của Robot Nhưng để khai thác các tiềm năngnày, Robot cần phải có phần mềm là các chương trình điều khiển Robot, giao tiếp bộ
vi xử lý với các phần tử ngoại vi như cảm biến, các bộ phận chấp hành Phần cứng vàphần mềm quan hệ chặt chẽ với nhau để tạo nên một Robot hữu dụng
12
Trang 13Thành phần chính trong phần cứng của Robot là bộ xử lý mà thông dụng là vi xử lí.Tuy nhiên các bộ vi xử lý đa phần có các tập lệnh tập trung vào việc xử lý dữ liệu, rất
ít các lệnh vào, ra nên khả năng tương tác với các ngoại vi là rất thấp Để giao tiếp vớingoại vi cần có thêm các mạch điện phụ, làm cho phần cứng trở nên cồng kềnh hơn vàhoàn toàn không thích hợp cho các Robot chuyển động nhỏ luôn phải mang máy tínhtrên mình Do đó sự ra đời của các họ vi điều khiển tích hợp cao đã đem lại rất nhiềutiện dụng
1.3 Định nghĩa và phân loại Robot
Mobile robot hay robot di động (thường được gọi tắt là mobots) được định nghĩa làmột loại xe robot có khả năng tự dịch chuyển, tự vận động (có thể lập trình lại được)dưới sự điền khiển tự động để thực hiện thành công công việc được giao Theo lýthuyết, môi trường hoạt động của Mobile robot có thể là đất, nước, không khí, khônggian vũ trụ hay sự tổ hợp giữa chúng Địa hình bề mặt mà robot di chuyển trên đó cóthể bằng phẳng hoặc thay đổi, lồi lõm
Mobile robot được chia làm 2 loại chính đó là Mobile robot chuyển động bằng chân(Legged Robot) và Mobile robot chuyển động bằng bánh (Wheel Robot) Ngoài ra một
số loại robot hoạt động trong các môi trường đặc biệt như dưới nước hay trên khôngtrung thì chúng được trang bị cơ cấu di chuyển đặc trưng
Ưu điểm lớn nhất của Mobile robot chuyển động bằng chân là có thể thích nghi và
di chuyển trên các địa hình gồ ghề Hơn nữa chúng còn có thể đi qua những vật cảnnhư hố, vết nứt sâu Nhược điểm chính của robot loại này chính là chế tạo quá phứctạp Chân robot là kết cấu nhiều bậc tự do, đây là nguyên nhân làm tăng trọng lượngcủa robot đồng thời giảm tốc độ di chuyển Các kĩ năng như cầm, nắm hay nâng tảicũng là nguyên nhân làm giảm độ cứng vững của robot Robot loại này càng linh hoạtthì chi phí chế tạo càng cao
Bánh xe là cơ cấu chuyển động được sử dụng rộng rãi nhất trong công nghệ Mobilerobot Vấn đề cân bằng thường không phải là vấn đề được chú ý nhiều trong robot dichuyển bằng bánh Ba bánh là kết cấu có khả năng duy trì cân bằng nhất, tuy nhiên kếtcấu 2 bánh cũng có thể cân bằng được Khi robot có số bánh nhiều
13
Trang 14hơn 3 thì thông thường người ta phải thiết kế hệ thống treo để duy trì sự tiếp xúccủa tất cả các bánh xe với mặt đất Vấn đề của robot loại này là về lực kéo, độ ổn định
và khả năng điều khiển chuyển động Những loại bánh xe cơ bản được sử dụng trongMobile robot chuyển động bằng bánh:
- Bánh xe tiêu chuẩn: 2 bậc tự do, có thể quay quanh trục bánh xe và điểm tiếp xúc
- Bánh lái: 2 bậc tự do, có thể quay xung quanh khớp lái
- Bánh Swedish: 3 bậc tự do, có thể quay đông thời xung quanh trục bánh xe, trụclăn và điểm tiếp xúc
Hình 1 1 Wheel Robot
1.4 Mê cung đường (Maze line)
Mê cung hay còn gọi là mê lộ, mê đạo thường được hiểu là một hệ thống gồm nhiềunhánh ngang dọc nối chằng chịt với nhau Mê cung được dùng để chỉ hệ thống gồm rấtnhiều lối đi được bao bọc xung quanh với vô vàn ngã ba, ngã tư, ngõ cụt Mỗi mê cung
có thể có 1 hoặc nhiều điểm xuất phát nhưng thường chỉ có một lối ra
Hình 1 2 Một số hình dạng của mê cung
14
Trang 15Mê cung đường (Maze line) thường là một đường màu đen trên nền trắng Nó cũng
có thể là một đường trắng trên nền đen, nhưng đối với bài trình bày, các đường màuđen trên nền trắng sẽ được sử dụng Mỗi mê cung đường có điểm bắt đầu và điểm kếtthúc và nhiều ngã ba, ngã tư, ngõ cụt (hình 1.8, 1.9) Robot sẽ dò theo các đường đen
và tìm thấy đích từ điểm bắt đầu trong thời gian nhanh nhất có thể Mê cung đường cónhiều loại từ đơn giản đến phức tạp, không vòng lặp hoặc có vòng lặp
Ở đề tài này ta sẽ dùng mê cung loại đơn giản và không có vòng lặp Thuật toán sửdụng không thể giải quyết khi trong mê cung đường có vòng lặp, điều này sẽ giải thích
kĩ hơn ở chương 4
Hình 1 3 Mê cung đường đơn giản
15
Trang 16CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Không gian bài toán
Tri thức của bài toán được chia ra làm ba lọai tri thức cơ bản đó là tri thức mô tả, trithức thủ tục và tri thức điều khiển, trong đó tri thức thủ tục định nghĩa không gian bàitoán Không gian bài toán có thể được biểu diễn bằng không gian trạng thái đó là mộtbiểu diễn bằng đồ thị định hướng gồm bốn thành phần như sau:
- S: Trạng thái ban đầu của bài toán (dữ liệu ban đầu)
- G: Tập các trạng thái đích của bài toán (dữ liệu đích)
- N: Tập các trạng thái khác được phát sinh từ trạng thái ban đầu đạt đến trạngthái đích đó là các nút của đồ thị
- A: Tập các trạng thái chuyển tiếp đó là các cung liên kết giữa các nút của đồ thịnhờ thông qua các luật áp dụng của bài toán
Luật áp dụng là luật mà vế điều kiện của nó hợp với trạng thái hiện có để vế kếtluận của nó phát sinh ra các trạng thái mới
Đường lời giải của bài toán là đường bắt đầu từ trạng thái ban đầu thông qua cáctrạng thái khác được phát sinh đến một trạng thái nào đó trong tập các trạng thái đích
2.2 Chiến lược tìm kiếm
Có hai chiến lược tìm kiếm trên không gian trạng thái bài toán đó là tìm kiếm bắtđầu từ dữ liệu ban đầu về đích và tìm kiếm từ dữ liệu đích lùi về dữ liệu ban đầu Tìm kiếm bắt đầu từ dữ liệu ban đầu về đích được gọi là chiến lược tìm kiếm suydiễn tiến và tìm kiếm bắt đầu từ đích lùi về dữ liệu được gọi là chiến lược tìm kiếmsuy diễn lùi
2.2.1 Tìm kiếm suy diễn tiến
Thủ tục tìm kiếm suy diễn tiến trên không gian trạng thái bài toán được mô tả nhưsau:
- Bắt đầu tìm kiếm từ dữ liệu ban đầu của bài toán
Trang 17- Chọn tất các các luật ứng dụng với vế điều kiện hợp với dữ liệu ban đầu của bàitoán để vế kết luận phát sinh ra các dữ liệu mới
- Tại mỗi điểm dữ liệu mới, chọn tất cả các luật ứng dụng với vế điều kiện hợpvới dữ liệu mới để vế kết luận phát sinh ra các dữ liệu mới hơn
- Thủ tục này được lặp lại cho tất cả các dữ liệu mới cho đến khi dữ liệu đíchđược tìm thấy
2.2.2 Chiến lược tìm kiếm suy diễn lùi
Thủ tục tìm kiếm suy diễn lùi trên không gian trạng thái bài toán được mô tả nhưsau:
- Thủ tục bắt đầu tìm kiếm từ dữ liệu đích của bài toán
- Chọn tất cả các luật ứng dụng với vế kết luận hợp với dữ liệu đích, thiết lập dữliệu ở vế điều kiện phát sinh ra đích làm dữ liệu đích mới
- Tại mỗi điểm dữ liệu đích mới, chọn tất cả các luật ứng dụng với vế kết luậnhợp với đích mới, thiết lập dữ liệu ở điều kiện làm dữ liệu đích mới hơn
- Thủ tục này lặp lại cho tất cả các đích mới cho đến khi nào dữ liệu ban đầu củabài toán được tìm thấy
2.3 Giải thuật tìm kiếm
Để giải bài toán sử dụng chiến lược tìm kiếm suy diễn tiến hoặc chiến lược tìmkiếm suy diễn lùi, công việc tìm kiếm là phải tìm một đường từ trạng thái bắt đầu đếntrạng thái đích thông qua không gian trạng thái của bài toán Công cụ thực hiện việctìm kiếm này đó là giải thuật Quá trình tìm kiếm được xem như cây tìm kiếm thôngqua không gian trạng thái của bài toán Giải thuật bắt đầu từ nút gốc của cây tìm kiếmthăm dò qua các nút khác của cây trong không gian trạng thái của bài toán Nếu giảithuật tìm thấy đích thì giải thuật thiết lập đường lời giải bắt đầu từ nút gốc thông quacác nút liên kết đến nút đích của cây Cấu trúc dữ liệu cho cây tìm kiếm ở đây là ta giả
sử nút là một cấu trúc dữ liệu với năm thành phần như sau:
- Trạng thái trong không gian trạng thái tương ứng với nút của cây
Trang 18- Nút trong cây tìm kiếm mà đã phát sinh ra nút mới thì nút này được gọi là nútcha và nút mới được gọi là nút con
- Luật hay lệnh hợp lệ được áp dụng để phát sinh ra nút
- Số lượng của các nút trên đường từ nút gốc của cây đến một nút, được gọi là độsâu của nút đó
- Giá chi phí của đường là tính từ nút gốc của cây đến nút đó
Có hai loại giải thuật tìm kiếm cơ bản đó là giải thuật tìm kiếm theo chiều rộng vàgiải thuật tìm kiếm theo chiều sâu
2.3.1 Giải thuật tìm kiếm theo chiều rộng (Breadth_First_Search)
Hình 2 1 Không gian trạng thái của bài toán tìm kiếm theo chiều rộng
Giải thuật tìm kiếm theo chiều rộng là giải thuật tìm kiếm mức theo mức của cây.Giải thuật bắt đầu từ nút gốc của cây tìm kiếm qua tất cả các nút ở mức kế theo, nếu nóchưa tìm thấy đích thì nó tiếp tục tìm kiếm qua tất cả các nút ở mức sâu hơn, cứ nhưthế cho đến khi nó tìm thấy nút đích thì nó dừng thủ tục tìm kiếm và thiết lập đườnglời giải bắt đầu từ nút gốc thông qua các nút liên kết đến nút đích
Giả sử cho không gian trạng thái của bài toán với các trạng thái được đánh nhãnbằng các chữ cái A, B, C… được mô tả như hình 2.1
Thứ tự của các trạng thái tìm kiếm với giải thuật tìm kiếm theo chiều rộng là: A, B,
C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U
Giải thuật tìm kiếm theo chiều rộng được trang bị bằng hai danh sách mở Open vàđóng Closed, trong đó danh sách Open chứa các trạng thái đang chờ được duyệt và
Trang 19danh sách Closed chứa các trạng thái đã được duyệt qua Giải thuật được mô tả nhưsau:
- Phát sinh các con của X dùng các luật áp dụng hợp với X;
- Đặt X vào danh sách Closed;
- Lọai bỏ các con của X đã có mặt trên Open hoặc Closed;
- Đặt các on của X chưa có mặt trên Open hoặc Closed vào cuối danhsách Open;
end;
end;
end
2.3.2 Giải thuật tìm kiếm theo chiều sâu (Depth First Search)
Giải thuật tìm kiếm theo chiều sâu là giải thuật tìm kiếm nhánh theo nhánh của cây.Giải thuật bắt đầu từ nút gốc tìm kiếm đến con, cháu, chắc của gốc, nếu giải thuật tìmthấy đích thì dừng thủ tục tìm kiếm và thiết lập đường lời giải từ nút gốc thông qua cácnút liên kết đến nút đích; mặt khác nếu giải thuật tìm thấy đường cụt thì nó lùi về tìmkiếm nút anh em Không gian trạng thái của phương pháp tìm kiếm theo chiều sâuđược mô tả như hình 2.2:
Trang 20Hình 2 2 Không gian trạng thái của phương pháp tìm kiếm theo chiều sâu.
Cho không trạng thái của bài toán như hình trên, thứ tự của các trạng thái tìm kiếm với giải thuật tìm kiếm theo chiều sâu là A, B, E, K, S, L, T, F, M, C, G, N, H, O, P, U,
D, I, Q, J, R
Giải thuật cũng được trang bị bằng hai danh sách mở Open và đóng Closed giống
như giải thuật tìm kiếm theo chiều rộng Giải thuật được mô tả như sau:
Procedure depth_first_search
Begin
Open = [Start]; Closed = [ ];
While Open ≠ [ ]
Begin
- Lọai bỏ nút đầu tiên từ danh sách Open và gọi nút này là X If X = đích Then trả về thành công
Else begin
- Phát sinh các con của X dùng các luật áp dụng hợp với X;
- Đặt X vào danh sách Closed;
- Lọai bỏ các con của X đã có mặt trên Open hoặc Closed;
Trang 21- Đặt các on của X chưa có mặt trên Open hoặc Closed vào đầu danh sách
Open;
end;
end; end 2.3.3 Giải thuật tìm kiếm truyền lùi ( Back Tracking search ) Một giải thuật tìm kiếm khác được gọi là giải thuật tìm kiếm truyền lùi, cách tìm kiếm đích của giải thuật này cũng giống như cách tìm kiếm đích của giải thuật tìm kiếm theo chiều sâu Giải thuật được trang bị bằng ba danh sách N, S và D, trong đó danh sách N chứa các trạng thái đang chờ sẽ được duyệt qua, danh sách S chứa các trạng thái đã được duyệt qua trên đường tìm kiếm và D là danh sách chứa các trạng thái của các đường cụt Khi giải thuật tìm thấy đích, danh sách S được thiết lập với các trạng thái liên kết nhau từ nút gốc đến nút đích đó là đường lời giải của bài toán Giải thuật được mô tả như sau: Function backtracking Begin
N = [Start];
S = [Start];
D = [ ]; C = Start;
While N ≠ [ ]
Begin
If C = đích then return (S)
Elseif C không có thừa kế
( Không kể các thừa kế đã có mặt trên N, S hoặc D)
begin
Trang 22while S ≠ [ ] và C là phần tử đầu tiên của S begin
- Đặt C vào đầu danh sách D
- Lọai bỏ nút đầu tiên của S
- Lọai bỏ nút đầu tiên của N
- Đặt C = phần tử đầu tiên của N
end Đặt C vào đầu danh sách S
end Else begin
- Khai triển các thừa kế của C dùng các luật ứng hợp với C
- Lọai bỏ tất cả các thừa kế của C đã có mặt trên N, S, hoặc D
- Đặt các thừa kế của C chưa có mặt trên N, S, hoặc D vào đầudanh sách N
- Đặt C = phần tử đầu tiên của N
- Đặt C vào đầu danh sách S
end end;
end
2.4 Tìm Kiếm Heuristic
Tri thức điều khiển của bài toán còn được gọi là heuristic Heuristic là luật chủ chốtđiều khiển thuật toán tìm kiếm bám theo đường có các trạng thái tốt nhất để đạt đếnđích Heuristic có thể được thể hiện dưới dạng luật hoặc dưới dạng hàm số Nếu nóđược thể hiện dưới dạng luật thì nó được gọi là luật heuristic và nếu nó được thể hiệndưới dạng hàm thì nó được gọi là hàm heuristic
Trang 23Heuristic còn được gọi là tri thức nông cạn của bài toán vì nó chỉ đoán bắt trạng tháitốt nhất ở bước kế theo trong quá trình giải quyết vấn đề Do đó heuristic đôi lúckhông thể đảm bảo tìm thấy lời giải tốt nhất nhưng hầu hết nó đảm bảo tìm thấy lờigiải tương đối tốt nhất
Nếu ta định nghĩa h(n) là hàm heuristic tại trạng thái n thì h(n) là một ước lượngtính từ trạng thái n đến trạng thái đích của bài toán Trạng thái nào có heuristic nhỏnhất đó là trạng thái tốt nhất được chọn để tiếp diễn quá trình tìm kiếm
- Nếu trạng thái n không dẫn đến đường cụt thì heuristic của nó là h(n) >= 0
- Nếu trạng thái n dẫn đến đường cụt thì heuristic của nó là h(n) = ∞
- Nếu trạng thái n dẫn đến trạng thái đích của bài toán thì heuristic của nó làh(n) = 0
2.4.1 Giải thuật tìm kiếm Best_First_Search
Một trong các giải thuật tìm kiếm sử dụng heuristic đó là giải thuậtBest_first_search Giải thuật được trang bị bằng hai danh sách mở Open và đóngClosed cũng giống như giải thuật tìm kiếm theo chiều rộng và chiều sâu Giải thuật bắtđầu tìm kiếm với nút gốc của cây, khai triển các thừa kế của gốc nhờ thông qua cácluật ứng dụng, ước lượng heuristic cho tất cả các nút con của gốc, chọn nút cóheuristic nhỏ nhất để đến viếng thăm và tháo bỏ tất cả các nút còn lại Thủ tục nàyđược lặp lại cho tất cả các nút viếng thăm cho đến khi nào trạng thái đích của bài toánđược tìm thấy Cách tìm kiếm này tạo ra một đường liên kết bám theo các trạng thái cóthông tin heuristic nhỏ nhất đó là các trạng thái được đánh giá là tốt nhất để đạt đếnđích
Giải thuật được mô tả như sau:
Trang 24- Ước lượng heuristic cho thừa kế
- Đặt thừa kế vào danh sách Open
Case : Thừa kế đã có mặt trên danh sách Open
- Ước lượng heuristic cho thừa kế
- Nếu trạng thái mới xuất hiện là tốt hơn trạng thái cũ đã xuất hiện trênOpen thì lọai bỏ cũ khỏi danh sách Open và đặt mới vào danh sáchOpen; mặt khác giữ lại trạng thái cũ ở danh sách Open và loại bỏ trạngthái mới xuất hiện
Case : Thừa kế đã có mặt trên danh sách Closed
- Ước lượng heuristic cho thừa kế
- Nếu trạng thái mới xuất hiện là tốt hơn trạng thái cũ đã có mặt sẵn trênClosed thì lọai bỏ cũ khỏi danh sách Closed và đặt mới vào danh sáchOpen; mặt khác giữ lại trạng thái cũ ở danh sách Closed và loại bỏtrạng thái mới xuất hiện
End
- Đặt X vào danh sách Closed
Trang 25- Sắp xếp lại các trạng thái trong danh sách Open theo thứ tự từ đầu danhsách đến cuối danh sách tương ứng với trạng thái tốt nhất đến trạng tháixấu nhất
f(n) = h(n) + g(n) Ttrong đó, h(n) là hàm heuristic tại mỗi trạng thái n và g(n) làhàm chi phí đo từ trạng thái gốc của cây đến nút trạng thái n
Vì vậy, quá trình tìm kiếm, trạng thái nào có f(n) là nhỏ nhất đó là trạng thái tốt nhấtđược chọn để tiếp diễn tìm kiếm
Trang 26CHƯƠNG 3 CẤU TẠO ROBOT DI ĐỘNG
3.1 Khái quát về cấu tạo của Robot di động
Mobile gồm có 3 phần chính:
- Bộ não (Brain): ATMEGA328 Có thể sử dụng nhiều loại Ardruino khác nhau,tuy nhiên để thu gọn kích thước robot mà vẫn đảm bảo đủ số lượng chân thìmình sử dụng Arduino Nano
- Các bộ phận cơ khí và chấp hành (Actuator): Động cơ, bánh xe, khung xe
- Cảm biến (Sensor): Cảm biến hồng ngoại
Cũng có thể khái quát về cấu tạo của robot qua sơ đồ khối sau:
Hình 3 1 Sơ đồ khối cấu tạo robot di động
3.2 Cảm biến hồng ngoại
Một cảm biến hồng ngoại là một thiết bị phát hiện bức xạ hồng ngoại chiếu vào
nó Có rất nhiều loại cảm biến hồng ngoại được xây dựng và có thể được xây dựng tùythuộc vào ứng dụng Cảm biến tiệm cận (được sử dụng trong cảm ứng điện thoại vàRobot tránh vật cản), cảm biến tương phản và cảm biến hồng ngọai (được sử dụng đểđếm các hàng hoá và chống trộm, báo động) là một số ví dụ, sử dụng cảm biến hồngngoại
Trang 27Ngoài cách sử dụng những cảm biến hồng ngoại có sẵn ta còn có thể tự thiết kế nênmạch hồng ngoại từ led phát hồng ngoại, led thu hồng ngoại (photodiode), opampLM358
Một IR LED (led phát hồng ngoại) là một loại đèn LED phát ra ánh sáng trong dảitần số của Infra-Red (led thu hồng ngoại) Xin lưu ý rằng bức xạ hồng ngoại là vô hìnhđối với mắt người, và do đó chúng ta không thể nhìn thấy Nhưng có một cách để nhìnthấy bức xạ hồng ngoại nếu bạn muốn Nếu bạn nhìn vào bức xạ hồng ngoại thông quaống kính của máy ảnh, bạn sẽ có thể nhìn thấy nó Ngoài ra, trong mọi ý nghĩa khácmột IR LED hoạt động chính xác như một đèn LED thông thường, dòng tiêu thụkhoảng 20mA và hoạt động trên khoảng 3V DC
Hình 3 2 Led phát và thu hồng ngoạiPhotodiode là một loại bán dẫn đơn giản nhưng vỏ có gắn thấu kính đề dẫn tia sángchiếu đúng vào mặt tiếp giáp Photodiode là loại diode làm việc theo chế độ phân cựcnghịch, dòng nghịch qua diode được điều khiển bởi cường độ ánh sáng chiếu vào Khiánh sáng chiếu qua diode tăng thì dòng nghịch qua nó cũng tăng theo
Hình 3 3 Photodiode
Trang 28
3.2.1 Thiết kế mạch cảm biến
Mắt phát hồng ngoại sẽ phát ra sóng ánh sáng có bước sóng hồng ngoại, ở mắt thubình thường thì có nội trở rất lớn (khoảng vài trăm kilô ôm), khi mắt thu bị tia hồngngoại chiếu vào thì nội trở của nó giảm xuống (khoảng vài chục ôm)
Hình 3 4 Cách cảm biến hoạt động
Từ đó có thể thấy khi led hồng ngoại chiếu ánh sáng hồng ngoại tới gặp vật cản thìcác tia hồng ngoại sẽ bị dội ngược trở lại, và khi đó đầu thu detector sẽ nhận được mộtlượng ánh sáng hồng ngoại bi hắt ngược trở về, và truyền tín hiệu về mạch xử lí, thôngqua bộ khếch đại so sánh Chú ý: đầu thu phát hồng ngoại cần được che chắn tốt đềtránh bị nhiễu ánh sáng bên ngoài (ánh sáng tự nhiên, ánh sáng của các loại đèn caoáp, ) và nên đặt hai đầu thu phát cạnh nhau (cách nhau khoảng từ 2mm đến 5mm).Bây giờ chúng ta dùng 1 con oppam như LM358 để tạo các mức logic 0 và 1 bằngcách so sánh 2 giá trị điện áp của cầu chia điện trở (ở đây ta dùng biến trở ) và điện áptrên anot của mắt nhận hồng ngoại Nếu khi có tia hồng ngoại chiếu vào mắt nhận thìnội trở mắt nhận giảm nên điện áp trên cực anot của mắt nhận sẽ tăng lên , khi điện ápnày lớn hơn điện áp của cầu phân áp bằng điện trở thì mức điện áp ra sẽ là VCC ( mứclogic 1) ngược lại là mức logic 0
Trang 29Hình 3 5 Sơ đồ nguyên lý mạch cảm biến hồng ngoại
Ở mạch sơ đồ nguyên lý trên sử dụng điện áp VCC là 5V, còn biến trở thì dùng loại10K hay 5K đều được ( ở đây biến trở còn dùng để điều chỉnh khoảng cách cảm biếnhay độ nhạy của cảm biến hồng ngoại ) Nếu mạch làm đúng thì khi có vật cản phíatrước thì đèn LED sẽ sáng lên, ngươc lại đèn LED sẽ tắt Ghi nhớ rằng vật cản ở đây làvật cản có bề mặt sáng, nếu bề mặt vật cản tối thì nó sẽ hấp thu toàn bộ tia hồng ngoại
và ở mắt thu sẽ không nhận được các tia này và cảm biến coi như không có vật cảnphía trước
3.2.2 LM358 loại dán
IC LM358 là bộ khuếch đại thuật toán kép công suất thấp, bộ khuếch đại này có ưuđiểm hơn so với bộ khuếch đại thuật toán chuẩn trong các ứng dụng dùng nguồn đơn
Hình 3 6 LM358 loại dán
Trang 30Thông số kỹ thuật:
- Model: 8 chân
- Điện áp: 3-32V với nguồn đơn, 1.5-16V với nguồn đôi
- Dải nhiệt độ hoạt động: 0 ~ 70oC
- Độ lợi khuếch đại DC 100dB
- Điện áp ngõ ra: 0V đến VCC(+)-1.5V
IC LM358 có thể hoạt động ở nguồn điện áp thấp 3V hoặc cao lên tới 32V LM358
có công suất cực máng thấp, tuy nhiên có độ lợi cao 100dB Cấu tạo bên trong của ICLM358 gồm 2 bộ khuếch đại thuật toán, tương thích với nhiều loại mạch logic khácnhau
Các tính năng của khuếch đại thuật toán:
- Bảo vệ quá áp lối ra
- Tầng khuếch đại vi sai lối vào
- Dòng cung cấp lối vào thấp
- Dải tín hiệu cùng pha mở rộng tới nguồn âm
Trang 32cơ chạy từ A đến B và từ B đến A từ đó có thể giúp đảo chiều quay động cơ.
Ngày nay, mạch cầu H ngoài việc được thiết kế từ các linh kiện rời như BJT
công suất, Mosfet còn có các loại mạch cầu H như L293D và L298D
Do đối tượng được điều khiển trong đề tài này là động cơ có điện áp và công suấtnhỏ nên nhóm đã chọn mạch cầu H đổi chiều động cơ là IC L298
Hình 3 9 Sơ đồ nguyên lý động cơ quay theo chiều thuận
Trang 33Nguyên lý hoạt động: Khi A ở mức cao B ở mức thấp, Transitor Q2 và Q4 dẫn bãohòa Q1 và Q3 không dẫn Động cơ quay theo chiều thuận Chiều của mũi tên trên hình3.14 chỉ chiều của dòng điện Dòng điện đi từ nguồn Vcc —> Q2 —> Motor DC —>Q4 —> Mass.
Hình 3 10 Sơ đồ nguyên ly động cơ DC quay theo chiều nghịch
Nguyên lý hoạt động: Khi B ở mức cao A ở mức thấp , T ransitor Q1 và Q3 dẫn Q2
và Q4 không dẫn Động cơ quay theo chiều nghịch Chiều của mũi tên trên hình 3.15chỉ chiều của dòng điện Dòng điện đi từ nguồn Vcc —> Q2 Motor —> DC —> Q4
—> Mass
3.4.2 IC L298
IC L298 là mạch tích hợp đơn chip có kiểu vỏ công suất 15 chân (multiwatt 15) vàPowerSO20 (linh kiện dán công suất) Là IC mạch cầu đôi (dual full-bridge) có khảnăng hoạt động ở điện thế cao, dòng cao Nó được thiết kế tương thích chuẩn TTL vàlái tải cảm kháng như relay, cuộn solenoid, động cơ DC và động cơ bước Nó có 2chân enable (cho phép) để cho phép/không cho phép IC hoạt động, độc lập với cácchân tín hiệu vào Cực phát (emitter) của transistor dưới của mỗi mạch cầu được nốivới nhau và nối ra chân ngoài để nối với điện trở cảm ứng dòng khi cần Nó có thêmmột chân cấp nguồn giúp mạch logic có thể hoạt động ở điện thế thấp hơn
Trang 34Hình 3 11 PowerSO-20Bảng 3 2 L298P Full H-Bridge Driver Parallel 2A PowerSO-20
Other Related
Trang 35Hình 3 12 L298Bảng 3 3 Chức năng chân L298
Sense B
Nối chân này qua điện trở cảm ứng dòng xuống
GND để điều khiển dòng tải
Out2
Ngõ ra của cầu A Dòng của tải mắc giữa hai chân
này được qui định bởi chân 1
điện không cảm kháng 100nF nối giữa chân này và
với chân EnableB)
100nF nối giữa chân này với GND
Input 4
Các chân logic ngõ vào của cầu B
này được qui định bởi chân 15
Trang 363;18 NC Không kết nối( bỏ trống)
Có hai mạch cầu H trên một IC L298 nên có thể dùng điều khiển hai đối tượng vớimột IC này Mỗi mạch cầu H bao gồm một đường nguồn Vs (thật ra là đường chungcho hai mạch cầu), một chân current sensing (cảm biến dòng ở cuối mạch cầu H), chânnày không được nối đất mà để người dùng nối một điện trở nhỏ gọi là sensing resistor.Bằng cách đo điện áp rơi trên điện trở này ta có thể tính được dòng chạy qua điện trở,cũng là dòng qua động cơ, mục đích của việc này là xác định dòng quá tải
Nếu việc đo lường không cần thiết thì ta có thể đấu chân này với GND Động cơ sẽđược nối với hai chân OUT và OUT2 hoặc OUT3 và OUT4 Chân EN (ENA và ENB)cho phép IC hoạt động khi chân này ở mức cao L298 không chỉ được dùng để đảochiều động cơ mà còn điều khiển vận tốc động cơ bằng PWM Trong thực tế công suấtthực của L298 có thể tải nhỏ hơn công suất danh nghĩa của nó ( U=50v, I=2A) Mạchcầu H điều khiển động cơ DC Trong đề tài này nhóm sử dụng IC L298N để làm driverđiều khiển trực tiếp 2 động cơ
3.4.3 Thiết kế mạch điều khiển động cơ
IC L298 cho phép dòng qua nó lớn hơn khoảng hơn 2A Nguồn cấp cho động cơđược nối với chân 4 (Vs) nguồn cấp tùy thuộc vào thông số của động cơ Chân 9 (Vss)
có thể được nối chung với nguồn của mạch điều khiển (+5V), chân 6 là ngõ vào chophép điều khiển M1, chân 11 là ngõ vào cho phép điều khiển M2 và đều tác động ởmức cao, chân 6 và 11 được nối chung để điều khiển 2 motor cùng lúc Chân 1 và 15được nối với Rs về mass, chức năng của Rs là để điều chỉnh dòng qua M1 và M2
Trang 37Hình 3 13 Sơ đồ nguyên lý mạch điều khiển động cơ sử dụng L298
Thông số kỹ thuật:
- Thể loại: chiết áp, điện trở biến
Trang 38- Độ tinh chỉnh: 1% hoặc 2Ohms
- Vật liệu điện trở : Gốm kim loại
Trang 39Hình 3 17 transitor 3904
3.4.8 Diode 1N4007 M7 1A SMD
Diode 1N4007 là một diode silic chỉnh lưu phổ biến 1A thường được sửdụng trong các adapter AC cho các thiết bị gia dụng thông thường Diode1N4007 chịu được điện áp tối đa lên đến 1000V Dòng điện cực đại quamỗi diode 1N4007 là 1A, nếu dòng cao hơn sẽ gây nóng và cháy diode
Tuy nhiên, Diode 1N4007 là dòng diode có tốc độ chỉnh lưu thấp, hiệu điệnthế đầu ra nhấp nhô Để giảm sự nhấp nhô của hiệu điện thể đầu ra thì nên gắnthêm tụ lọc song song với tải
Khi ráp mạch cần chú ý, tránh dùng nguồn được chỉnh lưu bằng 1N4007 cungcấp cho các thiết bị điện tử sẽ gây nhiễu, méo, sai lệch tín hiệu hoặc hỏng thiết
bị, nguồn có thể dùng chạy motor DC, đèn dây tóc, nạp acquy
Trang 40kích thước nhỏ để phù hợp với Robot, tốc độ và moment đủ lớn để truyền động chobánh xe.
- Động cơ bước có moment lớn nhưng có tốc độ thấp và kích thước lớn
- Động cơ Servo có tốc độ lớn nhưng hạn chế về moment và chỉ quay trong phạm
Việc lựa chọn động cơ căn cứ vào các tiêu chí sau:
-Tốc độ
-Khả năng chịu tải
-Độ hãm
-Dòng, áp
Xét hoạt động của DC motor:
Hình 3 19 Động cơ quay thuận
Hình 3 20 Động cơ quay nghịch