TrajoptLib
Library for generating time-optimal trajectories for FRC robots.
Loading...
Searching...
No Matches
pose_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 PoseEqualityConstraint {
16 public:
20 explicit PoseEqualityConstraint(const Pose2d& pose) : m_pose{pose} {}
21
30 void apply(
31 slp::Problem<double>& problem, const Pose2v<double>& pose,
32 [[maybe_unused]] const Translation2v<double>& linear_velocity,
33 [[maybe_unused]] const slp::Variable<double>& angular_velocity,
34 [[maybe_unused]] const Translation2v<double>& linear_acceleration,
35 [[maybe_unused]] const slp::Variable<double>& angular_acceleration) {
36 problem.subject_to(pose == m_pose);
37 }
38
39 private:
40 trajopt::Pose2d m_pose;
41};
42
43} // namespace trajopt
PoseEqualityConstraint(const Pose2d &pose)
Definition pose_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 pose_equality_constraint.hpp:30