usdot-fhwa-stol / carma-platform

CARMA Platform is built on robot operating system (ROS) and utilizes open source software (OSS) that enables Cooperative Driving Automation (CDA) features to allow Automated Driving Systems to interact and cooperate with infrastructure and other vehicles through communication. Doxygen Source Code Documentation :
https://usdot-fhwa-stol.github.io/documentation/carma-platform/
403 stars 123 forks source link

[cooperative perception] Track update in multiple object tracer node has no effect #2213

Closed adamlm closed 10 months ago

adamlm commented 10 months ago

Summary

The track update stage of the multiple object tracker node's pipeline:

const mot::HasAssociation has_association{associations};
for (auto & track : track_manager_.get_all_tracks()) {
  if (has_association(track)) {
    const auto detection_uuids{associations.at(get_uuid(track))};
    const auto first_detection{detection_map[detection_uuids.at(0)]};
    track = std::visit(mot::covariance_intersection_visitor, track, first_detection);
  }
}

Has no effect because the get_all_tracks() function returns by value. There does not appear to be any functionality that lets a user modify a track_manager_'s track.

Commit

develop

Expected Behavior

The track updates in the pipeline persist across pipeline executions

Actual Behavior

The track updates have no effect because the track_manager_ does not have a way to update track states.

Steps to Reproduce the Actual Behavior

  1. Observe code in multiple_object_tracker_component.cpp
  2. Observe interface for multiple_object_tracking::FixedThresholdTrackManager

Related Work

CDAR-595

MishkaMN commented 10 months ago

Resolved with above PR