parse_family_b() dùng sai hệ số góc 0.25°/LSB; theo spec Olei chính hãng (Olei.LidarSensor/LidarDataBlock.GetAngleDegrees) AngleRaw là 0.01°/LSB. Sai 25× khiến điểm bị gán nhầm góc → một phòng bị bôi thành vòng tròn trên RViz. Đã verify với thiết bị thật OLELR-1FMI: sau khi sửa ra 2400 điểm/vòng, 0–359.9°, đúng hình học môi trường. - Đổi hệ số góc 0.25° → 0.01° trong parse_family_b(). - Bỏ qua block invalid (AngleRaw >= 0xFF00) theo spec. - Dò ranh giới vòng quay PER-POINT thay vì per-packet (một gói có thể chứa >1 vòng), tránh gộp nhiều vòng vào một scan. - Thêm model LR-1FMI (360°, 0.01°/LSB, ~2400 pts/rev) vào bảng model + kModelTable, đặt "1FMI" trước "1F" để khớp đúng chuỗi tên. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 lines
643 B
C++
14 lines
643 B
C++
#pragma once
|
|
// ─── One-include convenience header ─────────────────────────────────────────
|
|
// Pull in the whole public API in a single line:
|
|
//
|
|
// #include "lidarlib/lidarlib.hpp"
|
|
//
|
|
// Gives you the data model (LaserScan / ExtraInfo / ScanResult), the unified
|
|
// Lidar interface, both concrete drivers (Driver = OLEI/UDP, SickDriver =
|
|
// SICK/TCP), the model/brand tables, config.json load/save, and the single
|
|
// config function lidarlib::make_lidar().
|
|
#include "lidarlib/lidar.hpp"
|
|
#include "lidarlib/sick_lidar.hpp"
|
|
#include "lidarlib/config.hpp"
|