final_state_conditions_se2.h
Go to the documentation of this file.
1 /*********************************************************************
2  *
3  * Software License Agreement
4  *
5  * Copyright (c) 2020, Christoph Rösmann, All rights reserved.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19  *
20  * Authors: Christoph Rösmann
21  *********************************************************************/
22 
23 #ifndef FINAL_STATE_CONDITIONS_SE2_H_
24 #define FINAL_STATE_CONDITIONS_SE2_H_
25 
28 
29 #include <cmath>
30 #include <memory>
31 
32 namespace mpc_local_planner {
33 
48 class QuadraticFinalStateCostSE2 : public corbo::QuadraticFinalStateCost
49 {
50  public:
51  using Ptr = std::shared_ptr<QuadraticFinalStateCostSE2>;
52 
54 
55  QuadraticFinalStateCostSE2(const Eigen::Ref<const Eigen::MatrixXd>& Qf, bool lsq_form = false) : corbo::QuadraticFinalStateCost(Qf, lsq_form) {}
56 
57  corbo::FinalStageCost::Ptr getInstance() const override { return std::make_shared<QuadraticFinalStateCostSE2>(); }
58 
60 };
61 
72 class TerminalBallSE2 : public corbo::TerminalBall
73 {
74  public:
75  using Ptr = std::shared_ptr<TerminalBallSE2>;
76 
78 
79  TerminalBallSE2(const Eigen::Ref<const Eigen::MatrixXd>& S, double gamma) : corbo::TerminalBall(S, gamma) {}
80 
81  corbo::FinalStageConstraint::Ptr getInstance() const override { return std::make_shared<TerminalBallSE2>(); }
82 
84 };
85 
86 } // namespace mpc_local_planner
87 
88 #endif // FINAL_STATE_CONDITIONS_SE2_H_
mpc_local_planner::QuadraticFinalStateCostSE2::getInstance
corbo::FinalStageCost::Ptr getInstance() const override
Definition: final_state_conditions_se2.h:97
mpc_local_planner::TerminalBallSE2::getInstance
corbo::FinalStageConstraint::Ptr getInstance() const override
Definition: final_state_conditions_se2.h:101
corbo
final_state_constraints.h
mpc_local_planner::QuadraticFinalStateCostSE2::computeNonIntegralStateTerm
void computeNonIntegralStateTerm(int k, const Eigen::Ref< const Eigen::VectorXd > &x_k, Eigen::Ref< Eigen::VectorXd > cost) const override
Definition: final_state_conditions_se2.cpp:51
mpc_local_planner
Definition: controller.h:44
corbo::QuadraticFinalStateCost
mpc_local_planner::TerminalBallSE2::computeNonIntegralStateTerm
void computeNonIntegralStateTerm(int k, const Eigen::Ref< const Eigen::VectorXd > &x_k, Eigen::Ref< Eigen::VectorXd > cost) const override
Definition: final_state_conditions_se2.cpp:74
mpc_local_planner::QuadraticFinalStateCostSE2::QuadraticFinalStateCostSE2
QuadraticFinalStateCostSE2()
Definition: final_state_conditions_se2.h:93
corbo::FinalStageConstraint::Ptr
std::shared_ptr< FinalStageConstraint > Ptr
corbo::TerminalBall::TerminalBall
TerminalBall()=default
mpc_local_planner::TerminalBallSE2::TerminalBallSE2
TerminalBallSE2()
Definition: final_state_conditions_se2.h:97
mpc_local_planner::TerminalBallSE2::Ptr
std::shared_ptr< TerminalBallSE2 > Ptr
Definition: final_state_conditions_se2.h:95
mpc_local_planner::QuadraticFinalStateCostSE2::Ptr
std::shared_ptr< QuadraticFinalStateCostSE2 > Ptr
Definition: final_state_conditions_se2.h:91
Eigen::Ref
corbo::FinalStageCost::Ptr
std::shared_ptr< FinalStageCost > Ptr
final_state_cost.h
corbo::TerminalBall
corbo::QuadraticFinalStateCost::QuadraticFinalStateCost
QuadraticFinalStateCost()


mpc_local_planner
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:35:06