Skip to content

Commit 53548ad

Browse files
committed
Merge branch 'feat/cuda_blackboard_centerpoint' of github.com:knzo25/autoware.universe into feat/cuda_blackboard_centerpoint
2 parents 74c884d + e0bfd82 commit 53548ad

37 files changed

+834
-528
lines changed

perception/autoware_multi_object_tracker/CMakeLists.txt

-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ set(${PROJECT_NAME}_lib
4141
lib/tracker/model/tracker_base.cpp
4242
lib/tracker/model/vehicle_tracker.cpp
4343
lib/tracker/model/multiple_vehicle_tracker.cpp
44-
lib/tracker/model/bicycle_tracker.cpp
4544
lib/tracker/model/pedestrian_tracker.cpp
4645
lib/tracker/model/pedestrian_and_bicycle_tracker.cpp
4746
lib/tracker/model/unknown_tracker.cpp

perception/autoware_multi_object_tracker/config/input_channels.param.yaml

+66-12
Original file line numberDiff line numberDiff line change
@@ -3,80 +3,134 @@
33
input_channels:
44
detected_objects:
55
topic: "/perception/object_recognition/detection/objects"
6-
can_spawn_new_tracker: true
76
optional:
87
name: "detected_objects"
98
short_name: "all"
109
# LIDAR - rule-based
1110
lidar_clustering:
1211
topic: "/perception/object_recognition/detection/clustering/objects"
13-
can_spawn_new_tracker: true
12+
flags:
13+
can_spawn_new_tracker: true
14+
can_trust_existence_probability: false
15+
can_trust_extension: false
16+
can_trust_classification: false
17+
can_trust_orientation: false
1418
optional:
1519
name: "clustering"
1620
short_name: "Lcl"
1721
# LIDAR - DNN
1822
lidar_centerpoint:
1923
topic: "/perception/object_recognition/detection/centerpoint/objects"
20-
can_spawn_new_tracker: true
24+
flags:
25+
can_spawn_new_tracker: true
26+
can_trust_existence_probability: true
27+
can_trust_extension: true
28+
can_trust_classification: true
29+
can_trust_orientation: true
2130
optional:
2231
name: "centerpoint"
2332
short_name: "Lcp"
2433
lidar_centerpoint_validated:
2534
topic: "/perception/object_recognition/detection/centerpoint/validation/objects"
26-
can_spawn_new_tracker: true
35+
flags:
36+
can_spawn_new_tracker: true
37+
can_trust_existence_probability: true
38+
can_trust_extension: true
39+
can_trust_classification: true
40+
can_trust_orientation: true
2741
optional:
2842
name: "centerpoint"
2943
short_name: "Lcp"
3044
lidar_apollo:
3145
topic: "/perception/object_recognition/detection/apollo/objects"
32-
can_spawn_new_tracker: true
46+
flags:
47+
can_spawn_new_tracker: true
48+
can_trust_existence_probability: true
49+
can_trust_extension: true
50+
can_trust_classification: true
51+
can_trust_orientation: true
3352
optional:
3453
name: "apollo"
3554
short_name: "Lap"
3655
lidar_apollo_validated:
3756
topic: "/perception/object_recognition/detection/apollo/validation/objects"
38-
can_spawn_new_tracker: true
57+
flags:
58+
can_spawn_new_tracker: true
59+
can_trust_existence_probability: true
60+
can_trust_extension: true
61+
can_trust_classification: true
62+
can_trust_orientation: true
3963
optional:
4064
name: "apollo"
4165
short_name: "Lap"
4266
# LIDAR-CAMERA - DNN
4367
# cspell:ignore lidar_pointpainting pointpainting
4468
lidar_pointpainting:
4569
topic: "/perception/object_recognition/detection/pointpainting/objects"
46-
can_spawn_new_tracker: true
70+
flags:
71+
can_spawn_new_tracker: true
72+
can_trust_existence_probability: true
73+
can_trust_extension: true
74+
can_trust_classification: true
75+
can_trust_orientation: true
4776
optional:
4877
name: "pointpainting"
4978
short_name: "Lpp"
5079
lidar_pointpainting_validated:
5180
topic: "/perception/object_recognition/detection/pointpainting/validation/objects"
52-
can_spawn_new_tracker: true
81+
flags:
82+
can_spawn_new_tracker: true
83+
can_trust_existence_probability: true
84+
can_trust_extension: true
85+
can_trust_classification: true
86+
can_trust_orientation: true
5387
optional:
5488
name: "pointpainting"
5589
short_name: "Lpp"
5690
# CAMERA-LIDAR
5791
camera_lidar_fusion:
5892
topic: "/perception/object_recognition/detection/clustering/camera_lidar_fusion/objects"
59-
can_spawn_new_tracker: true
93+
flags:
94+
can_spawn_new_tracker: true
95+
can_trust_existence_probability: false
96+
can_trust_extension: false
97+
can_trust_classification: true
98+
can_trust_orientation: false
6099
optional:
61100
name: "camera_lidar_fusion"
62101
short_name: "CLf"
63102
# CAMERA-LIDAR+TRACKER
64103
detection_by_tracker:
65104
topic: "/perception/object_recognition/detection/detection_by_tracker/objects"
66-
can_spawn_new_tracker: false
105+
flags:
106+
can_spawn_new_tracker: false
107+
can_trust_existence_probability: false
108+
can_trust_extension: false
109+
can_trust_classification: false
110+
can_trust_orientation: false
67111
optional:
68112
name: "detection_by_tracker"
69113
short_name: "dbT"
70114
# RADAR
71115
radar:
72116
topic: "/sensing/radar/detected_objects"
73-
can_spawn_new_tracker: true
117+
flags:
118+
can_spawn_new_tracker: true
119+
can_trust_existence_probability: true
120+
can_trust_extension: false
121+
can_trust_classification: true
122+
can_trust_orientation: false
74123
optional:
75124
name: "radar"
76125
short_name: "R"
77126
radar_far:
78127
topic: "/perception/object_recognition/detection/radar/far_objects"
79-
can_spawn_new_tracker: true
128+
flags:
129+
can_spawn_new_tracker: true
130+
can_trust_existence_probability: true
131+
can_trust_extension: false
132+
can_trust_classification: true
133+
can_trust_orientation: false
80134
optional:
81135
name: "radar_far"
82136
short_name: "Rf"

perception/autoware_multi_object_tracker/include/autoware/multi_object_tracker/object_model/types.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ struct InputChannel
5050
std::string long_name = "Detected Object"; // full name of the detection
5151
std::string short_name = "DET"; // abbreviation of the name
5252
bool is_spawn_enabled = true; // enable spawn of the object
53+
bool trust_existence_probability = true; // trust object existence probability
54+
bool trust_extension = true; // trust object extension
55+
bool trust_classification = true; // trust object classification
56+
bool trust_orientation = true; // trust object orientation(yaw)
5357
};
5458

5559
// object model

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

-54
This file was deleted.

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ class MultipleVehicleTracker : public Tracker
3939
MultipleVehicleTracker(const rclcpp::Time & time, const types::DynamicObject & object);
4040

4141
bool predict(const rclcpp::Time & time) override;
42-
bool measure(const types::DynamicObject & object, const rclcpp::Time & time) override;
42+
bool measure(
43+
const types::DynamicObject & object, const rclcpp::Time & time,
44+
const types::InputChannel & channel_info) override;
4345
bool getTrackedObject(const rclcpp::Time & time, types::DynamicObject & object) const override;
4446
virtual ~MultipleVehicleTracker() {}
4547
};

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ class PassThroughTracker : public Tracker
3737
public:
3838
PassThroughTracker(const rclcpp::Time & time, const types::DynamicObject & object);
3939
bool predict(const rclcpp::Time & time) override;
40-
bool measure(const types::DynamicObject & object, const rclcpp::Time & time) override;
40+
bool measure(
41+
const types::DynamicObject & object, const rclcpp::Time & time,
42+
const types::InputChannel & channel_info) override;
4143
bool getTrackedObject(const rclcpp::Time & time, types::DynamicObject & object) const override;
4244
};
4345

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

+5-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
#define AUTOWARE__MULTI_OBJECT_TRACKER__TRACKER__MODEL__PEDESTRIAN_AND_BICYCLE_TRACKER_HPP_
2121

2222
#include "autoware/multi_object_tracker/object_model/types.hpp"
23-
#include "autoware/multi_object_tracker/tracker/model/bicycle_tracker.hpp"
2423
#include "autoware/multi_object_tracker/tracker/model/pedestrian_tracker.hpp"
2524
#include "autoware/multi_object_tracker/tracker/model/tracker_base.hpp"
25+
#include "autoware/multi_object_tracker/tracker/model/vehicle_tracker.hpp"
2626

2727
#include <autoware/kalman_filter/kalman_filter.hpp>
2828

@@ -33,13 +33,15 @@ class PedestrianAndBicycleTracker : public Tracker
3333
{
3434
private:
3535
PedestrianTracker pedestrian_tracker_;
36-
BicycleTracker bicycle_tracker_;
36+
VehicleTracker bicycle_tracker_;
3737

3838
public:
3939
PedestrianAndBicycleTracker(const rclcpp::Time & time, const types::DynamicObject & object);
4040

4141
bool predict(const rclcpp::Time & time) override;
42-
bool measure(const types::DynamicObject & object, const rclcpp::Time & time) override;
42+
bool measure(
43+
const types::DynamicObject & object, const rclcpp::Time & time,
44+
const types::InputChannel & channel_info) override;
4345
bool getTrackedObject(const rclcpp::Time & time, types::DynamicObject & object) const override;
4446
virtual ~PedestrianAndBicycleTracker() {}
4547
};

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ class PedestrianTracker : public Tracker
4444
PedestrianTracker(const rclcpp::Time & time, const types::DynamicObject & object);
4545

4646
bool predict(const rclcpp::Time & time) override;
47-
bool measure(const types::DynamicObject & object, const rclcpp::Time & time) override;
47+
bool measure(
48+
const types::DynamicObject & object, const rclcpp::Time & time,
49+
const types::InputChannel & channel_info) override;
4850
bool measureWithPose(const types::DynamicObject & object);
4951
bool measureWithShape(const types::DynamicObject & object);
5052
bool getTrackedObject(const rclcpp::Time & time, types::DynamicObject & object) const override;

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ class Tracker
8787
void limitObjectExtension(const object_model::ObjectModel object_model);
8888

8989
// virtual functions
90-
virtual bool measure(const types::DynamicObject & object, const rclcpp::Time & time) = 0;
90+
virtual bool measure(
91+
const types::DynamicObject & object, const rclcpp::Time & time,
92+
const types::InputChannel & channel_info) = 0;
9193

9294
public:
9395
virtual bool getTrackedObject(const rclcpp::Time & time, types::DynamicObject & object) const = 0;

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ class UnknownTracker : public Tracker
4343
UnknownTracker(const rclcpp::Time & time, const types::DynamicObject & object);
4444

4545
bool predict(const rclcpp::Time & time) override;
46-
bool measure(const types::DynamicObject & object, const rclcpp::Time & time) override;
46+
bool measure(
47+
const types::DynamicObject & object, const rclcpp::Time & time,
48+
const types::InputChannel & channel_info) override;
4749
bool measureWithPose(const types::DynamicObject & object);
4850
bool measureWithShape(const types::DynamicObject & object);
4951
bool getTrackedObject(const rclcpp::Time & time, types::DynamicObject & object) const override;

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

+5-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,11 @@ class VehicleTracker : public Tracker
4848
const types::DynamicObject & object);
4949

5050
bool predict(const rclcpp::Time & time) override;
51-
bool measure(const types::DynamicObject & object, const rclcpp::Time & time) override;
52-
bool measureWithPose(const types::DynamicObject & object);
51+
bool measure(
52+
const types::DynamicObject & object, const rclcpp::Time & time,
53+
const types::InputChannel & channel_info) override;
54+
bool measureWithPose(
55+
const types::DynamicObject & object, const types::InputChannel & channel_info);
5356
bool measureWithShape(const types::DynamicObject & object);
5457
bool getTrackedObject(const rclcpp::Time & time, types::DynamicObject & object) const override;
5558
};

perception/autoware_multi_object_tracker/include/autoware/multi_object_tracker/tracker/motion_model/bicycle_motion_model.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ class BicycleMotionModel : public MotionModel
9494
const double & x, const double & y, const double & yaw,
9595
const std::array<double, 36> & pose_cov);
9696

97+
bool updateStatePoseVel(
98+
const double & x, const double & y, const std::array<double, 36> & pose_cov, const double & vel,
99+
const std::array<double, 36> & twist_cov);
100+
97101
bool updateStatePoseHeadVel(
98102
const double & x, const double & y, const double & yaw, const std::array<double, 36> & pose_cov,
99103
const double & vel, const std::array<double, 36> & twist_cov);

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

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
#ifndef AUTOWARE__MULTI_OBJECT_TRACKER__TRACKER__TRACKER_HPP_
2020
#define AUTOWARE__MULTI_OBJECT_TRACKER__TRACKER__TRACKER_HPP_
2121

22-
#include "model/bicycle_tracker.hpp"
2322
#include "model/multiple_vehicle_tracker.hpp"
2423
#include "model/pass_through_tracker.hpp"
2524
#include "model/pedestrian_and_bicycle_tracker.hpp"

0 commit comments

Comments
 (0)