From b8c4562b55edcb0ad901c26d1cabe825f16fb027 Mon Sep 17 00:00:00 2001 From: Zhang Liangliang Date: Fri, 21 Jul 2017 09:47:18 -0700 Subject: [PATCH] added speed_optimizer --- modules/planning/optimizer/BUILD | 20 ++++++++ modules/planning/optimizer/path_optimizer.h | 16 +++--- modules/planning/optimizer/speed_optimizer.cc | 31 +++++++++++ modules/planning/optimizer/speed_optimizer.h | 51 +++++++++++++++++++ 4 files changed, 111 insertions(+), 7 deletions(-) create mode 100644 modules/planning/optimizer/speed_optimizer.cc create mode 100644 modules/planning/optimizer/speed_optimizer.h diff --git a/modules/planning/optimizer/BUILD b/modules/planning/optimizer/BUILD index 829ff050a2..c5db0ecd15 100644 --- a/modules/planning/optimizer/BUILD +++ b/modules/planning/optimizer/BUILD @@ -42,3 +42,23 @@ cc_library( "//modules/planning/optimizer:path_optimizer", ], ) + +cc_library( + name = "speed_optimizer", + srcs = [ + "speed_optimizer.cc", + ], + hdrs = [ + "speed_optimizer.h", + "optimizer.h", + ], + deps = [ + "@eigen//:eigen", + "//modules/common/proto:error_code_proto", + "//modules/planning/common:data_center", + "//modules/planning/common:decision_data", + "//modules/planning/common:planning_data", + "//modules/planning/common/path:path_data", + "//modules/planning/common/speed:speed_data", + ], +) diff --git a/modules/planning/optimizer/path_optimizer.h b/modules/planning/optimizer/path_optimizer.h index 300942d581..927707590f 100644 --- a/modules/planning/optimizer/path_optimizer.h +++ b/modules/planning/optimizer/path_optimizer.h @@ -18,16 +18,18 @@ * @file path_optimizer.h **/ -#ifndef MODULES_PLANNING_OPTIMIZER_PATH_OPTIMIZER_H -#define MODULES_PLANNING_OPTIMIZER_PATH_OPTIMIZER_H +#ifndef MODULES_PLANNING_OPTIMIZER_PATH_OPTIMIZER_H_ +#define MODULES_PLANNING_OPTIMIZER_PATH_OPTIMIZER_H_ #include "modules/planning/optimizer/optimizer.h" +#include "modules/common/proto/error_code.pb.h" + +#include "modules/planning/common/data_center.h" +#include "modules/planning/common/decision_data.h" #include "modules/planning/common/path/path_data.h" #include "modules/planning/common/speed/speed_data.h" -#include "modules/planning/common/decision_data.h" #include "modules/planning/reference_line/reference_line.h" -#include "modules/planning/common/data_center.h" namespace apollo { namespace planning { @@ -36,7 +38,7 @@ class PathOptimizer : public Optimizer { public: explicit PathOptimizer(const std::string &name); virtual ~PathOptimizer() = default; - virtual ::apollo::common::ErrorCode optimize( + virtual apollo::common::ErrorCode optimize( const DataCenter &data_center, const SpeedData &speed_data, const ReferenceLine &reference_line, const ::apollo::planning::TrajectoryPoint &init_point, @@ -44,6 +46,6 @@ class PathOptimizer : public Optimizer { }; } // namespace planning -} // namespace adu +} // namespace apollo -#endif // BAIDU_IDG_HOUSTON_OPTIMIZER_PATH_OPTIMIZER_H +#endif // MODULES_PLANNING_OPTIMIZER_PATH_OPTIMIZER_H_ diff --git a/modules/planning/optimizer/speed_optimizer.cc b/modules/planning/optimizer/speed_optimizer.cc new file mode 100644 index 0000000000..29d578d06d --- /dev/null +++ b/modules/planning/optimizer/speed_optimizer.cc @@ -0,0 +1,31 @@ +/****************************************************************************** + * Copyright 2017 The Apollo Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ + +/** + * @file speed_optimizer.cc + **/ + +#include "modules/planning/optimizer/speed_optimizer.h" + +#include + +namespace apollo { +namespace planning { + +SpeedOptimizer::SpeedOptimizer(const std::string& name) : Optimizer(name) {} + +} // namespace planning +} // namespace apollo diff --git a/modules/planning/optimizer/speed_optimizer.h b/modules/planning/optimizer/speed_optimizer.h new file mode 100644 index 0000000000..45470f3bed --- /dev/null +++ b/modules/planning/optimizer/speed_optimizer.h @@ -0,0 +1,51 @@ +/****************************************************************************** + * Copyright 2017 The Apollo Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ + +/** + * @file speed_optimizer.h + **/ + +#ifndef MODULES_PLANNING_OPTIMIZER_SPEED_OPTIMIZER_H_ +#define MODULES_PLANNING_OPTIMIZER_SPEED_OPTIMIZER_H_ + +#include "modules/planning/optimizer/optimizer.h" + +#include "modules/common/proto/error_code.pb.h" + +#include "modules/planning/common/data_center.h" +#include "modules/planning/common/decision_data.h" +#include "modules/planning/common/path/path_data.h" +#include "modules/planning/common/planning_data.h" +#include "modules/planning/common/speed/speed_data.h" + +namespace apollo { +namespace planning { + +class SpeedOptimizer : public Optimizer { + public: + explicit SpeedOptimizer(const std::string& name); + virtual ~SpeedOptimizer() = default; + virtual common::ErrorCode optimize(const DataCenter& data_center, + const PathData& path_data, + const TrajectoryPoint& init_point, + DecisionData* const decision_data, + SpeedData* const speed_data) const = 0; +}; + +} // namespace planning +} // namespace apollo + +#endif // MODULES_PLANNING_OPTIMIZER_SPEED_OPTIMIZER_H_ -- GitLab