Tags: MapIV/nebula
Tags
fix(hesai): set PTP config only when changed (tier4#402) * refactor: make HesaiPtpConfig polymorphic Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: ot128 uses a different ptp profile numbering Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove coding agent rambling Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> --------- Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
fix(hesai): set PTP config only when changed (tier4#402) * refactor: make HesaiPtpConfig polymorphic Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: ot128 uses a different ptp profile numbering Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove coding agent rambling Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> --------- Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
feat: jazzy support (tier4#398) * chore: split build_depends into common file and distro-specific ones Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: ci only supports one build_depends file, so absorb the common one into each distro Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * ci: run build-and-test-differential as humble,jazzy matrix Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * ci: run build-and-test as humble,jazzy matrix Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: only upload codecov once Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: remove ignore-errors flag from rosdep Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * build: allow agnocast dep only on Humble Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove unused ament_index_cpp header Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: rewrite velodyne calib code to modern yaml-cpp to prevent dangling pointer error Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove unused ament header for all vendors Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: add compatibility code for serialized_bag_message that works for humble and jazzy Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: use serialized_bag_message compat functions everywhere a bag_message->time_stamp was being read Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix(jazzy): updated removed timezone names for Ubuntu 24.04 Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * ci: exclude invalid agnocast/jazzy matrix combo Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: update mentions of ros distros Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: use `auto` in explicit conversions Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> --------- Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
fix(hesai): fix scan cutting for `cut_angle != cloud_max_angle` confi… …gurations (tier4#383) * chore: estable encoder/spatial terminology Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: better type inference for normalize_angle Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: change angle handling to integer math to eliminate rounding errors Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: properly fixed scan cutting Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * feat: properly isolated scan cutter, works now Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: add blockage mask publishing back in Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: scan cutter unit tests Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fixed most failing tests Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: add validation in scan_cutter constructor Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: support drawio, mathjax Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: basic scan cutting state machine logic Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: wording Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: implement state machine based cutter Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: fix invalidly configured pandar64 unit test Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: reset decoder when rosbag loops Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fix wrong correction term for at128 Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: re-introduce decode perf counters Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: faster normalize_angle for integral types Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: prevent runtime type conversion in deg2rad/rad2deg Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: make NebulaPoint aligned like the rest of the point types Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: random small fixes Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: faster angle normalization Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: avoid re-computing fov states Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: make angle_is_between inline for good measure Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: update profiling scripts to work with latest nebula Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: add angle unit tests Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fix normalize_angle for negative ints Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * build: add angles test to cmake Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: hide uv.lock changes in diff Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove unused scan cutter param Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: reduce number of states in CutAtFovEnd FSM to 6 Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: simplify scan cutter tests Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: update docs for simplified fsm Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: correct channel number for minmax array Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fix find_field for AT128 Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fix min/max channel-based checks to work when the max-corrected channel has lower index than the min-corrected one Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: allow for float rounding errors around fov bounds Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove unused code Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: re-introduce early returns in decoder Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: reintroduce darian luts Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: update decoder ground truths to reflect new scan cutting behavior Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore(cspell): ignore drawio source files Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: add scan cutting design diagrams, update mkdocs nav Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove residual debug file code Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: correct comment for 100ms after-cut timestamp check Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove commented-out code Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove uv for now since it's unrelated to this pr Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove old test folder Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: allow deg2rad for integer args Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: change corrections, scan cutting back to float for precision Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove temporary ground truth output code Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: zensical drawio and latex support Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: import cmath Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: fix normalize_angle typing edge case Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: fix copyright year Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: calculate fov state correctly when block does not intersect cut Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: virtual destructor for AngleCorrector Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: add tests for scan cutter initialization Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: fix cspell Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix(test): fix add_packet() azimuth span accumulation bug The diff was computed AFTER updating end_azimuth, resulting in diff always being 0. This made azimuth_span_accumulated never grow, rendering the resilience test assertions (overlaps_itself, get_angular_span) ineffective. Fix: compute diff before updating end_azimuth. * fix(hesai): fix did_scan_complete flag never being set After refactoring scan completion to use ScanCutter callbacks, the did_scan_complete flag was left as a local variable initialized to false and never updated. Fix: - Add did_scan_complete_ member variable - Set it to true in on_scan_complete() callback - Reset it at the start of each unpack() call - Use it when populating PacketMetadata Also fix callback_time_ns_ to accumulate (+=) instead of overwrite (=) in case multiple scans complete within a single packet. * fix(hesai): use current block for timestamp reset calculation Previously, on_set_timestamp() always used block 0 for the point time offset calculation. This was incorrect because the timestamp reset happens at the block where the reset angle was detected, not at block 0. Using block 0 could shift scan_timestamp_ns earlier than the first point of the new scan by up to the packet span (for sensors with negative per-point offsets like Pandar64). Fix: Track current_block_id_ and use it in on_set_timestamp() to get the correct earliest point time offset for the actual reset block. --------- Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
chore: backport tier4#390, tier4#383 to v0.2.15 (tier4#396) * test(hesai): regenerate out-of-date ground truhts for AT128 and XT16 (tier4#390) Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix(hesai): fix scan cutting for `cut_angle != cloud_max_angle` configurations (tier4#383) * chore: estable encoder/spatial terminology Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: better type inference for normalize_angle Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: change angle handling to integer math to eliminate rounding errors Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: properly fixed scan cutting Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * feat: properly isolated scan cutter, works now Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: add blockage mask publishing back in Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: scan cutter unit tests Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fixed most failing tests Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: add validation in scan_cutter constructor Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: support drawio, mathjax Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: basic scan cutting state machine logic Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: wording Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: implement state machine based cutter Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: fix invalidly configured pandar64 unit test Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: reset decoder when rosbag loops Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fix wrong correction term for at128 Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: re-introduce decode perf counters Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: faster normalize_angle for integral types Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: prevent runtime type conversion in deg2rad/rad2deg Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: make NebulaPoint aligned like the rest of the point types Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: random small fixes Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: faster angle normalization Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: avoid re-computing fov states Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: make angle_is_between inline for good measure Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: update profiling scripts to work with latest nebula Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: add angle unit tests Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fix normalize_angle for negative ints Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * build: add angles test to cmake Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: hide uv.lock changes in diff Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove unused scan cutter param Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: reduce number of states in CutAtFovEnd FSM to 6 Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: simplify scan cutter tests Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: update docs for simplified fsm Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: correct channel number for minmax array Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fix find_field for AT128 Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: fix min/max channel-based checks to work when the max-corrected channel has lower index than the min-corrected one Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: allow for float rounding errors around fov bounds Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove unused code Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: re-introduce early returns in decoder Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * perf: reintroduce darian luts Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: update decoder ground truths to reflect new scan cutting behavior Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore(cspell): ignore drawio source files Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: add scan cutting design diagrams, update mkdocs nav Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove residual debug file code Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: correct comment for 100ms after-cut timestamp check Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove commented-out code Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove uv for now since it's unrelated to this pr Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove old test folder Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: allow deg2rad for integer args Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: change corrections, scan cutting back to float for precision Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: remove temporary ground truth output code Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * docs: zensical drawio and latex support Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: import cmath Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: fix normalize_angle typing edge case Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: fix copyright year Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix: calculate fov state correctly when block does not intersect cut Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: virtual destructor for AngleCorrector Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * test: add tests for scan cutter initialization Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: fix cspell Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * fix(test): fix add_packet() azimuth span accumulation bug The diff was computed AFTER updating end_azimuth, resulting in diff always being 0. This made azimuth_span_accumulated never grow, rendering the resilience test assertions (overlaps_itself, get_angular_span) ineffective. Fix: compute diff before updating end_azimuth. * fix(hesai): fix did_scan_complete flag never being set After refactoring scan completion to use ScanCutter callbacks, the did_scan_complete flag was left as a local variable initialized to false and never updated. Fix: - Add did_scan_complete_ member variable - Set it to true in on_scan_complete() callback - Reset it at the start of each unpack() call - Use it when populating PacketMetadata Also fix callback_time_ns_ to accumulate (+=) instead of overwrite (=) in case multiple scans complete within a single packet. * fix(hesai): use current block for timestamp reset calculation Previously, on_set_timestamp() always used block 0 for the point time offset calculation. This was incorrect because the timestamp reset happens at the block where the reset angle was detected, not at block 0. Using block 0 could shift scan_timestamp_ns earlier than the first point of the new scan by up to the packet span (for sensors with negative per-point offsets like Pandar64). Fix: Track current_block_id_ and use it in on_set_timestamp() to get the correct earliest point time offset for the actual reset block. --------- Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> --------- Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
chore: replace ament_cmake_auto with autoware_cmake (tier4#381) * chore: replace ament_cmake_auto with autoware_cmake in nebula_continental Signed-off-by: ktro2828 <kotaro.uetake@tier4.jp> * chore: replace amen_cmake_auto with autoware_cmake in nebula_core Signed-off-by: ktro2828 <kotaro.uetake@tier4.jp> * chore: replace ament_cmake_auto with autoware_cmake in nebula_hesai Signed-off-by: ktro2828 <kotaro.uetake@tier4.jp> * chore: replace ament_cmake_auto with autoware_cmake in nebula_robosense Signed-off-by: ktro2828 <kotaro.uetake@tier4.jp> * chore: replace ament_cmake_auto with autoware_cmake in nebula_velodyne Signed-off-by: ktro2828 <kotaro.uetake@tier4.jp> * chore: format CMakeLists.txt Signed-off-by: ktro2828 <kotaro.uetake@tier4.jp> * chore: fix incorrect dependency Signed-off-by: ktro2828 <kotaro.uetake@tier4.jp> --------- Signed-off-by: ktro2828 <kotaro.uetake@tier4.jp>
feat(nebula_agnocast_wrapper): support runtime fallback to ROS 2 beha… …vior (tier4#366) * fix agnocast_wrapper to use ros2 when ENABLE_AGNOCAST is set to 0 Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * ci(pre-commit): autofix * use ros2 when built without ENABLE_AGNOCAST==1 Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix CMakeLists.txt Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix cpplint Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update version to 2.1.2 Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
feat(hesai): allow for calibration file override (tier4#370) * chore: move comment Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * chore: add calibration_download_enabled parameter to schemas and configs Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> * feat: respond to calibration_download_enabled parameter Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> --------- Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
PreviousNext