supereight
Loading...
Searching...
No Matches
reader_leica.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2020-2022 Smart Robotics Lab, Imperial College London, Technical University of Munich
3 * SPDX-FileCopyrightText: 2022-2024 Simon Boche
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef __READER_LEICA_HPP
8#define __READER_LEICA_HPP
9
10#include "reader_base.hpp"
11
12namespace se {
13
17class LeicaReader : public Reader {
18 public:
24
26 void restart();
27
32 std::string name() const;
33
34 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
35
36 private:
38 std::ifstream lidar_stream_;
39 uint64_t ray_timestamp_ = 0;
41 std::ifstream trajectory_stream_;
42 uint64_t ts_prev_ = 0;
43 uint64_t ts_curr_ = 0;
44 Eigen::Vector3f pos_prev_, pos_curr_;
45 Eigen::Quaternionf ori_prev_, ori_curr_;
46
47 float azimuth_angular_resolution_;
48 float elevation_angular_resolution_;
49
50
51 ReaderStatus nextDepth(Image<float>& depth_image);
52
53 ReaderStatus nextRay(Eigen::Vector3f& ray_measurement);
54
55 ReaderStatus nextPose(Eigen::Isometry3f& T_WB);
56
57 ReaderStatus nextRayBatch(
58 const float batch_interval,
59 std::vector<std::pair<Eigen::Isometry3f, Eigen::Vector3f>,
60 Eigen::aligned_allocator<std::pair<Eigen::Isometry3f, Eigen::Vector3f>>>&
61 rayPoseBatch);
62
70 static std::string getScanFilename(const std::string& dir);
71};
72
73} // namespace se
74
75#endif //__READER_LEICA_HPP
Definition image.hpp:19
Reader for Leica style datasets.
Definition reader_leica.hpp:17
void restart()
Restart reading from the beginning.
LeicaReader(const Config &c)
Construct a LeicaReader from a Config.
std::string name() const
The name of the reader.
Base abstract class for dataset readers.
Definition reader_base.hpp:79
Helper wrapper to allocate and de-allocate octants in the octree.
Definition bounded_vector.hpp:14
ReaderStatus
The result of trying to read a depth/RGB image or a pose.
Definition reader_base.hpp:45
Definition reader_base.hpp:81