KyThuatRobot.comKỹ Thuật Robot
Lập trình điều khiển

Tự động hoá quy trình phát triển

Dựng, kiểm thử, triển khai tự động — cách áp dụng vào dự án robot nơi có phần cứng tham gia.

Màn hình hiển thị trạng thái các bước tự động

Dự án robot nhỏ thường làm mọi thứ bằng tay — dựng trên máy mình, chép sang robot, chạy thử. Cách đó hoạt động cho tới khi có robot thứ hai và người thứ hai, rồi nó sụp đổ.

Dựng tự động

Vấn đề với dựng bằng tay. Chạy được trên máy tôi mà không chạy trên máy anh. Nguyên nhân là phụ thuộc chưa khai báo hoặc phiên bản khác nhau.

Giải pháp — dựng trong môi trường sạch. Mỗi lần dựng bắt đầu từ container trống, cài phụ thuộc theo danh sách khai báo. Nếu dựng được thì bất kỳ ai cũng dựng được.

Chạy tự động khi đẩy mã. Mỗi lần có thay đổi, hệ thống tự dựng. Lỗi được phát hiện ngay thay vì sau vài ngày.

Dựng cho nhiều kiến trúc. Máy phát triển và máy trên robot có thể khác kiến trúc bộ xử lý. Cần dựng được cho cả hai.

Đóng gói kết quả. Kết quả dựng thành một gói có phiên bản, sẵn sàng triển khai. Không phải chép từng tệp bằng tay.

Lưu lại các bản đã dựng. Cho phép quay lui về phiên bản cũ nhanh chóng khi bản mới có vấn đề.

Thời gian dựng. Nếu quá lâu thì người ta bỏ qua bước này. Dùng bộ nhớ đệm cho phụ thuộc và chỉ dựng lại phần đã đổi.

Kiểm thử tự động cho robot

Tầng một — kiểm thử đơn vị. Chạy trong vài giây, không cần phần cứng hay mô phỏng. Chạy mỗi lần đẩy mã.

Tầng hai — kiểm thử trong mô phỏng. Chạy các kịch bản đầy đủ. Mất vài phút. Chạy mỗi lần đẩy mã hoặc mỗi đêm.

Tầng ba — phát lại dữ liệu thật. Chạy thuật toán trên dữ liệu đã ghi từ robot thật, so kết quả với kết quả tham chiếu. Bắt được hồi quy mà mô phỏng bỏ sót.

Tầng bốn — kiểm thử trên phần cứng. Không tự động hoá hoàn toàn được, nhưng có thể tự động hoá một phần với robot đặt trong khu vực an toàn chạy kịch bản cố định.

Bàn thử phần cứng. Một bộ phần cứng dành riêng cho kiểm thử tự động, không phải robot đang dùng. Đắt nhưng cho phép bắt lỗi tương tác với thiết bị thật.

Chấp nhận không phủ hết. Không thể tự động kiểm mọi thứ trong robot. Mục tiêu là bắt được phần lớn hồi quy tự động, phần còn lại kiểm bằng tay theo danh sách.

Danh sách kiểm tay. Cho những gì không tự động được. Chạy trước mỗi lần triển khai. Đơn giản mà hiệu quả.

Triển khai lên robot

Cách thủ công và vấn đề của nó. Chép tệp bằng tay dễ sót, dễ nhầm robot, và không biết robot nào đang chạy phiên bản gì.

Triển khai bằng gói có phiên bản. Robot tải gói về, cài, khởi động lại dịch vụ. Có thể tự động hoá hoàn toàn.

Triển khai bằng container. Toàn bộ môi trường đóng gói cùng. Loại bỏ khác biệt giữa các robot. Tốn dung lượng hơn.

Triển khai lần lượt. Với nhiều robot, cập nhật từng cái một và kiểm tra trước khi tiếp tục. Một bản lỗi không làm cả đội dừng.

Quay lui. Bản mới có vấn đề thì trở về bản cũ bằng một lệnh. Cần chuẩn bị trước, không phải xoay xở lúc khủng hoảng.

Chọn thời điểm. Không cập nhật giữa ca làm việc. Robot nên chỉ nhận cập nhật khi rảnh và đang ở trạm sạc.

Ghi lại. Robot nào cập nhật lúc nào lên phiên bản nào. Khi có sự cố, đối chiếu thời điểm cập nhật là bước chẩn đoán đầu tiên.

Giám sát sau triển khai

Vì sao cần. Bản mới có thể có vấn đề chỉ xuất hiện sau nhiều giờ chạy — rò rỉ bộ nhớ, xuống cấp hiệu năng, lỗi ở trường hợp hiếm.

Chỉ số cần theo dõi. Tỷ lệ hoàn thành nhiệm vụ, số lần lỗi, tần suất can thiệp của người, tài nguyên hệ thống.

So sánh trước và sau. Chỉ số sau khi cập nhật so với trước. Sụt giảm là dấu hiệu bản mới có vấn đề.

Cảnh báo tự động. Vượt ngưỡng thì báo. Chờ người phát hiện thì thường muộn vài ngày.

Thu thập nhật ký tập trung. Nhật ký từ mọi robot về một nơi. Cho phép thấy vấn đề chung ảnh hưởng nhiều robot.

Giữ một robot ở phiên bản cũ. Trong giai đoạn đầu sau cập nhật. Cho phép so sánh trực tiếp khi nghi ngờ.

Và có kế hoạch quay lui rõ ràng. Ai quyết định, mất bao lâu, ai thực hiện. Quyết định này thường phải đưa ra dưới áp lực, nên chuẩn bị trước là đáng.

Mức độ phù hợp cho dự án nhỏ

Vì không phải dự án nào cũng cần toàn bộ.

Với một người và một robot. Ít nhất nên có quản lý phiên bản, tệp khai báo phụ thuộc, và một script triển khai. Ba thứ này mất một ngày làm và tiết kiệm rất nhiều.

Với vài người và vài robot. Thêm dựng tự động và kiểm thử đơn vị. Bắt được lỗi tích hợp sớm.

Với đội và nhiều robot triển khai. Đầy đủ — kiểm thử nhiều tầng, triển khai lần lượt, giám sát tập trung.

Đừng xây hết ngay từ đầu. Thêm dần khi thấy đau. Xây hạ tầng phức tạp cho dự án hai người là lãng phí.

Nhưng cũng đừng để quá muộn. Thêm quản lý phiên bản sau khi đã có ba bản mã khác nhau trên ba máy là việc rất khổ.

Đầu tư có giá trị nhất cho dự án nhỏ. Script triển khai một lệnh, và tệp khai báo phụ thuộc đầy đủ. Hai thứ này đơn giản và giải quyết được phần lớn nỗi đau thường gặp.

Và ghi lại quy trình. Kể cả khi làm bằng tay, viết ra các bước. Người mới vào sẽ dùng, và chính bạn sau ba tháng cũng sẽ dùng.

Câu hỏi thường gặp

Cách giải quyết vấn đề chạy được trên máy này mà không chạy trên máy khác?

Dựng trong môi trường sạch — mỗi lần bắt đầu từ container trống và cài phụ thuộc theo danh sách khai báo. Dựng được nghĩa là bất kỳ ai cũng dựng được.

Tầng kiểm thử nào bắt được hồi quy mà mô phỏng bỏ sót?

Phát lại dữ liệu thật đã ghi từ robot qua thuật toán mới và so với kết quả tham chiếu.

Nên triển khai lên nhiều robot thế nào?

Lần lượt từng cái một, kiểm tra trước khi tiếp tục, và chỉ cập nhật khi robot rảnh ở trạm sạc chứ không giữa ca làm việc.

Đầu tư tự động hoá có giá trị nhất cho dự án nhỏ?

Một script triển khai chạy bằng một lệnh, và tệp khai báo phụ thuộc đầy đủ. Hai thứ này mất khoảng một ngày làm và giải quyết phần lớn nỗi đau thường gặp.

Đọc thêm trong Gỡ lỗi & chẩn đoánHiệu chỉnh & căn chỉnh.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138