Apollo
11.0
自动驾驶开放平台
cubic_polynomial_curve1d.h
浏览该文件的文档.
1
/******************************************************************************
2
* Copyright 2017 The Apollo Authors. All Rights Reserved.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*****************************************************************************/
16
21
#pragma once
22
23
#include <array>
24
#include <string>
25
26
#include "
modules/planning/planning_base/math/curve1d/polynomial_curve1d.h
"
27
28
namespace
apollo
{
29
namespace
planning
{
30
31
class
CubicPolynomialCurve1d
:
public
PolynomialCurve1d
{
32
public
:
33
CubicPolynomialCurve1d
() =
default
;
34
virtual
~CubicPolynomialCurve1d
() =
default
;
35
36
CubicPolynomialCurve1d
(
const
std::array<double, 3>& start,
const
double
end,
37
const
double
param);
38
45
CubicPolynomialCurve1d
(
const
double
x0,
const
double
dx0,
const
double
ddx0,
46
const
double
x1,
const
double
param);
47
48
void
DerivedFromQuarticCurve
(
const
PolynomialCurve1d
& other);
49
50
double
Evaluate
(
const
std::uint32_t order,
const
double
p)
const override
;
51
52
double
ParamLength
()
const override
{
return
param_
; }
53
std::string
ToString
()
const override
;
54
55
double
Coef
(
const
size_t
order)
const override
;
56
57
size_t
Order
()
const override
{
return
3; }
58
59
private
:
60
void
ComputeCoefficients(
const
double
x0,
const
double
dx0,
const
double
ddx0,
61
const
double
x1,
const
double
param);
62
std::array<double, 4> coef_ = {{0.0, 0.0, 0.0, 0.0}};
63
std::array<double, 3> start_condition_ = {{0.0, 0.0, 0.0}};
64
double
end_condition_ = 0.0;
65
};
66
67
}
// namespace planning
68
}
// namespace apollo
apollo::planning::CubicPolynomialCurve1d
Definition
cubic_polynomial_curve1d.h:31
apollo::planning::CubicPolynomialCurve1d::ParamLength
double ParamLength() const override
Definition
cubic_polynomial_curve1d.h:52
apollo::planning::CubicPolynomialCurve1d::~CubicPolynomialCurve1d
virtual ~CubicPolynomialCurve1d()=default
apollo::planning::CubicPolynomialCurve1d::CubicPolynomialCurve1d
CubicPolynomialCurve1d()=default
apollo::planning::CubicPolynomialCurve1d::Coef
double Coef(const size_t order) const override
Definition
cubic_polynomial_curve1d.cc:95
apollo::planning::CubicPolynomialCurve1d::DerivedFromQuarticCurve
void DerivedFromQuarticCurve(const PolynomialCurve1d &other)
Definition
cubic_polynomial_curve1d.cc:48
apollo::planning::CubicPolynomialCurve1d::Evaluate
double Evaluate(const std::uint32_t order, const double p) const override
Definition
cubic_polynomial_curve1d.cc:57
apollo::planning::CubicPolynomialCurve1d::Order
size_t Order() const override
Definition
cubic_polynomial_curve1d.h:57
apollo::planning::CubicPolynomialCurve1d::ToString
std::string ToString() const override
Definition
cubic_polynomial_curve1d.cc:77
apollo::planning::PolynomialCurve1d
Definition
polynomial_curve1d.h:28
apollo::planning::PolynomialCurve1d::param_
double param_
Definition
polynomial_curve1d.h:37
planning
Planning module main class.
apollo
class register implement
Definition
arena_queue.h:37
polynomial_curve1d.h
modules
planning
planning_base
math
curve1d
cubic_polynomial_curve1d.h