Bỏ qua tới nội dung
LSLab

Mô phỏng giúp thử lệnh drone trước khi bay ra sao?

  • Cơ bản
  • Bài viết
  • Từ 14 tuổi
  • 6 phút đọc
Minh họa biên tập về mô phỏng drone trong hệ thống drone.

Simulator tạo môi trường để thử một lệnh và quan sát phản ứng của phần mềm mà không cần chuyến bay thật. Bài kiểm thử hữu ích không chỉ hỏi “có chạy không?” mà còn xác định trạng thái ban đầu, đầu vào, kết quả mong đợi, tín hiệu cần quan sát và điều kiện thất bại. Nhờ vậy, log có thể giúp chẩn đoán thay vì chỉ lưu lại rằng phiên mô phỏng đã kết thúc.

Mục lục
Simulator cho phép thử luồng điều khiển trong môi trường ảo; kết quả không tự chứng minh khả năng bay ngoài đời.
  • Đầu vào điều khiển
  • Drone trong môi trường mô phỏng
  • Phần mềm điều khiển trao đổi với mô phỏng

Viết phép thử trước khi chạy

Theo tài liệu mô phỏng của PX4, PX4 có thể chạy kiểu SITL (software-in-the-loop): mã bay chạy trên máy tính cùng mô hình phương tiện. Mô hình vẫn là mô hình, vì vậy kết quả chỉ áp dụng cho những thành phần và điều kiện mà mô phỏng biểu diễn. Trước khi chạy, ghi lại:

  • Trạng thái ban đầu: phương tiện mô phỏng đã kết nối chưa, đang ở trạng thái nào, dữ liệu cần thiết có sẵn không?
  • Đầu vào: lệnh nào được gửi, qua giao diện nào, và phần mềm xác nhận đã nhận nó chưa?
  • Kết quả mong đợi: trạng thái nào phải xuất hiện, trong phạm vi thời gian mô phỏng của kịch bản, để coi là hoàn tất?
  • Bằng chứng: log nào cho thấy lệnh được nhận, bộ điều khiển đổi trạng thái, và mô hình tạo phản hồi tương ứng?
  • Điều kiện dừng: timeout, dữ liệu cũ, lệnh bị từ chối hoặc failsafe bất ngờ đều phải được ghi nhận là lỗi phép thử.

Thời hạn là tiêu chí do người thiết kế chọn cho kịch bản, không phải giá trị chung áp cho mọi drone. Hãy nêu rõ điểm bắt đầu và kết thúc đo. Ví dụ, “lệnh thành công” có thể nghĩa là từ lúc ứng dụng gửi yêu cầu đến lúc simulator báo trạng thái đích; nó không giống thời gian từ lúc người nói bắt đầu câu nói.

Đi theo một lệnh

Tình huống giả định để minh họa, chưa phải kết quả thử nghiệm.

Một chương trình mô phỏng nhận lệnh “giữ vị trí”. Trạng thái ban đầu xác nhận simulator kết nối và bộ ước lượng đang xuất vị trí. Chương trình gửi lệnh qua giao diện thử nghiệm, rồi ghi các sự kiện có cùng dấu thời gian: yêu cầu tạo, phản hồi nhận, trạng thái chế độ, setpoint đang dùng và phản hồi của mô hình. Kịch bản đạt khi phản hồi simulator cho biết trạng thái yêu cầu được nhận và duy trì theo tiêu chí kiểm thử đã định.

Nếu không có phản hồi nhận, lỗi nằm trước hoặc tại giao diện truyền lệnh. Nếu có phản hồi nhận nhưng trạng thái không đổi, kiểm tra bộ điều phối hoặc điều kiện chuyển trạng thái. Nếu trạng thái đổi nhưng phương tiện mô phỏng đi khác mong đợi, xem setpoint, hệ tọa độ, dữ liệu đầu vào và log của mô hình. Nếu thời gian chờ hết trước phản hồi, ghi timeout; không biến việc thiếu dữ liệu thành thành công.

Thử nhánh lỗi riêng

Trang cấu hình an toàn của PX4 cung cấp mô phỏng máy trạng thái failsafe; tài liệu tiêm lỗi mô tả cách mô phỏng một số failsafe và lỗi cảm biến trong SITL. Một phép thử tốt định nghĩa lỗi được tiêm vào, tín hiệu nào cần quan sát, phản ứng kỳ vọng của cấu hình đó, và cách khôi phục trạng thái mô phỏng. Nhiều failsafe bị tắt theo mặc định trong SITL để thuận tiện, vì vậy phải kiểm tra cấu hình của đúng kịch bản. Tên một công cụ mô phỏng không đảm bảo mọi loại lỗi đều được hỗ trợ.

Khi log thiếu dòng, dấu thời gian không đồng bộ, hoặc chỉ thấy lệnh gửi mà không thấy xác nhận, kết quả là chưa kết luận được. PX4 dùng định dạng ULog cho log dữ liệu hoạt động; khi phép thử dùng định dạng này, hãy đối chiếu topic và sự kiện theo thời gian, đồng thời giữ lại lượt lỗi để kiểm tra chuyển trạng thái bị thiếu. Có thể thêm log ở giao diện gửi/nhận hoặc chạy lại phép thử có kiểm soát để xác định điểm mất dữ liệu. Không suy luận từ một ảnh chụp cuối phiên rằng toàn bộ chuỗi đã hoạt động.

Mô phỏng chứng minh điều gì?

Mô phỏng hữu ích để kiểm tra luồng điều khiển, điều kiện chuyển trạng thái và một số phản ứng lỗi trong phạm vi mô hình. Nó không tự chứng minh cảm biến thật, nhiễu vô tuyến, gió, cơ khí hay các tương tác chưa mô hình hóa sẽ giống như vậy. Hãy ghi rõ cấu hình simulator, mô hình, phần mềm và giới hạn quan sát để người đọc không nhầm một kết quả mô phỏng với kết quả bay.

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

Chỉ cần lệnh không báo lỗi là đạt chưa?

Chưa. Cần xác nhận đã nhận lệnh, trạng thái kỳ vọng xuất hiện, phản hồi phù hợp và không có điều kiện lỗi bị bỏ qua.

Log nên có gì?

Tối thiểu cần liên kết được đầu vào, xác nhận, trạng thái, đầu ra quan sát và thời điểm timeout hoặc lỗi.

Simulator có thể thay phép thử hệ thống thật không?

Không. Nó kiểm tra hành vi trong mô hình; các yếu tố ngoài mô hình cần đánh giá riêng theo phạm vi an toàn được phê duyệt.

Tóm tắt

  • Viết trạng thái ban đầu, lệnh, kết quả mong đợi và bằng chứng trước khi chạy.
  • Dùng chuỗi log để định vị lỗi ở giao diện, điều phối, trạng thái hay phản hồi mô hình.
  • Ghi rõ simulator kiểm tra được gì và không đại diện cho điều gì.

Thuật ngữ trong bài

Tên tiếng Việt, tên tiếng Anh và nghĩa dùng trong bài. Di chuột, chạm hoặc dùng phím Tab tới từ có gạch chân chấm để xem giải thích ngay khi đọc.

SITL
Mô phỏng trong đó ngăn xếp bay chạy trên máy tính cùng mô hình phương tiện.
kết quả mong đợiexpected result
Kết quả đầu ra ghi trước để đánh giá một kịch bản có đạt không.
log
Bản ghi sự kiện và dữ liệu có dấu thời gian khi phần mềm chạy.

Bài này chưa được đánh dấu là đã xem

Thấy nội dung sai hoặc chưa an toàn?

Báo cho quản trị viên qua email. Thư có sẵn tên bài và đường dẫn.

Báo lỗi bài này
Xem tất cả bài của chủ đề

Nguồn

Các nguồn này viết cho người đọc lớn hơn. Nếu thấy khó, hãy đọc cùng người lớn.