Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange

Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange

No version for distro kilted showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange

No version for distro lyrical showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange

No version for distro rolling showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange

Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.3.1
License Apache 2
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/tier4/nebula.git
VCS Type git
VCS Version main
Last Updated 2026-10-23
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Nebula Hesai ROS Wrapper

Maintainers

  • David Wong
  • Max Schmeller

Authors

  • TIER IV
README
No README found. See repository README.
CHANGELOG

Changelog for package nebula_hesai

1.3.1 (2026-10-15)

  • fix(nebula_hesai): register the UDP receiver thread with the CIE thread configurator again (#498) #469 dropped the thread factory that #460 had passed to HesaiHwInterface, leaving the UDP receive thread a plain std::thread whose scheduling policy, priority, and affinity the Agnocast CIE thread configurator could not set. The prerun template lists nebula_hesai_udp_receiver@<frame_id> again.
  • ci(pre-commit): autofix (#500)
  • Contributors: Max Schmeller, atsushi yano

1.3.0 (2026-09-29)

  • chore(nebula_core_ros): follow upstream's agnocast_wrapper layout (#495) The Hesai wrapper now registers through nebula_agnocast_wrapper_register_node(), which selects the ROS or Agnocast context at runtime instead of assuming an Agnocast-only executor.
  • fix(nebula_core_ros): build the synced agnocast_wrapper Node implementation (#494) Drops the redundant USE_AGNOCAST_ENABLED definition, now exported PUBLIC by nebula_core_ros.
  • fix(nebula_hesai_decoders): drop scans whose timestamp was never set (#493) Stops such scans from reaching the pointcloud publisher.
  • Contributors: Koichi Imai, lei.gu

1.2.0 (2026-07-30)

  • feat(nebula_core_ros): make SyncToolingWorker compatible with agnocast_wrapper::Node (#469)

    • feat(nebula_core_ros): make shared diagnostics/sync helpers agnocast_wrapper::Node-compatible
    • feat(continental_ars548_ros_wrapper): migrate ContinentalARS548RosWrapper to agnocast_wrapper::Node (Method 2)

    * fix(continental_ars548_ros_wrapper): publish pass-through messages via publish(const &) The ALLOCATE_OUTPUT + out = std::move(msg) pattern stole msg's buffer, which was allocated on the normal heap (outside the borrow window), so the payload never entered shared memory and agnocast zero-copy delivered an invalid pointer to cross-process subscribers. publish(const &) borrows inside the window and copies into shared memory, which is correct on both the rclcpp and agnocast backends.

    • fix(nebula_core_ros): include renamed nebula_agnocast_wrapper.hpp in sync_tooling_worker
    • feat(nebula_hesai): migrate HesaiRosWrapper to agnocast_wrapper::Node (Method 2)
    • ci(pre-commit): autofix
    • fix(nebula_hesai): renamed wrapper include, const-ref packets publish, restore cie thread factory

    - include the post-#472 nebula_agnocast_wrapper.hpp (old autoware_agnocast_wrapper.hpp no longer exists)

    - publish raw packets via publish(*msg) so the payload is materialized into shared memory (a plain std::move would leave it on the normal heap, invalid for cross-process subscribers)

    - restore make_cie_thread_factory for the packets publish thread; the migration had dropped it, which would leave that non-ROS thread unmanaged by the Agnocast CIE thread configurator and lose its configured priority/affinity

    * fix(continental_ars548_ros_wrapper): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends.

    * fix(nebula_hesai): log the resolved packets topic again The migration replaced [packets_sub_->get_topic_name()]{.title-ref} with the relative topic literal, which hides the actual (namespaced/remapped) topic and makes troubleshooting harder. The wrapper's Subscription has no get_topic_name(), so resolve the name through the node's topics interface instead; this yields the same fully-qualified name as before on both backends. ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>

  • fix(nebula_hesai): guard sensor setup with try/catch and retry (#464)

File truncated at 100 lines see the full file

Launch files

  • launch/hesai_launch_all_hw.xml
      • sensor_model
      • launch_hw [default: true]
      • config_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
  • launch/hesai_offline.xml
      • sensor_model
      • return_mode [default: Dual]
      • frame_id [default: hesai]
      • scan_phase [default: 0.0]
      • calibration_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).csv]
      • correction_file [default: $(find-pkg-share nebula_hesai_decoders)/calibration/$(var sensor_model).dat]
      • bag_path [default: path to bag dir]
      • storage_id [default: sqlite3]
      • out_path [default: path to output dir]
      • format [default: cdr]
      • target_topic [default: /pandar_packets]
  • launch/hesai_offline_bag_pcd.xml
      • output_pcd [default: true]
      • output_rosbag [default: true]
      • forward_packets_to_rosbag [default: false]
      • sensor_model
      • lidar_parameter_file [default: $(find-pkg-share nebula_hesai)/config/$(var sensor_model).param.yaml]
      • out_num [default: 0]
      • skip_num [default: 0]
      • bag_path
      • input_topic [default: /pandar_packets]
      • output_topic [default: /pandar_points]
      • out_path
      • storage_id [default: sqlite3]
      • format [default: cdr]
      • only_xyz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nebula_hesai at Robotics Stack Exchange