33 const std::shared_ptr<DependencyInjector>& injector,
34 const std::string& config_dir,
36 CHECK_NOTNULL(context);
37 bool ret =
Stage::Init(config, injector, config_dir, context);
42 scenario_config_.CopyFrom(GetContextAs<LargeCurvatureContext>()->scenario_config);
50 AERROR <<
"StageLargeCurvature planning error";
55 AINFO <<
"StageLargeCurvature destination reached";
62bool StageLargeCurvature::IsCurvatureSmall(
Frame* frame) {
64 AINFO <<
"StageLargeCurvature: reference line info is empty";
71 {vehicle_state.x(), vehicle_state.y()}, &adc_sl)) {
72 AINFO <<
"StageLargeCurvature: failed to get nearest lane";
80 check_s = adc_sl.
s() + delta_s;
81 if (frame->
reference_line_info().front().reference_line().GetMapPath().accumulated_s().back() + 1e-2
83 AINFO <<
"StageLargeCurvature: s is too large";
87 kappa = frame->
reference_line_info().front().reference_line().GetNearestReferencePoint(check_s).kappa();
89 AINFO <<
"StageLargeCurvature: curvature is too large";
92 AINFO <<
"delta_s: " << delta_s <<
" check_s: " << check_s <<
" kappa: " << kappa <<
" point: "
93 << frame->
reference_line_info().front().reference_line().GetNearestReferencePoint(check_s).DebugString();
Frame holds all data for one planning cycle.
const OpenSpaceInfo & open_space_info() const
OpenSpaceInfo * mutable_open_space_info()
const std::list< ReferenceLineInfo > & reference_line_info() const
bool destination_reached() const
void set_is_on_open_space_trajectory(const bool flag)
bool Init(const StagePipeline &config, const std::shared_ptr< DependencyInjector > &injector, const std::string &config_dir, void *context)
StageResult Process(const common::TrajectoryPoint &planning_init_point, Frame *frame) override
Each stage does its business logic inside Process function.
const StageResult & SetStageStatus(const StageStatusType &stage_status)
Set the stage status.
bool HasError() const
Check if StageResult contains error.
StageResult ExecuteTaskOnOpenSpace(Frame *frame)
virtual bool Init(const StagePipeline &config, const std::shared_ptr< DependencyInjector > &injector, const std::string &config_dir, void *context)
std::shared_ptr< DependencyInjector > injector_
const std::string & Name() const
Planning module main class.
optional double curvature_check_delta_s
optional double curvature_check_distance
optional double curvature_check_max