28SensorDataManager::SensorDataManager() { CHECK_EQ(this->
Init(),
true); }
34 sensor_manager_ = algorithm::SensorManager::Instance();
41 sensor_manager_ =
nullptr;
48 std::string sensor_id = sensor_info.
name;
49 const auto it = sensors_.find(sensor_id);
51 if (it == sensors_.end()) {
53 AERROR <<
"Failed to find sensor " << sensor_id <<
" in sensor manager.";
56 sensor_ptr.reset(
new Sensor(sensor_info));
57 sensors_.emplace(sensor_id, sensor_ptr);
59 sensor_ptr = it->second;
62 sensor_ptr->AddFrame(frame_ptr);
67 return sensor_manager_->
IsLidar(type);
72 return sensor_manager_->
IsRadar(type);
77 return sensor_manager_->
IsCamera(type);
81 double timestamp,
const std::string& sensor_id,
82 std::vector<SensorFramePtr>* frames)
const {
83 if (frames ==
nullptr) {
84 AERROR <<
"Nullptr error.";
87 const auto it = sensors_.find(sensor_id);
88 if (it == sensors_.end()) {
91 return it->second->QueryLatestFrames(timestamp, frames);
95 double timestamp, std::vector<SensorFramePtr>* frames)
const {
96 if (frames ==
nullptr) {
97 AERROR <<
"Nullptr error.";
102 for (
auto it = sensors_.begin(); it != sensors_.end(); ++it) {
104 if (frame !=
nullptr) {
105 frames->push_back(frame);
109 if (frames->empty()) {
113 std::sort(frames->begin(), frames->end(),
115 return p1->GetTimestamp() < p2->GetTimestamp();
120 Eigen::Affine3d* pose)
const {
121 if (pose ==
nullptr) {
122 AERROR <<
"Nullptr error.";
126 const auto it = sensors_.find(sensor_id);
127 if (it == sensors_.end()) {
128 AERROR <<
"Failed to find sensor " << sensor_id <<
" for get pose.";
132 return it->second->GetPose(timestamp, pose);
136 const std::string& sensor_id)
const {
bool IsRadar(const std::string &name) const
bool IsCamera(const std::string &name) const
bool IsSensorExist(const std::string &name) const
std::shared_ptr< BaseCameraModel > GetUndistortCameraModel(const std::string &name) const
bool IsLidar(const std::string &name) const
void GetLatestSensorFrames(double timestamp, const std::string &sensor_id, std::vector< SensorFramePtr > *frames) const
Get the latest sensor frames
bool Init()
Initialization
bool IsRadar(const base::FrameConstPtr &frame_ptr)
Is the data frame detected by radar
bool IsLidar(const base::FrameConstPtr &frame_ptr)
Is the data frame detected by lidar
void Reset()
Reset the data
void GetLatestFrames(double timestamp, std::vector< SensorFramePtr > *frames) const
Get the latest sensor frames
bool GetPose(const std::string &sensor_id, double timestamp, Eigen::Affine3d *pose) const
Get the Pose object
bool IsCamera(const base::FrameConstPtr &frame_ptr)
Is the data frame detected by camera
base::BaseCameraModelPtr GetCameraIntrinsic(const std::string &sensor_id) const
Get the Camera Intrinsic object
void AddSensorMeasurements(const base::FrameConstPtr &frame_ptr)
Add the data frame, which contains the obstacles detected by the sensor
std::shared_ptr< BaseCameraModel > BaseCameraModelPtr
SensorType
Sensor types are set in the order of lidar, radar, camera, ultrasonic Please make sure SensorType has...
std::shared_ptr< const Frame > FrameConstPtr
std::shared_ptr< SensorFrame > SensorFramePtr
std::shared_ptr< Sensor > SensorPtr