Bạn điều hành sàn một nhà kho, nơi khoảng 24 robot di động tự hành (AMR) chở thùng từ các lối đi lưu trữ đến bốn ô cobot đóng gói. Mỗi đơn hàng là một chuyến đi 240 m — 200 m qua các lối đi chỉ dành cho robot, 40 m qua khu vực chung nơi có người làm việc — và một lần lấy hàng tại ô. Mô hình tính hàng đợi, ùn tắc, khóa chết, quãng đường dừng, năng lượng pin và công suất sạc, cùng tác động của các phiên bản phần mềm lên số lần dừng, theo từng phút, dựa trên các tiêu chuẩn đã công bố và công thức trong giáo trình. Đây là mô hình về nguyên lý vận hành: nó không chạy phần mềm robot, và các con số là chung, không phải của bất kỳ sản phẩm nào. Chỉ là mô phỏng giáo dục — các cơ sở thực tế tuân theo đánh giá rủi ro riêng của họ.
Bạn sẽ học được gì
Vì sao nút thắt cổ chai thường là bộ sạc chứ không phải robot — và cách sạc tranh thủ cùng việc chỉ sạc đến hết giai đoạn dòng không đổi tích trữ năng lượng trước đỉnh.
Khóa chết hình thành ở giao lộ như thế nào, vì sao đặt trước các vùng phía trước rồi mới đi vào sẽ ngăn được chúng, và vì sao robot không bao giờ được chạy nhanh hơn mức vùng an toàn của nó có thể dừng kịp ở nơi có người.
Cách triển khai canary so sánh một vài robot đã cập nhật với phần còn lại của đội, khi nào nên quay lui, và vì sao bản cập nhật được tung ra theo từng đợt.
Trình mô phỏng
Thời gian 0 phút
▶Đang chạy làm nhiệm vụ
⚙Tại ô cobot
⇥Đang chờ ô
·Rảnh
⚡Đang sạc
⌛Đang chờ bộ sạc
↻Đang cập nhật phần mềm
!Đã dừng (liên kết hoặc định vị)
⛔Kẹt trong khóa chết
∅Cạn pin, bị kéo đi
✓Khu vực không có người
⚠Có người trong khu, tốc độ trong vùng an toàn
⛔Quá nhanh so với vùng ở nơi có người
☺Có người trong ô cobot
✕Bộ sạc ngừng hoạt động
Điều khiển
Robot dự phòng được kích hoạt từ kho đỗ; robot đang đỗ không tiêu thụ điện. Mỗi robot đang hoạt động tốn một giờ-robot mỗi giờ.
Khu A cấm người vào, nên robot được chạy nhanh. Nếu có người vào, tốc độ lại phải phù hợp với vùng phát hiện người.
Ở đây luôn có người làm việc. Quãng đường dừng ở tốc độ này phải nằm trong vùng phát hiện người 1,3 m.
Tự do: robot chỉ tránh nhau cục bộ — nhanh, nhưng hai robot trở lên có thể chặn nhau vĩnh viễn. Đặt chỗ theo vùng: robot chỉ vào giao lộ khi các vùng phía trước đã được đặt cho nó — không có khóa chết, chỉ chờ một chút ở mỗi lần qua giao lộ.
Giải phóng ngay mọi robot đang bị khóa chết. Tốn 2 phút-người vận hành cho mỗi robot được giải phóng; việc này không ngăn khóa chết mới hình thành.
Robot kết thúc nhiệm vụ với mức pin bằng hoặc thấp hơn mức này sẽ vào hàng chờ sạc. Mức thấp hơn dùng được nhiều pin hơn, nhưng robot chờ quá lâu có thể cạn pin.
Bộ sạc cấp toàn công suất đến khoảng 70 %; trên mức đó dòng điện giảm dần. Dừng ở mức thấp hơn giúp bộ sạc rảnh sớm hơn.
Robot không có nhiệm vụ đến bất kỳ bộ sạc trống nào thay vì đứng chờ, và quay lại làm việc ngay khi có đơn hàng chờ và pin cao hơn mức đi sạc 20 %.
Tốc độ dụng cụ khi không có ai trong ô. Một thùng 10 món mất 25 s ở 1 m/s.
Giới hạn công suất và lực: một bàn tay bị kẹp vào thùng không được chịu lực quá 140 N (giới hạn gần tĩnh, được áp dụng một cách thận trọng), nên ở đây tốc độ tối đa chỉ là 0.67 m/s.
Khi bạn kéo thanh trượt, bản dựng mới nhất đã phát hành sẽ được triển khai cho tỷ lệ đó của đội (những robot đầu tiên theo thứ tự); số còn lại chạy v1. Bản dựng phát hành sau chỉ được cài khi bạn kéo thanh trượt lần nữa. Mỗi robot đổi phiên bản sẽ ngừng hoạt động 4 phút.
Chỉ số
Thùng đã đóng gói
360/h
bình thường
Thời gian giao đơn
0,0min
bình thường
Robot sẵn sàng
100%
bình thường
Biên dừng ở nơi có người
0,27m
bình thường
Đơn hàng đang chờ
0
Biên tốc độ cobot (giới hạn công suất và lực)
0,17 m/s
Mức pin trung bình
67 %
Mức pin thấp nhất
42 %
Robot chờ bộ sạc
0
Robot đang sạc
0
Robot cạn pin (phải kéo đi)
0
Robot bị kẹt trong khóa chết
0
Số khóa chết đã hình thành
0
Dừng điều hướng (liên kết hoặc định vị)
0
Số lần dừng mỗi giờ-robot, bản mới nhất
0,0 /h
Số lần dừng mỗi giờ-robot, phần còn lại
0,0 /h
Đội chạy bản dựng mới nhất
0 %
Đội chạy v2.0
0 %
Robot đang cập nhật
0
Tốc độ đặt ở khu A
1,5 m/s
Thời gian người vận hành dành cho robot
0 min
Giờ-robot đã dùng
0 h
Robot đang hoạt động
24
Robot đang chạy
0
Tốc độ thực tế ở khu A
1,50 m/s
Thời gian chờ mỗi lần qua giao lộ
0,0 s
Công suất tiêu thụ của đội
0,00 kW
Công suất sạc cung cấp
0,00 kW
Ô cobot đang bận
0 %
Xu hướng
Kịch bản khủng hoảng
Cấp 1 · Một nửa bộ sạc hỏng trước đỉnh đơn hàng
Ca sáng, 24 robot đang hoạt động, khoảng 3.7 đơn mỗi phút. Sau một đêm bận rộn, đội bắt đầu ca với mức pin trung bình 60 %. Ở phút 15, một sự cố điện làm bốn trong sáu bộ sạc ngừng hoạt động đến hết ca. Ở phút 90, đỉnh đơn hàng bắt đầu (+25 % trong hai giờ). Giữ đơn hàng thông suốt, bước vào đỉnh với đội đã được sạc, không để robot nào cạn pin và giữ trong ngân sách robot của ca.
Thời gian giao đơn trung bình trong và sau đỉnh ≤ 3.5 min
Mức pin trung bình của đội ít nhất 49 % khi đỉnh bắt đầu
Không robot nào cạn pin
Tối đa 97 giờ-robot cho cả ca
Quãng đường dừng luôn nằm trong vùng ở nơi có người
Cobot không bao giờ nhanh hơn giới hạn công suất và lực khi có người bên trong
Cấp 2 · Một lối đi đóng, robot tắc nghẽn và tổ bảo trì vào khu A
Khoảng 4.2 đơn mỗi phút, 24 robot, điều khiển giao thông đặt ở chế độ chạy tự do. Ở phút 10, một lối đi bị đóng để sắp xếp lại kệ: ít giao lộ hơn, nhiều lần đối đầu hơn và không có đường vòng. Ở phút 60, một tổ bảo trì vào khu A chỉ dành cho robot trong 40 phút. Giữ đơn hàng lưu thông với ít thời gian người vận hành, giữ mọi quãng đường dừng nằm trong vùng an toàn ở nơi có người, và cho khu A chạy lại tốc độ tối đa ngay khi khu vực trống.
Thời gian giao đơn trung bình ≤ 6 min
Khu A trở lại ≥ 1.4 m/s trung bình sau khi tổ bảo trì rời đi
Tối đa 1 khóa chết hình thành
Tối đa 20 phút-người vận hành cho robot
Quãng đường dừng luôn nằm trong vùng ở nơi có người
Cobot không bao giờ nhanh hơn giới hạn công suất và lực khi có người bên trong
Cấp 3 · Triển khai canary phần mềm điều hướng mới
Các lối đi đã được sắp xếp lại kệ đêm qua và robot chạy phần mềm hiện tại (v1) mất vị trí ở đó thường xuyên hơn; mỗi lần mất cần một người vận hành. Bản phát hành v2.0 sửa lỗi đó và đã chạy trên 10 % đội dưới dạng canary. Hãy cho canary đủ thời gian để đánh giá, so sánh với phần còn lại của đội, quyết định mở rộng hay quay lui, và đưa đội lên một bản dựng tốt — theo từng giai đoạn, không rút quá nhiều robot ra cùng lúc.
Canary được giữ chạy trong 12 phút đầu (≥ 5 % đội chạy v2.0)
Rời khỏi v2.0 lỗi từ phút 30 đến 49 (trung bình ≤ 1 % đội chạy bản đó)
Bản vá nóng trên tối đa 20 % đội trong 10 phút đầu
Triển khai bản vá nóng kịp thời: trung bình ≥ 55 % đội chạy bản đó sau khi phát hành
Ít nhất 90 % đội chạy bản dựng mới nhất khi kết thúc
Ít nhất 60 % robot sẵn sàng mọi lúc
Quãng đường dừng luôn nằm trong vùng ở nơi có người
Cobot không bao giờ nhanh hơn giới hạn công suất và lực khi có người bên trong
Cơ sở — mô hình đằng sau các con số
Mọi quan hệ mà trình mô phỏng sử dụng, kèm nguồn. Các hằng số đánh dấu là giả định là các hiệu chỉnh minh họa.
Định luật Little: tất cả đơn hàng chưa đóng gói — đang chờ hoặc đã ở trên robot — chia cho tốc độ đóng gói thùng thực tế sẽ cho ra thời gian giao đơn.
lead time W = L / X, L = orders waiting + orders on a robot, X = totes packed per minute (smoothed, τ = 10 min)[5]
Tốc độ giảm khi càng nhiều robot dùng chung lối đi (quan hệ tuyến tính tốc độ–mật độ của Greenshields).
v_eff = v · max(0.1, 1 − n_moving / N_jam), N_jam = 120 robots (80 with an aisle closed)[7][9]Giá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
Không có đặt chỗ, hai robot có thể mỗi bên chờ khoảng trống mà bên kia đang chiếm — một vòng chờ. Số lần gặp nhau tăng theo bình phương số robot đang chạy.
free traffic: P(new deadlock in a minute) = 1 − e^(−κ·n_moving²/n_I), κ = 0.00001 (× 300 with an aisle closed, n_I = 6 → 4); a robot behind joins with p = 0.5 (≤ 8); the fleet manager re-plans with p = 0.2/min (0.03/min with no detour)[8][10]Giá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
Đặt chỗ theo vùng: robot chỉ đi vào khi các vùng phía trước đã được đặt cho nó (đặt cùng lúc, theo một thứ tự cố định), nhờ đó loại bỏ vòng chờ nhau; khi đó mỗi giao lộ hoạt động như một hàng đợi một máy phục vụ với thời gian qua cố định.
zone reservation: a robot enters only when the zones ahead are granted to it → no circular wait; each crossing W = ρτ / (2(1 − ρ)), ρ = λ_I·τ, τ = 2 s, 6 crossings per task[8][6][9]Giá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
Ở nơi có thể có người, quãng đường dừng — quãng phản ứng cộng quãng phanh — phải nằm trong vùng phát hiện người.
d_stop = v·t_r + v²/(2a) + C ≤ F (t_r = 0.3 s, a = 0.8 m/s², C = 0.1 m, F = 1.3 m ⇒ v ≤ 1.17 m/s where people can be)[1][2]Giá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
Giới hạn công suất và lực: tốc độ cao nhất mà tại đó va chạm với bàn tay vẫn dưới lực cho phép, tính từ khối lượng quy đổi của bàn tay và robot cùng độ cứng của bàn tay. Giới hạn gần tĩnh được dùng cả cho va chạm ngắn, đây là cách tính thận trọng.
v ≤ F / √(μ·k), μ = (1/m_H + 1/m_R)⁻¹, m_R = M/2 + m_L; hand: F = 140 N (quasi-static limit, used conservatively), k = 75 N/mm, m_H = 0.6 kg; M = 24 kg, m_L = 3 kg ⇒ v ≤ 0.67 m/s[3][4]Giá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
Một thùng hàng cần thời gian kẹp cộng hai lần với tay cho mỗi món; khi có người bên trong, cobot chạy ở tốc độ cộng tác. Robot được phục vụ theo thứ tự đến ô, từng giây trong mỗi phút.
tote time = 10 items × (1.5 s + 2 × 0.5 m / v_cobot); v_cobot = collaborative speed while a person is in the cell; 4 cells, served in order of arrival within the minute[3]Giá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
Công suất di chuyển: tải điện tử cố định, lực cản lăn và năng lượng phanh mất đi ở mỗi lần dừng rồi chạy.
P = 60 W + C_rr·m·g·v/η + 0.03/m · v · ½mv²·(1 − r)/η (C_rr = 0.012, m = 500 kg, η = 0.75, r = 0.5)[12]Giá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
Bộ sạc cấp toàn công suất đến khoảng 70 % pin, sau đó dòng điện giảm dần (dòng không đổi, rồi điện áp không đổi).
P_charge = 0.8 kW up to 70 % SoC, then × (1 − 0.9·(SoC − 70)/30); battery 0.8 kWh; stranded at 1 %[11][10]Giá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
Robot dừng khi liên kết với trình quản lý đội im lặng lâu hơn thời gian watchdog của nó; watchdog ngắn hơn bắt được nhiều hơn hẳn các lần mất Wi-Fi ngắn.
P(link silent > W in a robot-minute) = 0.224·e^(−W/0.1 s); watchdog W: v1 0.5 s, v2.0 0.15 s, v2.1 0.5 s; stop 2 min[13]Giá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
So sánh canary: số lần dừng trên mỗi giờ-robot của các robot chạy bản dựng mới nhất so với phần còn lại của đội.
stops per robot-hour, canary vs control: 60·stops / robots (smoothed τ = 10 min); update or rollback = 4 min out of service[13]
Các hằng số khác của mô hình này
task 200 m in zone A + 40 m in the shared area · 6 intersections · 4 cobot cells, a person inside 25 % of minutes · 6 chargers · shift-start charge stratified over mean ± 27.5 % · v1 mislocalises 0.6 % per driving minute in re-racked aisles (others 0.04 %), 6-min stop + 3 operator-min · clearing a deadlock 2 operator-min per robot · tow 15 operator-minGiá trị minh họa, không phải của một cơ sở hay sản phẩm thực nào. Các cơ sở thực đặt vùng, tốc độ và giới hạn dựa trên đánh giá rủi ro của chính họ và dữ liệu của nhà sản xuất.
Tính ngẫu nhiên: bộ sinh mulberry32 có seed; các phân phối được dùng — đều, mũ (CDF nghịch đảo), chuẩn (Box–Muller), Poisson (Knuth). Seed được hiển thị và có thể chia sẻ.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems (M/G/1 Pollaczek–Khinchine mean wait; M/D/1) — Cambridge University Press, 2013
B. D. Greenshields — A Study of Traffic Capacity (linear speed–density relation) — Highway Research Board Proceedings 14:448–477, 1935