Autoware.Auto
qp_solver_osqp.hpp
Go to the documentation of this file.
1
// Copyright 2018-2021 The Autoware Foundation
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef TRAJECTORY_FOLLOWER__QP_SOLVER__QP_SOLVER_OSQP_HPP_
16
#define TRAJECTORY_FOLLOWER__QP_SOLVER__QP_SOLVER_OSQP_HPP_
17
18
#include "
trajectory_follower/qp_solver/qp_solver_interface.hpp
"
19
20
#include "
common/types.hpp
"
21
#include "eigen3/Eigen/Dense"
22
#include "
osqp_interface/osqp_interface.hpp
"
23
#include "rclcpp/rclcpp.hpp"
24
#include "
trajectory_follower/visibility_control.hpp
"
25
26
namespace
autoware
27
{
28
namespace
motion
29
{
30
namespace
control
31
{
32
namespace
trajectory_follower
33
{
34
using
autoware::common::types::float64_t
;
35
using
autoware::common::types::bool8_t
;
37
class
TRAJECTORY_FOLLOWER_PUBLIC
QPSolverOSQP
:
public
QPSolverInterface
38
{
39
public
:
43
explicit
QPSolverOSQP
(
const
rclcpp::Logger & logger);
44
48
virtual
~
QPSolverOSQP
() =
default
;
49
62
bool8_t
solve(
63
const
Eigen::MatrixXd & h_mat,
const
Eigen::MatrixXd & f_vec,
const
Eigen::MatrixXd & a,
64
const
Eigen::VectorXd & lb,
const
Eigen::VectorXd & ub,
const
Eigen::VectorXd & lb_a,
65
const
Eigen::VectorXd & ub_a, Eigen::VectorXd &
u
)
override
;
66
67
private
:
68
autoware::common::osqp::OSQPInterface
osqpsolver_;
69
rclcpp::Logger logger_;
70
};
71
}
// namespace trajectory_follower
72
}
// namespace control
73
}
// namespace motion
74
}
// namespace autoware
75
#endif // TRAJECTORY_FOLLOWER__QP_SOLVER__QP_SOLVER_OSQP_HPP_
visibility_control.hpp
types.hpp
This file includes common type definition.
u
DifferentialState u
Definition:
kinematic_bicycle.snippet.hpp:29
qp_solver_interface.hpp
autoware::common::types::bool8_t
bool bool8_t
Definition:
types.hpp:39
autoware
This file defines the lanelet2_map_provider_node class.
Definition:
quick_sort.hpp:24
osqp_interface.hpp
autoware::motion::control::trajectory_follower::QPSolverInterface
Interface for solvers of Quadratic Programming (QP) problems.
Definition:
qp_solver_interface.hpp:34
autoware::common::osqp::OSQPInterface
Definition:
osqp_interface.hpp:45
autoware::motion::control::trajectory_follower
Definition:
debug_values.hpp:29
motion
Definition:
controller_base.hpp:31
autoware::common::types::float64_t
double float64_t
Definition:
types.hpp:47
autoware::motion::control::trajectory_follower::QPSolverOSQP
Solver for QP problems using the OSQP library.
Definition:
qp_solver_osqp.hpp:37