Hệ thống lưu kho tự động và quản lý hàng hóa ứng dụng iot = iot base automated storage and retrieval system
- 100 trang
- file .pdf
ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG CƠ KHÍ
LUẬN VĂN THẠC SĨ
Hệ thống lưu kho tự động và quản lý
hàng hoá ứng dụng IoT
IoT Base Automated Storage and Retrieval System
NGUYỄN VĂN UY
[email protected]
Chuyên ngành Kỹ thuật Cơ điện tử
Giảng viên hướng dẫn: TS. Nguyễn Thành Hùng
Chữ ký của GVHD
Khoa: Cơ Điện Tử
Nhóm chuyên môn: Robot
Hà Nội 10/2022
1
Lời cảm ơn
Em xin chân thành cảm ơn quý thầy, cô trong Khoa Cơ khí đã trang bị cho em
những kiến thức cần thiết trong thời gian học tập, nghiên cứu tại trường để có thể
hoàn thành tốt luận văn này. Đặc biệt em xin cảm ơn sự hướng dẫn tận tình của
giảng viên hướng dẫn Tiến sĩ Nguyễn Thành Hùng đã giúp em giải đáp những
khúc mắc trong quá trình hoàn thành luận văn cũng như là những chỉnh sửa và
giải pháp cho hệ thống. Trong quá hình hoàn thành luận văn không tránh khỏi
những vấn đề thiếu sót, vậy em rất mong nhận được những sự đóng góp ý kiến
của thầy cô để luận văn hoàn thiện hơn. Chúc quý thầy cô sức khoẻ và công tác
tốt trong công việc nghiên cứu và đào tạo.
Tóm tắt nội dung luận văn
Nội dung của luận văn nhằm giải quyết bài toán hệ thống lưu và xuất kho
trong sản xuất tự động. Cụ thể là thiết kế hệ thống cơ khí robot lấy hàng và giá
lưu trữ hàng hệ thống điều khiển robot vận chuyển. Chương trình tạo mã và giải
mã QR code cùng với đó là xử lý ảnh để đo kích thước và độ lệch góc và tâm của
hàng giúp quản lý, phân loại hàng hoá dễ dàng. Cuối cùng là hệ thống IoT xây
dựng một trang web để giám sát quản lý dữ liệu và quá trình hoạt động của kho
hàng bằng thiết bị mà có kết nối mạng và tài khoản thì có thể kiểm tra tình trạng
kho hàng. Phương pháp thực hiện: Dựa trên lý thuyết về các thuật toán và
phương pháp xử lý ảnh để đo kích thước, độ lệch hàng sau đó tạo mã QR code để
phân loại hàng. Những dữ liệu trên sẽ được chương trình chính xử lý và điều
khiển rô bốt xuất nhập kho, cuối cùng sẽ gửi các thông tin đó lên cơ sở dữ liệu
trên internet để lưu trữ và quản lý. Công cụ sử dụng: Arduino IDE – Arduino
MEGA, Window form – C#, PyCharm – OpenCV, PHP Laravel. Kết quả đạt
được của luận văn đáp ứng được các yêu cầu đã đặt ra cho hệ thống lưu kho và
quản lý hàng hoá tự động. Tính khoa học thực tiễn có ý nghĩa cao trong hệ thống
phân loại và nhập hàng tự động và quản lý hàng hoá. Định hướng phát triển sẽ
tăng độ chính xác cho hệ xử lý ảnh bằng học sâu và xây dựng trang web tương
tác với người dùng tối ưu hơn
Hà Nội, Ngày … Tháng … Năm 2022
Học viên thực hiện
2
MỤC LỤC
Danh mục hình ảnh ........................................................................................ 6
CHƯƠNG.1 TỔNG QUAN ĐỀ TÀI .......................................................... 9
1.1 Tổng quan hệ thống Rô bốt lưu kho tự động ........................................ 9
1.1.1 Rô bốt công nghiệp ..................................................................... 9
1.1.2 Kho hàng tự động ...................................................................... 11
1.2 Tổng quan hệ thống xử lý hình ảnh .................................................... 12
1.2.1 Tổng quan và ứng dụng mã QR code ....................................... 12
1.2.2 Tổng quan đo kích thước vật thể............................................... 15
1.2.3 Nhận diện QR code và đo vật thể với thư viện OpenCV .......... 17
1.3 Tổng quan Internet of Things ............................................................. 17
1.3.1 Khái niệm IoT ........................................................................... 17
1.3.2 Các ứng dụng và thách thức của IoT ........................................ 19
1.4 Các nghiên cứu về lĩnh vực liên quan ................................................. 19
Nội dung nghiên cứu của luận văn .............................................................. 22
CHƯƠNG.2 THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN ............................ 23
2.1 Hệ thống cơ cấu chấp hành ................................................................. 23
2.1.1 Nguyên lý hoạt động của kho hàng........................................... 23
2.1.2 Cấu tạo và nguyên lý hoạt động của rô bốt ............................... 23
2.1.3 Chọn các thành phần của hệ thống cơ khí ................................ 26
2.1.4 Thiết kế kích cỡ khung hàng ..................................................... 29
2.2 Hệ thống điều khiển ............................................................................ 30
2.2.1 Phân tích lựa chọn các thành phần của hệ thống điều khiển .... 30
2.2.2 Sơ đồ các điểm di chuyển của rô bốt ........................................ 36
2.2.3 Sơ đồ thuật toán ........................................................................ 37
3
2.2.4 Xây dựng chương trình chính để điều khiển và giám sát kho
hàng 38
CHƯƠNG.3 THUẬT TOÁN XỬ LÝ HÌNH ẢNH ................................. 41
3.1 Thuật toán xử lý mã QR Code ............................................................ 41
3.1.1 Mã hoá QR code ....................................................................... 41
3.1.2 Giải mã QR code ....................................................................... 48
3.2 Thuật toán đo kích thước và độ lệch ................................................... 49
3.2.1 Những phương pháp xử lý hình ảnh và hiệu chỉnh camera ...... 49
3.2.2 Thuật toán nhận diện và đo kích thước ..................................... 53
3.3 Chương trình xử lý hình ảnh ............................................................... 59
CHƯƠNG.4 ỨNG DỤNG IOT QUẢN LÝ KHO HÀNG ...................... 61
4.1 Truyền thông trong IoT với hệ thống điều khiển................................ 61
4.1.1 Kiến trúc IoT ............................................................................. 61
4.1.2 Các công nghệ IoT .................................................................... 62
4.2 Thiết kế frontend Web ........................................................................ 65
4.3 Thiết kế backend Web ........................................................................ 67
4.4 Hệ quản trị cơ sở dữ liệu và framework PHP Laravel ........................ 72
4.4.1 Phần mềm tạo máy chủ Xampp và hệ quản trị cơ sở dữ liệu ... 72
4.4.2 Framework PHP Laravel........................................................... 74
CHƯƠNG.5 THỰC NGHIỆM VÀ KẾT LUẬN ..................................... 78
5.1 Thực nghiệm và đánh giá kết quả ....................................................... 78
5.1.1 Thực nghiệm ............................................................................. 78
5.1.2 Đánh giá kết quả ....................................................................... 80
5.2 Kết luận và hướng phát triển .............................................................. 81
5.2.1 Kết Luận .................................................................................... 81
5.2.2 Hướng phát triển của đề tài trong tương lai .............................. 81
PHỤ LỤC ...................................................................................................... 84
4
File chương trình chính và giao diện xử lý ảnh ......................................... 84
File các hàm tính toán và xử lý ảnh ............................................................ 87
Code chương trình chính ............................................................................. 92
Tài liệu tham khảo ...................................................................................... 100
5
Danh mục hình ảnh
Hình 1.1 - Toạ độ suy rộng của rô bốt O0 đến On .......................................... 10
Hình 1.2 - Cấu trúc cơ bản của rô bốt công nghiệp ........................................ 11
Hình 1.3 - Rô bốt vận chuyển hàng trong kho của Amazon .......................... 11
Hình 1.4 - Kho hàng tự động ASRS ............................................................... 12
Hình 1.5 - Mã vạch và mã QR code ............................................................... 13
Hình 1.6 - Cấu tạo mã QR Code ..................................................................... 14
Hình 1.7 - Thông số cần để đo kích thước cây ............................................... 15
Hình 1.8 - Đo vật thể với OpenCV bằng đối tượng tham chiếu..................... 16
Hình 1.9 - Mô tả xác định độ lệch điểm và góc của khối Rubik .................... 16
Hình 1.10 - Sơ đồ thành phần của hệ thống IoT............................................. 18
Hình 1.11 - Con người kết nối với các thiết bị giám sát ................................ 18
Hình 1.12 - Ứng dụng IoT .............................................................................. 19
Hình 1.13 - Giải thuật kinh nghiệm cho hệ thống lưu kho ............................. 20
Hình 1.14 - Mô hình tổng quan hệ thống và hệ rô bốt ................................... 21
Hình 2.1 - Mặt cắt mô hình 3D của kho hàng ................................................ 24
Hình 2.2 - Sơ đồ motor lắp với puly và cụm puly đai răng ............................ 24
Hình 2.3 - Cụm hệ puly đai răng chuyển động ngang .................................... 25
Hình 2.4 - Cụm hệ puly đai răng chuyển động thẳng đứng ........................... 25
Hình 2.5 - Cụm xích bánh xích chuyển động lấy trả hàng ............................. 26
Hình 2.6 - Ray trượt bi ................................................................................... 26
Hình 2.7 - Động cơ bước 28BYJ và driver .................................................... 27
Hình 2.8 - Động cơ bước size 42 trục nâng hạ ............................................... 28
Hình 2.9 - Thông số kích thước động cơ ........................................................ 28
Hình 2.10 - Kích cỡ và hình chiếu đứng 3D của khung hàng ........................ 29
Hình 2.11 - Sơ đồ mặt bằng kho hàng ............................................................ 30
Hình 2.12 - Arduino Mega 2560 .................................................................... 31
Hình 2.13 - Sơ đồ kết nối chân ....................................................................... 32
Hình 2.14 - Nguyên lý làm việc của động cơ bước nam châm vĩnh cửu ....... 33
Hình 2.15 - Drive điều khiển động cơ TB6600 .............................................. 35
Hình 2.16 - Cảm biến khoảng cách E18-D80NK ........................................... 35
Hình 2.17 - Các điểm thao tác trên trục X và Y ............................................. 36
6
Hình 2.18 - Điểm thao tác của trục Z ............................................................. 36
Hình 2.19 - Sơ đồ nối dây Arduino với động cơ qua module TB6600 .......... 37
Hình 2.20- Sơ đồ thuật toán cho Rô bốt ......................................................... 38
Hình 2.21 - Giao diện kho hàng tự động ........................................................ 39
Hình 2.22 - Code Arduino chờ nhận giá trị trả về .......................................... 40
Hình 3.1 - Sơ đồ quy trình tạo mã QR Code .................................................. 41
Hình 3.2 - Các function pattern và vị trí của nó ............................................. 43
Hình 3.3 - Kích thước Finder pattern ............................................................. 44
Hình 3.4 - Phiên bản 1 và phiên bản 18 ......................................................... 44
Hình 3.5 - Thêm Separator ............................................................................. 44
Hình 3.6 - Kích thước Alignment pattern ....................................................... 45
Hình 3.7 - Cách đặt Alignment pattern .......................................................... 45
Hình 3.8 - Thêm Timing pattern ..................................................................... 45
Hình 3.9 - Thêm Format information ............................................................. 46
Hình 3.10 - Bit thông tin phiên bản (từ phiên bản 7 trở lên) .......................... 46
Hình 3.11 - Chiều sắp xếp bit data ................................................................. 47
Hình 3.12 - Thứ tự đặt bit dữ liệu ................................................................... 47
Hình 3.13 - Sơ đồ quy trình giải mã code ...................................................... 48
Hình 3.14 - Chuyển đổi ảnh màu sang ảnh xám............................................. 49
Hình 3.15 - Bộ lọc Gaussian cho hình ảnh ..................................................... 50
Hình 3.16 - Cạnh trong vùng maxVal và minVal .......................................... 51
Hình 3.17 - Sử dụng giải thuật dilation .......................................................... 51
Hình 3.18 - Phép erosion ................................................................................ 52
Hình 3.19 - Viền contour màu xanh lá bao quanh vật thể .............................. 52
Hình 3.20 - Ảnh trước và sau khi hiệu chỉnh camera do ảnh hưởng của lens 53
Hình 3.21 - Biến dạng xuyên tâm ................................................................... 54
Hình 3.22 - Không biến dạng và biến dạng tiếp tuyến ................................... 54
Hình 3.23 - Sơ đồ thuật toán đo kích thước vật.............................................. 55
Hình 3.24 - Chuyển đổi phối cảnh ảnh ........................................................... 56
Hình 3.25 - Đo kích thước vật thể .................................................................. 57
Hình 3.26 - Sơ đồ thuật toán đo độ lệch vật ................................................... 57
Hình 3.27 - Mô tả độ lệch của vật thể ............................................................ 58
7
Hình 3.28 - Kết quả đo độ lệch góc và tâm .................................................... 59
Hình 3.29 - Giao diện chính trang auto của chương trình .............................. 59
Hình 3.30 - Giao diện setting chương trình vision ......................................... 60
Hình 4.1 - Kiến trúc IoT ................................................................................. 61
Hình 4.2 - Phân tầng của hệ thống IoT ........................................................... 61
Hình 4.3 - ESP32 (trái) và Raspberry Pi4 (phải) ............................................ 62
Hình 4.4 - Một số loại cảm biến ..................................................................... 63
Hình 4.5 - Mô tả quá trình các phiên làm việc http ........................................ 64
Hình 4.6 - Phương thức hoạt động của MQTT .............................................. 65
Hình 4.7 - HTML cho nội dung trang web ..................................................... 66
Hình 4.8 - Phương thức lấy dữ liệu từ web server ......................................... 68
Hình 4.9 - Xử lý của web server khi có yêu cầu đến...................................... 69
Hình 4.10 - Giao diện phần mềm Xampp....................................................... 72
Hình 4.11 - Thao tác CRUD với cơ sở dữ liệu ............................................... 74
Hình 4.12 - Mô hình MVC của Laravel ......................................................... 74
Hình 4.13 - Model thao tác với bảng cơ sở dữ liệu ........................................ 75
Hình 4.14 - Cấu trúc thư mục của Laravel ..................................................... 76
Hình 4.15 - Trang web của hệ thống IoT ....................................................... 77
Hình 5.1 - Kết quả dữ liệu thu được sau khi xử lý ảnh .................................. 78
Hình 5.2 - Dữ liệu sau khi gửi lên chương trình chính................................... 79
Hình 5.3 - Dữ liệu xuất và nhập kho từ chương trình chính gửi lên Web...... 79
Hình 5.4 - Kết quả mẫu thử đo kích thước hàng ............................................ 80
Hình 5.5 - Bảng phân tích sai số đo kích thước ............................................. 80
8
CHƯƠNG.1 TỔNG QUAN ĐỀ TÀI
1.1 Tổng quan hệ thống Rô bốt lưu kho tự động
Nền khoa học kỹ thuật thời đại mới ngày càng phát triển. Điều khiển tự động
là lĩnh vực có vai trò quan trọng trong các ngành công nghiệp của mỗi đất nước.
Do đó nắm bắt và vận dụng công nghệ để tạo ra các sản phẩm đóng góp vào sự
phát triển của nền khoa học kỹ thuật thế giới nói chung và trong sự phát triển của
kỹ thuật tự động nói riêng là rất cần thiết. Và xử lý hình ảnh, quản lý mọi thứ qua
internet có thể giám sát ở mọi nơi là yêu cầu rất thiết thực giúp ích rất nhiều để
quản lý hàng hoá trong kho
1.1.1 Rô bốt công nghiệp
Thuật ngữ “Rô bốt” khởi đầu có ý nghĩa là công việc tạp dịch. Đầu thập kỷ
60, công ty Mỹ AMF quảng cáo một loại máy tự động vạn năng gọi là “Người
máy công nghiệp” sau đó các máy công cụ điều khiển số ra đời, nhằm đáp ứng
yêu cầu gia công các chi tiết trong ngành chế tạo máy bay. Trong những năm sau
này, việc nâng cao tính năng hoạt động của rô bốt không ngừng phát triển. Các rô
bốt được trang bị thêm các loại cảm biến khác nhau để nhận biết môi trường
xung quanh, cùng với những thành tựu to lớn trong lĩnh vực tin học - điện tử, nhờ
vậy rô bốt công nghiệp đã có vị trí quan trọng trong các dây chuyền sản suất hiện
đại. Trong sản xuất, rô bốt ứng dụng vào nhiều lĩnh vực mang tính thay thế sức
lao động của con người nhằm góp phần nâng cao tính tự động hoá, giảm thiểu tác
động của con người vào sản phẩm và tăng năng suất trong quá trình sản xuất. Để
đáp ứng các điều kiện trên rô bốt có khả năng làm việc bền bỉ trong thời gian dài,
không bị ảnh hưởng bởi môi trường làm việc độc hại, phóng xạ, và có thể nhạy
bén với các điều kiện hơn con người do được trang bị các hệ thống cảm biến.
Rô bốt công nghiệp là cơ cấu chuyển động có thể lập trình, lặp lại các chương
trình, tổng hợp các chương trình đặt ra trên các trục toạ độ, có khả năng định vị,
định hướng các đối tượng theo những chu trình được thiết lập trong chương trình
nhằm thực hiện các nhiệm vụ, chức năng công việc khác nhau.
Bậc tự do của rô bốt: là số khả năng chuyển động của một số cơ cấu (chuyển
động quay hoặc tịnh tiến). Để dịch chuyển được một vật thể trong không gian.
9
Hệ toạ độ: Mỗi rô bốt thường bao gồm nhiều khâu liên kết với nhau qua các
khớp, tạo thành một xích động học xuất phát từ một khâu cơ bản đứng yên. Hệ
toạ độ trung gian khác gắn với các khâu động gọi là hệ toạ độ suy rộng.
Hình 1.1 - Toạ độ suy rộng của rô bốt O0 đến On
Hệ cấu trúc cơ bản của rô bốt công nghiệp gồm 2 phần chính là hệ thống điều
khiển và cơ cấu chấp hành
- Hệ thống điều khiển tiếp nhận điều khiển từ tay cầm xử lý dựa trên thao
tác của người dùng tác động lên bảng điều khiển. Tiếp là hệ điều khiển tự
động nghĩa là rô bốt sẽ lấy chương trình mà người dùng đã thiết lập từ
trước đọc theo từng dòng lệnh, kiểm tra điều kiện và thao thác từ đầu đến
cuối
- Cơ cấu chấp hành gồm các sensor giám sát để trả tín hiệu về cho bộ điều
khiển thực thi các lệnh trong chương trình, cụm truyền động cơ khí là các
động cơ servo với công suất và mô men, phần công tác là tool gắn trên rô
bốt, phần công tác cũng bao gồm tính toán bù từ môi trường là nhiệt độ,
lực, mô men bên ngoài
10
Hình 1.2 - Cấu trúc cơ bản của rô bốt công nghiệp
1.1.2 Kho hàng tự động
Trước kia sản phẩm ra vào kho chủ yếu thực hiện bằng sức lao động con
người, do đó không tận dụng được hết không gian và sức chứa của kho hàng
cùng với đó làm cho việc quản lý kém hiệu quả, tốn thời gian, tốn nhân lực và
mất nhiều diện tích làm nhà kho chứa. Trên thế giới hiện tại cũng có nhiều hệ
thống lưu trữ hàng hoá đa dạng và phong phú tuỳ thiết bị vận chuyển, cách thức
thực hiện hoặc là nhu cầu sử dụng. Nhưng nhìn chung có một số điểm yếu sau
- Sử dụng nhiều diện tích
- Hàng hoá không phân loại làm mất thời gian khi xuất, nhập kho
- Khi có lượng hàng lớn sẽ chồng chất
- Lượng hàng vào ra rất khó để có thể kiểm soát số lượng
Một số hệ thống kho hàng tốt của các hãng lớn trên thế giới nhờ tích hợp các
hệ thống tự động về rô bốt và hệ thống quản lý giám sát thời gian thực được áp
dụng
Hình 1.3 - Rô bốt vận chuyển hàng trong kho của Amazon
11
Hình 1.4 - Kho hàng tự động ASRS
Cấu trúc chung của hệ thống tự động gồm 3 phần chính
o Hệ thống vận chuyển
o Hệ thống xuất nhập
o Hệ thống lưu trữ
Phần quan tâm chính ở đây là hệ thống vận chuyển với rô bốt đã được trình
bày phần trên, và hệ thống cơ sở lưu trữ dữ liệu. Hệ thống vận chuyển trong kho
rất đa dạng, tùy theo yêu cầu công nghệ, về hàng hóa, hình thức xuất nhập…
mà có những phương thức vận chuyển hàng trong kho tương ứng. Hiện nay
hệ thống vận chuyển trong kho tự động ở các nước đã có áp dụng như: băng
tải, rô bốt, xe tự hành, máy nâng, máy xếp dỡ…
Các rô bốt, xe tự hành là những thiết bị tất yếu của một hệ thống kho tự
động. Chúng di chuyển trong diện tích của nhà kho theo 3 trục, làm nhiệm vụ
đưa hàng từ cổng nhập đến những ô trống và lấy hàng từ ô chứa hàng ra cổng
xuất.
1.2 Tổng quan hệ thống xử lý hình ảnh
1.2.1 Tổng quan và ứng dụng mã QR code
1.2.1.1. Tổng quan
QR code (Quick response code) là mã code phản hồi nhanh được ra đời ở
Nhật Bản nhằm phục vụ cho ngành sản xuất ô tô. Mã QR chứa thông tin theo cả
hướng dọc và ngang đồng thời có thể chứa được lượng thông tin lớn hơn nhiều so
với mã vạch barcode. Có bốn chuẩn mã hoá khác nhau gồm: Số, chữ số, mã nhị
phân và chữ Kanji nhằm lưu trữ dữ liệu hiệu quả hơn.
12
Quá trình phát triển mã QR code từ 1952 đến 1994 đã cho ra đời mã QR code
của công ty Toyota, Denso Wave để hỗ trợ việc theo dõi xe và các bộ phận nhanh
hơn. Đến 2004 80 – 90% trong số 500 công ty hàng đầu tại Hoa Kỳ đã sử dụng
mã vạch.
Tính năng của mã QR là lưu trữ lượng thông tin lớn lên đến vài chục đến vài
nghìn chữ số và ký tự (7089 ký tự trong một mã QR code). Mã QR có khả năng
xử lý nhiều loại dữ liệu phức tạp, chẳng hạn như các ký tự số và chữ, Kanji,
Hiragana, chữ Khmer, chữ Hán, ký hiệu và mã nhị phân.
Hình 1.5 - Mã vạch và mã QR code
Một tính năng khác vượt trội của mã QR mà khi mã QR bị bẩn hoặc hư hại
một phần nhẹ thì vẫn có thể khôi phục và đọc được dữ liệu. Bởi vì mỗi mã QR sẽ
có một mức sửa lỗi nhất định (Sử dụng thuật toán sửa lỗi Reed-Solomon) để đảm
bảo cho dữ liệu không bị mất đi. Mức này càng cao thì lượng thông tin chứa trên
mã QR sẽ bị giảm đi. Từ đó người dùng có thể tuỳ biến chỉnh sửa mã QR để phù
hợp với các mục đích sử dụng khác nhau.
Sơ lược về thuật toán sửa lỗi Reed-Solomon:
Khi ta gửi bit trên đường truyền rất có thể có các bit bị sai lệch vì nhiễu trên
kênh truyền vì vậy ta phải đưa thêm các bit giám sát và số bit trên và gửi đi để
đảm bảo số bit bị sai lệch được khôi phục bởi bit giám sát.
13
Dù nằm ở vị trí nào dù ngược - xuôi ngang - dọc thì việc đọc mã vẫn dễ dàng
mà không cần xoay chỉnh thiết bị đọc mã cho đúng định dạng. Khả năng này có
được chủ yếu nhờ cấu trúc của mã QR có các văn định vị nên mã QR có thể được
đọc ở 3600.
Hình 1.6 - Cấu tạo mã QR Code
Dấu vị trí (Find pattern): Biểu thị hướng khi in mã QR
Ký hiệu căn chỉnh (Alignment pattern: Đây là phần bổ sung giúp cho máy
quét xác định dễ dàng hơn khi mã QR có kích thước lớn
Mẫu thời gian (Timing pattern): Những dòng này giúp máy quét xác định
chính xác độ lớn của dữ liệu
Thông tin phiên bản (Version information): Quy định về phiên bản mà mã
QR đang sử dụng trong 40 phiên bản đang có hiện nay (21x21, 25x25 đến
177x177).
Thông tin định dạng (Format information): chứa thông tin về mặt nạ dữ liệu
và khả năng chịu lỗi của mã giúp cho việc quét mã được dễ dàng.
Dữ liệu và phím sửa lỗi (Data): Là phần chứa dữ liệu thực tế.
Khu vực tĩnh (Quiet zone): Vạch phân cách giúp cho các thiết bị quét phân
biệt được mã QR với các môi trường ngoài mã
Tính năng Cấu trúc phụ thêm (Structured Append): tính năng này cho phép
mã QR có thể được chia thành nhiều vùng dữ liệu. Ngược lại, thông tin được lưu
trữ trong nhiều biểu tượng mã QR có thể tái tạo lại dưới dạng các ký hiệu đơn.
14
1.2.1.2. Ứng dụng của mã QR code trong sản xuất và đời sống
Kiểm kê hàng hóa, thông tin sản phẩm
- Thông tin cá nhân: trên card visit, số tài khoản ngân hàng.
- Lưu trữ URL: điện thoại chỉ việc đọc mã QR để lấy URL, sau đó tự động
mở trình duyệt.
- Sử dụng tại siêu thị: để biết được thông tin, hướng dẫn nấu ăn cũng như
hàm lượng dinh dưỡng của những thức ăn cần mua.
- Sử dụng tại các buổi hội thảo, thuyết trình, tổ chức sự kiện: người tham
gia có thể sử dụng mã QR thay cho Business Card của mình.
- Sử dụng trong truyền thông quảng cáo: dần thay thế các quảng cáo dưới
hình thức in ấn và phát tờ rơi. Mã QR sẽ đính kèm thông tin thương hiệu
trên các ấn phẩm, bảng hiệu cửa hàng, các bảng quảng cáo, billboard.
1.2.2 Tổng quan đo kích thước vật thể
Khi nhập hàng vào kho thì các hộp hàng sẽ có kích thước khác nhau để có thể
thuận lợi cho quá trình phân loại tránh được tốn diện tiện tích khi hộp nhỏ để vào
gian hàng lớn hoặc là hộp hàng quá lớn không đặt vừa gian hàng nhỏ thì trước
khi nhập hàng ta có thể tích hợp hệ thống nhận diện đo kích thước của hộp hàng
từ đó sẽ tối ưu được diện tích của kho hàng
Thêm vào đó xác định thêm góc lệch của hàng so với hệ toạ độ gốc và gửi độ
lệch để rô bốt có định hướng gắp chuẩn hàng từ băng tải đặt chính xác vào kho.
Theo logic thông thường muốn đo kích thước vật thể trong ảnh ta phải biết
được các yếu tố: khoảng cách từ camera đến vật, tiêu cự của camera, góc chụp
Hình 1.7 - Thông số cần để đo kích thước cây
15
Như trên hình 1.7 cần biết khoảng cách x, góc chụp đến ngọn cây và mỗi
pixel tương ứng sang mm của ảnh. Và cần hiệu chỉnh camera ước tính các thông
số ống kính và cảm biến hình ảnh của máy ảnh.
Ngoài ra, có phương pháp thứ hai để đo kích thước của vật thể là sử dụng vật
tham chiếu. Đầu tiên cần chọn vật tham chiếu sau đó đặt vật đó vào ảnh cùng với
vật mà mình muốn đo kích thước. Từ vật tham chiếu trong ảnh đó ta có thể tính
ra được một pixel (p) tương ứng với bao nhiêu đơn vị mm. Cuối cùng nhân p với
kích thước vật muốn đo trong ảnh sẽ ra được kích thước thật của vật. Tuy nhiên
phương pháp này sẽ có nhưng sai số khi ảnh chụp ở góc nghiêng hoặc là độ lồi,
lõm của thấu kính sử dụng cho camera sẽ làm ảnh hưởng đến độ chính xác nên
cần hiệu chỉnh camera tốt với những hệ thống yêu cầu cao về dung sai kích thước
Hình 1.8 - Đo vật thể với OpenCV bằng đối tượng tham chiếu
Với đo độ lệch của vật thể thì từ bốn điểm xác định được của hình chữ nhật
bao quanh vật thể sẽ tính được góc lệch của vật so với trục Ox hoặc là Oy của hệ
tuỳ theo quy ước đặt trên rô bốt. Toạ độ tâm của vật thì sẽ được sử dụng tích
phân đề tính trọng tâm của hình chữ nhật bao quanh sẽ thu được toạ độ và gửi cả
3 thông số (x, y) và góc lệch T về để rô bốt bù độ lệch và gắp vật thể. Phương
pháp cụ thể trình bày trong chương 3.
Hình 1.9 - Mô tả xác định độ lệch điểm và góc của khối Rubik
16
1.2.3 Nhận diện QR code và đo vật thể với thư viện OpenCV
OpenCV (Open Source Computer Vision Library): được phát hành dưới giấy
phép BSD và do đó nó miễn phí cho cả việc sử dụng học thuật và thương mại.
Nó có giao diện C++, Python và Java. Hỗ trợ cả Windows, Linux, Mac OS, iOS
và Android. OpenCV được thiết kế cho hiệu quả tính toán và tập trung mạnh mẽ
vào các ứng dụng thời gian thực. Viết trong tối ưu hóa C/C++, thư viện có thể tận
dụng lợi thế của chế biến đa lõi. Được bật với OpenCL, nó có thể tận dụng sự
tăng tốc phần cứng của nền tảng tính toán không đồng nhất bên dưới.
Chức năng của OpenCV:
- Image/video I/O, xử lý, hiển thị (core, imgproc, highgui).
- Phát hiện các vật thể (objdetect, feature2d).
- Chụp ảnh điện toán (photo, video).
- Machine learning & thu thập dữ liệu (ml, flann).
- Tăng tốc CUDA (GPU).
Ứng dụng của OpenCV rất rộng rãi gồm:
- Hình ảnh khung cảnh đường phố.
- Kiểm tra và giám sát tự động.
- Rô bốt và xe tự hành.
- Phân tích hình ảnh y tế.
- Tìm kiếm phục hồi ảnh, video.
Với các chức năng và sự hỗ trợ của thư viện OpenCV sẽ là công cụ chính để
xử lý ảnh nhận diện giải mã và tạo mã QR code cũng như xử lý nhận diện và đo
kích thước, độ lệch của vật thể trong để tài
1.3 Tổng quan Internet of Things
1.3.1 Khái niệm IoT
IoT nghĩa là khả năng kết nối tất cả mọi vật xung quanh chúng ta từ máy móc,
thiết bị, điện thoại di động, ô tô và các thành phố, sẽ được kết nối với nhau thông
qua internet và chúng có thể giao tiếp với nhau bằng những thành phần được định
danh rõ ràng, nhúng với các phần mềm thông minh, cảm biến bao gồm các thành
phần
17
- Cảm biến: Thu thập dữ liệu
- Bộ định danh: định nghĩa các nguồn dữ liệu (bao gồm các cảm biến và các
thiết bị thu thập dữ liệu khác)
- Phần mềm: Phân tích dữ liệu thu được
- Kết nối mạng: Giao tiếp truyền thông dữ liệu thu được và dữ liệu đã phân
tích lên mạng
Hình 1.10 - Sơ đồ thành phần của hệ thống IoT
Ban đầu các máy tính kết nối với các máy tính sau đó nhiều máy tính được
kết nối với nhau và thế giới tạo ra được web rộng gần như khắp mọi nơi, ý tưởng
là dùng internet kết nối con người và internet có xuất hiện ở khắp mọi nơi trên
thế giới. Từ những phương tiện hạ tầng đã có phát triển con người kết nối với
những đồ vật và cuối cùng là các đồ vật kết nối với các đồ vật khác.
Hình 1.11 - Con người kết nối với các thiết bị giám sát
Sự phát triển của IoT và số tiền đầu tư vào lĩnh vực này ngày càng lớn. Các
doanh nghiệp sẽ là những tổ chức đi đầu trong ứng dụng các giải pháp công nghệ
IoT. Có 3 cách mà IoT có thể giúp họ tăng hiệu quả kinh doanh:
18
1) giảm chi phí hoạt động
2) tăng hiệu quả lao động
3) phát triển các thị trường mới hoặc phát triển các sản phẩm mới.
1.3.2 Các ứng dụng và thách thức của IoT
1.3.2.1. Ứng dụng
- Đời sống: Kiểm soát thiết bị thông minh trong nhà (Smart home), tối
ưu hoá năng lượng của thiết bị sử dụng
- Sản xuất quản lý kho: Theo dõi sản phẩm trong kho, kiểm soát tồn kho
- Y học: Thiết bị đeo giám sát sức khoẻ, đồng hồ thông minh
- Quản lý Ô tô: bãi đỗ xe thông minh, theo dõi lưu lượng giao thông,
chống trộm.
- Môi trường: Dự báo thời tiết, Kiểm soát độ bụi, chất lượng không khí.
- Nông nghiệp: Giám sát quá trình mùa vụ, độ ẩm, nhiệt độ.
Hình 1.12 - Ứng dụng IoT
1.3.2.2. Thách thức
- Rất nhiều chuẩn công nghệ khác nhau nên khó đồng bộ hệ thống
- Vấn để bảo mật mạng chưa được tốt dẫn đến dễ bị tấn công trên
internet làm các thiết bị hoạt động sai hoặc bị đánh cắp mất dữ liệu
- Công nghệ đổi mới quá nhanh chính phủ không quản trị kịp về các vấn
đề quyền riêng tư, bảo mật không có cơ quan quản lý điều hành chung.
1.4 Các nghiên cứu về lĩnh vực liên quan
Cùng đề tài liên quan đến hệ thống lưu kho tự động ứng dụng IoT em đã tham
khảo các tài liệu liên quan về các công nghệ sử dụng ở nước ngoài trong thời đại
ngày nay từ đó có thể cập nhật cho mô hình hệ thống của mình được tối ưu theo
19
xu hướng phát triển của thế giới. xuất bản tháng 4 năm 2021 bài báo của tác giả
Guoqing Zhang cùng các cộng sự đã nói về hệ thống tích hợp IoT để giải quyết
các vấn đề lưu trữ hàng hoá trong kho [7]. Nghiên cứu này thực tế ứng dụng
trong một công ty thực phẩm, có nhiều hàng hoá thành phẩm nhưng không gian
kho hạn chế. Hệ thống kết hợp kế hoạch sản xuất với chính sách sắp xếp lưu trữ
một cách ngẫu nhiên (Trình bày mô hình ILP động đầu tiên cho việc phân công
ngẫu nhiên nhiều giai đoạn), tận dụng khả năng hiển thị và truy xuất nguồn gốc
của các mục được theo dõi và hiển thị cung cấp bởi IoT để tăng cường không
gian. Một thuật toán kinh nghiệm [8] được phát triển để có được giải pháp gần tối
ưu cho vấn đề trong thế giới thực quy mô lớn. Dựa trên các thí nghiệm số, so
sánh giữa các giải pháp thì kết quả cho thấy hệ thống tích hợp với chính sách lưu
trữ ngẫu nhiên có thể giảm đáng kể tổng chi phí (lên 16,84% với trung bình là
9,95%) và tăng sử dụng không gian (lên 26,1% so với trung bình 14,8%). Nghiên
cứu đã giải quyết vấn đề trong công nghiệp quy mô lớn một cách hiệu quả với
thuật toán kinh nghiệm tối ưu để tiết kiệm cả về không gian và chi phí.
Hình 1.13 - Giải thuật kinh nghiệm cho hệ thống lưu kho
Trong bài báo horizontal automated storage and retrieval system [10] của tác
giả Jacek S Tutak xuất bản trên tạp chí nghiên cứu khoa học và công nghệ Vol.
11. Bài báo mô tả về hệ thống xuất nhập kho tự động theo phương ngang dựa
trên Raspberry Pi, mô tả sự lựa chọn các phần tử kết cấu và cơ cấu chấp hành, và
phát triển hệ thống bằng thuật toán với Raspberry Pi và thêm một giao diện màn
hình cảm ứng. Tính năng chính quan trọng của hệ thống là tính mô đun giúp thiết
20
TRƯỜNG CƠ KHÍ
LUẬN VĂN THẠC SĨ
Hệ thống lưu kho tự động và quản lý
hàng hoá ứng dụng IoT
IoT Base Automated Storage and Retrieval System
NGUYỄN VĂN UY
[email protected]
Chuyên ngành Kỹ thuật Cơ điện tử
Giảng viên hướng dẫn: TS. Nguyễn Thành Hùng
Chữ ký của GVHD
Khoa: Cơ Điện Tử
Nhóm chuyên môn: Robot
Hà Nội 10/2022
1
Lời cảm ơn
Em xin chân thành cảm ơn quý thầy, cô trong Khoa Cơ khí đã trang bị cho em
những kiến thức cần thiết trong thời gian học tập, nghiên cứu tại trường để có thể
hoàn thành tốt luận văn này. Đặc biệt em xin cảm ơn sự hướng dẫn tận tình của
giảng viên hướng dẫn Tiến sĩ Nguyễn Thành Hùng đã giúp em giải đáp những
khúc mắc trong quá trình hoàn thành luận văn cũng như là những chỉnh sửa và
giải pháp cho hệ thống. Trong quá hình hoàn thành luận văn không tránh khỏi
những vấn đề thiếu sót, vậy em rất mong nhận được những sự đóng góp ý kiến
của thầy cô để luận văn hoàn thiện hơn. Chúc quý thầy cô sức khoẻ và công tác
tốt trong công việc nghiên cứu và đào tạo.
Tóm tắt nội dung luận văn
Nội dung của luận văn nhằm giải quyết bài toán hệ thống lưu và xuất kho
trong sản xuất tự động. Cụ thể là thiết kế hệ thống cơ khí robot lấy hàng và giá
lưu trữ hàng hệ thống điều khiển robot vận chuyển. Chương trình tạo mã và giải
mã QR code cùng với đó là xử lý ảnh để đo kích thước và độ lệch góc và tâm của
hàng giúp quản lý, phân loại hàng hoá dễ dàng. Cuối cùng là hệ thống IoT xây
dựng một trang web để giám sát quản lý dữ liệu và quá trình hoạt động của kho
hàng bằng thiết bị mà có kết nối mạng và tài khoản thì có thể kiểm tra tình trạng
kho hàng. Phương pháp thực hiện: Dựa trên lý thuyết về các thuật toán và
phương pháp xử lý ảnh để đo kích thước, độ lệch hàng sau đó tạo mã QR code để
phân loại hàng. Những dữ liệu trên sẽ được chương trình chính xử lý và điều
khiển rô bốt xuất nhập kho, cuối cùng sẽ gửi các thông tin đó lên cơ sở dữ liệu
trên internet để lưu trữ và quản lý. Công cụ sử dụng: Arduino IDE – Arduino
MEGA, Window form – C#, PyCharm – OpenCV, PHP Laravel. Kết quả đạt
được của luận văn đáp ứng được các yêu cầu đã đặt ra cho hệ thống lưu kho và
quản lý hàng hoá tự động. Tính khoa học thực tiễn có ý nghĩa cao trong hệ thống
phân loại và nhập hàng tự động và quản lý hàng hoá. Định hướng phát triển sẽ
tăng độ chính xác cho hệ xử lý ảnh bằng học sâu và xây dựng trang web tương
tác với người dùng tối ưu hơn
Hà Nội, Ngày … Tháng … Năm 2022
Học viên thực hiện
2
MỤC LỤC
Danh mục hình ảnh ........................................................................................ 6
CHƯƠNG.1 TỔNG QUAN ĐỀ TÀI .......................................................... 9
1.1 Tổng quan hệ thống Rô bốt lưu kho tự động ........................................ 9
1.1.1 Rô bốt công nghiệp ..................................................................... 9
1.1.2 Kho hàng tự động ...................................................................... 11
1.2 Tổng quan hệ thống xử lý hình ảnh .................................................... 12
1.2.1 Tổng quan và ứng dụng mã QR code ....................................... 12
1.2.2 Tổng quan đo kích thước vật thể............................................... 15
1.2.3 Nhận diện QR code và đo vật thể với thư viện OpenCV .......... 17
1.3 Tổng quan Internet of Things ............................................................. 17
1.3.1 Khái niệm IoT ........................................................................... 17
1.3.2 Các ứng dụng và thách thức của IoT ........................................ 19
1.4 Các nghiên cứu về lĩnh vực liên quan ................................................. 19
Nội dung nghiên cứu của luận văn .............................................................. 22
CHƯƠNG.2 THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN ............................ 23
2.1 Hệ thống cơ cấu chấp hành ................................................................. 23
2.1.1 Nguyên lý hoạt động của kho hàng........................................... 23
2.1.2 Cấu tạo và nguyên lý hoạt động của rô bốt ............................... 23
2.1.3 Chọn các thành phần của hệ thống cơ khí ................................ 26
2.1.4 Thiết kế kích cỡ khung hàng ..................................................... 29
2.2 Hệ thống điều khiển ............................................................................ 30
2.2.1 Phân tích lựa chọn các thành phần của hệ thống điều khiển .... 30
2.2.2 Sơ đồ các điểm di chuyển của rô bốt ........................................ 36
2.2.3 Sơ đồ thuật toán ........................................................................ 37
3
2.2.4 Xây dựng chương trình chính để điều khiển và giám sát kho
hàng 38
CHƯƠNG.3 THUẬT TOÁN XỬ LÝ HÌNH ẢNH ................................. 41
3.1 Thuật toán xử lý mã QR Code ............................................................ 41
3.1.1 Mã hoá QR code ....................................................................... 41
3.1.2 Giải mã QR code ....................................................................... 48
3.2 Thuật toán đo kích thước và độ lệch ................................................... 49
3.2.1 Những phương pháp xử lý hình ảnh và hiệu chỉnh camera ...... 49
3.2.2 Thuật toán nhận diện và đo kích thước ..................................... 53
3.3 Chương trình xử lý hình ảnh ............................................................... 59
CHƯƠNG.4 ỨNG DỤNG IOT QUẢN LÝ KHO HÀNG ...................... 61
4.1 Truyền thông trong IoT với hệ thống điều khiển................................ 61
4.1.1 Kiến trúc IoT ............................................................................. 61
4.1.2 Các công nghệ IoT .................................................................... 62
4.2 Thiết kế frontend Web ........................................................................ 65
4.3 Thiết kế backend Web ........................................................................ 67
4.4 Hệ quản trị cơ sở dữ liệu và framework PHP Laravel ........................ 72
4.4.1 Phần mềm tạo máy chủ Xampp và hệ quản trị cơ sở dữ liệu ... 72
4.4.2 Framework PHP Laravel........................................................... 74
CHƯƠNG.5 THỰC NGHIỆM VÀ KẾT LUẬN ..................................... 78
5.1 Thực nghiệm và đánh giá kết quả ....................................................... 78
5.1.1 Thực nghiệm ............................................................................. 78
5.1.2 Đánh giá kết quả ....................................................................... 80
5.2 Kết luận và hướng phát triển .............................................................. 81
5.2.1 Kết Luận .................................................................................... 81
5.2.2 Hướng phát triển của đề tài trong tương lai .............................. 81
PHỤ LỤC ...................................................................................................... 84
4
File chương trình chính và giao diện xử lý ảnh ......................................... 84
File các hàm tính toán và xử lý ảnh ............................................................ 87
Code chương trình chính ............................................................................. 92
Tài liệu tham khảo ...................................................................................... 100
5
Danh mục hình ảnh
Hình 1.1 - Toạ độ suy rộng của rô bốt O0 đến On .......................................... 10
Hình 1.2 - Cấu trúc cơ bản của rô bốt công nghiệp ........................................ 11
Hình 1.3 - Rô bốt vận chuyển hàng trong kho của Amazon .......................... 11
Hình 1.4 - Kho hàng tự động ASRS ............................................................... 12
Hình 1.5 - Mã vạch và mã QR code ............................................................... 13
Hình 1.6 - Cấu tạo mã QR Code ..................................................................... 14
Hình 1.7 - Thông số cần để đo kích thước cây ............................................... 15
Hình 1.8 - Đo vật thể với OpenCV bằng đối tượng tham chiếu..................... 16
Hình 1.9 - Mô tả xác định độ lệch điểm và góc của khối Rubik .................... 16
Hình 1.10 - Sơ đồ thành phần của hệ thống IoT............................................. 18
Hình 1.11 - Con người kết nối với các thiết bị giám sát ................................ 18
Hình 1.12 - Ứng dụng IoT .............................................................................. 19
Hình 1.13 - Giải thuật kinh nghiệm cho hệ thống lưu kho ............................. 20
Hình 1.14 - Mô hình tổng quan hệ thống và hệ rô bốt ................................... 21
Hình 2.1 - Mặt cắt mô hình 3D của kho hàng ................................................ 24
Hình 2.2 - Sơ đồ motor lắp với puly và cụm puly đai răng ............................ 24
Hình 2.3 - Cụm hệ puly đai răng chuyển động ngang .................................... 25
Hình 2.4 - Cụm hệ puly đai răng chuyển động thẳng đứng ........................... 25
Hình 2.5 - Cụm xích bánh xích chuyển động lấy trả hàng ............................. 26
Hình 2.6 - Ray trượt bi ................................................................................... 26
Hình 2.7 - Động cơ bước 28BYJ và driver .................................................... 27
Hình 2.8 - Động cơ bước size 42 trục nâng hạ ............................................... 28
Hình 2.9 - Thông số kích thước động cơ ........................................................ 28
Hình 2.10 - Kích cỡ và hình chiếu đứng 3D của khung hàng ........................ 29
Hình 2.11 - Sơ đồ mặt bằng kho hàng ............................................................ 30
Hình 2.12 - Arduino Mega 2560 .................................................................... 31
Hình 2.13 - Sơ đồ kết nối chân ....................................................................... 32
Hình 2.14 - Nguyên lý làm việc của động cơ bước nam châm vĩnh cửu ....... 33
Hình 2.15 - Drive điều khiển động cơ TB6600 .............................................. 35
Hình 2.16 - Cảm biến khoảng cách E18-D80NK ........................................... 35
Hình 2.17 - Các điểm thao tác trên trục X và Y ............................................. 36
6
Hình 2.18 - Điểm thao tác của trục Z ............................................................. 36
Hình 2.19 - Sơ đồ nối dây Arduino với động cơ qua module TB6600 .......... 37
Hình 2.20- Sơ đồ thuật toán cho Rô bốt ......................................................... 38
Hình 2.21 - Giao diện kho hàng tự động ........................................................ 39
Hình 2.22 - Code Arduino chờ nhận giá trị trả về .......................................... 40
Hình 3.1 - Sơ đồ quy trình tạo mã QR Code .................................................. 41
Hình 3.2 - Các function pattern và vị trí của nó ............................................. 43
Hình 3.3 - Kích thước Finder pattern ............................................................. 44
Hình 3.4 - Phiên bản 1 và phiên bản 18 ......................................................... 44
Hình 3.5 - Thêm Separator ............................................................................. 44
Hình 3.6 - Kích thước Alignment pattern ....................................................... 45
Hình 3.7 - Cách đặt Alignment pattern .......................................................... 45
Hình 3.8 - Thêm Timing pattern ..................................................................... 45
Hình 3.9 - Thêm Format information ............................................................. 46
Hình 3.10 - Bit thông tin phiên bản (từ phiên bản 7 trở lên) .......................... 46
Hình 3.11 - Chiều sắp xếp bit data ................................................................. 47
Hình 3.12 - Thứ tự đặt bit dữ liệu ................................................................... 47
Hình 3.13 - Sơ đồ quy trình giải mã code ...................................................... 48
Hình 3.14 - Chuyển đổi ảnh màu sang ảnh xám............................................. 49
Hình 3.15 - Bộ lọc Gaussian cho hình ảnh ..................................................... 50
Hình 3.16 - Cạnh trong vùng maxVal và minVal .......................................... 51
Hình 3.17 - Sử dụng giải thuật dilation .......................................................... 51
Hình 3.18 - Phép erosion ................................................................................ 52
Hình 3.19 - Viền contour màu xanh lá bao quanh vật thể .............................. 52
Hình 3.20 - Ảnh trước và sau khi hiệu chỉnh camera do ảnh hưởng của lens 53
Hình 3.21 - Biến dạng xuyên tâm ................................................................... 54
Hình 3.22 - Không biến dạng và biến dạng tiếp tuyến ................................... 54
Hình 3.23 - Sơ đồ thuật toán đo kích thước vật.............................................. 55
Hình 3.24 - Chuyển đổi phối cảnh ảnh ........................................................... 56
Hình 3.25 - Đo kích thước vật thể .................................................................. 57
Hình 3.26 - Sơ đồ thuật toán đo độ lệch vật ................................................... 57
Hình 3.27 - Mô tả độ lệch của vật thể ............................................................ 58
7
Hình 3.28 - Kết quả đo độ lệch góc và tâm .................................................... 59
Hình 3.29 - Giao diện chính trang auto của chương trình .............................. 59
Hình 3.30 - Giao diện setting chương trình vision ......................................... 60
Hình 4.1 - Kiến trúc IoT ................................................................................. 61
Hình 4.2 - Phân tầng của hệ thống IoT ........................................................... 61
Hình 4.3 - ESP32 (trái) và Raspberry Pi4 (phải) ............................................ 62
Hình 4.4 - Một số loại cảm biến ..................................................................... 63
Hình 4.5 - Mô tả quá trình các phiên làm việc http ........................................ 64
Hình 4.6 - Phương thức hoạt động của MQTT .............................................. 65
Hình 4.7 - HTML cho nội dung trang web ..................................................... 66
Hình 4.8 - Phương thức lấy dữ liệu từ web server ......................................... 68
Hình 4.9 - Xử lý của web server khi có yêu cầu đến...................................... 69
Hình 4.10 - Giao diện phần mềm Xampp....................................................... 72
Hình 4.11 - Thao tác CRUD với cơ sở dữ liệu ............................................... 74
Hình 4.12 - Mô hình MVC của Laravel ......................................................... 74
Hình 4.13 - Model thao tác với bảng cơ sở dữ liệu ........................................ 75
Hình 4.14 - Cấu trúc thư mục của Laravel ..................................................... 76
Hình 4.15 - Trang web của hệ thống IoT ....................................................... 77
Hình 5.1 - Kết quả dữ liệu thu được sau khi xử lý ảnh .................................. 78
Hình 5.2 - Dữ liệu sau khi gửi lên chương trình chính................................... 79
Hình 5.3 - Dữ liệu xuất và nhập kho từ chương trình chính gửi lên Web...... 79
Hình 5.4 - Kết quả mẫu thử đo kích thước hàng ............................................ 80
Hình 5.5 - Bảng phân tích sai số đo kích thước ............................................. 80
8
CHƯƠNG.1 TỔNG QUAN ĐỀ TÀI
1.1 Tổng quan hệ thống Rô bốt lưu kho tự động
Nền khoa học kỹ thuật thời đại mới ngày càng phát triển. Điều khiển tự động
là lĩnh vực có vai trò quan trọng trong các ngành công nghiệp của mỗi đất nước.
Do đó nắm bắt và vận dụng công nghệ để tạo ra các sản phẩm đóng góp vào sự
phát triển của nền khoa học kỹ thuật thế giới nói chung và trong sự phát triển của
kỹ thuật tự động nói riêng là rất cần thiết. Và xử lý hình ảnh, quản lý mọi thứ qua
internet có thể giám sát ở mọi nơi là yêu cầu rất thiết thực giúp ích rất nhiều để
quản lý hàng hoá trong kho
1.1.1 Rô bốt công nghiệp
Thuật ngữ “Rô bốt” khởi đầu có ý nghĩa là công việc tạp dịch. Đầu thập kỷ
60, công ty Mỹ AMF quảng cáo một loại máy tự động vạn năng gọi là “Người
máy công nghiệp” sau đó các máy công cụ điều khiển số ra đời, nhằm đáp ứng
yêu cầu gia công các chi tiết trong ngành chế tạo máy bay. Trong những năm sau
này, việc nâng cao tính năng hoạt động của rô bốt không ngừng phát triển. Các rô
bốt được trang bị thêm các loại cảm biến khác nhau để nhận biết môi trường
xung quanh, cùng với những thành tựu to lớn trong lĩnh vực tin học - điện tử, nhờ
vậy rô bốt công nghiệp đã có vị trí quan trọng trong các dây chuyền sản suất hiện
đại. Trong sản xuất, rô bốt ứng dụng vào nhiều lĩnh vực mang tính thay thế sức
lao động của con người nhằm góp phần nâng cao tính tự động hoá, giảm thiểu tác
động của con người vào sản phẩm và tăng năng suất trong quá trình sản xuất. Để
đáp ứng các điều kiện trên rô bốt có khả năng làm việc bền bỉ trong thời gian dài,
không bị ảnh hưởng bởi môi trường làm việc độc hại, phóng xạ, và có thể nhạy
bén với các điều kiện hơn con người do được trang bị các hệ thống cảm biến.
Rô bốt công nghiệp là cơ cấu chuyển động có thể lập trình, lặp lại các chương
trình, tổng hợp các chương trình đặt ra trên các trục toạ độ, có khả năng định vị,
định hướng các đối tượng theo những chu trình được thiết lập trong chương trình
nhằm thực hiện các nhiệm vụ, chức năng công việc khác nhau.
Bậc tự do của rô bốt: là số khả năng chuyển động của một số cơ cấu (chuyển
động quay hoặc tịnh tiến). Để dịch chuyển được một vật thể trong không gian.
9
Hệ toạ độ: Mỗi rô bốt thường bao gồm nhiều khâu liên kết với nhau qua các
khớp, tạo thành một xích động học xuất phát từ một khâu cơ bản đứng yên. Hệ
toạ độ trung gian khác gắn với các khâu động gọi là hệ toạ độ suy rộng.
Hình 1.1 - Toạ độ suy rộng của rô bốt O0 đến On
Hệ cấu trúc cơ bản của rô bốt công nghiệp gồm 2 phần chính là hệ thống điều
khiển và cơ cấu chấp hành
- Hệ thống điều khiển tiếp nhận điều khiển từ tay cầm xử lý dựa trên thao
tác của người dùng tác động lên bảng điều khiển. Tiếp là hệ điều khiển tự
động nghĩa là rô bốt sẽ lấy chương trình mà người dùng đã thiết lập từ
trước đọc theo từng dòng lệnh, kiểm tra điều kiện và thao thác từ đầu đến
cuối
- Cơ cấu chấp hành gồm các sensor giám sát để trả tín hiệu về cho bộ điều
khiển thực thi các lệnh trong chương trình, cụm truyền động cơ khí là các
động cơ servo với công suất và mô men, phần công tác là tool gắn trên rô
bốt, phần công tác cũng bao gồm tính toán bù từ môi trường là nhiệt độ,
lực, mô men bên ngoài
10
Hình 1.2 - Cấu trúc cơ bản của rô bốt công nghiệp
1.1.2 Kho hàng tự động
Trước kia sản phẩm ra vào kho chủ yếu thực hiện bằng sức lao động con
người, do đó không tận dụng được hết không gian và sức chứa của kho hàng
cùng với đó làm cho việc quản lý kém hiệu quả, tốn thời gian, tốn nhân lực và
mất nhiều diện tích làm nhà kho chứa. Trên thế giới hiện tại cũng có nhiều hệ
thống lưu trữ hàng hoá đa dạng và phong phú tuỳ thiết bị vận chuyển, cách thức
thực hiện hoặc là nhu cầu sử dụng. Nhưng nhìn chung có một số điểm yếu sau
- Sử dụng nhiều diện tích
- Hàng hoá không phân loại làm mất thời gian khi xuất, nhập kho
- Khi có lượng hàng lớn sẽ chồng chất
- Lượng hàng vào ra rất khó để có thể kiểm soát số lượng
Một số hệ thống kho hàng tốt của các hãng lớn trên thế giới nhờ tích hợp các
hệ thống tự động về rô bốt và hệ thống quản lý giám sát thời gian thực được áp
dụng
Hình 1.3 - Rô bốt vận chuyển hàng trong kho của Amazon
11
Hình 1.4 - Kho hàng tự động ASRS
Cấu trúc chung của hệ thống tự động gồm 3 phần chính
o Hệ thống vận chuyển
o Hệ thống xuất nhập
o Hệ thống lưu trữ
Phần quan tâm chính ở đây là hệ thống vận chuyển với rô bốt đã được trình
bày phần trên, và hệ thống cơ sở lưu trữ dữ liệu. Hệ thống vận chuyển trong kho
rất đa dạng, tùy theo yêu cầu công nghệ, về hàng hóa, hình thức xuất nhập…
mà có những phương thức vận chuyển hàng trong kho tương ứng. Hiện nay
hệ thống vận chuyển trong kho tự động ở các nước đã có áp dụng như: băng
tải, rô bốt, xe tự hành, máy nâng, máy xếp dỡ…
Các rô bốt, xe tự hành là những thiết bị tất yếu của một hệ thống kho tự
động. Chúng di chuyển trong diện tích của nhà kho theo 3 trục, làm nhiệm vụ
đưa hàng từ cổng nhập đến những ô trống và lấy hàng từ ô chứa hàng ra cổng
xuất.
1.2 Tổng quan hệ thống xử lý hình ảnh
1.2.1 Tổng quan và ứng dụng mã QR code
1.2.1.1. Tổng quan
QR code (Quick response code) là mã code phản hồi nhanh được ra đời ở
Nhật Bản nhằm phục vụ cho ngành sản xuất ô tô. Mã QR chứa thông tin theo cả
hướng dọc và ngang đồng thời có thể chứa được lượng thông tin lớn hơn nhiều so
với mã vạch barcode. Có bốn chuẩn mã hoá khác nhau gồm: Số, chữ số, mã nhị
phân và chữ Kanji nhằm lưu trữ dữ liệu hiệu quả hơn.
12
Quá trình phát triển mã QR code từ 1952 đến 1994 đã cho ra đời mã QR code
của công ty Toyota, Denso Wave để hỗ trợ việc theo dõi xe và các bộ phận nhanh
hơn. Đến 2004 80 – 90% trong số 500 công ty hàng đầu tại Hoa Kỳ đã sử dụng
mã vạch.
Tính năng của mã QR là lưu trữ lượng thông tin lớn lên đến vài chục đến vài
nghìn chữ số và ký tự (7089 ký tự trong một mã QR code). Mã QR có khả năng
xử lý nhiều loại dữ liệu phức tạp, chẳng hạn như các ký tự số và chữ, Kanji,
Hiragana, chữ Khmer, chữ Hán, ký hiệu và mã nhị phân.
Hình 1.5 - Mã vạch và mã QR code
Một tính năng khác vượt trội của mã QR mà khi mã QR bị bẩn hoặc hư hại
một phần nhẹ thì vẫn có thể khôi phục và đọc được dữ liệu. Bởi vì mỗi mã QR sẽ
có một mức sửa lỗi nhất định (Sử dụng thuật toán sửa lỗi Reed-Solomon) để đảm
bảo cho dữ liệu không bị mất đi. Mức này càng cao thì lượng thông tin chứa trên
mã QR sẽ bị giảm đi. Từ đó người dùng có thể tuỳ biến chỉnh sửa mã QR để phù
hợp với các mục đích sử dụng khác nhau.
Sơ lược về thuật toán sửa lỗi Reed-Solomon:
Khi ta gửi bit trên đường truyền rất có thể có các bit bị sai lệch vì nhiễu trên
kênh truyền vì vậy ta phải đưa thêm các bit giám sát và số bit trên và gửi đi để
đảm bảo số bit bị sai lệch được khôi phục bởi bit giám sát.
13
Dù nằm ở vị trí nào dù ngược - xuôi ngang - dọc thì việc đọc mã vẫn dễ dàng
mà không cần xoay chỉnh thiết bị đọc mã cho đúng định dạng. Khả năng này có
được chủ yếu nhờ cấu trúc của mã QR có các văn định vị nên mã QR có thể được
đọc ở 3600.
Hình 1.6 - Cấu tạo mã QR Code
Dấu vị trí (Find pattern): Biểu thị hướng khi in mã QR
Ký hiệu căn chỉnh (Alignment pattern: Đây là phần bổ sung giúp cho máy
quét xác định dễ dàng hơn khi mã QR có kích thước lớn
Mẫu thời gian (Timing pattern): Những dòng này giúp máy quét xác định
chính xác độ lớn của dữ liệu
Thông tin phiên bản (Version information): Quy định về phiên bản mà mã
QR đang sử dụng trong 40 phiên bản đang có hiện nay (21x21, 25x25 đến
177x177).
Thông tin định dạng (Format information): chứa thông tin về mặt nạ dữ liệu
và khả năng chịu lỗi của mã giúp cho việc quét mã được dễ dàng.
Dữ liệu và phím sửa lỗi (Data): Là phần chứa dữ liệu thực tế.
Khu vực tĩnh (Quiet zone): Vạch phân cách giúp cho các thiết bị quét phân
biệt được mã QR với các môi trường ngoài mã
Tính năng Cấu trúc phụ thêm (Structured Append): tính năng này cho phép
mã QR có thể được chia thành nhiều vùng dữ liệu. Ngược lại, thông tin được lưu
trữ trong nhiều biểu tượng mã QR có thể tái tạo lại dưới dạng các ký hiệu đơn.
14
1.2.1.2. Ứng dụng của mã QR code trong sản xuất và đời sống
Kiểm kê hàng hóa, thông tin sản phẩm
- Thông tin cá nhân: trên card visit, số tài khoản ngân hàng.
- Lưu trữ URL: điện thoại chỉ việc đọc mã QR để lấy URL, sau đó tự động
mở trình duyệt.
- Sử dụng tại siêu thị: để biết được thông tin, hướng dẫn nấu ăn cũng như
hàm lượng dinh dưỡng của những thức ăn cần mua.
- Sử dụng tại các buổi hội thảo, thuyết trình, tổ chức sự kiện: người tham
gia có thể sử dụng mã QR thay cho Business Card của mình.
- Sử dụng trong truyền thông quảng cáo: dần thay thế các quảng cáo dưới
hình thức in ấn và phát tờ rơi. Mã QR sẽ đính kèm thông tin thương hiệu
trên các ấn phẩm, bảng hiệu cửa hàng, các bảng quảng cáo, billboard.
1.2.2 Tổng quan đo kích thước vật thể
Khi nhập hàng vào kho thì các hộp hàng sẽ có kích thước khác nhau để có thể
thuận lợi cho quá trình phân loại tránh được tốn diện tiện tích khi hộp nhỏ để vào
gian hàng lớn hoặc là hộp hàng quá lớn không đặt vừa gian hàng nhỏ thì trước
khi nhập hàng ta có thể tích hợp hệ thống nhận diện đo kích thước của hộp hàng
từ đó sẽ tối ưu được diện tích của kho hàng
Thêm vào đó xác định thêm góc lệch của hàng so với hệ toạ độ gốc và gửi độ
lệch để rô bốt có định hướng gắp chuẩn hàng từ băng tải đặt chính xác vào kho.
Theo logic thông thường muốn đo kích thước vật thể trong ảnh ta phải biết
được các yếu tố: khoảng cách từ camera đến vật, tiêu cự của camera, góc chụp
Hình 1.7 - Thông số cần để đo kích thước cây
15
Như trên hình 1.7 cần biết khoảng cách x, góc chụp đến ngọn cây và mỗi
pixel tương ứng sang mm của ảnh. Và cần hiệu chỉnh camera ước tính các thông
số ống kính và cảm biến hình ảnh của máy ảnh.
Ngoài ra, có phương pháp thứ hai để đo kích thước của vật thể là sử dụng vật
tham chiếu. Đầu tiên cần chọn vật tham chiếu sau đó đặt vật đó vào ảnh cùng với
vật mà mình muốn đo kích thước. Từ vật tham chiếu trong ảnh đó ta có thể tính
ra được một pixel (p) tương ứng với bao nhiêu đơn vị mm. Cuối cùng nhân p với
kích thước vật muốn đo trong ảnh sẽ ra được kích thước thật của vật. Tuy nhiên
phương pháp này sẽ có nhưng sai số khi ảnh chụp ở góc nghiêng hoặc là độ lồi,
lõm của thấu kính sử dụng cho camera sẽ làm ảnh hưởng đến độ chính xác nên
cần hiệu chỉnh camera tốt với những hệ thống yêu cầu cao về dung sai kích thước
Hình 1.8 - Đo vật thể với OpenCV bằng đối tượng tham chiếu
Với đo độ lệch của vật thể thì từ bốn điểm xác định được của hình chữ nhật
bao quanh vật thể sẽ tính được góc lệch của vật so với trục Ox hoặc là Oy của hệ
tuỳ theo quy ước đặt trên rô bốt. Toạ độ tâm của vật thì sẽ được sử dụng tích
phân đề tính trọng tâm của hình chữ nhật bao quanh sẽ thu được toạ độ và gửi cả
3 thông số (x, y) và góc lệch T về để rô bốt bù độ lệch và gắp vật thể. Phương
pháp cụ thể trình bày trong chương 3.
Hình 1.9 - Mô tả xác định độ lệch điểm và góc của khối Rubik
16
1.2.3 Nhận diện QR code và đo vật thể với thư viện OpenCV
OpenCV (Open Source Computer Vision Library): được phát hành dưới giấy
phép BSD và do đó nó miễn phí cho cả việc sử dụng học thuật và thương mại.
Nó có giao diện C++, Python và Java. Hỗ trợ cả Windows, Linux, Mac OS, iOS
và Android. OpenCV được thiết kế cho hiệu quả tính toán và tập trung mạnh mẽ
vào các ứng dụng thời gian thực. Viết trong tối ưu hóa C/C++, thư viện có thể tận
dụng lợi thế của chế biến đa lõi. Được bật với OpenCL, nó có thể tận dụng sự
tăng tốc phần cứng của nền tảng tính toán không đồng nhất bên dưới.
Chức năng của OpenCV:
- Image/video I/O, xử lý, hiển thị (core, imgproc, highgui).
- Phát hiện các vật thể (objdetect, feature2d).
- Chụp ảnh điện toán (photo, video).
- Machine learning & thu thập dữ liệu (ml, flann).
- Tăng tốc CUDA (GPU).
Ứng dụng của OpenCV rất rộng rãi gồm:
- Hình ảnh khung cảnh đường phố.
- Kiểm tra và giám sát tự động.
- Rô bốt và xe tự hành.
- Phân tích hình ảnh y tế.
- Tìm kiếm phục hồi ảnh, video.
Với các chức năng và sự hỗ trợ của thư viện OpenCV sẽ là công cụ chính để
xử lý ảnh nhận diện giải mã và tạo mã QR code cũng như xử lý nhận diện và đo
kích thước, độ lệch của vật thể trong để tài
1.3 Tổng quan Internet of Things
1.3.1 Khái niệm IoT
IoT nghĩa là khả năng kết nối tất cả mọi vật xung quanh chúng ta từ máy móc,
thiết bị, điện thoại di động, ô tô và các thành phố, sẽ được kết nối với nhau thông
qua internet và chúng có thể giao tiếp với nhau bằng những thành phần được định
danh rõ ràng, nhúng với các phần mềm thông minh, cảm biến bao gồm các thành
phần
17
- Cảm biến: Thu thập dữ liệu
- Bộ định danh: định nghĩa các nguồn dữ liệu (bao gồm các cảm biến và các
thiết bị thu thập dữ liệu khác)
- Phần mềm: Phân tích dữ liệu thu được
- Kết nối mạng: Giao tiếp truyền thông dữ liệu thu được và dữ liệu đã phân
tích lên mạng
Hình 1.10 - Sơ đồ thành phần của hệ thống IoT
Ban đầu các máy tính kết nối với các máy tính sau đó nhiều máy tính được
kết nối với nhau và thế giới tạo ra được web rộng gần như khắp mọi nơi, ý tưởng
là dùng internet kết nối con người và internet có xuất hiện ở khắp mọi nơi trên
thế giới. Từ những phương tiện hạ tầng đã có phát triển con người kết nối với
những đồ vật và cuối cùng là các đồ vật kết nối với các đồ vật khác.
Hình 1.11 - Con người kết nối với các thiết bị giám sát
Sự phát triển của IoT và số tiền đầu tư vào lĩnh vực này ngày càng lớn. Các
doanh nghiệp sẽ là những tổ chức đi đầu trong ứng dụng các giải pháp công nghệ
IoT. Có 3 cách mà IoT có thể giúp họ tăng hiệu quả kinh doanh:
18
1) giảm chi phí hoạt động
2) tăng hiệu quả lao động
3) phát triển các thị trường mới hoặc phát triển các sản phẩm mới.
1.3.2 Các ứng dụng và thách thức của IoT
1.3.2.1. Ứng dụng
- Đời sống: Kiểm soát thiết bị thông minh trong nhà (Smart home), tối
ưu hoá năng lượng của thiết bị sử dụng
- Sản xuất quản lý kho: Theo dõi sản phẩm trong kho, kiểm soát tồn kho
- Y học: Thiết bị đeo giám sát sức khoẻ, đồng hồ thông minh
- Quản lý Ô tô: bãi đỗ xe thông minh, theo dõi lưu lượng giao thông,
chống trộm.
- Môi trường: Dự báo thời tiết, Kiểm soát độ bụi, chất lượng không khí.
- Nông nghiệp: Giám sát quá trình mùa vụ, độ ẩm, nhiệt độ.
Hình 1.12 - Ứng dụng IoT
1.3.2.2. Thách thức
- Rất nhiều chuẩn công nghệ khác nhau nên khó đồng bộ hệ thống
- Vấn để bảo mật mạng chưa được tốt dẫn đến dễ bị tấn công trên
internet làm các thiết bị hoạt động sai hoặc bị đánh cắp mất dữ liệu
- Công nghệ đổi mới quá nhanh chính phủ không quản trị kịp về các vấn
đề quyền riêng tư, bảo mật không có cơ quan quản lý điều hành chung.
1.4 Các nghiên cứu về lĩnh vực liên quan
Cùng đề tài liên quan đến hệ thống lưu kho tự động ứng dụng IoT em đã tham
khảo các tài liệu liên quan về các công nghệ sử dụng ở nước ngoài trong thời đại
ngày nay từ đó có thể cập nhật cho mô hình hệ thống của mình được tối ưu theo
19
xu hướng phát triển của thế giới. xuất bản tháng 4 năm 2021 bài báo của tác giả
Guoqing Zhang cùng các cộng sự đã nói về hệ thống tích hợp IoT để giải quyết
các vấn đề lưu trữ hàng hoá trong kho [7]. Nghiên cứu này thực tế ứng dụng
trong một công ty thực phẩm, có nhiều hàng hoá thành phẩm nhưng không gian
kho hạn chế. Hệ thống kết hợp kế hoạch sản xuất với chính sách sắp xếp lưu trữ
một cách ngẫu nhiên (Trình bày mô hình ILP động đầu tiên cho việc phân công
ngẫu nhiên nhiều giai đoạn), tận dụng khả năng hiển thị và truy xuất nguồn gốc
của các mục được theo dõi và hiển thị cung cấp bởi IoT để tăng cường không
gian. Một thuật toán kinh nghiệm [8] được phát triển để có được giải pháp gần tối
ưu cho vấn đề trong thế giới thực quy mô lớn. Dựa trên các thí nghiệm số, so
sánh giữa các giải pháp thì kết quả cho thấy hệ thống tích hợp với chính sách lưu
trữ ngẫu nhiên có thể giảm đáng kể tổng chi phí (lên 16,84% với trung bình là
9,95%) và tăng sử dụng không gian (lên 26,1% so với trung bình 14,8%). Nghiên
cứu đã giải quyết vấn đề trong công nghiệp quy mô lớn một cách hiệu quả với
thuật toán kinh nghiệm tối ưu để tiết kiệm cả về không gian và chi phí.
Hình 1.13 - Giải thuật kinh nghiệm cho hệ thống lưu kho
Trong bài báo horizontal automated storage and retrieval system [10] của tác
giả Jacek S Tutak xuất bản trên tạp chí nghiên cứu khoa học và công nghệ Vol.
11. Bài báo mô tả về hệ thống xuất nhập kho tự động theo phương ngang dựa
trên Raspberry Pi, mô tả sự lựa chọn các phần tử kết cấu và cơ cấu chấp hành, và
phát triển hệ thống bằng thuật toán với Raspberry Pi và thêm một giao diện màn
hình cảm ứng. Tính năng chính quan trọng của hệ thống là tính mô đun giúp thiết
20