Apollo  6.0
Open source self driving car software
camera_frame.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2018 The Apollo Authors. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *****************************************************************************/
16 #pragma once
17 
18 #include <memory>
19 #include <vector>
20 
26 
27 namespace apollo {
28 namespace perception {
29 namespace camera {
30 
31 class BaseCalibrationService;
32 
33 struct CameraFrame {
34  // timestamp
35  double timestamp = 0.0;
36  // frame sequence id
37  int frame_id = 0;
38  // data provider
40  // calibration service
42  // hdmap struct
44  // tracker proposed objects
45  std::vector<base::ObjectPtr> proposed_objects;
46  // segmented objects
47  std::vector<base::ObjectPtr> detected_objects;
48  // tracked objects
49  std::vector<base::ObjectPtr> tracked_objects;
50  // feature of all detected object ( num x dim)
51  // detect lane mark info
52  std::vector<base::LaneLine> lane_objects;
53  std::vector<float> pred_vpt;
54  std::shared_ptr<base::Blob<float>> track_feature_blob = nullptr;
55  std::shared_ptr<base::Blob<float>> lane_detected_blob = nullptr;
56  // detected traffic lights
57  std::vector<base::TrafficLightPtr> traffic_lights;
58  // camera intrinsics
59  Eigen::Matrix3f camera_k_matrix = Eigen::Matrix3f::Identity();
60  // narrow to obstacle projected_matrix
61  Eigen::Matrix3d project_matrix = Eigen::Matrix3d::Identity();
62  // camera to world pose
63  Eigen::Affine3d camera2world_pose = Eigen::Affine3d::Identity();
64  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
65 } EIGEN_ALIGN16; // struct CameraFrame
66 
67 } // namespace camera
68 } // namespace perception
69 } // namespace apollo
int frame_id
Definition: camera_frame.h:37
base::HdmapStructPtr hdmap_struct
Definition: camera_frame.h:43
Definition: data_provider.h:30
Eigen::Matrix3f camera_k_matrix
Definition: camera_frame.h:59
Definition: camera_frame.h:33
DataProvider * data_provider
Definition: camera_frame.h:39
std::vector< base::LaneLine > lane_objects
Definition: camera_frame.h:52
BaseCalibrationService * calibration_service
Definition: camera_frame.h:41
struct apollo::perception::camera::CameraFrame EIGEN_ALIGN16
Eigen::Affine3d camera2world_pose
Definition: camera_frame.h:63
std::vector< base::ObjectPtr > proposed_objects
Definition: camera_frame.h:45
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
std::vector< float > pred_vpt
Definition: camera_frame.h:53
Eigen::Matrix3f Matrix3f
Definition: base_map_fwd.h:27
std::shared_ptr< base::Blob< float > > track_feature_blob
Definition: camera_frame.h:54
Definition: base_calibration_service.h:40
std::vector< base::TrafficLightPtr > traffic_lights
Definition: camera_frame.h:57
double timestamp
Definition: camera_frame.h:35
std::shared_ptr< base::Blob< float > > lane_detected_blob
Definition: camera_frame.h:55
std::vector< base::ObjectPtr > tracked_objects
Definition: camera_frame.h:49
std::shared_ptr< HdmapStruct > HdmapStructPtr
Definition: hdmap_struct.h:45
std::vector< base::ObjectPtr > detected_objects
Definition: camera_frame.h:47
Eigen::Affine3d Affine3d
Definition: base_map_fwd.h:34
Eigen::Matrix3d Matrix3d
Definition: base_map_fwd.h:33
Eigen::Matrix3d project_matrix
Definition: camera_frame.h:61