blob: 38006280e7084facd9a5a8a451df235bf8d5ab0c [file] [log] [blame]
James Kuszmaul9c3db182024-02-09 22:02:18 -08001#include "frc971/vision/target_map_utils.h"
James Kuszmaul18008f82023-02-23 20:52:50 -08002
James Kuszmaul9c3db182024-02-09 22:02:18 -08003namespace frc971::vision {
James Kuszmaul18008f82023-02-23 20:52:50 -08004Eigen::Matrix<double, 4, 4> PoseToTransform(
5 const frc971::vision::TargetPoseFbs *pose) {
6 const frc971::vision::Position *position = pose->position();
7 const frc971::vision::Quaternion *quaternion = pose->orientation();
8 return (Eigen::Translation3d(
9 Eigen::Vector3d(position->x(), position->y(), position->z())) *
10 Eigen::Quaterniond(quaternion->w(), quaternion->x(), quaternion->y(),
James Kuszmaulfeb89082024-02-21 14:00:15 -080011 quaternion->z())
12 .normalized())
James Kuszmaul18008f82023-02-23 20:52:50 -080013 .matrix();
14}
James Kuszmaul9c3db182024-02-09 22:02:18 -080015} // namespace frc971::vision