30 #ifndef EXOTICA_CORE_PLANNING_PROBLEM_H_ 31 #define EXOTICA_CORE_PLANNING_PROBLEM_H_ 45 #define REGISTER_PROBLEM_TYPE(TYPE, DERIV) EXOTICA_CORE_REGISTER_CORE(exotica::PlanningProblem, TYPE, DERIV) 70 void InstantiateBase(
const Initializer& init)
override;
74 std::string Print(
const std::string& prepend)
const override;
77 Eigen::VectorXd GetStartState()
const;
78 virtual Eigen::VectorXd ApplyStartState(
bool update_traj =
true);
80 void SetStartTime(
double t);
81 double GetStartTime()
const;
83 virtual void PreUpdate();
86 std::pair<std::vector<double>, std::vector<double>> GetCostEvolution()
const;
87 int GetNumberOfIterations()
const;
88 double GetCostEvolution(
int index)
const;
89 void ResetCostEvolution(
size_t size);
90 void SetCostEvolution(
int index,
double value);
93 virtual bool IsValid() {
ThrowNamed(
"Not implemented"); };
98 [[deprecated(
"Replaced by Scene::get_num_positions")]]
int get_num_positions()
const;
99 [[deprecated(
"Replaced by Scene::get_num_velocities")]]
int get_num_velocities()
const;
100 [[deprecated(
"Replaced by Scene::get_num_controls")]]
int get_num_controls()
const;
103 void UpdateTaskKinematics(std::shared_ptr<KinematicResponse> response);
104 void UpdateMultipleTaskKinematics(std::vector<std::shared_ptr<KinematicResponse>> responses);
111 unsigned int number_of_problem_updates_ = 0;
112 std::vector<std::pair<std::chrono::high_resolution_clock::time_point, double>>
cost_evolution_;
120 #endif // EXOTICA_CORE_PLANNING_PROBLEM_H_
void ResetNumberOfProblemUpdates()
std::vector< std::pair< std::chrono::high_resolution_clock::time_point, double > > cost_evolution_
unsigned int GetNumberOfProblemUpdates() const
std::vector< TaskMapPtr > TaskMapVec
std::shared_ptr< Scene > ScenePtr
TerminationCriterion termination_criterion
std::shared_ptr< const PlanningProblem > PlanningProblemConstPtr
const Eigen::Ref< const Eigen::VectorXd > & VectorXdRefConst
Convenience wrapper for storing references to sub-matrices/vectors.
KinematicRequestFlags GetFlags() const
std::map< std::string, TaskMapPtr > TaskMapMap
The mapping by name of TaskMaps.
std::shared_ptr< PlanningProblem > PlanningProblemPtr
Eigen::VectorXd start_state_
Factory< PlanningProblem > PlanningProblemFac