RIT VEXU Core API
Loading...
Searching...
No Matches
pose2d.h
1#pragma once
2#undef __ARM_NEON__
3#undef __ARM_NEON
4#include <Eigen/Dense>
5
6#include <cmath>
7#include <iostream>
8#include <vector>
9
10#include "core/utils/math/geometry/rotation2d.h"
11#include "core/utils/math/geometry/transform2d.h"
12#include "core/utils/math/geometry/translation2d.h"
13#include "core/utils/math/geometry/twist2d.h"
14
24class Pose2d {
25 public:
27 constexpr Pose2d() : m_translation(Translation2d()), m_rotation(Rotation2d()) {}
28
36
44 Pose2d(const double &x, const double &y, const Rotation2d &rotation);
45
53 Pose2d(const double &x, const double &y, const double &radians);
54
61 Pose2d(const Translation2d &translation, const double &radians);
62
68 Pose2d(const Eigen::Vector3d &pose_vector);
69
76
82 double x() const;
83
89 double y() const;
90
96 Rotation2d rotation() const;
97
99 void setRotationRad(double rotRad);
100
102 void setRotationDeg(double rotDeg);
103
111 bool operator==(const Pose2d other) const;
112
119 Pose2d operator*(const double &scalar) const;
120
127 Pose2d operator/(const double &scalar) const;
128
135 Pose2d operator+(const Transform2d &transform) const;
136
142 Transform2d operator-(const Pose2d &other) const;
143
151 friend std::ostream &operator<<(std::ostream &os, const Pose2d &pose);
152
160 Pose2d relative_to(const Pose2d &other) const;
161
170 Pose2d transform_by(const Transform2d &transform) const;
171
189 Pose2d exp(const Twist2d &twist) const;
190
202 Twist2d log(const Pose2d &end_pose) const;
203
204 private:
205 Translation2d m_translation;
206 Rotation2d m_rotation;
207};
208
216Pose2d wrapped_mean(const std::vector<Pose2d> &list);
Definition pose2d.h:24
Pose2d relative_to(const Pose2d &other) const
Definition pose2d.cpp:156
Translation2d translation() const
Definition pose2d.cpp:62
Twist2d log(const Pose2d &end_pose) const
Definition pose2d.cpp:223
Pose2d operator*(const double &scalar) const
Definition pose2d.cpp:106
double x() const
Definition pose2d.cpp:69
bool operator==(const Pose2d other) const
Definition pose2d.cpp:96
friend std::ostream & operator<<(std::ostream &os, const Pose2d &pose)
Definition pose2d.cpp:143
Pose2d operator+(const Transform2d &transform) const
Definition pose2d.cpp:122
Pose2d operator/(const double &scalar) const
Definition pose2d.cpp:114
Rotation2d rotation() const
Definition pose2d.cpp:83
void setRotationRad(double rotRad)
sets the ration value of the rotational component in Radians
Definition pose2d.cpp:85
void setRotationDeg(double rotDeg)
sets the ration value of the rotational component in Degrees
Definition pose2d.cpp:87
Pose2d transform_by(const Transform2d &transform) const
Definition pose2d.cpp:169
Transform2d operator-(const Pose2d &other) const
Definition pose2d.cpp:131
Pose2d exp(const Twist2d &twist) const
Definition pose2d.cpp:190
constexpr Pose2d()
Default Constructor for Pose2d.
Definition pose2d.h:27
double y() const
Definition pose2d.cpp:76
Definition rotation2d.h:26
Definition transform2d.h:22
Definition translation2d.h:21
Definition twist2d.h:18