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 initial support for object classification in RadarTrackObjectsNode.
Signed-off-by: Paweł Liberadzki <pawel.liberadzki@robotec.ai>
* Add API call for setting radar object classes.
Signed-off-by: Paweł Liberadzki <pawel.liberadzki@robotec.ai>
* Update radar track objects tests to handle object ids.
Signed-off-by: Paweł Liberadzki <pawel.liberadzki@robotec.ai>
* Add safety static_cast.
Signed-off-by: Paweł Liberadzki <pawel.liberadzki@robotec.ai>
* Make fixes based on the review.
Signed-off-by: Paweł Liberadzki <pawel.liberadzki@robotec.ai>
* Prevent underflow in loop condition (#308)
* Add handling nan radial speeds in radar nodes (#309)
Add handling nan radial speeds in radar postprocess and object tracking nodes.
Signed-off-by: Paweł Liberadzki <pawel.liberadzki@robotec.ai>
* Radar object classification improvements (#310)
* Change array type in fieldData to be compatible with all RGL nodes
* Use velocities from raytrace instead of calculating it again (better accuracy)
* Do not output predicted objects
* Restore the conditions of merging detections into objects
* Fix required fields; skip test that fails
* Require detections in world frame to predict objects properly
* Fix displacementFromSkinning calculation
* Fix test
* Put all objects to the output
* Fix deltaTime calculation
* Fix test
* Fix time
* Fix passing time to new objects
* Add comment on skinning fix
* Fix coordinate system of width & length
* Fix bounding boxes
* Fix maxClassificationProbability
* Change unit of movement_sensitivity
---------
Signed-off-by: Paweł Liberadzki <pawel.liberadzki@robotec.ai>
Co-authored-by: Maja Nagarnowicz <72594569+nebraszka@users.noreply.github.com>
Co-authored-by: Mateusz Szczygielski <112629916+msz-rai@users.noreply.github.com>
* Represents on-GPU Mesh that can be referenced by Entities on the Scene.
156
172
* Each Mesh can be referenced by any number of Entities on different Scenes.
@@ -852,10 +868,12 @@ RGL_API rgl_status_t rgl_node_points_radar_postprocess(rgl_node_t* node, const r
852
868
/**
853
869
* Creates or modifies RadarTrackObjectsNode.
854
870
* 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),
855
-
* 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).
856
-
* 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.
857
-
* 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.
858
-
* Graph input: point cloud, containing RGL_FIELD_DISTANCE_F32, RGL_FIELD_AZIMUTH_F32, RGL_FIELD_ELEVATION_F32 and RGL_FIELD_RADIAL_SPEED_F32
871
+
* and calculates various characteristics of these objects. The output from this Node is in the form of a point cloud, where point XYZ coordinates are tracked objects positions.
872
+
* Additionally, cloud points have tracked object IDs. Note that for correct calculation and publishing some of object characteristics (e.g. velocity) user has to call
873
+
* rgl_scene_set_time for current scene.
874
+
* The node expects input in world frame to be able to perform prediction properly.
875
+
* Object's orientation, length, and width calculations assume the forward axis is Z and the left axis is -X.
876
+
* Graph input: point cloud, containing additionally RGL_FIELD_DISTANCE_F32, RGL_FIELD_AZIMUTH_F32, RGL_FIELD_ELEVATION_F32, RGL_FIELD_RADIAL_SPEED_F32 and ENTITY_ID_I32.
859
877
* Graph output: point cloud, contains only XYZ_VEC3_F32 for tracked object positions and ENTITY_ID_I32 for their IDs.
860
878
* @param node If (*node) == nullptr, a new Node will be created. Otherwise, (*node) will be modified.
861
879
* @param object_distance_threshold The maximum distance between a radar detection and other closest detection classified as the same tracked object (in meters).
@@ -864,13 +882,26 @@ RGL_API rgl_status_t rgl_node_points_radar_postprocess(rgl_node_t* node, const r
864
882
* @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).
865
883
* @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).
866
884
* @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).
867
-
* @param movement_sensitivity The maximum position change for an object to be qualified as stationary (in meters).
885
+
* @param movement_sensitivity The maximum velocity for an object to be qualified as stationary (in meters per seconds).
* Modifies RadarTrackObjectsNode to set entity ids to radar object classes mapping.
894
+
* This is necessary to call for RadarTrackObjectsNode to classify tracked objects correctly. If not set, objects will be classified as RGL_RADAR_CLASS_UNKNOWN by default.
895
+
* Note that entity can only belong to a single class - passing entity id multiple times in entity_ids array will result in the last version to be assigned. There is no
896
+
* limit on how many entities can have the same class.
897
+
* @param node RadarTrackObjectsNode to modify.
898
+
* @param entity_ids Array of RGL entity ids.
899
+
* @param object_classes Array of radar object classes.
900
+
* @param count Number of elements in entity_ids and object_classes arrays.
0 commit comments