ros-humble-nebula-core-decoders (1.0.0-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Sun, 05 Apr 2026 15:00:00 -0000

ros-humble-nebula-core-decoders (0.4.0-1jammy) jammy; urgency=high

  * chore: remove PCL dependency (#401 <https://github.com/tier4/nebula/issues/401>)
    * chore: remove all PCL deps from package.xmls
    * chore: remove PCL from all CMakeLists.txts
    * chore: remove unused PointXYZICATR
    * chore: remove pcl from nebula_core
    * chore: transfer continental point types to new format
    * add xyz point type
    * chore: add xyzircaedt to xyz conversion
    * chore: add pcd I/O
    * chore: add Nebula PointCloud to PointCloud2 conversion
    * refactor: remove PCL usage completely
    * refactor: clean PCD I/O
    * test: pcd I/O unit tests
    * chore: update copyright year to 2026
    * chore(pcd): handle padding and alignment correctly
    * perf: make all point types aligned to 16B boundaries
    * fix(ars548): fix jazzy build failure
    * fix(continental): more missing header fixes for Jazzy
    * build: add missing Boost dependency across multiple components
    * fix: correct headers and call sites for convert_point_... functions
    ---------
  * ci(pre-commit): autoupdate (#413 <https://github.com/tier4/nebula/issues/413>)
    * ci(pre-commit): autoupdate
    updates:
    - [github.com/pycqa/isort: 8.0.0 → 8.0.1](https://github.com/pycqa/isort/compare/8.0.0...8.0.1)
    - [github.com/pre-commit/mirrors-clang-format: v21.1.8 → v22.1.0](https://github.com/pre-commit/mirrors-clang-format/compare/v21.1.8...v22.1.0)
    * ci(pre-commit): autofix
    ---------
    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  * Contributors: Max Schmeller, pre-commit-ci[bot]

 -- David Wong <david.wong@tier4.jp>  Thu, 26 Mar 2026 15:00:00 -0000

ros-humble-nebula-core-decoders (0.3.2-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Mon, 26 Jan 2026 15:00:00 -0000

ros-humble-nebula-core-decoders (0.3.1-1jammy) jammy; urgency=high

  * fix(hesai): fix scan cutting for cut_angle != cloud_max_angle configurations (#383 <https://github.com/tier4/nebula/issues/383>)
    * chore: estable encoder/spatial terminology
    * chore: better type inference for normalize_angle
    * fix: change angle handling to integer math to eliminate rounding errors
    * fix: properly fixed scan cutting
    * feat: properly isolated scan cutter, works now
    * fix: add blockage mask publishing back in
    * test: scan cutter unit tests
    * fix: fixed most failing tests
    * chore: add validation in scan_cutter constructor
    * docs: support drawio, mathjax
    * docs: basic scan cutting state machine logic
    * docs: wording
    * fix: implement state machine based cutter
    * test: fix invalidly configured pandar64 unit test
    * fix: reset decoder when rosbag loops
    * fix: fix wrong correction term for at128
    * fix: re-introduce decode perf counters
    * perf: faster normalize_angle for integral types
    * perf: prevent runtime type conversion in deg2rad/rad2deg
    * chore: make NebulaPoint aligned like the rest of the point types
    * chore: random small fixes
    * perf: faster angle normalization
    * perf: avoid re-computing fov states
    * chore: make angle_is_between inline for good measure
    * chore: update profiling scripts to work with latest nebula
    * test: add angle unit tests
    * fix: fix normalize_angle for negative ints
    * build: add angles test to cmake
    * chore: hide uv.lock changes in diff
    * chore: remove unused scan cutter param
    * chore: reduce number of states in CutAtFovEnd FSM to 6
    * chore: simplify scan cutter tests
    * chore: update docs for simplified fsm
    * fix: correct channel number for minmax array
    * fix: fix find_field for AT128
    * fix: fix min/max channel-based checks to work when the max-corrected channel has lower index than the min-corrected one
    * test: allow for float rounding errors around fov bounds
    * chore: remove unused code
    * perf: re-introduce early returns in decoder
    * perf: reintroduce darian luts
    * test: update decoder ground truths to reflect new scan cutting behavior
    * chore(cspell): ignore drawio source files
    * docs: add scan cutting design diagrams, update mkdocs nav
    * chore: remove residual debug file code
    * chore: correct comment for 100ms after-cut timestamp check
    * chore: remove commented-out code
    * chore: remove uv for now since it's unrelated to this pr
    * chore: remove old test folder
    * chore: allow deg2rad for integer args
    * fix: change corrections, scan cutting back to float for precision
    * chore: remove temporary ground truth output code
    * docs: zensical drawio and latex support
    * chore: import cmath
    * chore: fix normalize_angle typing edge case
    * chore: fix copyright year
    * fix: calculate fov state correctly when block does not intersect cut
    * chore: virtual destructor for AngleCorrector
    * test: add tests for scan cutter initialization
    * chore: fix cspell
    * 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.
    ---------
  * test: add angle unit tests (#387 <https://github.com/tier4/nebula/issues/387>)
    * test: add angle unit tests
    Cherry-picked from fix/scan-cutting-rounding-error branch.
    Add unit tests for normalize_angle and angle_is_between functions.
    * chore: clarify angle_is_between behavior with doc comments and clearer code
    * test: update assumptions for some tests, add new edge cases
    * fix: fixed a case where overlap region becomes empty/duplicated when all correction terms are zero
    * test: regenerate XT16 ground truth after overlap region fix
    ---------
  * chore(maintaners): update maintainers in all packages (#385 <https://github.com/tier4/nebula/issues/385>)
    * chore(maintaners): update maintainers in all packages
    * chore(maintainers): add authors
    * chore(maintainers): add author to Continental packages
    ---------
  * Contributors: David Wong, Max Schmeller

 -- David Wong <david.wong@tier4.jp>  Sun, 18 Jan 2026 15:00:00 -0000

ros-humble-nebula-core-decoders (0.3.0-1jammy) jammy; urgency=high

  * chore: replace ament_cmake_auto with autoware_cmake (#381 <https://github.com/tier4/nebula/issues/381>)
    * chore: replace ament_cmake_auto with autoware_cmake in nebula_continental
    * chore: replace amen_cmake_auto with autoware_cmake in nebula_core
    * chore: replace ament_cmake_auto with autoware_cmake in nebula_hesai
    * chore: replace ament_cmake_auto with autoware_cmake in nebula_robosense
    * chore: replace ament_cmake_auto with autoware_cmake in nebula_velodyne
    * chore: format CMakeLists.txt
    * chore: fix incorrect dependency
    ---------
  * refactor: independent vendor packages (#376 <https://github.com/tier4/nebula/issues/376>)
    * Refactor: Split nebula_common into base and vendor-specific packages
    * Refactor: Split nebula_hw_interfaces into base and vendor-specific packages
    * Refactor nebula_decoders: Create vendor-specific decoder packages (hesai, velodyne, robosense, continental)
    * Fix duplicate nested directories in decoder packages
    * Refactor nebula_ros: Create nebula_ros_base package
    * Refactor nebula_ros: Create nebula_ros_hesai package
    * Refactor nebula_ros: Create vendor-specific ROS packages (velodyne, robosense, continental)
    * Add nebula_ros_base_common library for parameter_descriptors
    * Fix link order for hesai_ros_wrapper
    * Update remaining include paths in vendor-specific ROS packages
    * Update launch files to reference vendor-specific packages
    * Update nebula_ros_base to link Hesai test correctly
    * Move Hesai functional safety test to nebula_ros_hesai to fix circular dependency
    * Fix include paths in hw_interfaces_base test
    * Fix include paths in vendor hw_interfaces packages
    * Fix decoder base include structure and test paths
    * Fix include paths in decoder base headers
    * Add rclcpp dependency to decoder packages
    * Fix ROS base target export and include paths
    * Add smoke tests to nebula_ros_base
    * Fix nebula_examples to use new refactored packages
    * Fix config file paths and launch file references for all vendor packages - all smoke tests passing
    * .
    * ..
    * Restore Hesai functional safety test resources from deleted commit
    - Restored test_resources/fusa_codes/ CSV files that were deleted in commit aa7eb7b6
    - Moved test resources to nebula_ros_hesai package (they were previously in nebula_ros)
    - Updated CMakeLists.txt to install test_resources directory
    - All 20 functional safety tests are now passing
    * Reorganize schema files: move common files to nebula_ros_base/schema and vendor-specific files to vendor packages
    - Moved common schema files from nebula_ros_base/schema/sub/ to nebula_ros_base/schema/
    - Moved vendor-specific schema files to their respective vendor packages:
    - lidar_hesai.json -> nebula_ros_hesai/schema/
    - lidar_velodyne.json -> nebula_ros_velodyne/schema/
    - lidar_robosense.json -> nebula_ros_robosense/schema/
    - radar_continental.json -> nebula_ros_continental/schema/
    - Updated all schema file references to remove 'sub/' prefix
    - Added installation of common schema files to vendor packages so JSON schema references work
    - Updated documentation references to use new package paths
    * Flatten config directory structure: move configs from config/{lidar,radar}/{vendor}/ to config/
    - Moved all sensor config files directly into vendor package config/ directories
    - Updated launch file references to use new flattened paths
    - Updated nebula_examples launch file to reference nebula_ros_hesai instead of nebula_ros
    - Removed empty lidar/hesai, lidar/velodyne, lidar/robosense, and radar/continental subdirectories
    * Fix JSON schema validation using relative paths from schema file location
    - Added $id fields to common schema files using paths relative to repo root
    - Updated all $ref references to use relative paths from schema file location:
    - Common schemas: ../../nebula_ros_base/schema/<file>.json
    - Vendor schemas: <vendor_file>.json (same directory)
    - Validation works with --base-uri file://<repo_root>/<vendor>/schema/
    - All schema validations pass successfully for all vendor packages
    * temp: test updated json-schema-check
    * ci(pre-commit): autofix
    * temp: fix shortened commit hash
    * temp: update json schema check ref
    * temp: final json check version bump
    * fix(ars548): add missing type attr to diagnostics schema
    * docs: fix schema table gen
    * build: remove velodyne-specific stuff from base package
    * chore: remove accidentally committed sub-repos
    * refactor: group packages by vendor
    * refactor: move tests and examples to vendor pkgs, move nebula_launch to nebula meta package, remove nebula_sensor_driver meta package
    * ci(pre-commit): autofix
    * build: fixed cmake files
    * chore: clean up nebula_common
    * ci(pre-commit): autofix
    * move to src directory for cleanliness
    * build: remove superfluous dependencies in CMakeLists and package.xml
    * ci(pre-commit): autofix
    * build: fix missing PNG interface lib
    * build: fix agnocastlib not providing modern cmakle target
    * chore: rename too-convoluted nebula_ros_base_common to nebula_ros_base
    * docs: add migration guide to new version in readme
    * chore: version bump to 0.3.0
    * chore: rename nebula_ros to nebula
    * docs: updater readme to reflect nebula pkg rename
    * chore: rename nebula_ros_vendor to nebula_vendor
    * refactor: nebula_module_vendor -> nebula_vendor_module
    * test: fix issue where sourcing the built project was required for smoke tests to pass
    * chore: update docs, schemas to new module names
    * chore: revert unnecessary test_depend
    * chore: remove erroneous test method instructions
    * chore: remove now-unused hesai_decoder.hpp
    ---------
    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  * Contributors: Kotaro Uetake, Max Schmeller

 -- David Wong <david.wong@tier4.jp>  Mon, 01 Dec 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.15-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Tue, 28 Oct 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.14-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Tue, 21 Oct 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.13-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Tue, 30 Sep 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.12-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Sun, 24 Aug 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.11-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Thu, 21 Aug 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.10-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Wed, 13 Aug 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.9-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Tue, 22 Jul 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.8-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Wed, 02 Jul 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.7-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Sun, 08 Jun 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.6-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Tue, 06 May 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.5-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Tue, 25 Mar 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.4-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Tue, 18 Feb 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.3-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Mon, 03 Feb 2025 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.2-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Thu, 24 Oct 2024 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.1-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Wed, 02 Oct 2024 15:00:00 -0000

ros-humble-nebula-core-decoders (0.2.0-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Mon, 23 Sep 2024 15:00:00 -0000

ros-humble-nebula-core-decoders (0.0.1-1jammy) jammy; urgency=high



 -- David Wong <david.wong@tier4.jp>  Tue, 10 Sep 2024 15:00:00 -0000


