Apollo 11.0
自动驾驶开放平台
apollo::planning::EgoInfo类 参考

#include <ego_info.h>

apollo::planning::EgoInfo 的协作图:

Public 成员函数

 EgoInfo ()
 
 ~EgoInfo ()=default
 
bool Update (const common::TrajectoryPoint &start_point, const common::VehicleState &vehicle_state)
 
void Clear ()
 
common::TrajectoryPoint start_point () const
 
common::VehicleState vehicle_state () const
 
double front_clear_distance () const
 
common::math::Box2d ego_box () const
 
void CalculateFrontObstacleClearDistance (const std::vector< const Obstacle * > &obstacles)
 
void CalculateCurrentRouteInfo (const ReferenceLineProvider *reference_line_provider)
 
double distance_to_destination () const
 
apollo::hdmap::LaneWaypoint adc_waypoint () const
 

详细描述

在文件 ego_info.h40 行定义.

构造及析构函数说明

◆ EgoInfo()

apollo::planning::EgoInfo::EgoInfo ( )

在文件 ego_info.cc32 行定义.

32 {
33 ego_vehicle_config_ = common::VehicleConfigHelper::GetConfig();
34}
static const VehicleConfig & GetConfig()
Get the current vehicle configuration.

◆ ~EgoInfo()

apollo::planning::EgoInfo::~EgoInfo ( )
default

成员函数说明

◆ adc_waypoint()

apollo::hdmap::LaneWaypoint apollo::planning::EgoInfo::adc_waypoint ( ) const
inline

在文件 ego_info.h67 行定义.

67{ return adc_waypoint_; }

◆ CalculateCurrentRouteInfo()

void apollo::planning::EgoInfo::CalculateCurrentRouteInfo ( const ReferenceLineProvider reference_line_provider)

在文件 ego_info.cc107 行定义.

108 {
109 reference_line_provider->GetAdcWaypoint(&adc_waypoint_);
110 reference_line_provider->GetAdcDis2Destination(&distance_to_destination_);
111 AINFO << adc_waypoint_.DebugString();
112 AINFO << "distance_to_destination: " << distance_to_destination_;
113}
#define AINFO
Definition log.h:42
std::string DebugString() const
Definition path.cc:68

◆ CalculateFrontObstacleClearDistance()

void apollo::planning::EgoInfo::CalculateFrontObstacleClearDistance ( const std::vector< const Obstacle * > &  obstacles)

在文件 ego_info.cc69 行定义.

70 {
71 Vec2d position(vehicle_state_.x(), vehicle_state_.y());
72
73 const auto& param = ego_vehicle_config_.vehicle_param();
74 Vec2d vec_to_center(
75 (param.front_edge_to_center() - param.back_edge_to_center()) / 2.0,
76 (param.left_edge_to_center() - param.right_edge_to_center()) / 2.0);
77
78 Vec2d center(position + vec_to_center.rotate(vehicle_state_.heading()));
79
80 Vec2d unit_vec_heading = Vec2d::CreateUnitVec2d(vehicle_state_.heading());
81
82 // Due to the error of ego heading, only short range distance is meaningful
83 static constexpr double kDistanceThreshold = 50.0;
84 static constexpr double buffer = 0.1; // in meters
85 const double impact_region_length =
86 param.length() + buffer + kDistanceThreshold;
87 Box2d ego_front_region(center + unit_vec_heading * kDistanceThreshold / 2.0,
88 vehicle_state_.heading(), impact_region_length,
89 param.width() + buffer);
90
91 for (const auto& obstacle : obstacles) {
92 if (obstacle->IsVirtual() ||
93 !ego_front_region.HasOverlap(obstacle->PerceptionBoundingBox())) {
94 continue;
95 }
96
97 double dist = ego_box_.center().DistanceTo(
98 obstacle->PerceptionBoundingBox().center()) -
99 ego_box_.diagonal() / 2.0;
100
101 if (front_clear_distance_ < 0.0 || dist < front_clear_distance_) {
102 front_clear_distance_ = dist;
103 }
104 }
105}
double diagonal() const
Getter of the size of the diagonal of the box
Definition box2d.h:172
const Vec2d & center() const
Getter of the center of the box
Definition box2d.h:106
static Vec2d CreateUnitVec2d(const double angle)
Creates a unit-vector with a given angle to the positive x semi-axis
Definition vec2d.cc:29
double DistanceTo(const Vec2d &other) const
Returns the distance to the given vector
Definition vec2d.cc:47
optional VehicleParam vehicle_param

◆ Clear()

void apollo::planning::EgoInfo::Clear ( )

在文件 ego_info.cc59 行定义.

59 {
60 start_point_.Clear();
61 vehicle_state_.Clear();
62 front_clear_distance_ = FLAGS_default_front_clear_distance;
63}

◆ distance_to_destination()

double apollo::planning::EgoInfo::distance_to_destination ( ) const
inline

在文件 ego_info.h65 行定义.

65{ return distance_to_destination_; }

◆ ego_box()

common::math::Box2d apollo::planning::EgoInfo::ego_box ( ) const
inline

在文件 ego_info.h57 行定义.

57{ return ego_box_; }

◆ front_clear_distance()

double apollo::planning::EgoInfo::front_clear_distance ( ) const
inline

在文件 ego_info.h55 行定义.

55{ return front_clear_distance_; }

◆ start_point()

common::TrajectoryPoint apollo::planning::EgoInfo::start_point ( ) const
inline

在文件 ego_info.h51 行定义.

51{ return start_point_; }

◆ Update()

bool apollo::planning::EgoInfo::Update ( const common::TrajectoryPoint start_point,
const common::VehicleState vehicle_state 
)

在文件 ego_info.cc36 行定义.

37 {
38 set_start_point(start_point);
39 set_vehicle_state(vehicle_state);
40 CalculateEgoBox(vehicle_state);
41 return true;
42}
common::VehicleState vehicle_state() const
Definition ego_info.h:53
common::TrajectoryPoint start_point() const
Definition ego_info.h:51

◆ vehicle_state()

common::VehicleState apollo::planning::EgoInfo::vehicle_state ( ) const
inline

在文件 ego_info.h53 行定义.

53{ return vehicle_state_; }

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