36void PoseContainer::Update(
38 if (!localization.has_header() ||
39 !localization.
header().has_timestamp_sec()) {
40 AERROR <<
"Localization message has no timestamp ["
41 << localization.ShortDebugString() <<
"].";
43 }
else if (!localization.has_pose()) {
44 AERROR <<
"Localization message has no pose ["
45 << localization.ShortDebugString() <<
"].";
47 }
else if (!localization.
pose().has_position() ||
48 !localization.
pose().has_linear_velocity()) {
49 AERROR <<
"Localization message has no position or linear velocity ["
50 << localization.ShortDebugString() <<
"].";
54 if (obstacle_ptr_.get() ==
nullptr) {
55 obstacle_ptr_.reset(
new PerceptionObstacle());
57 obstacle_ptr_->Clear();
59 obstacle_ptr_->set_id(FLAGS_ego_vehicle_id);
64 obstacle_ptr_->mutable_position()->CopyFrom(position);
67 if (localization.
pose().has_orientation() &&
78 obstacle_ptr_->set_theta(theta);
84 obstacle_ptr_->mutable_velocity()->CopyFrom(velocity);
86 obstacle_ptr_->set_type(
type_);
89 ADEBUG <<
"ADC obstacle [" << obstacle_ptr_->ShortDebugString() <<
"].";
93 if (obstacle_ptr_ !=
nullptr) {
94 return obstacle_ptr_->timestamp();
101 return obstacle_ptr_.get();
void Insert(const ::google::protobuf::Message &message) override
Insert a data message into the container
const perception::PerceptionObstacle * ToPerceptionObstacle()
Transform pose to a perception obstacle.
static const perception::PerceptionObstacle::Type type_
double GetTimestamp()
Get timestamp
double QuaternionToHeading(const double qw, const double qx, const double qy, const double qz)
apollo::common::Point3D Point
Contains a number of helper functions related to quaternions.
optional apollo::localization::Pose pose
optional apollo::common::Header header
optional apollo::common::Point3D linear_velocity
optional apollo::common::Quaternion orientation
optional apollo::common::PointENU position