My Project 1.0
Holistic Fusion: A Generic Framework for Multimodal Sensor Fusion
Loading...
Searching...
No Matches
eigen_wrapped_gtsam_utils.h
Go to the documentation of this file.
1/*
2Copyright 2024 by Julian Nubert, Robotic Systems Lab, ETH Zurich.
3All rights reserved.
4This file is released under the "BSD-3-Clause License".
5Please see the LICENSE file that has been included as part of this package.
6 */
7
8// C++
9#include <fstream>
10#include <map>
11#include <optional>
12#include <string>
13
14// Eigen
15#include <Eigen/Eigen>
16
17#ifndef GMSF_EIGEN_WRAPPED_GTSAM_UTILS_H
18#define GMSF_EIGEN_WRAPPED_GTSAM_UTILS_H
19
20namespace holistic_fusion {
21
22// Transformation Functions
23// Remove roll and pitch
24void inPlaceRemoveRollPitch(Eigen::Isometry3d& T);
25// Calculate yaw from Isometry
26double getYawFromIsometry(const Eigen::Isometry3d& T);
27
28// Creation of Files
29// Pose 3
30void createPose3CsvFileStream(std::map<std::string, std::ofstream>& fileStreams, const std::string& savePath,
31 const std::string& transformIdentifier, const std::string& timeString, const bool saveCovarianceFlag);
32// Latitude, Longitude, Altitude
33void createLatLonAltCsvFileStream(std::map<std::string, std::ofstream>& fileStreams, const std::string& savePath,
34 const std::string& transformIdentifier, const std::string& timeString);
35
36// Addition to Files
37// Pose 3
38void writePose3ToCsvFile(std::map<std::string, std::ofstream>& fileStreams, const Eigen::Isometry3d pose,
39 const std::string& transformIdentifier, const double timeStamp, const bool saveCovarianceFlag,
40 const std::optional<Eigen::Matrix<double, 6, 6>>& optionalPoseCovarianceInWorldRos = std::nullopt);
41// Latitude, Longitude, Altitude
42void writeLatLonAltToCsvFile(std::map<std::string, std::ofstream>& fileStreams, const Eigen::Vector3d& latLonAlt,
43 const std::string& transformIdentifier, const double timeStamp);
44
45} // namespace holistic_fusion
46#endif // GMSF_EIGEN_WRAPPED_GTSAM_UTILS_H
void createPose3CsvFileStream(std::map< std::string, std::ofstream > &fileStreams, const std::string &savePath, const std::string &transformIdentifier, const std::string &timeString, const bool saveCovarianceFlag)
void createLatLonAltCsvFileStream(std::map< std::string, std::ofstream > &fileStreams, const std::string &savePath, const std::string &transformIdentifier, const std::string &timeString)
void writeLatLonAltToCsvFile(std::map< std::string, std::ofstream > &fileStreams, const Eigen::Vector3d &latLonAlt, const std::string &transformIdentifier, const double timeStamp)
void inPlaceRemoveRollPitch(Eigen::Isometry3d &T)
void writePose3ToCsvFile(std::map< std::string, std::ofstream > &fileStreams, const Eigen::Isometry3d pose, const std::string &transformIdentifier, const double timeStamp, const bool saveCovarianceFlag, const std::optional< Eigen::Matrix< double, 6, 6 > > &optionalPoseCovarianceInWorldRos=std::nullopt)
double getYawFromIsometry(const Eigen::Isometry3d &T)