Skip to content

Commit 39ac546

Browse files
committed
fix: add time range checks
Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
1 parent 07536f2 commit 39ac546

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

perception/multi_object_tracker/src/processor/input_manager.cpp

+18-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,14 @@ void InputStream::getObjectsOlderThan(
150150
const rclcpp::Time & object_latest_time, const rclcpp::Time & object_oldest_time,
151151
ObjectsList & objects_list)
152152
{
153-
assert(object_latest_time.nanoseconds() > object_oldest_time.nanoseconds());
153+
if (object_latest_time < object_oldest_time) {
154+
RCLCPP_WARN(
155+
node_.get_logger(),
156+
"InputManager::getObjectsOlderThan %s: Invalid object time interval, object_latest_time: %f, "
157+
"object_oldest_time: %f",
158+
long_name_.c_str(), object_latest_time.seconds(), object_oldest_time.seconds());
159+
return;
160+
}
154161

155162
for (const auto & object : objects_que_) {
156163
const rclcpp::Time object_time = rclcpp::Time(object.header.stamp);
@@ -251,6 +258,16 @@ void InputManager::getObjectTimeInterval(
251258
object_oldest_time = object_oldest_time < latest_exported_object_time_
252259
? latest_exported_object_time_
253260
: object_oldest_time;
261+
262+
// check the object time interval is valid
263+
if (object_oldest_time > object_latest_time) {
264+
RCLCPP_WARN(
265+
node_.get_logger(),
266+
"InputManager::getObjectTimeInterval Invalid object time interval, object_latest_time: %f, "
267+
"object_oldest_time: %f",
268+
(now - object_latest_time).seconds(), (now - object_oldest_time).seconds());
269+
object_oldest_time = object_latest_time - rclcpp::Duration::from_seconds(1.0);
270+
}
254271
}
255272

256273
void InputManager::optimizeTimings()

0 commit comments

Comments
 (0)