Nenhuma descrição

haminhtien99 0bfaa067ac update README.md 5 meses atrás
camera_calibration 98441f9b72 first commit 5 meses atrás
distance_estimation 98441f9b72 first commit 5 meses atrás
generate_markers 98441f9b72 first commit 5 meses atrás
.gitignore 98441f9b72 first commit 5 meses atrás
README.md 0bfaa067ac update README.md 5 meses atrás
chessboard.png 98441f9b72 first commit 5 meses atrás
default_config.py 98441f9b72 first commit 5 meses atrás
requirements.txt 98441f9b72 first commit 5 meses atrás

README.md

LANDING_SPACE

Thuật toán hạ cánh và điều hướng drone dựa trên ArUco marker

Tải xuống git này và cài đặt các tài nguyên cần thiết

git clone https://git.vnai.xyz/haminhtien99/landing_space
cd landing_space
pip install -r requirements.txt

Cài đặt các giá trị ban đầu cho marker

Di chuyển tới file default_config.py, thay đổi các giá trị sau

MARKER_SIZE=5
set_resolution='original'

Hiệu chuẩn camera:

Để thực hiện hiệu chuẩn, cần phải chụp ảnh bàn cờ chessboard.jpg được in trên giấy với nhiều góc độ khác nhau

python camera_calibration/capture_images.py

  • Nhấn phím "s" để chụp ảnh, nhấn "q" để kết thúc.
  • Ảnh sẽ được lưu vào thư mục con của thư mục camera_calibration/images, tương ứng với giá trị set_resolution được đặt ban đầu.

python camera_calibration/capture_images_without_showing.py, tương tự bên trên

  • Ảnh sẽ được tự động lưu vào thư mục camera_calibration/images sau mỗi 5 giây.
  • Nhấn tổ hợp phím Ctrl + C để thoát chương trình

python camera_calibration/calibration.py

  • Thông số hiệu chuẩn của camera sẽ được lưu vào thư mục camera_calibration/calib_data.

Dữ liệu hiệu chuẩn

Dữ liệu hiệu chuẩn camera lưu tại tệp .npz. Dữ liệu này bao gồm:

  • camMatrix: Ma trận camera, chứa các tham số nội tại của camera.
  • distCoef: Các hệ số biến dạng của camera.
  • rVector: Vector xoay của từng ảnh dùng để hiệu chuẩn.
  • tVector: Vector tịnh tiến của từng ảnh hiệu chuẩn.

Tạo mã Aruco:

  • Tạo tùy ý 20 mã marker. Chạy python generate_markers/generate.py.
  • Có thể thay đổi loại marker tùy ý, trong bài toán này sử dụng loại 7x7 (aruco.DICT_7X7_50)

Ước lượng vị trí marker so với camera:

  • Chạy distance_estimation/distance_single.py
  • Cài đặt visualization = Trueđể in kết quả đầu ra kèm kết quả hình ảnh, nhấn q đẻ thoát;
  • Hoặc chạy visualization = False để in kết quả đầu ra, nhấn Ctrl + C.

Ước lượng vị trí camera (Hiện không khả dụng):

python distance_estimation/camera_position.py

  • Ược lượng vị trí camera trong bản đồ tạo bởi các marker được xác định trước
  • Phương pháp này tính toán vị trí camera từ vector tVec, không sử dụng ma trận nghịch đảo của ma trận xoay (vốn yêu cầu mặt phẳng camera luôn song song với mặt phẳng của marker).
  • Các script này sẽ hiển thị vị trí tương đối của camera so với marker_2 đặt ở trung tâm vùng hạ cánh. x, y, z, roll, pitch, yaw sẽ được hiển thị trên màn hình.
  • Nhấn phím q để kết thúc, thoát video