Compute Graph Framework SDK Reference  5.10
dwSelfCalibrationNode.hpp
Go to the documentation of this file.
1
2//
3// Notice
4// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
5// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
6// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
7// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
8//
9// NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
10// information or for any infringement of patents or other rights of third parties that may
11// result from its use. No license is granted by implication or otherwise under any patent
12// or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
13// expressly authorized by NVIDIA. Details are subject to change without notice.
14// This code supersedes and replaces all information previously supplied.
15// NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
16// components in life support devices or systems without express written approval of
17// NVIDIA CORPORATION & AFFILIATES.
18//
19// SPDX-FileCopyrightText: Copyright (c) 2019-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
20// SPDX-License-Identifier: LicenseRef-NvidiaProprietary
21//
22// NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
23// property and proprietary rights in and to this material, related
24// documentation and any modifications thereto. Any use, reproduction,
25// disclosure or distribution of this material and related documentation
26// without an express license agreement from NVIDIA CORPORATION or
27// its affiliates is strictly prohibited.
28//
30
31#ifndef DWFRAMEWORK_DWNODES_SELFCALIBRATION_DWSELFCALIBRATIONNODE_DWSELFCALIBRATIONNODE_HPP_
32#define DWFRAMEWORK_DWNODES_SELFCALIBRATION_DWSELFCALIBRATIONNODE_DWSELFCALIBRATIONNODE_HPP_
33
34#include <dw/calibration/engine/Engine.h>
35#include <dw/calibration/engine/camera/CameraParamsExtra.h>
36#include <dwcgf/node/Node.hpp>
39#include <dwcgf/port/Port.hpp>
54
55namespace dw
56{
57namespace framework
58{
59
61{
64 uint32_t sensorIndex;
68 uint32_t calibrationSignals; // use uint32_t cause enum bitwise-or is not supported by codegen
69 dwCameraModelHandle_t cameraHandle;
70 dwCameraProperties cameraProps;
71 cudaStream_t cudaStream;
72};
73
75{
78 uint32_t sensorIndex;
80 dwRadarProperties radarProps;
81 cudaStream_t cudaStream;
82};
83
85{
88 uint32_t sensorIndex;
89 dwLidarProperties lidarProps;
90 cudaStream_t cudaStream;
91};
92
94{
95 dwRigHandle_t rigHandle;
97
101
108};
109
114{
115public:
116 static constexpr char LOG_TAG[] = "dwSelfCalibrationNode";
117
118 static constexpr auto describeInputPorts()
119 {
121 DW_DESCRIBE_PORT(dwEgomotionStateHandle_t, "EGOMOTION_STATE_ODO_IMU"_sv),
122 DW_DESCRIBE_PORT(dwVehicleIOState, "VEHICLE_IO_STATE"_sv),
123 DW_DESCRIBE_PORT(dwVehicleIONonSafetyState, "VEHICLE_IO_NON_SAFETY_STATE"_sv),
124 DW_DESCRIBE_PORT_ARRAY(dwFeatureHistoryArray, SELF_CALIBRATION_NODE_MAX_CAMERAS, "CAMERA_FEATURE_DETECTION"_sv, PortBinding::OPTIONAL),
127 DW_DESCRIBE_PORT_ARRAY(dwRadarDopplerMotion, SELF_CALIBRATION_NODE_MAX_RADARS, "RADAR_DOPPLER_MOTION"_sv, PortBinding::OPTIONAL),
130 };
131 static constexpr auto describeOutputPorts()
132 {
139 DW_DESCRIBE_PORT(void*, "MODULE_HANDLE"_sv, PortBinding::REQUIRED));
140 };
141
142 static constexpr auto describePasses()
143 {
145 describePass("SETUP"_sv, DW_PROCESSOR_TYPE_CPU),
146 describePass("PROCESS_VIO"_sv, DW_PROCESSOR_TYPE_CPU),
147 describePass("PROCESS_VEHICLE_IO_NON_SAFETY_STATE"_sv, DW_PROCESSOR_TYPE_CPU),
148 describePass("PROCESS_CAMERA_GPU_ASYNC"_sv, DW_PROCESSOR_TYPE_GPU),
149 describePass("PROCESS_CAMERA_CPU_SYNC"_sv, DW_PROCESSOR_TYPE_CPU),
150 describePass("PROCESS_RADAR"_sv, DW_PROCESSOR_TYPE_CPU),
151 describePass("PROCESS_LIDAR_GPU_ASYNC"_sv, DW_PROCESSOR_TYPE_GPU),
152 describePass("PROCESS_LIDAR_CPU_SYNC"_sv, DW_PROCESSOR_TYPE_CPU),
153 describePass("TEARDOWN"_sv, DW_PROCESSOR_TYPE_CPU));
154 };
155
156 static std::unique_ptr<dwSelfCalibrationNode> create(ParameterProvider& provider);
157
158 static constexpr auto describeParameters()
159 {
160 return describeConstructorArguments<dwSelfCalibrationNodeParam, dwContextHandle_t>(
163 dwRigHandle_t,
166 bool,
167 "enforceDependencies"_sv,
170 bool,
171 "calibrateVehicle"_sv,
174 int32_t,
175 "radarSensorWheelCalibration"_sv,
177
179 size_t,
180 "cameraSensorIndices"_sv,
183 size_t,
184 "cameraSensorStreamIndices"_sv,
187 bool,
188 "cameraEnabledMask"_sv,
191 uint32_t,
192 "cameraCalibrationMethod"_sv,
195 uint32_t,
196 "cameraCalibrationSignals"_sv,
198
200 size_t,
201 "radarSensorIndices"_sv,
204 size_t,
205 "radarSensorStreamIndices"_sv,
208 bool,
209 "radarEnabledMask"_sv,
211
213 size_t,
214 "lidarSensorIndices"_sv,
217 size_t,
218 "lidarSensorStreamIndices"_sv,
221 bool,
222 "lidarEnabledMask"_sv,
224
226 uint32_t,
227 "channelFifoSize"_sv,
231 dwContextHandle_t)));
232 }
233
234 dwSelfCalibrationNode(const dwSelfCalibrationNodeParam& param, const dwContextHandle_t ctx);
235};
236} // namespace framework
237} // namespace dw
238
239#endif //DWFRAMEWORK_DWNODES_SELFCALIBRATION_DWSELFCALIBRATIONNODE_DWSELFCALIBRATIONNODE_HPP_
#define DW_DESCRIBE_ABSTRACT_ARRAY_PARAMETER(TYPE_NAME, args...)
#define DW_DESCRIBE_UNNAMED_PARAMETER(TYPE_NAME, args...)
#define DW_DESCRIBE_PARAMETER(TYPE_NAME, args...)
#define DW_DESCRIBE_PORT(TYPE_NAME, args...)
#define DW_DESCRIBE_PORT_ARRAY(TYPE_NAME, ARRAYSIZE, args...)
The interface to access parameter values identified by name and/or (semantic) type.
static std::unique_ptr< dwSelfCalibrationNode > create(ParameterProvider &provider)
dwSelfCalibrationNode(const dwSelfCalibrationNodeParam &param, const dwContextHandle_t ctx)
dwSelfCalibrationNodeCameraParams cameraParams[SELF_CALIBRATION_NODE_MAX_CAMERAS]
dwSelfCalibrationNodeRadarParams radarParams[SELF_CALIBRATION_NODE_MAX_RADARS]
constexpr auto describePortCollection(Args &&... args)
constexpr std::tuple< dw::core::StringView, dwProcessorType > describePass(dw::core::StringView const &&name, dwProcessorType processorType)
static constexpr uint8_t SELF_CALIBRATION_NODE_MAX_LIDARS
constexpr auto describeConstructorArgument(const Args &&... args)
dwSelfCalibrationNodeLidarParams lidarParams[SELF_CALIBRATION_NODE_MAX_LIDARS]
static constexpr uint8_t SELF_CALIBRATION_NODE_MAX_CAMERAS
constexpr auto describePassCollection(const Args &&... args)
static constexpr uint8_t SELF_CALIBRATION_NODE_MAX_RADARS
Definition: Buffer.hpp:40