diff --git a/.github/workflows/json-schema-check.yaml b/.github/workflows/json-schema-check.yaml new file mode 100644 index 000000000..735641acd --- /dev/null +++ b/.github/workflows/json-schema-check.yaml @@ -0,0 +1,39 @@ +name: json-schema-check + +on: + pull_request: + workflow_dispatch: + +jobs: + check-if-relevant-files-changed: + runs-on: ubuntu-latest + outputs: + run-check: ${{ steps.paths_filter.outputs.json_or_yaml }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: paths_filter + with: + filters: | + json_or_yaml: + - '**/schema/*.schema.json' + - '**/config/**/*.param.yaml' + + json-schema-check: + needs: check-if-relevant-files-changed + if: needs.check-if-relevant-files-changed.outputs.run-check == 'true' + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Run json-schema-check + uses: autowarefoundation/autoware-github-actions/json-schema-check@main + + no-relevant-changes: + needs: check-if-relevant-files-changed + if: needs.check-if-relevant-files-changed.outputs.run-check == 'false' + runs-on: ubuntu-latest + steps: + - name: Dummy step + run: echo "No relevant changes, passing check" \ No newline at end of file diff --git a/nebula_ros/config/BaseParams.yaml b/nebula_ros/config/BaseParams.yaml deleted file mode 100644 index 2aa17176a..000000000 --- a/nebula_ros/config/BaseParams.yaml +++ /dev/null @@ -1,10 +0,0 @@ -/**: - ros__parameters: - device_ip: "192.168.1.201" - return_mode: "SingleStrongest" - host_ip: "255.255.255.255" - frame_id: "lidar" - data_port: 2368 - gnss_port: 2369 - setup_sensor: True - online: True diff --git a/nebula_ros/config/hesai/Pandar128E4X.yaml b/nebula_ros/config/hesai/Pandar128E4X.yaml deleted file mode 100644 index b4f5df758..000000000 --- a/nebula_ros/config/hesai/Pandar128E4X.yaml +++ /dev/null @@ -1,19 +0,0 @@ -/**: - ros__parameters: - sensor_model: "Pandar128E4X" # See readme for supported models - sensor_ip: "192.168.1.201" # Lidar Sensor IP - host_ip: "255.255.255.255" # Broadcast IP from Sensor - frame_id: "hesai" - data_port: 2368 # LiDAR Data Port - gnss_port: 10110 # LiDAR GNSS Port - return_mode: "Dual" # See readme for supported return modes - scan_phase: 0.0 # Angle where scans begin (degrees, [0.,360.] - packet_mtu_size: 1500 # Packet MTU size - rotation_speed: 600 # Motor RPM, the sensor's internal spin rate. - cloud_min_angle: 0 # Field of View, start degrees. - cloud_max_angle: 360 # Field of View, end degrees. - diag_span: 1000 # milliseconds - calibration_file: "./install/nebula_decoders/share/nebula_decoders/calibration/hesai/Pandar128E4X.csv" - setup_sensor: True - - online: True \ No newline at end of file diff --git a/nebula_ros/config/hesai/Pandar40P.yaml b/nebula_ros/config/hesai/Pandar40P.yaml deleted file mode 100644 index 3b457f573..000000000 --- a/nebula_ros/config/hesai/Pandar40P.yaml +++ /dev/null @@ -1,19 +0,0 @@ -/**: - ros__parameters: - sensor_model: "Pandar40P" # See readme for supported models - sensor_ip: "192.168.1.201" # Lidar Sensor IP - host_ip: "255.255.255.255" # Broadcast IP from Sensor - frame_id: "hesai" - data_port: 2368 # LiDAR Data Port - gnss_port: 10110 # LiDAR GNSS Port - return_mode: "Dual" # See readme for supported return modes - scan_phase: 0.0 # Angle where scans begin (degrees, [0.,360.] - packet_mtu_size: 1500 # Packet MTU size - rotation_speed: 600 # Motor RPM, the sensor's internal spin rate. - cloud_min_angle: 0 # Field of View, start degrees. - cloud_max_angle: 360 # Field of View, end degrees. - diag_span: 1000 # milliseconds - calibration_file: "./install/nebula_decoders/share/nebula_decoders/calibration/hesai/Pandar40P.csv" - setup_sensor: True - - online: True diff --git a/nebula_ros/config/hesai/PandarAT128.yaml b/nebula_ros/config/hesai/PandarAT128.yaml deleted file mode 100644 index 5ad0027bb..000000000 --- a/nebula_ros/config/hesai/PandarAT128.yaml +++ /dev/null @@ -1,20 +0,0 @@ -/**: - ros__parameters: - sensor_model: "PandarAT128" # See readme for supported models - sensor_ip: "192.168.1.201" # Lidar Sensor IP - host_ip: "255.255.255.255" # Broadcast IP from Sensor - frame_id: "hesai" - data_port: 2368 # LiDAR Data Port - gnss_port: 10110 # LiDAR GNSS Port - return_mode: "LastStrongest" # See readme for supported return modes - scan_phase: 30.0 # Angle where scans begin (degrees, [30.,150.]) - packet_mtu_size: 1500 # Packet MTU size - rotation_speed: 200 # Motor RPM, the sensor's internal spin rate. - cloud_min_angle: 0 # Field of View, start degrees. - cloud_max_angle: 360 # Field of View, end degrees. - diag_span: 1000 # milliseconds - calibration_file: "./install/nebula_decoders/share/nebula_decoders/calibration/hesai/PandarAT128.csv" - correction_file: "./install/nebula_decoders/share/nebula_decoders/calibration/hesai/PandarAT128.dat" - setup_sensor: True - - online: True diff --git a/nebula_ros/config/hesai/PandarQT128.yaml b/nebula_ros/config/hesai/PandarQT128.yaml deleted file mode 100644 index 6ab2e81a5..000000000 --- a/nebula_ros/config/hesai/PandarQT128.yaml +++ /dev/null @@ -1,18 +0,0 @@ -/**: - ros__parameters: - sensor_model: "PandarQT128" # See readme for supported models - sensor_ip: "192.168.1.201" # Lidar Sensor IP - host_ip: "255.255.255.255" # Broadcast IP from Sensor - frame_id: "hesai" - data_port: 2368 # LiDAR Data Port - gnss_port: 10110 # LiDAR GNSS Port - return_mode: "LastStrongest" # See readme for supported return modes - scan_phase: 0.0 # Angle where scans begin (degrees, [0.,360.] - packet_mtu_size: 1500 # Packet MTU size - rotation_speed: 200 # Motor RPM, the sensor's internal spin rate. - cloud_min_angle: 0 # Field of View, start degrees. - cloud_max_angle: 360 # Field of View, end degrees. - diag_span: 1000 # milliseconds - calibration_file: "./install/nebula_decoders/share/nebula_decoders/calibration/hesai/PandarQT128.csv" - - online: True diff --git a/nebula_ros/config/hesai/PandarQT64.yaml b/nebula_ros/config/hesai/PandarQT64.yaml deleted file mode 100644 index b2caccca8..000000000 --- a/nebula_ros/config/hesai/PandarQT64.yaml +++ /dev/null @@ -1,19 +0,0 @@ -/**: - ros__parameters: - sensor_model: "PandarQT64" # See readme for supported models - sensor_ip: "192.168.1.201" # Lidar Sensor IP - host_ip: "255.255.255.255" # Broadcast IP from Sensor - frame_id: "hesai" - data_port: 2368 # LiDAR Data Port - gnss_port: 10110 # LiDAR GNSS Port - return_mode: "Dual" # See readme for supported return modes - scan_phase: 0.0 # Angle where scans begin (degrees, [0.,360.] - packet_mtu_size: 1500 # Packet MTU size - rotation_speed: 600 # Motor RPM, the sensor's internal spin rate. - cloud_min_angle: 0 # Field of View, start degrees. - cloud_max_angle: 360 # Field of View, end degrees. - diag_span: 1000 # milliseconds - calibration_file: "./install/nebula_decoders/share/nebula_decoders/calibration/hesai/PandarQT64.csv" - setup_sensor: True - - online: True \ No newline at end of file diff --git a/nebula_ros/config/hesai/PandarXT32.yaml b/nebula_ros/config/hesai/PandarXT32.yaml deleted file mode 100644 index 245848408..000000000 --- a/nebula_ros/config/hesai/PandarXT32.yaml +++ /dev/null @@ -1,19 +0,0 @@ -/**: - ros__parameters: - sensor_model: "PandarXT32" # See readme for supported models - sensor_ip: "192.168.1.201" # Lidar Sensor IP - host_ip: "255.255.255.255" # Broadcast IP from Sensor - frame_id: "hesai" - data_port: 2368 # LiDAR Data Port - gnss_port: 10110 # LiDAR GNSS Port - return_mode: "Dual" # See readme for supported return modes - scan_phase: 0.0 # Angle where scans begin (degrees, [0.,360.] - packet_mtu_size: 1500 # Packet MTU size - rotation_speed: 600 # Motor RPM, the sensor's internal spin rate. - cloud_min_angle: 0 # Field of View, start degrees. - cloud_max_angle: 360 # Field of View, end degrees. - diag_span: 1000 # milliseconds - calibration_file: "./install/nebula_decoders/share/nebula_decoders/calibration/hesai/PandarXT32.csv" - setup_sensor: True - - online: True diff --git a/nebula_ros/config/hesai/PandarXT32M.yaml b/nebula_ros/config/hesai/PandarXT32M.yaml deleted file mode 100644 index 994045eae..000000000 --- a/nebula_ros/config/hesai/PandarXT32M.yaml +++ /dev/null @@ -1,19 +0,0 @@ -/**: - ros__parameters: - sensor_model: "PandarXT32M" # See readme for supported models - sensor_ip: "192.168.50.201" # Lidar Sensor IP - host_ip: "255.255.255.255" # Broadcast IP from Sensor - frame_id: "hesai" - data_port: 2369 # LiDAR Data Port - gnss_port: 10110 # LiDAR GNSS Port - return_mode: "LastStrongest" # See readme for supported return modes - scan_phase: 0.0 # Angle where scans begin (degrees, [0.,360.] - packet_mtu_size: 1500 # Packet MTU size - rotation_speed: 1200 # Motor RPM, the sensor's internal spin rate. - cloud_min_angle: 0 # Field of View, start degrees. - cloud_max_angle: 360 # Field of View, end degrees. - diag_span: 1000 # milliseconds - calibration_file: "./install/nebula_decoders/share/nebula_decoders/calibration/hesai/PandarXT32M.csv" - setup_sensor: True - - online: True diff --git a/nebula_ros/config/lidar/hesai/Pandar128E4X.param.yaml b/nebula_ros/config/lidar/hesai/Pandar128E4X.param.yaml new file mode 100644 index 000000000..bf93088c6 --- /dev/null +++ b/nebula_ros/config/lidar/hesai/Pandar128E4X.param.yaml @@ -0,0 +1,26 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 10110 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: hesai + diag_span: 1000 + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: Pandar128E4X + calibration_file: $(find-pkg-share nebula_decoders)/calibration/hesai/$(var sensor_model).csv + rotation_speed: 600 + return_mode: Dual + ptp_profile: automotive + ptp_domain: 0 + ptp_transport_type: L2 + ptp_switch_type: TSN + retry_hw: true + dual_return_distance_threshold: 0.1 \ No newline at end of file diff --git a/nebula_ros/config/lidar/hesai/Pandar40P.param.yaml b/nebula_ros/config/lidar/hesai/Pandar40P.param.yaml new file mode 100644 index 000000000..7dd0c7bf3 --- /dev/null +++ b/nebula_ros/config/lidar/hesai/Pandar40P.param.yaml @@ -0,0 +1,26 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 10110 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: hesai + diag_span: 1000 + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: Pandar40P + calibration_file: $(find-pkg-share nebula_decoders)/calibration/hesai/$(var sensor_model).csv + rotation_speed: 600 + return_mode: Dual + ptp_profile: "1588v2" + ptp_domain: 0 + ptp_transport_type: UDP + ptp_switch_type: TSN + retry_hw: true + dual_return_distance_threshold: 0.1 \ No newline at end of file diff --git a/nebula_ros/config/lidar/hesai/Pandar64.param.yaml b/nebula_ros/config/lidar/hesai/Pandar64.param.yaml new file mode 100644 index 000000000..e1ec8906e --- /dev/null +++ b/nebula_ros/config/lidar/hesai/Pandar64.param.yaml @@ -0,0 +1,25 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 10110 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: hesai + diag_span: 1000 + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: Pandar64 + rotation_speed: 600 + return_mode: Dual + ptp_profile: "1588v2" + ptp_domain: 0 + ptp_transport_type: UDP + ptp_switch_type: TSN + retry_hw: true + dual_return_distance_threshold: 0.1 \ No newline at end of file diff --git a/nebula_ros/config/lidar/hesai/PandarAT128.param.yaml b/nebula_ros/config/lidar/hesai/PandarAT128.param.yaml new file mode 100644 index 000000000..5f3ab1ba5 --- /dev/null +++ b/nebula_ros/config/lidar/hesai/PandarAT128.param.yaml @@ -0,0 +1,27 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 10110 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: hesai + diag_span: 1000 + correction_file: $(find-pkg-share nebula_decoders)/calibration/hesai/$(var sensor_model).dat + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 30 + cloud_max_angle: 150 + scan_phase: 30.0 + sensor_model: PandarAT128 + calibration_file: $(find-pkg-share nebula_decoders)/calibration/hesai/$(var sensor_model).csv + rotation_speed: 200 + return_mode: Dual + ptp_profile: "1588v2" + ptp_domain: 0 + ptp_transport_type: UDP + ptp_switch_type: TSN + retry_hw: true + dual_return_distance_threshold: 0.1 \ No newline at end of file diff --git a/nebula_ros/config/lidar/hesai/PandarQT128.param.yaml b/nebula_ros/config/lidar/hesai/PandarQT128.param.yaml new file mode 100644 index 000000000..86593a4a3 --- /dev/null +++ b/nebula_ros/config/lidar/hesai/PandarQT128.param.yaml @@ -0,0 +1,26 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 10110 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: hesai + diag_span: 1000 + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: PandarQT128 + calibration_file: $(find-pkg-share nebula_decoders)/calibration/hesai/$(var sensor_model).csv + rotation_speed: 600 + return_mode: LastStrongest + ptp_profile: "1588v2" + ptp_domain: 0 + ptp_transport_type: UDP + ptp_switch_type: TSN + retry_hw: true + dual_return_distance_threshold: 0.1 \ No newline at end of file diff --git a/nebula_ros/config/lidar/hesai/PandarQT64.param.yaml b/nebula_ros/config/lidar/hesai/PandarQT64.param.yaml new file mode 100644 index 000000000..bd1bc2245 --- /dev/null +++ b/nebula_ros/config/lidar/hesai/PandarQT64.param.yaml @@ -0,0 +1,26 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 10110 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: hesai + diag_span: 1000 + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: PandarQT64 + calibration_file: $(find-pkg-share nebula_decoders)/calibration/hesai/$(var sensor_model).csv + rotation_speed: 600 + return_mode: Dual + ptp_profile: "1588v2" + ptp_domain: 0 + ptp_transport_type: UDP + ptp_switch_type: TSN + retry_hw: true + dual_return_distance_threshold: 0.1 \ No newline at end of file diff --git a/nebula_ros/config/lidar/hesai/PandarXT32.param.yaml b/nebula_ros/config/lidar/hesai/PandarXT32.param.yaml new file mode 100644 index 000000000..1aa27e856 --- /dev/null +++ b/nebula_ros/config/lidar/hesai/PandarXT32.param.yaml @@ -0,0 +1,26 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 10110 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: hesai + diag_span: 1000 + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: PandarXT32 + calibration_file: $(find-pkg-share nebula_decoders)/calibration/hesai/$(var sensor_model).csv + rotation_speed: 600 + return_mode: Dual + ptp_profile: "1588v2" + ptp_domain: 0 + ptp_transport_type: UDP + ptp_switch_type: TSN + retry_hw: true + dual_return_distance_threshold: 0.1 \ No newline at end of file diff --git a/nebula_ros/config/lidar/hesai/PandarXT32M.param.yaml b/nebula_ros/config/lidar/hesai/PandarXT32M.param.yaml new file mode 100644 index 000000000..c87b822ef --- /dev/null +++ b/nebula_ros/config/lidar/hesai/PandarXT32M.param.yaml @@ -0,0 +1,26 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 10110 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: hesai + diag_span: 1000 + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: PandarXT32M + calibration_file: $(find-pkg-share nebula_decoders)/calibration/hesai/$(var sensor_model).csv + rotation_speed: 600 + return_mode: LastStrongest + ptp_profile: "1588v2" + ptp_domain: 0 + ptp_transport_type: UDP + ptp_switch_type: TSN + retry_hw: true + dual_return_distance_threshold: 0.1 \ No newline at end of file diff --git a/nebula_ros/config/hesai/Pandar64.yaml b/nebula_ros/config/lidar/robosense/Bpearl.param.yaml similarity index 60% rename from nebula_ros/config/hesai/Pandar64.yaml rename to nebula_ros/config/lidar/robosense/Bpearl.param.yaml index 53ebf0ad3..c9abc5255 100644 --- a/nebula_ros/config/hesai/Pandar64.yaml +++ b/nebula_ros/config/lidar/robosense/Bpearl.param.yaml @@ -1,17 +1,17 @@ /**: ros__parameters: - sensor_model: "Pandar64" - frame_id: "hesai" - return_mode: "Dual" - sensor_ip: "192.168.1.201" host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" data_port: 2368 gnss_port: 2369 - scan_phase: 0.0 packet_mtu_size: 1500 - rotation_speed: 600 + launch_hw: true + setup_sensor: true + frame_id: robosense + diag_span: 1000 cloud_min_angle: 0 cloud_max_angle: 360 - diag_span: 1000 - setup_sensor: True - online: True + scan_phase: 0.0 + dual_return_distance_threshold: 0.1 + sensor_model: Bpearl + return_mode: Dual diff --git a/nebula_ros/config/lidar/robosense/Helios.param.yaml b/nebula_ros/config/lidar/robosense/Helios.param.yaml new file mode 100644 index 000000000..bc84175bd --- /dev/null +++ b/nebula_ros/config/lidar/robosense/Helios.param.yaml @@ -0,0 +1,17 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 2369 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: robosense + diag_span: 1000 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + dual_return_distance_threshold: 0.1 + sensor_model: Helios + return_mode: Dual diff --git a/nebula_ros/config/lidar/velodyne/VLP16.param.yaml b/nebula_ros/config/lidar/velodyne/VLP16.param.yaml new file mode 100644 index 000000000..7604367ca --- /dev/null +++ b/nebula_ros/config/lidar/velodyne/VLP16.param.yaml @@ -0,0 +1,21 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 2369 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: velodyne + advanced_diagnostics: false + diag_span: 1000 + calibration_file: $(find-pkg-share nebula_decoders)/calibration/velodyne/VLP16.yaml + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: VLP16 + rotation_speed: 600 + return_mode: Dual \ No newline at end of file diff --git a/nebula_ros/config/lidar/velodyne/VLP32.param.yaml b/nebula_ros/config/lidar/velodyne/VLP32.param.yaml new file mode 100644 index 000000000..153c492a2 --- /dev/null +++ b/nebula_ros/config/lidar/velodyne/VLP32.param.yaml @@ -0,0 +1,21 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 2369 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: velodyne + advanced_diagnostics: false + diag_span: 1000 + calibration_file: $(find-pkg-share nebula_decoders)/calibration/velodyne/VLP32.yaml + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: VLP32 + rotation_speed: 600 + return_mode: Dual diff --git a/nebula_ros/config/lidar/velodyne/VLS128.param.yaml b/nebula_ros/config/lidar/velodyne/VLS128.param.yaml new file mode 100644 index 000000000..2cddcd352 --- /dev/null +++ b/nebula_ros/config/lidar/velodyne/VLS128.param.yaml @@ -0,0 +1,21 @@ +/**: + ros__parameters: + host_ip: "255.255.255.255" + sensor_ip: "192.168.1.201" + data_port: 2368 + gnss_port: 2369 + packet_mtu_size: 1500 + launch_hw: true + setup_sensor: true + frame_id: velodyne + advanced_diagnostics: false + diag_span: 1000 + calibration_file: $(find-pkg-share nebula_decoders)/calibration/velodyne/VLS128.yaml + min_range: 0.3 + max_range: 300.0 + cloud_min_angle: 0 + cloud_max_angle: 360 + scan_phase: 0.0 + sensor_model: VLS128 + rotation_speed: 600 + return_mode: Dual diff --git a/nebula_ros/config/continental/ARS548.yaml b/nebula_ros/config/radar/continental/ARS548.param.yaml similarity index 75% rename from nebula_ros/config/continental/ARS548.yaml rename to nebula_ros/config/radar/continental/ARS548.param.yaml index 2342cfe93..91021f442 100644 --- a/nebula_ros/config/continental/ARS548.yaml +++ b/nebula_ros/config/radar/continental/ARS548.param.yaml @@ -1,13 +1,14 @@ /**: ros__parameters: - sensor_model: "ARS548" - frame_id: "continental" - base_frame: "base_link" - object_frame: "base_link" - sensor_ip: "10.13.1.114" host_ip: "10.13.1.166" - multicast_ip: "224.0.2.2" + sensor_ip: "10.13.1.114" data_port: 42102 + frame_id: continental + base_frame: base_link + object_frame: base_link + launch_hw: true + multicast_ip: "224.0.2.2" + sensor_model: ARS548 configuration_host_port: 42401 configuration_sensor_port: 42101 use_sensor_time: false diff --git a/nebula_ros/config/robosense/Bpearl.yaml b/nebula_ros/config/robosense/Bpearl.yaml deleted file mode 100644 index 9ccb42e56..000000000 --- a/nebula_ros/config/robosense/Bpearl.yaml +++ /dev/null @@ -1,11 +0,0 @@ -/**: - ros__parameters: - sensor_model: "Bpearl" # See readme for supported models - sensor_ip: "192.168.1.200" # Lidar Sensor IP - host_ip: "192.168.1.102" # Broadcast IP from Sensor - frame_id: "robosense" - data_port: 6699 # LiDAR Data Port (MSOP) - gnss_port: 7788 # LiDAR GNSS Port (DIFOP) - scan_phase: 0.0 # Angle where scans begin (degrees, [0.,360.] - diag_span: 1000 # milliseconds - dual_return_distance_threshold: 0.1 diff --git a/nebula_ros/config/robosense/Helios.yaml b/nebula_ros/config/robosense/Helios.yaml deleted file mode 100644 index 24350822d..000000000 --- a/nebula_ros/config/robosense/Helios.yaml +++ /dev/null @@ -1,11 +0,0 @@ -/**: - ros__parameters: - sensor_model: "Helios" # See readme for supported models - sensor_ip: "192.168.1.200" # Lidar Sensor IP - host_ip: "192.168.1.102" # Broadcast IP from Sensor - frame_id: "robosense" - data_port: 6699 # LiDAR Data Port (MSOP) - gnss_port: 7788 # LiDAR GNSS Port (DIFOP) - scan_phase: 0.0 # Angle where scans begin (degrees, [0.,360.] - diag_span: 1000 # milliseconds - dual_return_distance_threshold: 0.1 diff --git a/nebula_ros/config/velodyne/VLP16.yaml b/nebula_ros/config/velodyne/VLP16.yaml deleted file mode 100644 index 1daf3a4c6..000000000 --- a/nebula_ros/config/velodyne/VLP16.yaml +++ /dev/null @@ -1,10 +0,0 @@ -/**: - ros__parameters: - sensor_model: "VLP16" - sensor_ip: "192.168.1.201" - host_ip: "255.255.255.255" - frame_id: "velodyne" - data_port: 2368 - gnss_port: 2369 - setup_sensor: True - online: True diff --git a/nebula_ros/config/velodyne/VLP32.yaml b/nebula_ros/config/velodyne/VLP32.yaml deleted file mode 100644 index ef5ae14c1..000000000 --- a/nebula_ros/config/velodyne/VLP32.yaml +++ /dev/null @@ -1,10 +0,0 @@ -/**: - ros__parameters: - sensor_model: "VLP32" - sensor_ip: "192.168.1.201" - host_ip: "255.255.255.255" - frame_id: "velodyne" - data_port: 2368 - gnss_port: 2369 - setup_sensor: True - online: True diff --git a/nebula_ros/config/velodyne/VLS128.yaml b/nebula_ros/config/velodyne/VLS128.yaml deleted file mode 100644 index db73ecc05..000000000 --- a/nebula_ros/config/velodyne/VLS128.yaml +++ /dev/null @@ -1,10 +0,0 @@ -/**: - ros__parameters: - sensor_model: "VLS128" - sensor_ip: "192.168.1.201" - host_ip: "255.255.255.255" - frame_id: "velodyne" - data_port: 2368 - gnss_port: 2369 - setup_sensor: True - online: True diff --git a/nebula_ros/launch/continental_launch_all_hw.xml b/nebula_ros/launch/continental_launch_all_hw.xml index 31798493a..c5f7673b0 100644 --- a/nebula_ros/launch/continental_launch_all_hw.xml +++ b/nebula_ros/launch/continental_launch_all_hw.xml @@ -1,56 +1,20 @@ - - - - + - - + + - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - diff --git a/nebula_ros/launch/hesai_launch_all_hw.xml b/nebula_ros/launch/hesai_launch_all_hw.xml index 10c7aa218..7e9686888 100644 --- a/nebula_ros/launch/hesai_launch_all_hw.xml +++ b/nebula_ros/launch/hesai_launch_all_hw.xml @@ -1,69 +1,10 @@ - - - - - + + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/nebula_ros/launch/robosense_launch_all_hw.xml b/nebula_ros/launch/robosense_launch_all_hw.xml index 3a32fa9c2..d544fb8b8 100644 --- a/nebula_ros/launch/robosense_launch_all_hw.xml +++ b/nebula_ros/launch/robosense_launch_all_hw.xml @@ -1,32 +1,10 @@ - - - - + + - - - - + + + - - - - - - - - - - - - - - - - - - - \ No newline at end of file + diff --git a/nebula_ros/launch/velodyne_launch_all_hw.xml b/nebula_ros/launch/velodyne_launch_all_hw.xml index 717aa5afd..d2f030b29 100644 --- a/nebula_ros/launch/velodyne_launch_all_hw.xml +++ b/nebula_ros/launch/velodyne_launch_all_hw.xml @@ -1,42 +1,10 @@ - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/nebula_ros/schema/ARS548.schema.json b/nebula_ros/schema/ARS548.schema.json new file mode 100644 index 000000000..28eeb9907 --- /dev/null +++ b/nebula_ros/schema/ARS548.schema.json @@ -0,0 +1,88 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Radar Continental ARS548 parameters.", + "type": "object", + "definitions": { + "ARS548": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "multicast_ip": { + "$ref": "sub/communication.json#/definitions/multicast_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "configuration_host_port": { + "$ref": "sub/communication.json#/definitions/configuration_host_port" + }, + "configuration_sensor_port": { + "$ref": "sub/communication.json#/definitions/configuration_sensor_port" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "base_frame": { + "$ref": "sub/topic.json#/definitions/base_frame" + }, + "object_frame": { + "$ref": "sub/topic.json#/definitions/object_frame" + }, + "use_sensor_time": { + "$ref": "sub/topic.json#/definitions/use_sensor_time" + }, + "configuration_vehicle_length": { + "$ref": "sub/misc.json#/definitions/configuration_vehicle_length" + }, + "configuration_vehicle_width": { + "$ref": "sub/misc.json#/definitions/configuration_vehicle_width" + }, + "configuration_vehicle_height": { + "$ref": "sub/misc.json#/definitions/configuration_vehicle_height" + }, + "configuration_vehicle_wheelbase": { + "$ref": "sub/misc.json#/definitions/configuration_vehicle_wheelbase" + }, + "sensor_model": { + "$ref": "sub/radar_continental.json#/definitions/sensor_model" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "multicast_ip", + "data_port", + "configuration_host_port", + "configuration_sensor_port", + "launch_hw", + "configuration_vehicle_length", + "configuration_vehicle_width", + "configuration_vehicle_height", + "configuration_vehicle_wheelbase", + "sensor_model" + ] + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/ARS548" + } + }, + "required": ["ros__parameters"], + "additionalProperties": false + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/Bpearl.schema.json b/nebula_ros/schema/Bpearl.schema.json new file mode 100644 index 000000000..f813380fa --- /dev/null +++ b/nebula_ros/schema/Bpearl.schema.json @@ -0,0 +1,89 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Robosense Bpearl parameters.", + "type": "object", + "definitions": { + "Bpearl": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/communication.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + }, + "sensor_model": { + "$ref": "sub/lidar_robosense.json#/definitions/sensor_model" + }, + "return_mode": { + "$ref": "sub/lidar_robosense.json#/definitions/return_mode" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "dual_return_distance_threshold", + "sensor_model", + "return_mode" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/Bpearl" + } + }, + "required": ["ros__parameters"], + "additionalProperties": false + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/Helios.schema.json b/nebula_ros/schema/Helios.schema.json new file mode 100644 index 000000000..a9a21ac04 --- /dev/null +++ b/nebula_ros/schema/Helios.schema.json @@ -0,0 +1,89 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Robosense Helios parameters.", + "type": "object", + "definitions": { + "Helios": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/communication.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + }, + "sensor_model": { + "$ref": "sub/lidar_robosense.json#/definitions/sensor_model" + }, + "return_mode": { + "$ref": "sub/lidar_robosense.json#/definitions/return_mode" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "dual_return_distance_threshold", + "sensor_model", + "return_mode" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/Helios" + } + }, + "required": ["ros__parameters"], + "additionalProperties": false + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/Pandar128E4X.schema.json b/nebula_ros/schema/Pandar128E4X.schema.json new file mode 100644 index 000000000..46aba8e65 --- /dev/null +++ b/nebula_ros/schema/Pandar128E4X.schema.json @@ -0,0 +1,138 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Hesai Pandar128E4X parameters.", + "type": "object", + "definitions": { + "Pandar128E4X": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/lidar_hesai.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_hesai.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_hesai.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/lidar_hesai.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/misc.json#/definitions/return_mode", + "enum": [ + "Last", + "Strongest", + "LastStrongest", + "First", + "LastFirst", + "FirstStrongest", + "Dual" + ] + }, + "ptp_profile": { + "$ref": "sub/communication.json#/definitions/ptp_profile", + "enum": [ + "automotive" + ] + }, + "ptp_domain": { + "$ref": "sub/communication.json#/definitions/ptp_domain" + }, + "ptp_transport_type": { + "$ref": "sub/communication.json#/definitions/ptp_transport_type", + "enum": [ + "L2" + ] + }, + "ptp_switch_type": { + "$ref": "sub/communication.json#/definitions/ptp_switch_type" + }, + "retry_hw": { + "$ref": "sub/hardware.json#/definitions/retry_hw" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode", + "ptp_profile", + "ptp_domain", + "ptp_transport_type", + "ptp_switch_type", + "retry_hw", + "dual_return_distance_threshold" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/Pandar128E4X" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/Pandar40P.schema.json b/nebula_ros/schema/Pandar40P.schema.json new file mode 100644 index 000000000..d41b96797 --- /dev/null +++ b/nebula_ros/schema/Pandar40P.schema.json @@ -0,0 +1,128 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Hesai Pandar40P parameters.", + "type": "object", + "definitions": { + "Pandar40P": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/lidar_hesai.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_hesai.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_hesai.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/lidar_hesai.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/misc.json#/definitions/return_mode", + "enum": [ + "Last", + "Strongest", + "Dual" + ] + }, + "ptp_profile": { + "$ref": "sub/communication.json#/definitions/ptp_profile" + }, + "ptp_domain": { + "$ref": "sub/communication.json#/definitions/ptp_domain" + }, + "ptp_transport_type": { + "$ref": "sub/communication.json#/definitions/ptp_transport_type" + }, + "ptp_switch_type": { + "$ref": "sub/communication.json#/definitions/ptp_switch_type" + }, + "retry_hw": { + "$ref": "sub/hardware.json#/definitions/retry_hw" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode", + "ptp_profile", + "ptp_domain", + "ptp_transport_type", + "ptp_switch_type", + "retry_hw", + "dual_return_distance_threshold" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/Pandar40P" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/Pandar64.schema.json b/nebula_ros/schema/Pandar64.schema.json new file mode 100644 index 000000000..fceec64e4 --- /dev/null +++ b/nebula_ros/schema/Pandar64.schema.json @@ -0,0 +1,124 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Hesai Pandar64 parameters.", + "type": "object", + "definitions": { + "Pandar64": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/lidar_hesai.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_hesai.json#/definitions/sensor_model" + }, + "rotation_speed": { + "$ref": "sub/lidar_hesai.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/misc.json#/definitions/return_mode", + "enum": [ + "Last", + "Strongest", + "Dual" + ] + }, + "ptp_profile": { + "$ref": "sub/communication.json#/definitions/ptp_profile" + }, + "ptp_domain": { + "$ref": "sub/communication.json#/definitions/ptp_domain" + }, + "ptp_transport_type": { + "$ref": "sub/communication.json#/definitions/ptp_transport_type" + }, + "ptp_switch_type": { + "$ref": "sub/communication.json#/definitions/ptp_switch_type" + }, + "retry_hw": { + "$ref": "sub/hardware.json#/definitions/retry_hw" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "rotation_speed", + "return_mode", + "ptp_profile", + "ptp_domain", + "ptp_transport_type", + "ptp_switch_type", + "retry_hw", + "dual_return_distance_threshold" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/Pandar64" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/PandarAT128.schema.json b/nebula_ros/schema/PandarAT128.schema.json new file mode 100644 index 000000000..f74cd9a6f --- /dev/null +++ b/nebula_ros/schema/PandarAT128.schema.json @@ -0,0 +1,150 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Hesai PandarAT128 parameters.", + "type": "object", + "definitions": { + "PandarAT128": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/lidar_hesai.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "correction_file": { + "$ref": "sub/misc.json#/definitions/correction_file" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle", + "default": 30, + "minimum": 30, + "maximum": 150 + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle", + "default": 150, + "minimum": 30, + "maximum": 150 + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase", + "default": 30.0, + "minimum": 30.0, + "maximum": 150.0 + }, + "sensor_model": { + "$ref": "sub/lidar_hesai.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_hesai.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/hardware.json#/definitions/rotation_speed", + "default": 200, + "enum": [ + 200, + 400 + ] + }, + "return_mode": { + "$ref": "sub/misc.json#/definitions/return_mode", + "enum": [ + "Last", + "Strongest", + "LastStrongest", + "First", + "LastFirst", + "FirstStrongest", + "Dual" + ] + }, + "ptp_profile": { + "$ref": "sub/communication.json#/definitions/ptp_profile" + }, + "ptp_domain": { + "$ref": "sub/communication.json#/definitions/ptp_domain" + }, + "ptp_transport_type": { + "$ref": "sub/communication.json#/definitions/ptp_transport_type" + }, + "ptp_switch_type": { + "$ref": "sub/communication.json#/definitions/ptp_switch_type" + }, + "retry_hw": { + "$ref": "sub/hardware.json#/definitions/retry_hw" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "correction_file", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode", + "ptp_profile", + "ptp_domain", + "ptp_transport_type", + "ptp_switch_type", + "retry_hw", + "dual_return_distance_threshold" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/PandarAT128" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/PandarQT128.schema.json b/nebula_ros/schema/PandarQT128.schema.json new file mode 100644 index 000000000..1fcd4fc7c --- /dev/null +++ b/nebula_ros/schema/PandarQT128.schema.json @@ -0,0 +1,132 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Hesai PandarQT128 parameters.", + "type": "object", + "definitions": { + "PandarQT128": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/lidar_hesai.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_hesai.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_hesai.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/lidar_hesai.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/misc.json#/definitions/return_mode", + "enum": [ + "Last", + "Strongest", + "LastStrongest", + "First", + "LastFirst", + "FirstStrongest", + "Dual" + ] + }, + "ptp_profile": { + "$ref": "sub/communication.json#/definitions/ptp_profile" + }, + "ptp_domain": { + "$ref": "sub/communication.json#/definitions/ptp_domain" + }, + "ptp_transport_type": { + "$ref": "sub/communication.json#/definitions/ptp_transport_type" + }, + "ptp_switch_type": { + "$ref": "sub/communication.json#/definitions/ptp_switch_type" + }, + "retry_hw": { + "$ref": "sub/hardware.json#/definitions/retry_hw" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode", + "ptp_profile", + "ptp_domain", + "ptp_transport_type", + "ptp_switch_type", + "retry_hw", + "dual_return_distance_threshold" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/PandarQT128" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/PandarQT64.schema.json b/nebula_ros/schema/PandarQT64.schema.json new file mode 100644 index 000000000..9a683132d --- /dev/null +++ b/nebula_ros/schema/PandarQT64.schema.json @@ -0,0 +1,128 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Hesai PandarQT64 parameters.", + "type": "object", + "definitions": { + "PandarQT64": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/lidar_hesai.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_hesai.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_hesai.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/lidar_hesai.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/misc.json#/definitions/return_mode", + "enum": [ + "Last", + "First", + "Dual" + ] + }, + "ptp_profile": { + "$ref": "sub/communication.json#/definitions/ptp_profile" + }, + "ptp_domain": { + "$ref": "sub/communication.json#/definitions/ptp_domain" + }, + "ptp_transport_type": { + "$ref": "sub/communication.json#/definitions/ptp_transport_type" + }, + "ptp_switch_type": { + "$ref": "sub/communication.json#/definitions/ptp_switch_type" + }, + "retry_hw": { + "$ref": "sub/hardware.json#/definitions/retry_hw" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode", + "ptp_profile", + "ptp_domain", + "ptp_transport_type", + "ptp_switch_type", + "retry_hw", + "dual_return_distance_threshold" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/PandarQT64" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/PandarXT32.schema.json b/nebula_ros/schema/PandarXT32.schema.json new file mode 100644 index 000000000..0f0c022ed --- /dev/null +++ b/nebula_ros/schema/PandarXT32.schema.json @@ -0,0 +1,132 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Hesai PandarXT32 parameters.", + "type": "object", + "definitions": { + "PandarXT32": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/lidar_hesai.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_hesai.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_hesai.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/lidar_hesai.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/misc.json#/definitions/return_mode", + "enum": [ + "Last", + "Strongest", + "LastStrongest", + "First", + "LastFirst", + "FirstStrongest", + "Dual" + ] + }, + "ptp_profile": { + "$ref": "sub/communication.json#/definitions/ptp_profile" + }, + "ptp_domain": { + "$ref": "sub/communication.json#/definitions/ptp_domain" + }, + "ptp_transport_type": { + "$ref": "sub/communication.json#/definitions/ptp_transport_type" + }, + "ptp_switch_type": { + "$ref": "sub/communication.json#/definitions/ptp_switch_type" + }, + "retry_hw": { + "$ref": "sub/hardware.json#/definitions/retry_hw" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode", + "ptp_profile", + "ptp_domain", + "ptp_transport_type", + "ptp_switch_type", + "retry_hw", + "dual_return_distance_threshold" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/PandarXT32" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/PandarXT32M.schema.json b/nebula_ros/schema/PandarXT32M.schema.json new file mode 100644 index 000000000..bcc3a9d36 --- /dev/null +++ b/nebula_ros/schema/PandarXT32M.schema.json @@ -0,0 +1,132 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Hesai PandarXT32M parameters.", + "type": "object", + "definitions": { + "PandarXT32M": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/lidar_hesai.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_hesai.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_hesai.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/lidar_hesai.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/misc.json#/definitions/return_mode", + "enum": [ + "Last", + "Strongest", + "LastStrongest", + "First", + "LastFirst", + "FirstStrongest", + "Dual" + ] + }, + "ptp_profile": { + "$ref": "sub/communication.json#/definitions/ptp_profile" + }, + "ptp_domain": { + "$ref": "sub/communication.json#/definitions/ptp_domain" + }, + "ptp_transport_type": { + "$ref": "sub/communication.json#/definitions/ptp_transport_type" + }, + "ptp_switch_type": { + "$ref": "sub/communication.json#/definitions/ptp_switch_type" + }, + "retry_hw": { + "$ref": "sub/hardware.json#/definitions/retry_hw" + }, + "dual_return_distance_threshold": { + "$ref": "sub/misc.json#/definitions/dual_return_distance_threshold" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "diag_span", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode", + "ptp_profile", + "ptp_domain", + "ptp_transport_type", + "ptp_switch_type", + "retry_hw", + "dual_return_distance_threshold" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/PandarXT32M" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/VLP16.schema.json b/nebula_ros/schema/VLP16.schema.json new file mode 100644 index 000000000..dca0a3aa0 --- /dev/null +++ b/nebula_ros/schema/VLP16.schema.json @@ -0,0 +1,105 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Velodyne VLP16 parameters.", + "type": "object", + "definitions": { + "VLP16": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/communication.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "advanced_diagnostics": { + "$ref": "sub/topic.json#/definitions/advanced_diagnostics" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_velodyne.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_velodyne.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/lidar_velodyne.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/lidar_velodyne.json#/definitions/return_mode" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "advanced_diagnostics", + "diag_span", + "min_range", + "max_range", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/VLP16" + } + }, + "required": ["ros__parameters"], + "additionalProperties": false + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/VLP32.schema.json b/nebula_ros/schema/VLP32.schema.json new file mode 100644 index 000000000..319fa4bb4 --- /dev/null +++ b/nebula_ros/schema/VLP32.schema.json @@ -0,0 +1,105 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Velodyne VLP32 parameters.", + "type": "object", + "definitions": { + "VLP32": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/communication.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "advanced_diagnostics": { + "$ref": "sub/topic.json#/definitions/advanced_diagnostics" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_velodyne.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_velodyne.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/lidar_velodyne.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/lidar_velodyne.json#/definitions/return_mode" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "advanced_diagnostics", + "diag_span", + "min_range", + "max_range", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/VLP32" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/VLS128.schema.json b/nebula_ros/schema/VLS128.schema.json new file mode 100644 index 000000000..82545e946 --- /dev/null +++ b/nebula_ros/schema/VLS128.schema.json @@ -0,0 +1,105 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "LiDAR Velodyne VLS128 parameters.", + "type": "object", + "definitions": { + "VLS128": { + "type": "object", + "properties": { + "host_ip": { + "$ref": "sub/communication.json#/definitions/host_ip" + }, + "sensor_ip": { + "$ref": "sub/communication.json#/definitions/sensor_ip" + }, + "data_port": { + "$ref": "sub/communication.json#/definitions/data_port" + }, + "gnss_port": { + "$ref": "sub/communication.json#/definitions/gnss_port" + }, + "packet_mtu_size": { + "$ref": "sub/communication.json#/definitions/packet_mtu_size" + }, + "launch_hw": { + "$ref": "sub/hardware.json#/definitions/launch_hw" + }, + "setup_sensor": { + "$ref": "sub/hardware.json#/definitions/setup_sensor" + }, + "frame_id": { + "$ref": "sub/topic.json#/definitions/frame_id" + }, + "advanced_diagnostics": { + "$ref": "sub/topic.json#/definitions/advanced_diagnostics" + }, + "diag_span": { + "$ref": "sub/topic.json#/definitions/diag_span" + }, + "min_range": { + "$ref": "sub/misc.json#/definitions/min_range" + }, + "max_range": { + "$ref": "sub/misc.json#/definitions/max_range" + }, + "cloud_min_angle": { + "$ref": "sub/misc.json#/definitions/cloud_min_angle" + }, + "cloud_max_angle": { + "$ref": "sub/misc.json#/definitions/cloud_max_angle" + }, + "scan_phase": { + "$ref": "sub/misc.json#/definitions/scan_phase" + }, + "sensor_model": { + "$ref": "sub/lidar_velodyne.json#/definitions/sensor_model" + }, + "calibration_file": { + "$ref": "sub/lidar_velodyne.json#/definitions/calibration_file" + }, + "rotation_speed": { + "$ref": "sub/lidar_velodyne.json#/definitions/rotation_speed" + }, + "return_mode": { + "$ref": "sub/lidar_velodyne.json#/definitions/return_mode" + } + }, + "required": [ + "host_ip", + "sensor_ip", + "data_port", + "gnss_port", + "packet_mtu_size", + "launch_hw", + "setup_sensor", + "frame_id", + "advanced_diagnostics", + "diag_span", + "min_range", + "max_range", + "cloud_min_angle", + "cloud_max_angle", + "scan_phase", + "sensor_model", + "calibration_file", + "rotation_speed", + "return_mode" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/VLS128" + }, + "additionalProperties": false + }, + "required": ["ros__parameters"] + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/example.schema.template.json b/nebula_ros/schema/example.schema.template.json new file mode 100644 index 000000000..727f358dc --- /dev/null +++ b/nebula_ros/schema/example.schema.template.json @@ -0,0 +1,62 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": " parameters.", + "type": "object", + "definitions": { + "": { + "type": "object", + "properties": { + "example_parameter_1": { + "type": "integer", + "default": 42, + "readOnly": true, + "description": "Exclusive parameter only for this sensor model." + }, + "example_parameter_2": { + "$ref": "sub/communication.json#/definitions/example_parameter_2", + "maximum": 100, + "$comment": "Shared parameter, but needs some changes only for this sensor model." + }, + "example_parameter_3": { + "$ref": "sub/communication.json#/definitions/example_parameter_3" + }, + "example_parameter_4": { + "$ref": "sub/hardware.json#/definitions/example_parameter_4" + }, + "example_parameter_5": { + "$ref": "sub/topic.json#/definitions/example_parameter_5" + }, + "example_parameter_6": { + "$ref": "sub/misc.json#/definitions/example_parameter_6" + }, + "example_parameter_7": { + "$ref": "sub/_.json#/definitions/example_parameter_7" + } + }, + "required": [ + "example_parameter_1", + "example_parameter_2", + "example_parameter_3", + "example_parameter_4", + "example_parameter_5", + "example_parameter_6", + "example_parameter_7" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/" + } + }, + "required": ["ros__parameters"], + "additionalProperties": false + } + }, + "required": ["/**"], + "additionalProperties": false +} diff --git a/nebula_ros/schema/sub/communication.json b/nebula_ros/schema/sub/communication.json new file mode 100644 index 000000000..315c6bfb6 --- /dev/null +++ b/nebula_ros/schema/sub/communication.json @@ -0,0 +1,98 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Communication parameters.", + "type": "object", + "definitions": { + "configuration_host_port": { + "type": "integer", + "default": 42401, + "minimum": 0, + "readOnly": true, + "description": "Host configuration port." + }, + "configuration_sensor_port": { + "type": "integer", + "default": 42101, + "minimum": 0, + "readOnly": true, + "description": "Sensor configuration port." + }, + "data_port": { + "type": "integer", + "default": 2368, + "minimum": 0, + "readOnly": true, + "description": "Sensor data port." + }, + "gnss_port": { + "type": "integer", + "default": 2369, + "minimum": 0, + "readOnly": true, + "description": "GNSS port." + }, + "host_ip": { + "type": "string", + "default": "255.255.255.255", + "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", + "readOnly": true, + "description": "Host IPv4 address." + }, + "multicast_ip": { + "type": "string", + "default": "224.0.0.2", + "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", + "readOnly": true, + "description": "Multicast IPv4 address." + }, + "packet_mtu_size": { + "type": "integer", + "default": 1500, + "minimum": 0, + "readOnly": true, + "description": "Packet MTU size." + }, + "sensor_ip": { + "type": "string", + "default": "192.168.1.201", + "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", + "readOnly": true, + "description": "Sensor IPv4 address." + }, + "ptp_profile": { + "type": "string", + "default": "1588v2", + "enum": [ + "1588v2", + "802.1as", + "automotive" + ], + "description": "PTP profile." + }, + "ptp_domain": { + "type": "integer", + "default": 0, + "minimum": 0, + "maximum": 127, + "description": "PTP domain (PTP operates within a logical scope)." + }, + "ptp_transport_type": { + "type": "string", + "default": "UDP", + "enum": [ + "UDP", + "L2" + ], + "description": "1588v2 supports 'UDP' or 'L2', other profiles only L2 (HW)." + }, + "ptp_switch_type": { + "type": "string", + "default": "TSN", + "enum": [ + "TSN", + "NON_TSN" + ], + "description": "For automotive profile,'TSN' or 'NON_TSN'." + } + } +} \ No newline at end of file diff --git a/nebula_ros/schema/sub/hardware.json b/nebula_ros/schema/sub/hardware.json new file mode 100644 index 000000000..bdc6a59ab --- /dev/null +++ b/nebula_ros/schema/sub/hardware.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Hardware parameters.", + "type": "object", + "definitions": { + "launch_hw": { + "type": "boolean", + "readOnly": false, + "description": "Whether network sockets should be opened or not. If disabled, replay from NebulaPackets messages is enabled automatically." + }, + "rotation_speed": { + "type": "integer", + "description": "Motor RPM, the sensor's internal spin rate." + }, + "sensor_model": { + "type": "string", + "readOnly": true, + "description": "Sensor model." + }, + "setup_sensor": { + "type": "boolean", + "default": true, + "readOnly": true, + "description": "Enable sensor setup on hardware driver." + }, + "retry_hw": { + "type": "boolean", + "default": true, + "description": "Whether TCP connections are retried on failure or the driver should instead exit." + } + } +} \ No newline at end of file diff --git a/nebula_ros/schema/sub/lidar_hesai.json b/nebula_ros/schema/sub/lidar_hesai.json new file mode 100644 index 000000000..ef374da50 --- /dev/null +++ b/nebula_ros/schema/sub/lidar_hesai.json @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Lidar Hesai parameters.", + "type": "object", + "definitions": { + "sensor_model": { + "$ref": "hardware.json#/definitions/sensor_model", + "enum": [ + "Pandar64", + "Pandar40P", + "PandarXT32", + "PandarXT32M", + "PandarQT64", + "PandarQT128", + "Pandar128E4X", + "PandarAT128" + ] + }, + "calibration_file": { + "$ref": "misc.json#/definitions/calibration_file", + "default": "$(find-pkg-share nebula_decoders)/calibration/hesai/$(var sensor_model).csv" + }, + "gnss_port": { + "$ref": "communication.json#/definitions/gnss_port", + "default": 10110, + "minimum": 0 + }, + "rotation_speed": { + "$ref": "hardware.json#/definitions/rotation_speed", + "default": 600, + "minimum": 300, + "maximum": 1200, + "multipleOf": 60 + } + } +} diff --git a/nebula_ros/schema/sub/lidar_robosense.json b/nebula_ros/schema/sub/lidar_robosense.json new file mode 100644 index 000000000..d2a946385 --- /dev/null +++ b/nebula_ros/schema/sub/lidar_robosense.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Lidar Robosense parameters.", + "type": "object", + "definitions": { + "sensor_model": { + "$ref": "hardware.json#/definitions/sensor_model", + "enum": [ + "Helios", + "Bpearl" + ] + }, + "return_mode": { + "$ref": "misc.json#/definitions/return_mode", + "enum": [ + "Dual", + "Strongest", + "Last", + "First" + ] + } + } +} \ No newline at end of file diff --git a/nebula_ros/schema/sub/lidar_velodyne.json b/nebula_ros/schema/sub/lidar_velodyne.json new file mode 100644 index 000000000..933504344 --- /dev/null +++ b/nebula_ros/schema/sub/lidar_velodyne.json @@ -0,0 +1,35 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Lidar Velodyne parameters.", + "type": "object", + "definitions": { + "sensor_model": { + "$ref": "hardware.json#/definitions/sensor_model", + "enum": [ + "VLP16", + "VLP32", + "VLS128" + ] + }, + "calibration_file": { + "$ref": "misc.json#/definitions/calibration_file", + "default": "$(find-pkg-share nebula_decoders)/calibration/velodyne/$(var sensor_model).yaml" + }, + "return_mode": { + "$ref": "misc.json#/definitions/return_mode", + "enum": [ + "SingleStrongest", + "SingleLast", + "Dual", + "SingleFirst" + ] + }, + "rotation_speed": { + "$ref": "hardware.json#/definitions/rotation_speed", + "default": 600, + "minimum": 300, + "maximum": 1200, + "multipleOf": 60 + } + } +} \ No newline at end of file diff --git a/nebula_ros/schema/sub/misc.json b/nebula_ros/schema/sub/misc.json new file mode 100644 index 000000000..e74d461bb --- /dev/null +++ b/nebula_ros/schema/sub/misc.json @@ -0,0 +1,90 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Sensors common parameters.", + "type": "object", + "definitions": { + "calibration_file": { + "type": "string", + "default": "$(find-pkg-share nebula_decoders)/calibration/$(var sensor_vendor)/$(var sensor_model).yaml", + "description": "Sensor calibration file." + }, + "correction_file": { + "type": "string", + "default": "$(find-pkg-share nebula_decoders)/calibration/$(var sensor_vendor)/$(var sensor_model).dat", + "pattern": "^.*\\.dat$", + "description": "Sensor correction file." + }, + "cloud_max_angle": { + "type": "integer", + "default": 360, + "minimum": 0, + "maximum": 360, + "description": "Field of View, end degrees." + }, + "cloud_min_angle": { + "type": "integer", + "default": 0, + "minimum": 0, + "maximum": 360, + "description": "Field of View, start degrees." + }, + "configuration_vehicle_height": { + "type": "number", + "default": 2.5, + "minimum": 0.0, + "readOnly": true, + "description": "New vehicle height." + }, + "configuration_vehicle_length": { + "type": "number", + "default": 4.9, + "minimum": 0.0, + "readOnly": true, + "description": "New vehicle length." + }, + "configuration_vehicle_wheelbase": { + "type": "number", + "default": 2.8, + "minimum": 0.0, + "readOnly": true, + "description": "New vehicle wheelbase." + }, + "configuration_vehicle_width": { + "type": "number", + "default": 1.9, + "minimum": 0.0, + "readOnly": true, + "description": "New vehicle width." + }, + "dual_return_distance_threshold": { + "type": "number", + "default": 0.1, + "minimum": 0.01, + "maximum": 0.5, + "description": "Distance threshold between two neighboring points for dual return mode." + }, + "max_range": { + "type": "number", + "default": 300.0, + "minimum": 0.0, + "description": "Sensor maximum single point range." + }, + "min_range": { + "type": "number", + "default": 0.3, + "minimum": 0.0, + "description": "Sensor minimum single point range." + }, + "return_mode": { + "type": "string", + "description": "Sensor return mode." + }, + "scan_phase": { + "type": "number", + "default": 0.0, + "minimum": 0.0, + "maximum": 360.0, + "description": "Sensor scan phase." + } + } +} \ No newline at end of file diff --git a/nebula_ros/schema/sub/radar_continental.json b/nebula_ros/schema/sub/radar_continental.json new file mode 100644 index 000000000..2ccaff49e --- /dev/null +++ b/nebula_ros/schema/sub/radar_continental.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Radar Continental parameters.", + "type": "object", + "definitions": { + "sensor_model": { + "$ref": "hardware.json#/definitions/sensor_model", + "enum": [ + "ARS548", + "SSR520" + ] + } + } +} \ No newline at end of file diff --git a/nebula_ros/schema/sub/topic.json b/nebula_ros/schema/sub/topic.json new file mode 100644 index 000000000..b3aa90dd0 --- /dev/null +++ b/nebula_ros/schema/sub/topic.json @@ -0,0 +1,44 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Topic parameters.", + "type": "object", + "definitions": { + "advanced_diagnostics": { + "type": "boolean", + "default": false, + "readOnly": true, + "description": "Enable advanced diagnostics." + }, + "base_frame": { + "type": "string", + "default": "base_link", + "readOnly": true, + "description": "Frame with true sensor pose. The final sensor data is transformed by base_frame -> frame_id." + }, + "diag_span": { + "type": "integer", + "default": 1000, + "minimum": 1, + "readOnly": true, + "description": "Diagnostics rate." + }, + "frame_id": { + "type": "string", + "default": "data_link", + "readOnly": true, + "description": "Sensor data frame_id." + }, + "object_frame": { + "type": "string", + "default": "base_link", + "readOnly": true, + "description": "Tracked objects frame." + }, + "use_sensor_time": { + "type": "boolean", + "default": false, + "readOnly": true, + "description": "Use sensor time for published sensor data." + } + } +} \ No newline at end of file diff --git a/nebula_ros/schema/sub/type_vendor.template.json b/nebula_ros/schema/sub/type_vendor.template.json new file mode 100644 index 000000000..53a7ca6be --- /dev/null +++ b/nebula_ros/schema/sub/type_vendor.template.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": " parameters.", + "type": "object", + "definitions": { + "sensor_model": { + "$ref": "hardware.json#/definitions/sensor_model", + "enum": [ + "", + "" + ] + }, + "example_parameter_1": { + "type": "integer", + "default": 42, + "readOnly": true, + "description": "Exclusive parameter only for specific sensor vendor." + }, + "example_parameter_2": { + "$ref": "communication.json#/definitions/example_parameter_2", + "maximum": 100, + "$comment": "Shared parameter, but needs some changes only for this sensor vendor." + }, + "example_parameter_3": { + "$ref": "hardware.json#/definitions/example_parameter_3", + "$comment": "Wrong! If no changes declare parameter in schema/.schema.json." + } + } +} \ No newline at end of file diff --git a/nebula_ros/src/hesai/decoder_wrapper.cpp b/nebula_ros/src/hesai/decoder_wrapper.cpp index 6da62b273..bb18789fe 100644 --- a/nebula_ros/src/hesai/decoder_wrapper.cpp +++ b/nebula_ros/src/hesai/decoder_wrapper.cpp @@ -22,10 +22,10 @@ HesaiDecoderWrapper::HesaiDecoderWrapper( if (config->sensor_model == drivers::SensorModel::HESAI_PANDARAT128) { calibration_file_path_ = - parent_node->declare_parameter("correction_file", "", param_read_write()); + parent_node->declare_parameter("correction_file", param_read_write()); } else { calibration_file_path_ = - parent_node->declare_parameter("calibration_file", "", param_read_write()); + parent_node->declare_parameter("calibration_file", param_read_write()); } auto calibration_result = GetCalibrationData(calibration_file_path_, false); diff --git a/nebula_ros/src/hesai/hesai_ros_wrapper.cpp b/nebula_ros/src/hesai/hesai_ros_wrapper.cpp index 8449bdfe5..4c965aee5 100644 --- a/nebula_ros/src/hesai/hesai_ros_wrapper.cpp +++ b/nebula_ros/src/hesai/hesai_ros_wrapper.cpp @@ -65,68 +65,65 @@ nebula::Status HesaiRosWrapper::DeclareAndGetSensorConfigParams() { nebula::drivers::HesaiSensorConfiguration config; - auto _sensor_model = declare_parameter("sensor_model", "", param_read_only()); + auto _sensor_model = declare_parameter("sensor_model", param_read_only()); config.sensor_model = drivers::SensorModelFromString(_sensor_model); - auto _return_mode = declare_parameter("return_mode", "", param_read_write()); + auto _return_mode = declare_parameter("return_mode", param_read_write()); config.return_mode = drivers::ReturnModeFromStringHesai(_return_mode, config.sensor_model); - config.host_ip = declare_parameter("host_ip", "255.255.255.255", param_read_only()); + config.host_ip = declare_parameter("host_ip", param_read_only()); config.sensor_ip = - declare_parameter("sensor_ip", "192.168.1.201", param_read_only()); - config.data_port = declare_parameter("data_port", 2368, param_read_only()); - config.gnss_port = declare_parameter("gnss_port", 2369, param_read_only()); - config.frame_id = declare_parameter("frame_id", "pandar", param_read_write()); + declare_parameter("sensor_ip", param_read_only()); + config.data_port = declare_parameter("data_port", param_read_only()); + config.gnss_port = declare_parameter("gnss_port", param_read_only()); + config.frame_id = declare_parameter("frame_id", param_read_write()); { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.additional_constraints = "Angle where scans begin (degrees, [0.,360.])"; descriptor.floating_point_range = float_range(0, 360, 0.01); - config.scan_phase = declare_parameter("scan_phase", 0., descriptor); + config.scan_phase = declare_parameter("scan_phase", descriptor); } - config.min_range = declare_parameter("min_range", 0.3, param_read_write()); - config.max_range = declare_parameter("max_range", 300., param_read_write()); - config.packet_mtu_size = declare_parameter("packet_mtu_size", 1500, param_read_only()); + config.min_range = declare_parameter("min_range", param_read_write()); + config.max_range = declare_parameter("max_range", param_read_write()); + config.packet_mtu_size = declare_parameter("packet_mtu_size", param_read_only()); { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); - uint16_t default_value; RCLCPP_DEBUG_STREAM(get_logger(), config.sensor_model); if (config.sensor_model == nebula::drivers::SensorModel::HESAI_PANDARAT128) { descriptor.additional_constraints = "200, 400"; descriptor.integer_range = int_range(200, 400, 200); - default_value = 200; } else { descriptor.additional_constraints = "300, 600, 1200"; descriptor.integer_range = int_range(300, 1200, 300); - default_value = 600; } config.rotation_speed = - declare_parameter("rotation_speed", default_value, descriptor); + declare_parameter("rotation_speed", descriptor); } { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.integer_range = int_range(0, 360, 1); - config.cloud_min_angle = declare_parameter("cloud_min_angle", 0, descriptor); + config.cloud_min_angle = declare_parameter("cloud_min_angle", descriptor); } { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.integer_range = int_range(0, 360, 1); - config.cloud_max_angle = declare_parameter("cloud_max_angle", 360, descriptor); + config.cloud_max_angle = declare_parameter("cloud_max_angle", descriptor); } { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.additional_constraints = "Dual return distance threshold [0.01, 0.5]"; descriptor.floating_point_range = float_range(0.01, 0.5, 0.01); config.dual_return_distance_threshold = - declare_parameter("dual_return_distance_threshold", 0.1, descriptor); + declare_parameter("dual_return_distance_threshold", descriptor); } - auto _ptp_profile = declare_parameter("ptp_profile", "", param_read_only()); + auto _ptp_profile = declare_parameter("ptp_profile", param_read_only()); config.ptp_profile = drivers::PtpProfileFromString(_ptp_profile); - auto _ptp_transport = declare_parameter("ptp_transport_type", "", param_read_only()); + auto _ptp_transport = declare_parameter("ptp_transport_type", param_read_only()); config.ptp_transport_type = drivers::PtpTransportTypeFromString(_ptp_transport); if ( @@ -141,13 +138,13 @@ nebula::Status HesaiRosWrapper::DeclareAndGetSensorConfigParams() set_parameter(rclcpp::Parameter("ptp_transport_type", "L2")); } - auto _ptp_switch = declare_parameter("ptp_switch_type", "", param_read_only()); + auto _ptp_switch = declare_parameter("ptp_switch_type", param_read_only()); config.ptp_switch_type = drivers::PtpSwitchTypeFromString(_ptp_switch); { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_only(); descriptor.integer_range = int_range(0, 127, 1); - config.ptp_domain = declare_parameter("ptp_domain", 0, descriptor); + config.ptp_domain = declare_parameter("ptp_domain", descriptor); } auto new_cfg_ptr = std::make_shared(config); diff --git a/nebula_ros/src/hesai/hw_interface_wrapper.cpp b/nebula_ros/src/hesai/hw_interface_wrapper.cpp index 18da9da83..dd93f7d96 100644 --- a/nebula_ros/src/hesai/hw_interface_wrapper.cpp +++ b/nebula_ros/src/hesai/hw_interface_wrapper.cpp @@ -12,8 +12,8 @@ HesaiHwInterfaceWrapper::HesaiHwInterfaceWrapper( logger_(parent_node->get_logger().get_child("HwInterface")), status_(Status::NOT_INITIALIZED) { - setup_sensor_ = parent_node->declare_parameter("setup_sensor", true, param_read_only()); - bool retry_connect = parent_node->declare_parameter("retry_hw", true, param_read_only()); + setup_sensor_ = parent_node->declare_parameter("setup_sensor", param_read_only()); + bool retry_connect = parent_node->declare_parameter("retry_hw", param_read_only()); status_ = hw_interface_->SetSensorConfiguration( std::static_pointer_cast(config)); diff --git a/nebula_ros/src/hesai/hw_monitor_wrapper.cpp b/nebula_ros/src/hesai/hw_monitor_wrapper.cpp index da1f78794..721da5502 100644 --- a/nebula_ros/src/hesai/hw_monitor_wrapper.cpp +++ b/nebula_ros/src/hesai/hw_monitor_wrapper.cpp @@ -14,7 +14,7 @@ HesaiHwMonitorWrapper::HesaiHwMonitorWrapper( hw_interface_(hw_interface), parent_node_(parent_node) { - diag_span_ = parent_node->declare_parameter("diag_span", 1000, param_read_only()); + diag_span_ = parent_node->declare_parameter("diag_span", param_read_only()); switch (config->sensor_model) { case nebula::drivers::SensorModel::HESAI_PANDARXT32: diff --git a/nebula_ros/src/robosense/hw_monitor_wrapper.cpp b/nebula_ros/src/robosense/hw_monitor_wrapper.cpp index 2ff5d6d78..3cb3cdba6 100644 --- a/nebula_ros/src/robosense/hw_monitor_wrapper.cpp +++ b/nebula_ros/src/robosense/hw_monitor_wrapper.cpp @@ -16,7 +16,7 @@ RobosenseHwMonitorWrapper::RobosenseHwMonitorWrapper( sensor_cfg_ptr_(config) { auto descriptor = param_read_only().set__additional_constraints("milliseconds"); - diag_span_ = parent_->declare_parameter("diag_span", 1000, descriptor); + diag_span_ = parent_->declare_parameter("diag_span", descriptor); } void RobosenseHwMonitorWrapper::InitializeRobosenseDiagnostics() diff --git a/nebula_ros/src/robosense/robosense_ros_wrapper.cpp b/nebula_ros/src/robosense/robosense_ros_wrapper.cpp index 3d2e88caf..3fb2978aa 100644 --- a/nebula_ros/src/robosense/robosense_ros_wrapper.cpp +++ b/nebula_ros/src/robosense/robosense_ros_wrapper.cpp @@ -65,31 +65,31 @@ nebula::Status RobosenseRosWrapper::DeclareAndGetSensorConfigParams() { nebula::drivers::RobosenseSensorConfiguration config; - auto _sensor_model = declare_parameter("sensor_model", "", param_read_only()); + auto _sensor_model = declare_parameter("sensor_model", param_read_only()); config.sensor_model = drivers::SensorModelFromString(_sensor_model); - auto _return_mode = declare_parameter("return_mode", "", param_read_write()); + auto _return_mode = declare_parameter("return_mode", param_read_write()); config.return_mode = drivers::ReturnModeFromStringRobosense(_return_mode); - config.host_ip = declare_parameter("host_ip", "255.255.255.255", param_read_only()); + config.host_ip = declare_parameter("host_ip", param_read_only()); config.sensor_ip = - declare_parameter("sensor_ip", "192.168.1.201", param_read_only()); - config.data_port = declare_parameter("data_port", 2368, param_read_only()); - config.gnss_port = declare_parameter("gnss_port", 2369, param_read_only()); - config.frame_id = declare_parameter("frame_id", "pandar", param_read_write()); + declare_parameter("sensor_ip", param_read_only()); + config.data_port = declare_parameter("data_port", param_read_only()); + config.gnss_port = declare_parameter("gnss_port", param_read_only()); + config.frame_id = declare_parameter("frame_id", param_read_write()); { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.additional_constraints = "Angle where scans begin (degrees, [0.,360.])"; descriptor.floating_point_range = float_range(0, 360, 0.01); - config.scan_phase = declare_parameter("scan_phase", 0., descriptor); + config.scan_phase = declare_parameter("scan_phase", descriptor); } { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.additional_constraints = "Dual return distance threshold [0.01, 0.5]"; descriptor.floating_point_range = float_range(0.01, 0.5, 0.01); config.dual_return_distance_threshold = - declare_parameter("dual_return_distance_threshold", 0.1, descriptor); + declare_parameter("dual_return_distance_threshold", descriptor); } auto new_cfg_ptr = std::make_shared(config); diff --git a/nebula_ros/src/velodyne/decoder_wrapper.cpp b/nebula_ros/src/velodyne/decoder_wrapper.cpp index 9a9c11920..e2fbeb721 100644 --- a/nebula_ros/src/velodyne/decoder_wrapper.cpp +++ b/nebula_ros/src/velodyne/decoder_wrapper.cpp @@ -22,7 +22,7 @@ VelodyneDecoderWrapper::VelodyneDecoderWrapper( } calibration_file_path_ = - parent_node->declare_parameter("calibration_file", "", param_read_write()); + parent_node->declare_parameter("calibration_file", param_read_write()); auto calibration_result = GetCalibrationData(calibration_file_path_); if (!calibration_result.has_value()) { diff --git a/nebula_ros/src/velodyne/hw_interface_wrapper.cpp b/nebula_ros/src/velodyne/hw_interface_wrapper.cpp index 9e350e98c..159f31380 100644 --- a/nebula_ros/src/velodyne/hw_interface_wrapper.cpp +++ b/nebula_ros/src/velodyne/hw_interface_wrapper.cpp @@ -12,7 +12,7 @@ VelodyneHwInterfaceWrapper::VelodyneHwInterfaceWrapper( logger_(parent_node->get_logger().get_child("HwInterfaceWrapper")), status_(Status::NOT_INITIALIZED) { - setup_sensor_ = parent_node->declare_parameter("setup_sensor", true, param_read_only()); + setup_sensor_ = parent_node->declare_parameter("setup_sensor", param_read_only()); hw_interface_->SetLogger( std::make_shared(parent_node->get_logger().get_child("HwInterface"))); diff --git a/nebula_ros/src/velodyne/hw_monitor_wrapper.cpp b/nebula_ros/src/velodyne/hw_monitor_wrapper.cpp index a3bd9e6a5..945a6d650 100644 --- a/nebula_ros/src/velodyne/hw_monitor_wrapper.cpp +++ b/nebula_ros/src/velodyne/hw_monitor_wrapper.cpp @@ -15,9 +15,9 @@ VelodyneHwMonitorWrapper::VelodyneHwMonitorWrapper( parent_node_(parent_node), sensor_configuration_(config) { - diag_span_ = parent_node->declare_parameter("diag_span", 1000, param_read_only()); + diag_span_ = parent_node->declare_parameter("diag_span", param_read_only()); show_advanced_diagnostics_ = - parent_node->declare_parameter("advanced_diagnostics", false, param_read_only()); + parent_node->declare_parameter("advanced_diagnostics", param_read_only()); std::cout << "Get model name and serial." << std::endl; auto str = hw_interface_->GetSnapshot(); diff --git a/nebula_ros/src/velodyne/velodyne_ros_wrapper.cpp b/nebula_ros/src/velodyne/velodyne_ros_wrapper.cpp index 46e7a76b3..a8e8cf5d6 100644 --- a/nebula_ros/src/velodyne/velodyne_ros_wrapper.cpp +++ b/nebula_ros/src/velodyne/velodyne_ros_wrapper.cpp @@ -65,45 +65,45 @@ nebula::Status VelodyneRosWrapper::DeclareAndGetSensorConfigParams() { nebula::drivers::VelodyneSensorConfiguration config; - auto _sensor_model = declare_parameter("sensor_model", "", param_read_only()); + auto _sensor_model = declare_parameter("sensor_model", param_read_only()); config.sensor_model = drivers::SensorModelFromString(_sensor_model); - auto _return_mode = declare_parameter("return_mode", "", param_read_write()); + auto _return_mode = declare_parameter("return_mode", param_read_write()); config.return_mode = drivers::ReturnModeFromString(_return_mode); - config.host_ip = declare_parameter("host_ip", "255.255.255.255", param_read_only()); + config.host_ip = declare_parameter("host_ip", param_read_only()); config.sensor_ip = - declare_parameter("sensor_ip", "192.168.1.201", param_read_only()); - config.data_port = declare_parameter("data_port", 2368, param_read_only()); - config.gnss_port = declare_parameter("gnss_port", 2369, param_read_only()); - config.frame_id = declare_parameter("frame_id", "pandar", param_read_write()); + declare_parameter("sensor_ip", param_read_only()); + config.data_port = declare_parameter("data_port", param_read_only()); + config.gnss_port = declare_parameter("gnss_port", param_read_only()); + config.frame_id = declare_parameter("frame_id", param_read_write()); { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.additional_constraints = "Angle where scans begin (degrees, [0.,360.])"; descriptor.floating_point_range = float_range(0, 360, 0.01); - config.scan_phase = declare_parameter("scan_phase", 0., descriptor); + config.scan_phase = declare_parameter("scan_phase", descriptor); } - config.min_range = declare_parameter("min_range", 0.3, param_read_write()); - config.max_range = declare_parameter("max_range", 300., param_read_write()); - config.packet_mtu_size = declare_parameter("packet_mtu_size", 1500, param_read_only()); + config.min_range = declare_parameter("min_range", param_read_write()); + config.max_range = declare_parameter("max_range", param_read_write()); + config.packet_mtu_size = declare_parameter("packet_mtu_size", param_read_only()); { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.additional_constraints = "from 300 to 1200, in increments of 60"; descriptor.integer_range = int_range(300, 1200, 60); - config.rotation_speed = declare_parameter("rotation_speed", 600, descriptor); + config.rotation_speed = declare_parameter("rotation_speed", descriptor); } { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.integer_range = int_range(0, 360, 1); - config.cloud_min_angle = declare_parameter("cloud_min_angle", 0, descriptor); + config.cloud_min_angle = declare_parameter("cloud_min_angle", descriptor); } { rcl_interfaces::msg::ParameterDescriptor descriptor = param_read_write(); descriptor.integer_range = int_range(0, 360, 1); - config.cloud_max_angle = declare_parameter("cloud_max_angle", 360, descriptor); + config.cloud_max_angle = declare_parameter("cloud_max_angle", descriptor); } auto new_cfg_ptr = std::make_shared(config);