Skip to content

Releases: tier4/nebula

v0.3.0

08 Dec 05:29
4119b32

Choose a tag to compare

Release Notes

This release changes the package structure of Nebula to make vendors independent of each other. This allows users to only build and depend on the vendors they care about, making builds faster and projects smaller.

Breaking Changes

Since packages have been split and renamed, some changes are required to existing launch files:

  • the nebula_ros package has been renamed to nebula.
  • the nebula_sensor_driver meta package has been removed. Depend on the nebula package, or
    on a nebula_<vendor> package instead. nebula includes all vendor packages.
  • Calibration files have moved from nebula_decoders to nebula_<vendor>_decoders.
  • Vendor-specific launch files have moved from nebula_ros to nebula_<vendor>.
  • nebula_tests and nebula_examples have been absorbed into the nebula_<vendor> packages.

Below are the changes you most likely need to make:

  • ros2 launch nebula_ros nebula_launch.py ... ➡️ ros2 launch nebula nebula_launch.py ...
  • ros2 launch nebula_ros <vendor>_launch_all_hw.xml ... ➡️ ros2 launch nebula_<vendor> <vendor>_launch_all_hw.xml ...
  • $(find-pkg-share nebula_decoders)/calibration/<vendor>/... ➡️ $(find-pkg-share nebula_<vendor>_decoders)/calibration/...
  • $(find-pkg-share nebula_ros)/config/lidar/<vendor>/... ➡️ $(find-pkg-share nebula_<vendor>)/config/...
  • <depend>nebula_ros</depend> ➡️ <depend>nebula</depend> or <depend>nebula_<vendor></depend>
  • <depend>nebula_sensor_driver</depend> ➡️ <depend>nebula</depend> or <depend>nebula_<vendor></depend>

See the README for the latest migration info.

What's Changed

  • refactor: independent vendor packages by @mojomex in #376
  • chore: flatten nebula__common include structures by @mojomex in #380
  • chore: replace ament_cmake_auto with autoware_cmake by @ktro2828 in #381

Full Changelog: v0.2.15.1...v0.3.0

v0.2.15.1

14 Nov 01:29
8781a6b

Choose a tag to compare

Release Notes

This release improves behavior when Nebula has been compiled with Agnocast support, but Agnocast is not active during runtime.
The old behavior was to exit with an error, whereas the new behavior is to fallback to DDS.

What's Changed

  • chore: rename package author to TIER IV by @ktro2828 in #375
  • feat(nebula_agnocast_wrapper): support runtime fallback to ROS 2 behavior by @Koichi98 in #366

New Contributors

Full Changelog: v0.2.15...v0.2.15.1

v0.2.15

29 Oct 06:54
77c2dbb

Choose a tag to compare

Release Notes

This release provides various diagnostics improvements for Hesai sensors.

Bug Fixes

  • #371: Fixed an issue where the 1 Hz HesaiHwMonitor timer was able to preempt the 10 Hz functional safety timer for prolonged times, causing FuSa diagnostics to go stale

Breaking Changes

This new required parameter has been added in #370:

calibration_download_enabled: true

Interface Changes

In #369, below max_hz parameters are now optional, defaulting to +inf (no upper limit). The optional num_frame_transition parameter has been added, defaulting to 1 (identical behavior to before). See tier4/ros2_v4l2_camera#37 for more details.

  diagnostics:
    pointcloud_publish_rate:
      frequency_ok:
~      max_hz: <optional, double>
      frequency_warn:
~      max_hz: <optional, double>
+     num_frame_transition: <optional, int>

In #363, the ability to ignore certain functional safety diagnostic codes has been introduced. The below optional parameter tree has been introduced:

diagnostics:
  functional_safety:
    mode: advanced
    error_definitions_path: $(find-package-share my_private_package)/path/to/definitions.csv
    ignored_error_codes: [0xaaaa, 0xbbbb, ...]

What's Changed

  • feat(hesai): allow for calibration file override by @mojomex in #370
  • feat(hesai): allow for exemption of FuSa error codes by @mojomex in #363
  • feat(hesai/decoder_wrapper): make diagnostics.pointcloud_publish_rate.frequency_(ok|warn).max_hz optional and add diagnostics.pointcloud_publish_rate.num_frame_transition by @manato in #369
  • ci: introduce Facebook Infer job by @mojomex in #245
  • perf(hesai): do TCP-based diagnostics asynchronously by @mojomex in #371
  • build: remove autoware_msgs from repos file by @mojomex in #373

Full Changelog: v0.2.14...v0.2.15

v0.2.5.3

27 Oct 10:57

Choose a tag to compare

Release Notes

This is a backport release of the feature introduced in #370. The feature allows the user to disable calibration file downloads from the sensor, in the case that they have their own, manually produced calibration file.

Full Changelog: v0.2.5.2...v0.2.5.3

v0.2.14

22 Oct 09:32
58789f5

Choose a tag to compare

Release Notes

This version fixes Hesai OT128 packet loss that occured on some machines, and makes diagnostics for Continental ARS548 more robust.

  • #364: Fixes an issue with Hesai OT128 where on some hardware, a conservative buffer size calculation would cause the UDP receive queue to overflow, leading to lost packets.
  • #367: Hysteresis settings for some flaky diagnostics of ARS548 are now tunable, reducing the likelihood of false positives being reported.

Breaking Changes

All Hesai sensors now include a new, mandatory parameter:

  udp_socket_receive_buffer_size_bytes: <number> in [256; UINT32MAX]

For most machines, the queue capacity for packets $n = \frac{S}{MTU}$, where $S$ is the above udp_socket_receive_buffer_size_bytes parameter, and $MTU$ is the MTU size (1500 for Hesai sensors).
On some machines, much more than one MTU is consumed per packet, introducing the need to tune $S$ on some machines.

The maximum queue latency $\Delta t$ is then given by $\Delta t = \frac{n}{f}$ where $f$ is the frequency of LiDAR packets being received in packets/s. This frequency varies between LiDARs and can be obtained from the sensor's user manual.

For Continental ARS548, the following mandatory parameters have been added:

  diagnostics:
    rate_bound_status:
      num_frame_transition: <number> in [0; UINT64_MAX]
    blockage:
      num_frame_transition: <number> in [0; UINT64_MAX]
    internal:
      num_frame_transition: <number> in [0; UINT64_MAX]

The following parameters have been removed:

  diagnostics:
    rate_bound_status:
      frequency_ok:
        max_hz: <REMOVED>
      frequency_warn:
        max_hz: <REMOVED>

What's Changed

  • perf(hesai): configurable UDP receive buffer size by @mojomex in #364
  • feat(ars548): rework hysteresis for diagnostics by @amadeuszsz in #367
  • feat(ars548): expand configuration diagnostics by @amadeuszsz in #368

Full Changelog: v0.2.13...v0.2.14

v0.2.13

16 Oct 02:49
3b0ac21

Choose a tag to compare

Release Notes

This release contains various small improvements.

What's Changed

Full Changelog: v0.2.12...v0.2.13

v0.2.4.3

01 Oct 09:35
3f3e41a

Choose a tag to compare

Release Notes

This release includes fixes for Continental ARS radars that allow use of both ARS548 and ARS540DI.

What's Changed

Full Changelog: v0.2.4.2...v0.2.4.3

v0.2.4.2

08 Sep 10:43
fad0638

Choose a tag to compare

Release Notes

This is a backport of the performance improvements in v0.2.9.

What's Changed

  • perf(hesai): cherry-pick : publish packets in separate thread #343 by @KYabuuchi in #355

Full Changelog: v0.2.4.1...v0.2.4.2

v0.2.4.1

29 Aug 09:12

Choose a tag to compare

Release Notes

This is a backport of the fixes in v0.2.12.

Bug Fixes

  • #353: ensure that the hardware FoV is set large enough that scan cutting works in edge cases (see #339)

Full Changelog: v0.2.4...v0.2.4.1

v0.2.12

29 Aug 09:32
50da18d

Choose a tag to compare

Release Notes

This release fixes an issue with Hesai XT32 and potentially other Hesai sensors where, for non-360 degree FoVs, an erroneous pointcloud was being published. It also improves resilience to packet loss with non-360 degree FoVs.

Bug Fixes

  • #353: ensure that the hardware FoV is set large enough that scan cutting works in edge cases (see #339)

What's Changed

Full Changelog: v0.2.11...v0.2.12