Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: merge nebula/develop #176

Merged
merged 44 commits into from
Sep 24, 2024
Merged

chore: merge nebula/develop #176

merged 44 commits into from
Sep 24, 2024

Conversation

mojomex
Copy link
Collaborator

@mojomex mojomex commented Jul 18, 2024

PR Type

  • Improvement

Description

⚠️ Do not squash when merging as that will make reverting single PRs impossible

This is a meta-PR to merge the develop branch into main. This PR can be linked to as a prerequisite for other PRs.

This PR currently entails:

Pre-Review Checklist for the PR Author

PR Author should check the checkboxes below when creating the PR.

  • Assign PR to reviewer

Checklist for the PR Reviewer

Reviewers should check the checkboxes below before approval.

  • Commits are properly organized and messages are according to the guideline
  • (Optional) Unit tests have been written for new behavior
  • PR title describes the changes

Post-Review Checklist for the PR Author

PR Author should check the checkboxes below before merging.

  • All open points are addressed and tracked via issues or tickets

CI Checks

  • Build and test for PR: Required to pass before the merge.

mojomex and others added 27 commits May 21, 2024 16:52
* fix(hesai_hw_interface): add error handling

* check PTC command error codes, throw exception if necessary
* perform size checks before parsing responses
* emit errors on too-large payload size

* fix(hesai_hw_monitor_ros_wrapper): fixed wrong range given for S/N copy

* fix(hesai): print uint8, uint16 as numbers

* chore: update cspell ignore

* chore(velodyne_calibration_decoder): fix spelling

* chore(velodyne_calibration_decoder): fix spelling once and for all

* fix(hesai_hw_interface): add missing check for PTC error, make error type more readable

* fix(expected): make error behavior clearer, add doc comments

---------

Co-authored-by: Abraham Monrroy Cano <abrahammonrroy@yahoo.com>
* fix(hesai_decoder): print config instead of config address

* refactor(nebula_ros): combine Hesai wrapper nodes into one

This is step one of the single node refactoring of Nebula.
In this step, only the three Hesai wrapper nodes were combined into one, and no optimizations have been done that are made possible by this refactoring.

The next step is to do those optimizations (e.g. get rid of unnecessary pointcloud copying).

* refactor: remove pandarScan pub/sub, decode one packet at a time

* reword later

* temporary progress

* fix(hesai_ros_wrapper): remove changes wrongly merged during rebase

* fix(hesai_ros_wrapper): increase packet buffering to stop internal packet loss

* feat(nebula_common): add instrumentation tools

* feat(hesai_ros_wrapper): instrument code on critical path

* disable instrumentation

* feat(hesai): move received buffer into ros message instead of copy

* feat(hesai_ros_wrapper: add thread-safe queue between udp receiver and decoder, decode in separate thread

* feat(nebula_common): more instrumentation tools

* fix: update link to transport_drivers fork

* update GitHub PR view

* refactor(mt_queue): make variables more readable

* perf(hesai_ros_wrapper): update queue capacity to alleviate packet drops on ECU

* chore(hesai_ros_wrapper): remove unused pub/sub

* refactor(hesai_ros_wrapper): clean up control flow, member variables

* fix(hesai_hw_interface): add error handling

* check PTC command error codes, throw exception if necessary
* perform size checks before parsing responses
* emit errors on too-large payload size

* fix(hesai_hw_monitor_ros_wrapper): fixed wrong range given for S/N copy

* fix(hesai): print uint8, uint16 as numbers

* feat(hesai_ros_wrapper): publish/subscribe to legacy pandar_packets on demand

* change launch file back to single-threaded container

* attempt to make queue contention less bad

* chore(hesai_ros_wrapper): reduce logging output

* feat(hesai_ros_wrapper): print warning when connected to HW and receiving /pandar_packets

* feat(nebula_launch.py): throw error when trying to launch Hesai sensor and refer to hesai_launch_all_hw.xml

* refactor(nebula_ros): split single wrapper file into 3 sub-wrappers

* chore: update cspell ignore

* chore(velodyne_calibration_decoder): fix spelling

* chore(nebula_common): remove debug code

* chore(velodyne_calibration_decoder): fix spelling

* fix(hesai_decoder):  initialize last_phase to prevent empty pointcloud published on startup

* fix(nebula_tests): make Hesai tests compile again

* fix(nebula_examples): make Hesai examples compile again

* chore(velodyne_calibration_decoder): fix spelling once and for all

* fix(nebula_examples): fix test failure (remove ament_lint_common)

* fix(hesai_hw_interface): add missing check for PTC error, make error type more readable

* refactor(hesai): re-introduce parameter update mechanism

* feat(hesai_ros): add watchdog timer for pointcloud output

* fix(hesai): change to possibly more accurate high_resolution_clock

* fix(hesai): fix crash on QT128

* refactor(hesai_hw_interface): refactor repeated error handling code

* fix(hesai_launch_all_hw.xml): set valid RPM when AT128 is selected

* refactor(hesai_decoder): remove redundant arguments for correction/calibration

* refactor(nebula_ros): move mt_queue to common

* chore(nebula_examples): change output rosbag format to NebulaPackets, clean up code

* chore(hesai/decoder_wrapper): clarify watchdog behavior in decoder

* chore(hesai/hw_monitor_wrapper): fix typo in diagnostics name

* chore(hesai_ros_decoder_test): fix unclear naming in console output

* chore: run pre-commit and implement suggested fixes (not including copyright yet)

* fix(expected.hpp): revert explicit constructors

* chore: remove erroneously added node_modules folder

* chore(gitconfig): exclude node_modules from git

* fix(hesai/decoder_wrapper): store downloaded sensor calibration without colliding filenames

* chore(nebula_examples,nebula_tests): remove more dangling comments and improve formatting
…de (#147)

* refactor(robosense)!: combine wrappers into single node

* refactor(robosense): use parameter_descriptors helper functions
…#148)

* refactor(velodyne)!: unify wrapper nodes. Currently WIP but compiling

* fix(velodyne_decoders): after  the last commit, point clouds weren't reset correctly. fixed  in this  commit

* fix(velodyne_tests): make tests compile with the new decoder API

* fix(velodyne_examples): make examples compile with new decoder API

* feat(velodyne_hw_interface): synchronous, null- and thread-safe HTTP requests

* fix(velodyne_launch_all_hw.xml): refactor to single-node

* fix(velodyne): make hw interface wrapper work with new hw  interface API

* fix(velodyne): implement correct locking behavior in hw monitor wrapper

* chore(velodyne_scan_decoder.hpp): explicitly initialize some fields for clarity

* fix(nebula_tests): re-cut scans in existing reference data correctly (360deg). has been ~372deg before (#150)

* fix: fix mistakes made during rebase

* chore(velodyne_ros_wrapper): fix PandarScan mention

* chore(velodyne): apply pre-commit (except copyright)

* chore(velodyne_scan_decoder): moved magic numbers to constants
…to a single node (#151)

* feat: refactored the ars548 into the new single node scheme

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: cleaned code and removed unused code/includes

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: fixed copyright and deleted stray PandarScan

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: replaced the class names from Ars548 to ARS548

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: forgot one struct to rename and deleted one unused struct

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

---------

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
* fix: remove git submodules to prevent docs build error

Signed-off-by: David Wong <david.wong@tier4.jp>

* fix: ros 2 spelling

---------

Signed-off-by: David Wong <david.wong@tier4.jp>
* docs: move README contents to documentation

Signed-off-by: David Wong <david.wong@tier4.jp>

* fix(docs): spelling

Signed-off-by: David Wong <david.wong@tier4.jp>

* fix(docs): more spelling

Signed-off-by: David Wong <david.wong@tier4.jp>

* fix(docs): replace ❌ etc. by emoji

* docs: add link to tutorial branch

---------

Signed-off-by: David Wong <david.wong@tier4.jp>
Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>
* fix: the callback was being called even though the updates were frequent. the cause was ros time not being steady (ptp?)

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore(watchdog_timer): add explanatory comment

---------

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>
* ci(nebula): json-schema workflow

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* feat(velodyne): add json schema

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* feat(robosense): add json schema

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* chore(nebula_ros): remove deprecated config

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* feat(continental): add radar json schema

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* refactor(json-schema): change schema abstraction

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* feat(json-schema): add schema templates

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* fix(json-schema): remove deprecated script

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* ci(nebula): use latest param-schema action

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* feat(json-schema): extend schema template

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* fix(json-schema): calibration default value

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* add hesai parameter schema

Signed-off-by: vividf <yihsiang.fang@tier4.jp>

* move calibration file below the sensor_model

Signed-off-by: vividf <yihsiang.fang@tier4.jp>

* remove python file

Signed-off-by: vividf <yihsiang.fang@tier4.jp>

* set default value for pandar yaml

Signed-off-by: vividf <yihsiang.fang@tier4.jp>

* remove default parameters in nebula_ros

Signed-off-by: vividf <yihsiang.fang@tier4.jp>

* remove default parameter in decoder_wrapper

Signed-off-by: vividf <yihsiang.fang@tier4.jp>

* fix(json-schema): typo

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): typo

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): typo

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): typo

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): typo

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): typo

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): typo

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): typo

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(hesai): remove unused var

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>

* fix(AT128): correct cloud min/max angles

* fix(ARS548): correct data port default value

* add boundary for AT128

Signed-off-by: vividf <yihsiang.fang@tier4.jp>

* docs(json-schema): retry_hw description

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* docs(json-schema): launch_hw description

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): diag_span minimum

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): ptp_profile enum

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): ptp_transport_type enum

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): ptp_profile default value

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* fix(json-schema): ptp_transport_type default value

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

---------

Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp>
Signed-off-by: vividf <yihsiang.fang@tier4.jp>
Co-authored-by: vividf <yihsiang.fang@tier4.jp>
Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>
* feat: cmake optimization in progress

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* fix: fixed robosense symbols

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* fix: fixed robosense hw monitor's cmake

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: applied changed needed after the rebase, deleted debug code, and cleaned unused parts

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: forgot to delete a comment

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* fix: missed a package in the depends list

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

---------

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
* feat: refactored the ars548 into the new single node scheme

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* feat: mid implmementation of the single node scheme

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: cleaned code and removed unused code/includes

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: finished the refactoring. old bags will become unusable after this. need to test with actual hardware

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: deleted all nebula ros files

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chote: rebased and fixed rebse-related errors

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: forgot make changes

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: fixed coyright

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: replaced Srr520 for SRR520  in class names and deleted unused files

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* fix: fixed srr520 changes after the latest rebased and confirmed basic driver functionalities with a live sensor

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* feat: brought back the srr520 tests (passing)

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: removed chunks of code that got in during the rebase. updated the config file

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: kept back a package that got upgraded automatically by pre commit

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: added some comments regarding filters

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: fixed segmentation when launch_hw was true and there was no can device. Changed the name of the config file for schema purposes

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: updated cspell

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: changes for clang compatibility

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: added an explanation to the concept of time domain id

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* Update nebula_ros/config/radar/continental/SRR520.param.yaml

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* Update nebula_common/include/nebula_common/nebula_common.hpp

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* chore: added temptative schema

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: SRR520 schema still referenced the ARS548 radar

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: typo in the base schema

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: forgot the bus time in the schema

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: deleted unused methods

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: changed variable name from vambig -> v_ambiguous

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* Update nebula_common/include/nebula_common/continental/continental_srr520.hpp

Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com>

* Update nebula_hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_continental/continental_srr520_hw_interface.hpp

Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com>

* chore: changed magic numbers for constexprs

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: removed pandar mention in continental packages and changed callback name to be consistent among continental sensors

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: capitalized acronyms

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: changed fup for follow up

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* Update nebula_common/include/nebula_common/continental/crc.hpp

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* chore: removed unnecessary moves

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: updated parameter loading scheme

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: updated srr test includes to match google code style

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: added uniform initialization in srr tests

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: missing underscore in class variables for srr tests

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: updated includes in ARS tests to keep consistency

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: updated missing ars548 tests

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* Update nebula_ros/schema/sub/topic.json

Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>

* chore: updated to the new parameter loading scheme

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: updated include rules for follow nebula/autoware rules

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: updated missing include rules violations

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: missing include violations in the continental decoders

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: missing include violations in the continental hw interfaces

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

* chore: added missing include

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>

---------

Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
Co-authored-by: Max Schmeller <6088931+mojomex@users.noreply.github.com>
Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com>
…162)

* chore: fix pre-commit versions and clang-format hook failure

* chore(docs): fix documentation pre-commit errors

* chore: fix pre-commit and compiler warnings in all code files modified between main..develop

* chore(yamllint): ignore yaml document start in clang-format config as it is required

* chore: add copyright and license headers

* chore(pre-commit): allow multiple documents in YAML files to make .clang-format file check pass

* chore: make pre-commit pass for parameter schema code

* chore: add copyright and license to all source files

* chore: implement pre-commit suggestions in all CPP/HPP files

* chore: whitespace changes in non-cpp files to satisfy pre-commit

* chore: flake8 changes to satisfy pre-commit

* fix: allow implicit conversion to status types again

* chore: clean up imports

* chore: add override/inline where necessary

* chore(nebula_ros): remove obsolete wrapper base types

* chore: move nolint comments to be robust to formatting linebreaks

* chore(velodyne): fix indentation in velodyne calibration files to satisfy yamllint and ignore them in prettier to prevent conflicting styles

* chore(hesai): fix decoder test config yaml quotations

* chore: whitespace changes

* chore: remove empty, un-parseable local.cspell.json

* chore(prettier): ignore yaml and json files as they are handled by yamllint/clang-tidy respectively

* chore: make pre-commit pass on new files after #146

* chore: update cspell to pass spell-check

* chore: rename contributing.md docs page to make failing link check pass
)

* fix(schema): handle zeros and floats for default config generation

Signed-off-by: Amadeusz Szymko <amadeusz.szymko.2@tier4.jp>

* ci(pre-commit): autofix

---------

Signed-off-by: Amadeusz Szymko <amadeusz.szymko.2@tier4.jp>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* docs(readme): add boost version requirements

* ci(pre-commit): autofix

* docs(installation): add boost version requirement

* ci(pre-commit): autofix

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* docs: update point types and sensor models, smaller fixes

* docs: correct field types

* Apply suggestions from code review

Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com>

* ci(pre-commit): autofix

* Update docs/point_types.md

Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com>

* ci(pre-commit): autofix

* chore(nebula_tests): add license to parameter_descriptors

---------

Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* style: pretty-printing sensor configs

* chore: make config field names more readable when pretty-printing
mojomex and others added 5 commits August 19, 2024 13:19
…ed) (#183)

* chore(hesai): make namespaces c++17-style one-liners

* chore(hesai): mark single-arg constructor explicit

* chore(hesai): favor using over typedef

* chore(hesai): initialize uninitialized vars

* chore(hesai): clean up imports

* chore(hesai): inline function defined in header

* chore(hesai): fix case style for some functions and variables

* chore(hesai: favor range-based loop over index-based one

* chore(hesai): add missing stdexcept include
* chore(nebula_common): add utility to get std::string from <<streamable types

* fix(hesai_common): support correct return types for all sensors

* chore(nebula_ros): update supported return modes in parameter schemas for hesai sensors
mojomex and others added 12 commits September 5, 2024 15:28
…ly (#186)

* feat(hesai_hw_interface): automatically set and confirm UDP socket's internal buffer size

* fix: open socket before setting its options
…arguments to the correct vendor's launch file (#191)
* chore(continental): add missing imports, fix symbols

* chore(hesai): add missing imports

* feat(hesai): add multicast support

* chore(hesai): add multicast_ip parameter to schemas and param files

* chore: fix missing dependencies that cause CI fail

* chore(nebula_tests): fix diagnostic_updater dependency for all vendors

* chore: correct default params for OT128

* chore(ars548): revert erroneously committed case style changes
…ake replaying rosbags easier (#190)

* feat(nebula_ros): support `launch_hw` parameter in console again to make replaying rosbags easier

* chore(launch): replace tags with no children with self-closing tags

Co-authored-by: Kenzo Lobos Tsunekawa <kenzo.lobos@tier4.jp>

---------

Co-authored-by: Kenzo Lobos Tsunekawa <kenzo.lobos@tier4.jp>
* refactor(hesai): move calibration handling from decoder wrapper to ROS wrapper

* chore(hesai): make clang and pre-commit happy

* chore(hesai_cmd_response): add missing imports

* feat(hesai_decoder): filter points outside of configured FoV

* chore(hesai_ros_wrapper): fix clang-tidy errors

* feat(hesai_common): calculate FoV padding in calibration config

* chore(hesai): fix clang-tidy errors

* feat(hesai): automatic hardware FoV oversizing

* feat(hesai): publish on cloud_max_angle

* fix(hesai_hw_interface): calculate correct FOV angle units

* fix(hesai): cut scans correctly in edge cases

* test(hesai): add scan cutting tests

* fix(hesai_ros_decoder_test): set missing cloud_min_angle, cloud_max_angle in params

* fix(at128): disable unsupported lidar range feature for AT128

* test(hesai): rewrite reference data to reflect edge effects of new scan cutting

The new scan cutting mechanism filters points based on the corrected angle. This changes the points contained/filtered out at the edges of the scan cut.

* fix(at128): do not issue unsupported monitor command

* temp: instrumentation for pointcloud time delay

* ci(pre-commit): autofix

* works now, rebase later

* WIP packet loss

* refactor(hesai): replace `scan_phase` by `sync_angle` and `cut_angle`

* toriaezu working on 360deg lidars

* less hacky working version for 360deg lidars

* wip AT128

* AT128 maybz?

* ci(pre-commit): autofix

* AT128 mostly working, edge cases unsure (need real sensor to test)

* ci(pre-commit): autofix

* AT128 working

* Parameter edge cases working

* correct cut angle for at128

* chore(hesai): regenerate and fix unit tests

* chore: add 'centi' to dictionary

* chore(nebula_tests/hesai): make sure each checked cloud contains at least one point

* chore(nebula_tests/hesai): add fov params to tests, clean up params

* chore(nebula_tests/hesai): add fov cutting unit tests

* chore(hesai): make namespaces c++17-style one-liners

* chore(hesai): mark single-arg constructor explicit

* chore(hesai): favor using over typedef

* chore(hesai): initialize uninitialized vars

* chore(hesai): clean up imports

* chore(hesai): inline function defined in header

* chore(hesai): fix case style for some functions and variables

* chore(hesai: favor range-based loop over index-based one

* chore(hesai): add missing stdexcept include

* fix(hesai): fix logic that decides whether to publish packets

* chore(continental): fix compiler errors

* chore: add missing diagnostic_updater dependency to nebula_tests

* fix(hesai_ros_wrapper): reject sync_angle = 360 as this will crash the sensors

* fix(hesai_ros_wrapper): disallow cutting at start of scan (except for 360deg FoV) to avoid publishing pointclouds later than necessary.

* fix(at128): disallow sync angles outside the [30, 150] deg range

* chore(hesai_hw_interface): remove superfluous "starting with FoV" log messages

* fix(hesai): return error properly when cut angle is set out-of-range

* chore(at128): change `auto` to `int32_t` in angle correction for clarity

* chore(at128): change M_PI to M_PIf for clarity

Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com>

* chore(at128): add note of firmware version where channel output bug occurs

* chore(at128): add explanatory comment on why fov bounds are hard-coded

* chore(hesai): fix 260deg typo in parameter description

* fix(hesai): handle cut at 0/360deg correctly for non-360 and 360deg FoVs

* chore(at128): correct return type and rename `all_channels` function, add doc comments

* chore(hesai_decoder): replace auto with specific types for number types

* chore(hesai): remove unused instrumentation code

* chore: update error message printed when setting HW FoV  fails

* chore(hesai_decoder): add clarifications for decode/output pointcloud handling

* chore(hesai): apply suggestions for re-wording documentation comments

Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com>

* ci(pre-commit): autofix

* chore(hesai_ros_wrapper): add missing nebula_packet include

* chore(hesai_hw_interface): clarify angle units in `checkAndSetLidarRange`

* chore: add ddeg for deci-degrees to cspell dict

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com>
@mojomex mojomex merged commit 856ac4c into main Sep 24, 2024
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants