mars_lib  0.1.0.3dc76ee85e09
Modular and Robust Sensor-Fusion
Public Member Functions | List of all members
mars::ReadPoseData Class Reference

#include </home/runner/work/mars_lib/mars_lib/source/mars/include/mars/data_utils/read_pose_data.h>

+ Collaboration diagram for mars::ReadPoseData:

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW ReadPoseData (std::vector< BufferEntryType > *data_out, std::shared_ptr< SensorAbsClass > sensor, const std::string &file_path, const double &time_offset=0)
 

Constructor & Destructor Documentation

◆ ReadPoseData()

EIGEN_MAKE_ALIGNED_OPERATOR_NEW mars::ReadPoseData::ReadPoseData ( std::vector< BufferEntryType > *  data_out,
std::shared_ptr< SensorAbsClass sensor,
const std::string &  file_path,
const double &  time_offset = 0 
)
inline
32  {
33  std::vector<std::string> expect_entry = { "t", "p_x", "p_y", "p_z", "q_w", "q_x", "q_y", "q_z" };
34 
35  CsvDataType csv_data;
36  ReadCsv(&csv_data, file_path);
37 
38  unsigned long number_of_datapoints = csv_data["t"].size();
39  data_out->resize(number_of_datapoints);
40 
41  for (size_t k = 0; k < number_of_datapoints; k++)
42  {
43  Time time = csv_data["t"][k] + time_offset;
44 
45  Eigen::Vector3d position(csv_data["p_x"][k], csv_data["p_y"][k], csv_data["p_z"][k]);
46  Eigen::Quaterniond orientation(csv_data["q_w"][k], csv_data["q_x"][k], csv_data["q_y"][k], csv_data["q_z"][k]);
47  orientation = Utils::NormalizeQuaternion(orientation, "pose csv reader");
48 
49  BufferDataType data;
50  data.set_measurement(std::make_shared<PoseMeasurementType>(position, orientation));
51 
52  BufferEntryType current_entry(time, data, sensor);
53  data_out->at(k) = current_entry;
54  }
55  }
static Eigen::Quaterniond NormalizeQuaternion(const Eigen::Quaterniond &quat, std::string note="")
std::map< std::string, std::vector< double > > CsvDataType
Definition: read_csv.h:26
+ Here is the call graph for this function:

The documentation for this class was generated from the following file: