Skip to content

Commit 30d28fa

Browse files
ogrexisseitzk
authored andcommitted
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (autowarefoundation#12013)
* fix(multi_object_tracker): add setOrientationAvailability method to trackers - Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability. - Updated TrackerBase to include a default implementation of setOrientationAvailability. - Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types. Signed-off-by: lei.gu <lei.gu@tier4.jp> * refactor(tracker_base): remove unused tracker includes - Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. Signed-off-by: lei.gu <lei.gu@tier4.jp> --------- Signed-off-by: lei.gu <lei.gu@tier4.jp>
1 parent 47e1f78 commit 30d28fa

File tree

6 files changed

+25
-0
lines changed

6 files changed

+25
-0
lines changed

perception/autoware_multi_object_tracker/include/autoware/multi_object_tracker/tracker/model/multiple_vehicle_tracker.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ class MultipleVehicleTracker : public Tracker
4646
bool getTrackedObject(
4747
const rclcpp::Time & time, types::DynamicObject & object,
4848
const bool to_publish = false) const override;
49+
void setOrientationAvailability(
50+
const types::OrientationAvailability & orientation_availability) override;
4951
virtual ~MultipleVehicleTracker() {}
5052
};
5153

perception/autoware_multi_object_tracker/include/autoware/multi_object_tracker/tracker/model/pedestrian_and_bicycle_tracker.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ class PedestrianAndBicycleTracker : public Tracker
4545
bool getTrackedObject(
4646
const rclcpp::Time & time, types::DynamicObject & object,
4747
const bool to_publish = false) const override;
48+
void setOrientationAvailability(
49+
const types::OrientationAvailability & orientation_availability) override;
4850
virtual ~PedestrianAndBicycleTracker() {}
4951
};
5052

perception/autoware_multi_object_tracker/include/autoware/multi_object_tracker/tracker/model/tracker_base.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,12 @@ class Tracker
186186
double computeAdaptiveThreshold(
187187
double base_threshold, double fallback_threshold, const AdaptiveThresholdCache & cache,
188188
const std::optional<geometry_msgs::msg::Pose> & ego_pose) const;
189+
190+
virtual void setOrientationAvailability(
191+
const types::OrientationAvailability & orientation_availability)
192+
{
193+
object_.kinematics.orientation_availability = orientation_availability;
194+
}
189195
};
190196

191197
} // namespace autoware::multi_object_tracker

perception/autoware_multi_object_tracker/lib/tracker/model/multiple_vehicle_tracker.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,11 @@ bool MultipleVehicleTracker::getTrackedObject(
6666
return true;
6767
}
6868

69+
void MultipleVehicleTracker::setOrientationAvailability(
70+
const types::OrientationAvailability & orientation_availability)
71+
{
72+
normal_vehicle_tracker_.setOrientationAvailability(orientation_availability);
73+
big_vehicle_tracker_.setOrientationAvailability(orientation_availability);
74+
}
75+
6976
} // namespace autoware::multi_object_tracker

perception/autoware_multi_object_tracker/lib/tracker/model/pedestrian_and_bicycle_tracker.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,11 @@ bool PedestrianAndBicycleTracker::getTrackedObject(
6464
return true;
6565
}
6666

67+
void PedestrianAndBicycleTracker::setOrientationAvailability(
68+
const types::OrientationAvailability & orientation_availability)
69+
{
70+
pedestrian_tracker_.setOrientationAvailability(orientation_availability);
71+
bicycle_tracker_.setOrientationAvailability(orientation_availability);
72+
}
73+
6774
} // namespace autoware::multi_object_tracker

perception/autoware_multi_object_tracker/lib/tracker/model/tracker_base.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ bool Tracker::updateWithMeasurement(
162162
// availability to SIGN_UNKNOWN
163163
object_.kinematics.orientation_availability = types::OrientationAvailability::SIGN_UNKNOWN;
164164
}
165+
setOrientationAvailability(object_.kinematics.orientation_availability);
165166

166167
// Update object
167168
measure(object, measurement_time, channel_info);

0 commit comments

Comments
 (0)