TrajoptLib
Library for generating time-optimal trajectories for FRC robots.
Loading...
Searching...
No Matches
translation_equality_constraint.hpp
1// Copyright (c) TrajoptLib contributors
2
3#pragma once
4
5#include <sleipnir/autodiff/variable.hpp>
6#include <sleipnir/optimization/problem.hpp>
7
8#include "trajopt/geometry/pose2.hpp"
9#include "trajopt/geometry/translation2.hpp"
10#include "trajopt/util/symbol_exports.hpp"
11
12namespace trajopt {
13
15class TRAJOPT_DLLEXPORT TranslationEqualityConstraint {
16 public:
20 explicit TranslationEqualityConstraint(const Translation2d& translation)
21 : m_translation{translation} {}
22
31 void apply(
32 slp::Problem<double>& problem, const Pose2v<double>& pose,
33 [[maybe_unused]] const Translation2v<double>& linear_velocity,
34 [[maybe_unused]] const slp::Variable<double>& angular_velocity,
35 [[maybe_unused]] const Translation2v<double>& linear_acceleration,
36 [[maybe_unused]] const slp::Variable<double>& angular_acceleration) {
37 problem.subject_to(pose.translation() == m_translation);
38 }
39
40 private:
41 trajopt::Translation2d m_translation;
42};
43
44} // namespace trajopt
constexpr const Translation2< T > & translation() const
Definition pose2.hpp:51
TranslationEqualityConstraint(const Translation2d &translation)
Definition translation_equality_constraint.hpp:20
void apply(slp::Problem< double > &problem, const Pose2v< double > &pose, const Translation2v< double > &linear_velocity, const slp::Variable< double > &angular_velocity, const Translation2v< double > &linear_acceleration, const slp::Variable< double > &angular_acceleration)
Definition translation_equality_constraint.hpp:31