Apollo 11.0
自动驾驶开放平台
apollo::perception::onboard::MsgSerializer类 参考

#include <msg_serializer.h>

apollo::perception::onboard::MsgSerializer 的协作图:

Public 成员函数

 MsgSerializer ()=default
 
 ~MsgSerializer ()=default
 

静态 Public 成员函数

static bool SerializeMsg (double timestamp, uint64_t lidar_timestamp, int seq_num, const std::vector< base::ObjectPtr > &objects, const apollo::common::ErrorCode &error_code, PerceptionObstacles *obstacles)
 
static bool SerializeBenchmarkMsg (double timestamp, uint64_t lidar_timestamp, int seq_num, const std::vector< base::ObjectPtr > &objects, PerceptionBenchmarkFrame *obstacles)
 
static bool SerializeLidarFrameMsg (double timestamp, uint64_t lidar_timestamp, int seq_num, const Eigen::Affine3d &pose, const std::vector< base::ObjectPtr > &objects, PerceptionBenchmarkFrame *obstacles, bool use_lidar_cooridinate=true)
 

详细描述

在文件 msg_serializer.h28 行定义.

构造及析构函数说明

◆ MsgSerializer()

apollo::perception::onboard::MsgSerializer::MsgSerializer ( )
default

◆ ~MsgSerializer()

apollo::perception::onboard::MsgSerializer::~MsgSerializer ( )
default

成员函数说明

◆ SerializeBenchmarkMsg()

bool apollo::perception::onboard::MsgSerializer::SerializeBenchmarkMsg ( double  timestamp,
uint64_t  lidar_timestamp,
int  seq_num,
const std::vector< base::ObjectPtr > &  objects,
PerceptionBenchmarkFrame obstacles 
)
static

在文件 msg_serializer.cc61 行定义.

65 {
66 // double publish_time = Clock::NowInSeconds();
67 ::apollo::common::Header *header = benchmark_frame->mutable_header();
68 header->set_timestamp_sec(timestamp);
69 header->set_module_name("perception_benchmark");
70 header->set_sequence_num(seq_num);
71 header->set_lidar_timestamp(lidar_timestamp);
72 header->set_camera_timestamp(0);
73 header->set_radar_timestamp(0);
74
75 for (const auto &obj : objects) {
76 PerceptionObstacle *obstacle = benchmark_frame->add_perception_obstacle();
77 if (!ConvertObjectToPb(obj, obstacle)) {
78 AERROR << "ConvertObjectToPb failed, Object:" << obj->ToString();
79 return false;
80 }
81 }
82 return true;
83}
#define AERROR
Definition log.h:44

◆ SerializeLidarFrameMsg()

bool apollo::perception::onboard::MsgSerializer::SerializeLidarFrameMsg ( double  timestamp,
uint64_t  lidar_timestamp,
int  seq_num,
const Eigen::Affine3d &  pose,
const std::vector< base::ObjectPtr > &  objects,
PerceptionBenchmarkFrame obstacles,
bool  use_lidar_cooridinate = true 
)
static

在文件 msg_serializer.cc85 行定义.

88 {
89 ::apollo::common::Header *header = obstacles->mutable_header();
90 header->set_timestamp_sec(timestamp);
91 header->set_module_name("perception_LidarFrame_benchmark");
92 header->set_sequence_num(seq_num);
93 header->set_lidar_timestamp(lidar_timestamp);
94 header->set_camera_timestamp(0);
95 header->set_radar_timestamp(0);
96
97 for (const auto &obj : objects) {
98 PerceptionObstacle *obstacle = obstacles->add_perception_obstacle();
99 if (!ConvertSegmentedObjectToPb(obj, obstacle,
100 pose, use_lidar_cooridinate)) {
101 AERROR << "ConvertSegmentedObjectToPb failed, Object:"
102 << obj->ToString();
103 return false;
104 }
105 }
106 return true;
107}

◆ SerializeMsg()

bool apollo::perception::onboard::MsgSerializer::SerializeMsg ( double  timestamp,
uint64_t  lidar_timestamp,
int  seq_num,
const std::vector< base::ObjectPtr > &  objects,
const apollo::common::ErrorCode error_code,
PerceptionObstacles obstacles 
)
static

在文件 msg_serializer.cc36 行定义.

40 {
41 double publish_time = Clock::NowInSeconds();
42 ::apollo::common::Header *header = obstacles->mutable_header();
43 header->set_timestamp_sec(publish_time);
44 header->set_module_name("perception_obstacle");
45 header->set_sequence_num(seq_num);
46 header->set_lidar_timestamp(lidar_timestamp);
47 header->set_camera_timestamp(0);
48 header->set_radar_timestamp(0);
49
50 obstacles->set_error_code(error_code);
51 for (const auto &obj : objects) {
52 PerceptionObstacle *obstacle = obstacles->add_perception_obstacle();
53 if (!ConvertObjectToPb(obj, obstacle)) {
54 AERROR << "ConvertObjectToPb failed, Object:" << obj->ToString();
55 return false;
56 }
57 }
58 return true;
59}
static double NowInSeconds()
gets the current time in second.
Definition clock.cc:56

该类的文档由以下文件生成: