aligator  0.16.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Loading...
Searching...
No Matches
stage-data.hpp
Go to the documentation of this file.
1
3#pragma once
4
6
7namespace aligator {
8
10template <typename _Scalar> struct StageDataTpl {
11 using Scalar = _Scalar;
13
18
20 std::vector<shared_ptr<StageFunctionData>> constraint_data;
22 shared_ptr<CostData> cost_data;
23 // Data for the system dynamics.
24 shared_ptr<DynamicsData> dynamics_data;
25
30 explicit StageDataTpl(const StageModel &stage_model);
31
32 virtual ~StageDataTpl() = default;
33
35 virtual void checkData() {
36 constexpr std::string_view msg = "StageData integrity check failed.";
37 if (cost_data == nullptr)
38 ALIGATOR_RUNTIME_ERROR("{} (cost_data cannot be nullptr)", msg);
39 if (dynamics_data == nullptr)
40 ALIGATOR_RUNTIME_ERROR("{} (dynamics_data cannot be nullptr)", msg);
41 }
42};
43#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
44extern template struct StageDataTpl<context::Scalar>;
45#endif
46} // namespace aligator
#define ALIGATOR_RUNTIME_ERROR(...)
Definition exceptions.hpp:7
Main package namespace.
Data struct for CostAbstractTpl.
Specific data struct for explicit dynamics ExplicitDynamicsModelTpl.
shared_ptr< DynamicsData > dynamics_data
shared_ptr< CostData > cost_data
std::vector< shared_ptr< StageFunctionData > > constraint_data
virtual ~StageDataTpl()=default
StageDataTpl(const StageModel &stage_model)
Constructor.
CostDataAbstractTpl< Scalar > CostData
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
StageModelTpl< Scalar > StageModel
StageFunctionDataTpl< Scalar > StageFunctionData
ExplicitDynamicsDataTpl< Scalar > DynamicsData
virtual void checkData()
Check data integrity.
Base struct for function data.
A stage in the control problem.