You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add object tracking to RadarTrackObjectsNode (#288)
* Add more details in documentation for object tracking node.
* Remove not necessary overload.
* Update type traits on RunningStats to be more precise.
* Add covariance calculation. Add RunningStats specialization for Vector types.
* Change function signature in RunningStats specialization.
* Add prototype implementation of object tracking.
* Add minor comments to RunningStats.
* Move object position prediction to node. Fix predicted position calculation. Update prediction to include acceleration if available. Add getter for samples count to RunningStats.
* Update velocity calculation. Add assert on delta time and object ID.
* Fix object acceleration calculation.
* Add object orientation and orientation rate calculation.
* Make minor fixes to types in track objects node.
* Fix typos and add missing include in RunningStats header.
* Add axis-aligned bounding box implementation.
* Add aliases and staic asserts for aabb.
* Add max prediction time frame - how long object can be predicted until declared lost.
* Add option to reset aabb.
* Add keeping orientation from previous frame, when object did not move.
* Add operator overloads to Aabb. Fix field names mistake.
* Fix Aabb members naming.
* Update RadarPostprocessPointsNode to provide cluster (detection) aabbs.
* Add handling detection (and object) aabbs to RadarTrackObjectsNode.
* Rename predictionSensitivity parameter to maxMatchingDistance.
* Add remaining tracking parameters to API.
* Add kinematic object tracking test. Make object tracking tests more clear.
* Add runtime object tracking test for rviz2 preview, skipped by default.
* Add linear and angular velocity getters to IPointsNode. Add relative velocity and relative acceleration calculation to RadarTrackObjectsNode.
* Make changes according to review for #288.
---------
Signed-off-by: Paweł Liberadzki <[email protected]>
Copy file name to clipboardExpand all lines: include/rgl/api/core.h
+7-3Lines changed: 7 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -851,19 +851,23 @@ RGL_API rgl_status_t rgl_node_points_radar_postprocess(rgl_node_t* node, const r
851
851
* Creates or modifies RadarTrackObjectsNode.
852
852
* The Node takes radar detections point cloud as input (from rgl_node_points_radar_postprocess), groups detections into objects based on given thresholds (node parameters),
853
853
* and calculates various characteristics of these objects. This Node is intended to be connected to object list publishing node (from rgl_node_publish_udp_objectlist).
854
-
* The output from this Node is in the form of a point cloud, where point XYZ coordinates are tracked objects positions.
854
+
* The output from this Node is in the form of a point cloud, where point XYZ coordinates are tracked objects positions. Additionally, cloud points have tracked object IDs.
855
855
* Note that for correct calculation and publishing some of object characteristics (e.g. velocity) user has to call rgl_scene_set_time for current scene.
856
856
* Graph input: point cloud, containing RGL_FIELD_DISTANCE_F32, RGL_FIELD_AZIMUTH_F32, RGL_FIELD_ELEVATION_F32 and RGL_FIELD_RADIAL_SPEED_F32
857
-
* Graph output: point cloud
857
+
* Graph output: point cloud, contains only XYZ_VEC3_F32 for tracked object positions and ENTITY_ID_I32 for their IDs.
858
858
* @param node If (*node) == nullptr, a new Node will be created. Otherwise, (*node) will be modified.
859
859
* @param object_distance_threshold The maximum distance between a radar detection and other closest detection classified as the same tracked object (in meters).
860
860
* @param object_azimuth_threshold The maximum azimuth difference between a radar detection and other closest detection classified as the same tracked object (in radians).
861
861
* @param object_elevation_threshold The maximum elevation difference between a radar detection and other closest detection classified as the same tracked object (in radians).
862
862
* @param object_radial_speed_threshold The maximum radial speed difference between a radar detection and other closest detection classified as the same tracked object (in meters per second).
863
+
* @param max_matching_distance The maximum distance between predicted (based on previous frame) and newly detected object position to match objects between frames (in meters).
864
+
* @param max_prediction_time_frame The maximum time that object state can be predicted until it will be declared lost unless measured again (in milliseconds).
865
+
* @param movement_sensitivity The maximum position change for an object to be qualified as stationary (in meters).
0 commit comments