Tuy nhiên thực hiện việc vận chuyển tài liệu trong văn phòngcũng có những mặt khó khăn như: xử lý việc hoạt động của xe để không làm ảnh hưởng đếncông việc của các nhân viên hay việc di
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ
NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO XE VẬN CHUYỂN
TÀI LIỆU TRONG VĂN PHÒNG TỰ ÐỘNG
GVHD: BÙI HÀ ĐỨC SVTH : TRƯƠNG ĐỒNG BẢO MSSV: 15146007
SVTH : VÕ TRỊNH ANH KHOA MSSV: 15146060
SVTH : NGUYỄN NGỌC THẠCH MSSV: 15146098
SKL005517
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ
MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
BỘ MÔN CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO XE VẬN CHUYỂN
TÀI LIỆU TRONG VĂN PHÒNG TỰ ĐỘNG
GVHD: TS BÙI HÀ ĐỨC SVTH: TRƯƠNG ĐỒNG BẢO MSSV: 15146007
SVTH: VÕ TRỊNH ANH KHOA MSSV: 15146060
SVTH: NGUYỄN NGỌC THẠCH MSSV: 15146098
KHÓA: K15
Tp Hồ Chí Minh, tháng 7 năm 2019
Trang 3LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn chân thành đến các thầy cô của trường Đại học sưphạm kỹ thuật TP Hồ Chí Minh, đặc biệt là các thầy cô khoa Đào tạo Chất lượng cao củatrường
Và chúng em cũng xin chân thành cám ơn thầy Bùi Hà Đức đã nhiệt tình hướngdẫn hướng dẫn em hoàn thành tốt đồ án
Trong quá trình thực tập, cũng như là trong quá trình làm bài báo cáo, khó tránhkhỏi sai sót, rất mong các thầy, cô bỏ qua Đồng thời do trình độ cũng như kinh nghiệmthực tiễn còn hạn chế nên bài báo cáo không thể tránh khỏi những thiếu sót, em rất mongnhận được ý kiến đóng góp thầy, cô để em học thêm được nhiều kinh nghiệm và sẽ hoànthành tốt hơn bài báo cáo tốt nghiệp sắp tới
Em xin chân thành cảm ơn!
Trang 4TÓM TẮT ĐỒ ÁN
Cùng với sự mở rộng của các nhà máy được tự động hóa và cơ khí hóa, các vấn đề
về việc vận chuyển, bốc dỡ và tích trữ hàng hóa trở nên ngày càng quan trọng hơn Tuynhiên hiện nay xe AGV chỉ tập trung chủ yếu ở các nhà máy, xưởng sản xuất mà vẫnchưa thấy ứng dụng nhiều trong công việc văn phòng, một lĩnh vực cũng cần phải cảithiện và nâng cao hiệu suất làm việc Hiện nay, các công ty ở Việt Nam được phát triểntheo mô hình phòng, ban gồm các văn phòng sát cạnh nhau trong một tòa nhà Với việcphải xử lý các tài liệu bằng giấy tờ như hợp đồng, hồ sơ, các giấy tờ cần sếp ký… dẫn tớinhu cầu giao nhận tài liệu giữa các phòng với nhau Do đó, nhu cầu có một thiết bị tựđộng giải quyết được việc giao nhận tài liệu giữa các văn phòng sẽ giúp các công ty nângcao năng suất làm việc của các nhân viên Từ ý tưởng và những kiến thức đã học về cơ,điện, lập trình… nhóm chúng em quyết định thực hiện đề tài:
“XE VẬN CHUYỂN TÀI LIỆU TỰ ĐỘNG TRONG VĂN PHÒNG”
ii
Trang 5MỤC LỤC
LỜI CẢM ƠN i
TÓM TẮT ĐỒ ÁN ii
MỤC LỤC iii
DANH MỤC CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC BẢNG BIỂU vii
DANH SÁCH CÁC BIỂU ĐỒ, HÌNH ẢNH viii
TÀI LIỆU THAM KHẢO x
CHƯƠNG 1: TỔNG QUAN 1
1.1 Tính cấp thiết của đề tài 1
1.2 Mục tiêu đề tài 1
1.3 Giới hạn đề tài 1
1.4 Bố cục báo cáo 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 3
2.1 Giới thiệu xe AGV: 3
Xe AGV là gì: 3
Các ưu điểm và ứng dụng của AGV: 3
Phân loại xe AGV: 4
Loại chạy không theo đường dẫn: 4
Loại chạy theo đường dẫn: 4
Các phương pháp nhận diện đường băng kẻ trên sàn 5
Sử dụng cảm biến dò line 5
Sử dụng camera để nhận diện đường line 6
2.2 Giới thiệu bánh omni 7
Bánh Omni là gì? 7
Các loại bánh omni: 7
Trang 6Ứng dụng bánh omni vào thiết kế xe AGV 8
2.3 Tính toán động học cho xe AGV 9
2.4 Nhận dạng đường đi bằng xử lý ảnh 12
Thu nhận hình ảnh từ camera 12
Tiền xử lý 14
Cân bằng sáng 15
Hệ màu HSV 17
Thuật toán Threshold inRangel 19
Xác định cạnh (edge detection) 20
Nhận diện và xử lý lane 23
Tìm và xử lý các contour 24
Thuật toán Hough 28
Nhận diện trạng thái và đường tâm của Lane 31
2.5 Giới thiệu Lamp Server 35
Lamp Server là gì? 35
Các thành phần của Lamp server 35
CHƯƠNG 3: THIẾT KẾ CƠ KHÍ 37
3.1 Yêu cầu kỹ thuật 37
Phần dẫn động: 38
Phần khung đỡ 39
Phần đựng tài liệu: 39
3.2 Tính toán sức bền cho khung 41
3.3 Tính toán chọn động cơ: 44
CHƯƠNG 4: BỘ ĐIỀU KHIỂN 46
4.1 Thiết kế bộ điều khiển 46
4.2 Chọn phần cứng cho phần điều khiển 47
Chọn bộ điều khiển Master 47
Giới thiệu Raspberry 47
iv
Trang 7Chọn bộ điều khiển Slave 48
Giới thiệu Adruino nano 48
Chọn driver điều khiển động cơ 48
Chọn pin 49
4.3 Sơ đồ nối dây chi tiết 50
Bộ điều khiển trung tâm 50
Arduino điều khiển động cơ DC servo: 51
Arduino điều khiển mạch RFID để nhận biết trạm 52
Arduino điều khiển mạch RFID để đóng mở tủ và điều khiển cảm biến siêu âm HC-SR04 53
CHƯƠNG 5: LẬP TRÌNH ĐIỀU KHIỂN 54
5.1 Thuật toán xử lý ảnh 55
5.2 Thuật toán xử lý trên web server 56
5.3 Thuật toán xử lý tính hiệu RFID 57
5.4 Xử lý vận tốc theo giá trị database manual được chọn 58
CHƯƠNG 6: KẾT QUẢ 60
6.1 Kết quả đạt được 60
Mô hình cơ khí 60
Vận tốc xe 61
Điều khiển 62
Hệ thống web server 62
Hệ thống xử lý ảnh 65
Chạy thực tế 68
6.2 Tổng kết 71
Ưu điểm: 71
Khuyết điểm: 71
Phương án phát triển 71
Trang 8DANH MỤC CÁC TỪ VIẾT TẮT
PID: Proportional-Integral-Derivative
RGB: Red, Green, Blue
HSV: Hue, Saturation, Value
AVG: Automated Guided Vehicle
IR: Infrared remote
RFID: Radio Frequency Identification
DC: Direct current
IC: Integrated Circuit
vi
Trang 9DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1: So sánh ưu nhược điểm của phương pháp thiết kế xe AGV 8
Bảng 2.2: Giá trị chuyển đổi một số màu cơ bản từ RGB sang HSV. 18
Bảng 3.1: Thông số động cơ GA 37 45
Bảng 6.1: Thông số kỷ thuật của xe 60
Bảng 6.2: Bảng thời gian chạy thử xe 61
Trang 10DANH SÁCH CÁC BIỂU ĐỒ, HÌNH ẢNH
Hình 2.1: Cơ chế hoạt động của IR hồng ngoại 5
Hình 2.2: Nguyên lý hoạt động cơ chế điều hướng 5
Hình 2.3: Ví dụ về thuật toán nhận diện của xe ô tô tự hành 6
Hình 2.4: Các loại bánh omni thông dụng 7
Hình 2.5: Tính toán động học cho xe 9
Hình 2.6: Xe di chuyển với vận tốc Vd 10
Hình 2.7: Xe di chuyển trong hệ tọa độ chính 11
Hình 2.8: Lưu đồ thuật toán xử lý ảnh tổng quát 12
Hình 2.9: Ảnh đầu vào thu được từ camera 12
Hình 2.10: Ảnh có kích thước 5x5 13
Hình 2.11: Giá trị i chạy từ 1 tới 5 theo chiều ngang 13
Hình 2.12: Gía trị j chạy từ 1 tới 5 theo chiều dọc 14
Hình 2.13: Ảnh đầu vào thu được từ camera 14
Hình 2.14: Ảnh thu được trong điều kiện đủ và thiếu sáng 15
Hình 2.15: Ảnh trước và sau qua trình cân bằng sáng 16
Hình 2.16: Ý nghĩa các thông số hệ màu HSV 17
Hình 2.17: Ảnh trước sau khi qua sử lý Threshold inRange 19
Hình 2.18: Ma trận Sobel 21
Hình 2.19: Hướng làm tròn của góc gradient 21
Hình 2.20: Cách lấy ngưỡng không cực đại 22
Hình 2.21: Ảnh mình họa hoạt động lọc ngưỡng 22
Hình 2.22: Ảnh sau khi xử lý canny 23
Hình 2.23: Lưu đồ thuật toán nhận diện và xử lý lane 23
Hình 2.24: Ví dụ về 4-connectivity và 8-connectivity 25
Hình 2.25: Mô tả quá trình tìm contour của thuật toán Square Tracing 25
Hình 2.26: Ví dụ trường hợp thuật toán chạy sai 26
Hình 2.27: Ví dụ trường hợp thuật toán chạy đúng 26
Hình 2.28: Mô tả quá trình tìm contour của thuật toán Moore-Neighbor Tracking 27
Hình 2.29: Kết quả sau khi tìm và xử lý contour 28
Hình 2.30: Biểu diễn đường thẳng qua hai thông số ρ và θ 28
Hình 2.31: Đường thằng là một điểm trong tọa độ cực 29
Hình 2.32: Biểu diễn nhiều đường thẳng đi qua một điểm trong không gian Hough 29
Hình 2.33: Biểu diễn tất cả đường thẳng đi qua một điểm trong không gian Hough 30
Hình 2.34: Đường thẳng là điểm giao giữa các đường sin torng không gian Hough 30
Hình 2.35: Hình biểu diễn AB trong trục tọa độ Oxy 31
Hình 2.36: Các điểm cần được xác định trên lane 32
Hình 2.37: Trạng thái lane thẳng và xe lệch trái 34
Hình 2.38: Trạng thái lane rẽ phải 34
viii
Trang 11Hình 2.39: Giới thiệu LAMP server 35
Hình 2.40: Các thành phần của Lamp server 35
Hình 3.1: Phương án thiết kế 37
Hình 3.2: Bản vẽ tháo lắp phần dẫn động 38
Hình 3.3: Bản vẽ lắp phần dẫn động 38
Hình 3.4: Bản vẽ lắp phần khung đỡ 39
Hình 3.5: Bản vẽ tháo rồi phần đựng tài liệu 40
Hình 3.6: Bản vẽ lắp phần đựng tài liệu 40
Hình 3.7: Sơ đồ phân bố lực 42
Hình 3.8: Tính toán bằng phần mềm Ansys 43
Hình 4.1: Sơ đồ hệ thống điều khiển của xe 46
Hình 4.2: Pin và bộ chuyển nguồn 49
Hình 4.3: Bộ điều khiển trung tâm 50
Hình 4.4: Arduino điều khiển động cơ 51
Hình 4.5: Arduino điều khiển mạch RFID để nhận biết trạm 52
Hình 4.6: Arduino điều khiển mạch RFID để đóng mở tủ 53
Hình 5.1: Tổng quan thuật toán điều khiển mô hình 54
Hình 5.2: Thuật toán xử lý ảnh tổng thế 55
Hình 5.3: Sơ đồ khối tổng quan thuật toán tren web server 56
Hình 5.4: Sơ đồ thuật toán xử lý tính hiệu RFID 57
Hình 5.5: Lưu đồ Xử lý vận tốc theo giá trị database manual được chọn 58
Hình 6.1: Mô hình cơ khí hoàn chỉnh 60
Hình 6.2: Các bộ phận của xe 61
Hình 6.3: Tab điều khiển auto và điều khiển 62
Hình 6.4: Tab hiệu chỉnh PID. 63
Hình 6.5: Tab hiệu chỉnh màu sắc lane. 63
Hình 6.6: Tab điều khiển manual. 64
Hình 6.7: Tab điều khiển nguồn hệ thống. 64
Hình 6.8: Kết quả thu được khi xe chạy trong điều kiện ánh sáng bình thường 65
Hình 6.9: Kết quả thu được khi xe chạy trong điều kiện ánh sáng chiếu trực tiếp 65
Hình 6.10: Kết quả thu được khi xe chạy trong điều kiện thiếu sáng nhẹ 66
Hình 6.11: Xe chạy trên đường thẳng 66
Hình 6.12: Kết quả xử lý ảnh khi xe tới góc cua 67
Hình 6.13: Xe chạy trên đường thẳng 68
Hình 6.14: Xe quay khi gặp góc cua 68
Hình 6.15: Xe tiếp tục chạy sau khi nhận diện được đường thẳng 69
Hình 6.16: Người dùng quẹt thẻ để lấy tài liệu và xác nhận sau khi lấy 69
Trang 12TÀI LIỆU THAM KHẢOSách
Tiếng anh
[1] Adrian Kaehler & Gary Bradski (2017), “Learning OpenCV 3 Computer Vision
in C++ with the OpenCV Library”, pp 990
[2] Christopher Hallinan (2010), “Embedded Linux Primer: A Practical Real-WorldApproach - Second Edition”, pp 656
[3] Derek Molloy (2016) “Exploring Raspberry Pi: Interfacing to the Real Worldwith Embedded Linux”, pp 720
[5] Roland Siegwart and Illah R Nourbakhsh (2004),” Autonomous Mobile
Robots”, pp 336
[6] Robert Laganiere (2017), “OpenCV 3 Computer Vision Application
Programming Cookbook - Third Edition”, pp 559
[7] Roger Bostelman and Tsai Hong (2016) “Review of Research for Docking Automatic Guided Vehicles and Mobile Robots”, pp 22
[8] Roy Shilkrot, David Millán Escrivá (2018) “Mastering OpenCV 4: A
comprehensive guide to building computer vision and image processing applications with C++, 3rd Edition”, pp 280
x
Trang 13CHƯƠNG 1: TỔNG QUAN1.1 Tính cấp thiết của đề tài
Cùng với sự mở rộng của các nhà máy được tự động hóa và cơ khí hóa, các vấn đề vềviệc vận chuyển, bốc dỡ và tích trữ hàng hóa trở nên ngày càng quan trọng hơn Theo xuhướng gia tăng sự tự động hóa trong các lĩnh vực sản xuất, các hệ thống vận chuyển bêntrong các nhà máy dưới dạng “hệ thống máy dẫn đường tự động” (AGV) ngày càng chiếmmột vị trí quan trọng trong toàn bộ lĩnh vực xử lý vật liệu Với việc sử dụng các xe AGVgiúp các doanh nghiệp tiết kiệm được thời gian cũng như chi phí tiền lương cho công nhân.Tuy nhiên hiện nay xe AGV chỉ tập trung chủ yếu ở các nhà máy, xưởng sản xuất mà vẫnchưa thấy ứng dụng nhiều trong công việc văn phòng, một lĩnh vực cũng cần phải cải thiện
và nâng cao hiệu suất làm việc Hiện nay, các công ty ở Việt Nam được phát triển theo môhình phòng, ban gồm các văn phòng sát cạnh nhau trong một tòa nhà Với việc phải xử lý cáctài liệu bằng giấy tờ như hợp đồng, hồ sơ, các giấy tờ cần sếp ký… dẫn tới nhu cầu giao nhậntài liệu giữa các phòng với nhau Việc này được thực hiện bởi các nhân viên tuy nhiên việc đilại của mỗi cá nhân gây tốn nhiều thời gian, ảnh hưởng tới hiệu suất làm việc dẫn đến lãngphí nhân lực không đáng có Tuy nhiên thực hiện việc vận chuyển tài liệu trong văn phòngcũng có những mặt khó khăn như: xử lý việc hoạt động của xe để không làm ảnh hưởng đếncông việc của các nhân viên hay việc di chuyển của xe trong môi trường chật hẹp, điều kiệnthiếu sáng, các vấn đề về thiết kế, thi công, Tuy nhiên với mong muốn đem lại một ứngdụng giúp cho nâng cao năng suất hiệu quả công việc cho mọi người và với những kiến thức
về cơ khí, lập trình nhóm chứng em quyết định thực hiện đề tài:
“XE VẬN CHUYỂN TÀI LIỆU TỰ ĐỘNG TRONG VĂN
PHÒNG” 1.2 Mục tiêu đề tài
Thiết kế được 1 mô hình cơ khí với 2 phần riêng biệt bao gồm phần xe di chuyển
và phần trên đựng tài liệu, khi cần có thể tháo rời ra
Gia công hoàn thiện sản phẩm
Điều khiển được tốc độ động cơ
Xử lý ảnh nhận diện vật cản và đường đi cho xe
Thiết kế webserver để theo dõi vị trí của xe cũng như để thiết lập lại các thông sốcủa xe khi cần thiết
Trang 14Nội dung đề tài bao gồm:
Sử dụng Adruino điều khiển động cơ DC servo thông qua mạch cầu H LMD18200T
Sử dụng IC RFID nhận diện mật khẩu từng tủ tài liệu nhầm tang cao độ bảo mật
đồng thời nhận diện vị trí từng trên đường đi của xe
1.4 Bố cục báo cáo
Báo cáo đồ án tốt nghiệp gồm 6 chương:
Chương 1: Tổng quan đề tàiChương 2: Cơ sở lý thuyếtChương 3: Thiết kế cơ khíChương 4: Thiết kế bộ điều khiểnChương 5: Lập trình điều khiểnChương 6: Kết quả đạt được
2
Trang 15CHƯƠNG 2: CƠ SỞ LÝ THUYẾT2.1 Giới thiệu xe AGV:
Xe AGV là gì:
Xe tự hành AGV (Automated Guided Vehicle) là loại Mobile robot có khả năngnăng tự hoạt động, thực thi nhiệm vụ mà không cần sự can thiệp của con người [1].Chúng có khả năng nhận biết về môi trường xung quanh Robot tự hành ngày càng cónhiều ý nghĩa trong các ngành công nghiệp, thương mại, y tế, các ứng dụng khoa học vàphục vụ đời sống của con người
Xe tự hành AGV được thiết kế để thực hiện việc giao/nhận giữa các trạm đã đượcthiết lập sẵn với những ưu thế vượt trội so với con người như:
Giảm thiểu thiệt hại trong vận hành: Người lái xe có thể bị phân tâm, mệt mỏi từ
đó gây nguy hiểm cho người khác hoặc làm hư hỏng hàng hóa Tuy nhiên với xe AGV cóthể hoạt động bền bỉ, đảm bảo năng suất và hoạt động gần như suốt ngày mà chỉ cần phảinạp năng lượng
Giảm chi phí hoạt động: Có thể lúc đầu chi phí đầu tư sẽ cao nhưng với thời gianhoạt động cũng như năng suất làm việc, về lâu dài sẽ ít tốn kém hơn so với thuê 1 côngnhân làm việc
Dễ dàng quản lý: Chỉ với việc ngồi 1 chỗ, người quản lý có thể theo dõi toàn bộcác AGV thông qua màn hình, kịp thời phản ứng khi có tình huống xấu xảy ra
Từ những lợi thế xe AGV so với con người cộng với khoa học công nghệ ngày càngphát triển, hiện nay có nhiều khu công nghiệp, nhà máy lớn trên thế giới nói chung và ViệtNam nói riêng đầu tư hệ thống xe AGV để vận chuyển hàng hóa trong khu sản xuất củamình Từ đó tối ưu hóa lợi nhuận và tạo sức cạnh tranh so với các đối thủ của mình
Các ưu điểm và ứng dụng của AGV:
− Có khả năng tự động vận hành mà không cần tác động của con người
− Có thể tự động nhận diện, tính toán đường đi ngắn nhất
− Có thể nhận diện vật cản trước mắt và đưa ra phương pháp né tránh
− Cung cấp sắp xếp linh kiện tại khu vực kho và sản xuất
− Chuyển hàng giữa các trạm sản xuất
− Phân phối, cung ứng sản phẩm, đặc biệt trong bán buôn
…
Trang 16Phân loại xe AGV:
Loại chạy không theo đường dẫn:
Có thể di chuyển đến các vị trí bất kỳ trong không gian hoạt động Đây là loại xeAGV có tính linh hoạt cao nhưng ngược lại việc thiết kế loại xe này đòi hỏi công nghệcao và phức tạp hơn rất nhiều so với loại AGV khác
Loại chạy theo đường dẫn:
Đường dẫn từ: Là loại đường dẫn có cấu tạo dây từ chôn ngầm dưới mặt đất Khi
di chuyển, nhờ các cảm biến cảm ứng từ mà xe có thể di chuyển theo dây dẫn Tuy nhiênkhi sử dụng phải tiêu tốn nhiều năng lượng cho việc tạo ra từ tính trong dây, đồng thờiđường dẫn là cố định và không thể thay đổi được
Đường ray dẫn: Xe AGV được chạy trên các ray định sẵn trên mặt sẵn Loại này
chỉ sử dụng đối với những hệ thống chuyên dụng Nó cho phép thiết kế xe đơn giản hơn
và có thể di chuyển với tốc độ cao nhưng tính linh hoạt thấp
Đường băng kẻ trên sàn: Xe AVG di chuyển theo các đường băng kẻ sẵn trên
sàn nhờ camera nhận dạng bằng sử lý ảnh Loại này có tính linh hoạt cao vì trong quátrình sử dụng có thể đổi đường kẻ 1 các dễ dàng nhờ kẻ lại các vạch dẫn đường Tuynhiên khi sử dụng, các vạch dẫn có thể bị bẩn hay hư hại gây khó khăn cho việc điềukhiển chính xác xe
Từ những ưu, nhược điểm đã nêu ra cũng như điều kiện thực tế khi tiến hành chếtạo, nhóm chúng em quyết định chọn thực hiện đề tài AVG theo hướng xe chạy theo lộtrình nhờ nhận diện các những đường băng kẻ trên sàn
4
Trang 17Các phương pháp nhận diện đường băng kẻ trên sàn
Sử dụng cảm biến dò line
Nguyên lý hoạt động: Trong đây, ta sẽ cho xe thực hiện một công việc khá đơngiản là chạy theo đoạn đường màu đen đã kẻ sẵn IR hồng ngoại sẽ phát hiện ra vạch quaviệc phát ra bước sóng hồng ngoại và phản xạ lại trên bởi bề mặt có màu sáng tức là ởnhững nơi không có màu đen là vạch thì sẽ có phản hồi, còn trên vạch thì không, nguyên lýnày sẽ dẫn hướng cho xe đi đúng vạch đã định
Dưới đây là sơ đồ cơ chế hoạt động của IR hồng ngoại qua việc phản xạ và
không phản xạ
Hình 2.1: Cơ chế hoạt động của IR hồng ngoại
Nhờ đó robot phát hiện được đoạn đường nào màu đen, đoạn đường nào không mà
di chuyển chính xác
Khi robot di chuyển về phía trước,cả hai cảm biến sẽ ở trạng thái chờ,nếu 1 tronghai cảm biến ở 2 phía phát hiện vạch màu đen ở phía của mình tức là sẽ sẽ rẽ theo mộthướng trái hoặc phải, vi điều khiển sẽ phát hiện ra sự thay đổi này và điều hướng 2 động
cơ thông qua driver để điều khiển theo hướng phù hợp
Hình 2.2: Nguyên lý hoạt động cơ chế điều hướng
Trang 18Sử dụng camera để nhận diện đường line
Nguyên lý hoạt động: Camera sẽ nhận diện đường line được vẽ sẵn trên đường rồitiền hành tính toán, điều khiển cho động cơ di chuyển theo lane
Phương pháp này có ưu điểm hơn phương pháp sử dụng cảm biến vì với camerachúng ta có thể làm được nhiều việc hơn là chỉ nhận diện lane như cùng lúc nhận diện lane vàđồng thời cũng nhận diện người, nhận diện vật cản, … và nếu như với phương pháp dùng ic
dò line thì yêu cầu thường là line phải liên tục và không bị vật gì che dù cho dù chỉ là mộtđoạn nhỏ nếu không xe sẽ không thể tiếp tục di chuyển hoặc đi ra ngoài, còn với thuật toán xử
lý ảnh nếu đường line dị đứt quãng hoặc bị che mất một đoạn nhỏ thì ta vẫn có thể nhận diệnđược đường line trên và tiếp tục di chuyển Nhưng đồng thời với phương án sử dụng camera
để nhận diện đường line cũng có những điểm yếu hơn so với sử dụng cảm biến dò line là độnhiễu cao tùy thuộc vào chất lượng ảnh thu được từ camera và ảnh hưởng bởi điều kiện củamôi trường xung quanh, thuật toán để điều khiển xe cũng phức tạp hơn, …
Phương dò line bằng camera được áp dụng rộng rãi đối với các hệ thống xe tựhành cần tính linh động và đa tác vụ, ví dụ cụ thể như là hệ thống xe tự lái của các công ty
xe ô tô trên thế giới, hệ thống của họ có thể tự động nhận diện đường đi cho xe, nhận diệnvật cản trước xe (xe khác hoặc người đi đường), nhận diện tính hiệu đèn giao thông, biếnbáo giao thông và rất nhiều thứ khác xuất hiện trên đường đi của xe để từ đó có thể phântích và đưa ra hình thức di chuyển hợp lý cho xe trong mọi điều kiện khác nhau
Hình 2.3: Ví dụ về thuật toán nhận diện của xe ô tô tự hành
➔ So sánh 2 phương pháp này ta thấy phương pháp dụng camera để nhận diện đườngline là phương pháp phù hợp với những yêu cầu được đặt ra và có thể phát triển thêm cáctính năng về sau nếu muốn
6
Trang 192.2 Giới thiệu bánh omni
Bánh Omni là gì?
Là những bánh xe có các đĩa nhỏ xung quanh, vuông góc với hướng quay HIệuquả là bánh xe có thể được điều khiển với toàn bộ lực, nhưng cũng có thể trượt theo chiềungang rất dễ dàng
Bánh xe omni có độ bền cao, thiết kế chắc chắn có thể chịu được tải trọng lớn tuynhiên bánh xe omni thường có giá thành cao gấp nhiều lần so với các loại bánh xe thôngthường
Các loại bánh omni:
Hình 2.4: Các loại bánh omni thông dụng
Các ứng dụng của bánh omni
Bánh xe omni thường được sử dụng trong các robot yêu cầu độ linh hoạt cao, cóthể di chuyển theo mọi hướng Với thiết kế đặc biệt của mình, bánh xe omni là giải pháphoàn hảo cho các sản phẩm hoạt động trong không gian nhỏ hẹp, bị giới hạn diện tíchhoạt động và cần tiết kiệm thời gian thực hiện hành động của mình Bằng cách kết hợpcác chuyển động của từng bánh, kết cấu sử dụng bánh xe omni có thể thực hiện cácchuyển động cơ bản tiến – lùi, chuyển động xoay tròn dễ dàng trong một không gian rấtnhỏ, đặc biệt là khả năng di chuyển ngang khi cần thiết.Đôi khi cũng được sử dụng trong
Trang 20Ứng dụng bánh omni vào thiết kế xe AGV
Xe AGV thường được thiết kế gồm 3 hoặc 4 bánh Omni Mỗi thiết kế có các ưu
và ngược điểm khác nhau:
• Ma sát tốt hơn, và cân bằng trên • Tính toán đơn giản hơn
mặt phẳng hơn so với 4 bánh • Tận dụng được hiệu suất động
• Giá thành rẻ hơn do bánh Omni cơ tốt hơn do bố trí vuông góc.khá mắc
• Không sử dụng tốt hiệu suất • Giá thành cao
động cơ các bánh bố trí cách • Khó để đảm bảo tiếp xúc cho cảnhau 120 độ 4 bánh khi di chuyển, nhất là
• Tính toán khó hơn so với 4 khi mặt đường không bằng
Bảng 2.1: So sánh ưu nhược điểm của phương pháp thiết kế xe AGV
hợp với đề tài này hơn
8
Trang 212.3 Tính toán động học cho xe AGV
Hình 2.5: Tính toán động học cho xe
Robot tự hành được thiết kế với ba bánh omni, mỗi bánh tạo với bánh còn lại 1 góc
bánh quay ngược chiều kim đồng hồ là chiều dương nên ta có phương trình động học:
Trong đó: 1 , 2 , 3 :tốc độ quay của bánh 1,2,3
= 60° (góc tạo bởi bánh 2,3 và trục Y1) 1 , 1 : Vận tốc của xe theo phương x 1 , y 1
Trang 229
Trang 2410
Trang 25Hình 2.7: Xe di chuyển trong hệ tọa độ chính
Vị trí của xe trong hệ tọa độ chính được xác định bởi hệ trục tọa độ OXY, và góc
giữa 2 hệ tọa tọa chính và hệ tọa độ của xe chính là góc Vậy ta có thể mô tả chuyển
động của xe trong hệ tọa chính bằng ma trận sau:
Trang 2611
Trang 272.4 Nhận dạng đường đi bằng xử lý ảnh
Thuật toán xử lý ảnh chia thành 3 phẩn chính là:
Thu nhận hìnhảnh từ camera
Trang 28Trước khi vào phần tiền xử lý ta cần phải hiểu về một thuật toán sẽ được sử dụngnhiều trong quá trình xử lý ảnh đó là thuật toán quét toàn bộ pixel có trong ảnh Cụ thểvới thuật toán này ta có thể xem xét, phân tích và chỉnh sửa các giá trị, tính chất, Và từ
đó thay đổi màu sắc của từng pixel cấu thành nên tấm hình đó
Giả sử ta có một tấm hình với kích thước là 5x5 pixel như hình dưới:
Hình 2.10: Ảnh có kích thước 5x5
Gọi i=1 và j=1 là vị trí của ô 1x1, ta tiến hành cho tăng giá trị của i lần lượt lên 1như trong hình
Hình 2.11: Giá trị i chạy từ 1 tới 5 theo chiều ngang
Sau khi i=5 ta tiến hành tăng giá trị của j lên 1, sau đó cho i=1 và tiếp tục tăng giá trị của i lần lượt lên 1 tới khi bằng 5 như hình
13
Trang 29Hình 2.12: Gía trị j chạy từ 1 tới 5 theo chiều dọc
Tiếp tục lặp lại cho tới khi i=5 và j=5 thì dừng lại Tại mỗi ô có tọa độ (i, j) ta sẽtiến hành xử lý giá trị, tính chất, … của pixel đó theo ý muốn Tương tự với các tấm hình
có độ lớn AxB ta sẽ cho i chạy từ 1 đến A và j chạy từ 1 đến B
Xử lý ThresholdinRange
Xác định cạnh
Hình 2.13: Ảnh đầu vào thu được từ camera
Trang 30Cân bằng sáng
Ảnh sau khi được thu từ camera sẽ phải qua bước cân bằng sáng để cân bằng lạimàu sắc để ảnh có thể hiển thị được tốt nhất, nhiều chi tiết nhất trong nhiều trường hợpđiều kiện môi trường và ánh sáng khác nhau
Hình 2.14: Ảnh thu được trong điều kiện đủ và thiếu sáng
Trong mô hình này ta sử dụng thuật toán Gray-world white balance algorithm để thực hiện cân bằng sáng, đây là một thuật toán khá đơn giản nhưng hiệu quả
Trước tiên ta sẽ quét toàn bộ pixel của tấm hình rồi lấy các giá trị màu R, G, B để tiến hành tính giá trị trung bình cộng của mỗi kênh màu:
=
∑
: Giá trị trung bình cộng của mỗi kênh màu
v b : Giá trị của mỗi kênh màu tại pixel đó trước khi cân bằng sáng.
npixel: Số pixel có trong hình.
Sau khi tính toán xong ta sẽ thu được 3 giá trị , ,
=
+ +
3
15
Trang 31Sau đó ta sẽ tiến hành tính toán lại giá trị R, G, B thông qua giá giá trị scale vừa tìm
được
=
∗
: Giá trị của từng kênh màu sau thuật toán cân bằng sáng
: Giá trị của từng kênh màu trước thuật toán cân bằng sáng
: Hệ số chuẩn hóa
Cuối cùng ta gán giá trị vừa tìm được cho tửng pixel trong ảnh
Hình 2.15: Ảnh trước và sau qua trình cân bằng sáng
Trang 32Hệ màu HSV
HSV hay còn là một không gian màu dựa trên 3 thông số chính của không gianmàu:
Hình 2.16: Ý nghĩa các thông số hệ màu HSV
• H viết tắt của từ HUE có nghĩa là vùng màu
• S viết tắt của từ SATURATION có nghĩa là độ bảo hòa màu
• V viết tắt của chữ VALUE có nghĩ là giá trị hay độ sáng của màu sắc
Vùng màu (HEU) hữu ích đối với việc phân đoạn đối tượng dựa trên màu sắc của chúng, do đối với hệ màu RGB sẽ có 3 kênh màu riêng biệt nên việc phân đoạn đối
tượng dựa trên màu của nó sẽ trở nên khó khăn hơn
Cụ thể ta thuật toán sẽ bao gồm các bước:
− Đầu tiên ta sẽ giới hạn các thông số , , có giả trị từ 0 tới 255 thành ′ , ′ , ′ có gì trị từ 0 tới 1.
Trang 3317
Trang 35Thuật toán Threshold inRangel
Để có thể dễ dàng hơn trong việc xử lý và phân tích các đặt điểm, tính chất của đốitượng đang theo dõi trong ảnh ta cần phải tách biệt đối tượng đối tượng với phong nềnxung quanh
Ở bước này ta sẽ sử dụng thuật toán Threshold inRangel để tách đối tượng ra khỏi nền dựa vào các ngưỡng màu sắc cho trước [6], cụ thể:
- Ta sẽ đặt ra 2 ngưỡng là trên và dưới theo giá trị màu sắc để tiến hành nhận diện
và phân tách vật thể, ở trong đồ án này ta sẽ quang sát đối tượng là đường lane có màu vàng nên ta sẽ đặt ngưỡng phù hợp với màu sắc mong muốn
- Ta tiến hành quét và xem xét từng pixel của tấm ảnh như đã hướng dẫn ở mục trên rồi sau đó lấy các giá trị màu sắc của tấm ảnh ra so sánh, nếu:
+ Giá trị màu tại pixel được xét nằm trong 2 ngưỡng mà ta đã đặt ra thì ta gán cho pixel đó giá trị màu trắng (255,255,255)
+ Giá trị màu tại pixel được xét không nằm trong 2 ngưỡng mà ta đã đặt ra thì ta gán cho pixel đó giá trị màu đen (0,0,0)
Sau khi đã xử lý hết toàn bộ pixel trong tâm ảnh thì ta thu được kết quả như hìnhdưới
Hình 2.17: Ảnh trước sau khi qua sử lý Threshold inRange
Như đã thấy trên ảnh vật thể (đường lane màu vàng) đã được tách biệt hoàng toàn
so với phong nền Ta có thể chọn giữ lại màu sắc cho vật thể nhưng để phục vụ cho bước
xử lý nhận diện lane ở những bước sau nên ta sẽ chuyển ảnh sang ảnh binary (ảnh trắng đen) như hình
Trang 36Xác định cạnh (edge detection)
Trong hình ảnh, thường tồn tại các thành phần như: Vùng trơn, góc / cạnh và nhiễu
Cạnh trong ảnh mang đặc trưng quan trọng, thường là thuộc đối tượng trong ảnh (object)
[1] Trong mô hình này ta sẽ chú trọng vào các việc nhận diện các cạnh để thông quá đó
có thể xác định được đường tâm của lane và trạng thái của lane
Do đó, để phát hiện cạnh trong ảnh, giải thuật Canny là một trong những giải thuật
phổ biến trong xử lý ảnh [6] Thuật toán Canny bao gồm 4 bước:
Bước 1: Giảm nhiễu bằng bộ lọc GAUSSIAN
Thông thường để giảm nhiễu sử dụng bộ lọc làm mờ Ta sử dụng bộ lọc Gaussian
Với: = và = , ta có thể sử dụng bất cứ bộ lọc nào như Roberts, Prewitt, Sobel để
có thể tìm được ảnh đạo hàm và [6], ở đây ta dùng bộ lọc Sobel Ảnh đạo hàm Gx và Gy
là ma trận (ví dụ: 640x640), thì kết quả tính ảnh đạo hàm Edge Gradient cũng là một ma
trận (640x640), mỗi pixel trên ma trận này thể hiện độ lớn của biến đổi mức sáng ở vị trí
tương ứng trên ảnh gốc Tương tự, ma trận Angle cũng có cùng kích thước (640x640),
mỗi pixel trên Angle thể hiện góc, hay nói cách khác là hướng của cạnh Ví dụ nếu góc
gradient là 0 độ, thì cạnh của ta trên ảnh sẽ là một đường thẳng đứng (tức tạo góc 90 độ
so với trục hoành) (vuông góc hướng gradient)
20
Trang 37Hình 2.18: Ma trận Sobel [1]
Sau khi tính toán, giá trị góc gradient sẽ nằm trong đoạn [-180, 180] độ, ta không giữ nguyên các góc này mà gom các giá trị này về 4 bin đại diện cho 4 hướng: 0 , 45 , 90 và 135
Hình 2.19: Hướng làm tròn của góc gradient
Bước 3: Chặn không cực đại
Bước này ta tiến hành so sánh độ lớn Gradient để tìm ra những picel thuộc cạnh có
độ lớn Gradient lớn nhất và giữ lại nó
Ta dùng một filter 3x3 lần lượt chạy qua các pixel trên ảnh gradient Trong quá trình lọc, ta xem xét xem độ lớn gradient của pixel trung tâm có phải là cực đại (lớn nhất trong cục bộ - local maximum) so với các gradient ở các pixel xung quanh Nếu là cực đại, ta sẽ ghi nhận sẽ giữ pixel đó lại Còn nếu pixel tại đó không phải là cực đại lân cận, ta sẽ set độ lớn gradient của nó về 0 Ta chỉ so sánh pixel trung tâm với 2pixel lân cận theo hướng gradient Ví dụ: Nếu hướng gradient đang là 0 , ta sẽ so pixel trung tâm với pixel liền trái và liền phải nó Trường hợp khác nếu hướng gradient là 45 , ta sẽ so sánh với 2pixel là góc trên bên phải và góc dưới bên trái của pixel trung tâm Tương tự cho 2 trường hợp hướng gradient còn lại Kết thúc bước này ta được một mặt nạ nhị phân.
21
Trang 38Hình 2.20: Cách lấy ngưỡng không cực đại
Bước 4: Ngưỡng Hysteresis (Hysteresis Thresholding)
Ta sẽ đặt ra 2 ngưỡng là max_val và min_val Tiếp đến ta xét các pixel dương trênmặt nạ nhị phân kết quả của bước trước Nếu giá trị gradient vượt ngưỡng max_val thì pixel
đó chắc chắn là cạnh Các pixel có độ lớn gradient nhỏ hơn ngưỡng min_val sẽ bị loại bỏ.Còn các pixel nằm trong khoảng 2 ngưỡng trên sẽ được xem xét rằng nó có nằm liên kề vớinhững pixel được cho là "chắc chắn là cạnh" hay không Nếu liền kề thì ta giữ, còn khôngliền kề bất cứ pixel cạnh nào thì ta loại Sau bước này ta có thể áp dụng thêm bước hậu xử lýloại bỏ nhiễu (tức những pixel cạnh rời rạc hay cạnh ngắn) nếu muốn
Hình 2.21: Ảnh mình họa hoạt động lọc ngưỡng
22
Trang 39Hình 2.22: Ảnh sau khi xử lý canny
Nhận diện và xử lý lane
Sau khi qua bước tiền xử lý thì ta đã có đủ điều kiện cần để tiến hành thực hiện quátrình nhận diện lane và xử lý lane tìm được, thuật toán bao gồm 3 bước chính:
Tìm và xử lý cáccontour
Thuật toán Hough
Line
Nhận diện trạng thái
và tìm đường tâmcủa lane
Hình 2.23: Lưu đồ thuật toán nhận diện và xử lý lane
Trang 40− Sắp xếp diện tích contour theo thứ tự giảm dần.
Để thuật toán tìm contour có thể hoạt động tốt nhất ta cần chuyển ảnh về dạng ảnh binary [1] Có 4 thuật toán thông dụng nhất được sử dụng để tìm contour, gồm:
• Square Tracing Algorithm
• Moore – Neighbor Tracing
• Radial Sweep
• Theo Pavlidis’ Algorithm
Ở đây ta sẽ tìm hiểu về 2 phương án là Square Tracing Algorithm và Moore – Neighbor Tracing do chúng là các phương án dễ triển khai và được sử dụng phổ biến
Trước khi tìm hiểu về hai thuật toán trên ta cần hiểu một số khái niệm
− Neighbor: 2 pixel được gọi là neighbor nếu 2 pixel đó chung một cạnh.
− Thành phần connected: Giả sử trong ảnh binary, các pixel thuộc 1 đối tượng có
giá trị 1 còn các pixel thuộc nền thì có giá trị 0 Lúc này nếu giữa 2 pixel bất kì thuộc đối tượng, chuỗi các pixel được gọi là một thành phần connected khi thỏa mãn:
• Tất cả đều thuộc đối tượng, tức là các pixel này có giá trị bằng 1
Mỗi pixel thuộc chuỗi đều phải neighbor với pixel trước và kế tiếp trong chuỗi
− 4-connectivity: Xem hình 2.17, P với P2 là một 4-connectivity, tương tự P với P4,
P với P6 hay P với P8 đều là một 4-connectivity
− 4-connected: Một đối tượng được gọi là 4-connected nếu thỏa mãn: bất kỳ 2 pixel
liền kề nhau thuộc đối tượng là một 4-connectivity
24