Chuyển đến nội dung chính

Tổng quan

Trang này mô tả các topic và service ROS2 do lx_camera_ros cung cấp trong mô-đun định vị V2.

Biên dịch

Cài đặt các thành phần Qt5 Core và Network. Lệnh cài đặt thay đổi tùy theo bản phân phối Linux; ví dụ sau sử dụng Ubuntu:
Tải mã nguồn libzip từ trang tải xuống libzip và biên dịch theo hướng dẫn chính thức. Chạy lệnh sau từ /lx_camera_ros:

Chạy

Biên dịch lại sau khi thay đổi tệp cấu hình YAML. Các thay đổi chỉ có hiệu lực sau khi build lại dự án.

Giao diện topic ROS2

Trước khi kiểm tra giao diện, hãy bật camera, chờ khoảng 30 giây rồi khởi động node ROS2 SDK.

Nhận pose định vị

ROS2 liên tục nhận các giá trị x, y và theta của camera, xuất các giá trị này cùng quaternion được chuyển đổi từ theta tới LxCamera_LocationPoseResult, đồng thời phát pose qua TF.

Nhận trạng thái định vị

ROS2 nhận trạng thái định vị của camera (true hoặc false) ở tần số 1 Hz và xuất trạng thái dưới dạng std_msgs::msg::Bool trên LxCamera_LocationResult.

Nhận mức sử dụng bộ nhớ của camera

ROS2 nhận tỷ lệ sử dụng bộ nhớ của camera ở tần số 2 Hz và xuất dưới dạng std_msgs::msg::Float32 trên LxCamera_Capacity_Status.

Nhận tên mô-đun lỗi

ROS2 nhận tên mô-đun lỗi từ camera và xuất dưới dạng std_msgs::msg::String trên LxCamera_Module_Error.

Nhận tiến trình lập bản đồ

Sau khi bắt đầu lập bản đồ, ROS2 xuất tiến trình (0–100) dưới dạng std_msgs::msg::Int32 trên LxCamera_Mapping_Progress.

Nhận trạng thái lập bản đồ

Sau khi bắt đầu lập bản đồ, ROS2 xuất trạng thái lập bản đồ dưới dạng std_msgs::msg::Bool trên LxCamera_MappingState.

Đặt tham số

Xuất message std_msgs::msg::String tới LxCamera_SetParam. Message chứa chín giá trị số thực được phân tách bằng dấu phẩy: x,y,z,yaw,pitch,roll,x,y,yaw. Sáu giá trị đầu xác định pose của camera; ba giá trị cuối xác định pose LiDAR. Sau khi cập nhật thành công, các giá trị tương ứng trong các phần [Laser1] và [Camera1] của /home/fr1511b/hontai/params/config_install_FL21500HAF.ini sẽ được cập nhật.

Chuyển đổi bản đồ

Xuất message std_msgs::msg::String chứa tên của một bản đồ đã hoàn tất tới LxCamera_SwitchMap. Làm mới giao diện web của camera. Nếu tên bản đồ hiển thị thay đổi, việc chuyển đổi đã thành công.

Tải xuống bản đồ

  1. Xuất message std_msgs::msg::String tới LxCamera_DownloadMap.
  2. Message chứa hai trường: save_path, là đường dẫn tuyệt đối trên máy tính chủ, và mapname, là tên tệp .zip của một bản đồ đã hoàn tất trên camera.
  3. Sau khi tải xuống thành công, đường dẫn máy tính chủ được chỉ định sẽ chứa tệp lưu trữ bản đồ. Giải nén tệp để lấy tệp bản đồ PGM và tệp cấu hình YAML.

Tải lên odometry

Xuất dữ liệu nav_msgs::msg::Odometry tới /sim/odom (có thể thay đổi topic).

Tái định vị

  1. Xuất dữ liệu geometry_msgs::msg::PoseWithCovarianceStamped tới LxCamera_UploadReloc.
  2. Pose chứa pose LiDAR: x, y và yaw.
  3. Tái định vị thành công khi vị trí hiển thị trong giao diện web của camera được cập nhật thành pose đã gửi.
Quaternion bị ràng buộc và không được điền tùy ý. Sử dụng công cụ chuyển đổi Euler sang quaternion để chuyển đổi góc Euler yaw thành các giá trị quaternion xyzw.

Tiền tố loại message

Máy tính chủ giao tiếp với camera qua UDP. Bốn byte đầu tiên của mỗi message xác định loại dữ liệu giao diện:

Giao diện service ROS2

Lập bản đồ, chuyển đổi bản đồ, tải bản đồ xuống và tái định vị cũng có thể được thực hiện qua ROS2 service. Phản hồi service true cho biết thành công; false cho biết thất bại.
Sử dụng ros2 service call cho các lệnh sau. Tên bản đồ không được bắt đầu bằng số và không được dài quá 30 ký tự.

Tạo bản đồ

Tên service: /LxCamera_Mapping_srv Định nghĩa service:
Gọi service:

Chuyển đổi bản đồ

Tên service: /LxCamera_SwitchMap_srv Định nghĩa service:
Gọi service:

Tải xuống bản đồ

Tên service: /LxCamera_DownloadMap_srv Định nghĩa service:
Gọi service:

Tái định vị

Tên service: /LxCamera_UploadReloc_srv Định nghĩa service:
Gọi service:

Lấy tên bản đồ hiện tại

Tên service: /LxCamera_GetCurMapname_srv Định nghĩa service:
Gọi service:

Lấy danh sách bản đồ hiện tại

Tên service: /LxCamera_GetMapList_srv Định nghĩa service:
Gọi service:

Thoát chế độ lập bản đồ

Tên service: /LxCamera_ExitMapping_srv Định nghĩa service:
Gọi service:

Xóa bản đồ

Tên service: /LxCamera_EraseMap_srv Định nghĩa service:
Gọi service:

Tải xuống bản đồ nhiệt

Tên service: /LxCamera_DownloadHeatMap_srv Định nghĩa service:
Gọi service:

Lập bản đồ bổ sung

Tên service: /LxCamera_IncMapping_srv Định nghĩa service:
Gọi service: