OpenEV
Extending OpenCV to event-based vision
 
Loading...
Searching...
No Matches
davis.hpp
Go to the documentation of this file.
1
6#ifndef OPENEV_DEVICES_DAVIS_HPP
7#define OPENEV_DEVICES_DAVIS_HPP
8
10#include "openev/containers/vector.hpp"
12#include <cstddef>
13#include <stdint.h>
14#include <vector>
15
16namespace ev {
20class Davis : public AbstractCamera {
21public:
22 constexpr static uint32_t DEFAULT_INTERVAL = 20000;
23 constexpr static uint32_t DEFAULT_EXPOSURE = 6500;
24
26 Davis();
27 Davis(const Davis &) = delete;
28 Davis(Davis &&) noexcept = delete;
29 Davis &operator=(const Davis &) = delete;
30 Davis &operator=(Davis &&) noexcept = delete;
32
38 BiasValue getBias(const uint8_t name) const;
39
46 bool setBias(const uint8_t name, const BiasValue &value);
47
52 void enableDvs(bool state);
53
59 void setDvsTimeInterval(uint32_t usec);
60
66 void setDvsEventsPerPacket(uint32_t n);
67
72 void enableAps(bool state);
73
78 void setApsTimeInterval(uint32_t usec);
79
84 void setExposure(uint32_t exposure);
85
90 void enableImu(bool state);
91
97 bool getData(Vector &events) override;
98
104 bool getData(Queue &events) override;
105
111 bool getData(StampedMat &frame);
112
118 bool getData(StampedMatVector &frames);
119
125 bool getData(StampedMatQueue &frames);
126
132 bool getData(Imu &imu);
133
139 bool getData(ImuVector &imu);
140
146 bool getData(ImuQueue &imu);
147
154 bool getData(Vector &events, StampedMat &frame);
155
162 bool getData(Vector &events, StampedMatVector &frames);
163
170 bool getData(Queue &events, StampedMatQueue &frames);
171
178 bool getData(Vector &events, Imu &imu);
179
186 bool getData(Vector &events, ImuVector &imu);
187
194 bool getData(Queue &events, ImuQueue &imu);
195
203 bool getData(Vector &events, StampedMat &frame, Imu &imu);
204
212 bool getData(Vector &events, StampedMatVector &frame, ImuVector &imu);
213
221 bool getData(Queue &events, StampedMatQueue &frame, ImuQueue &imu);
222
232 void getEventRaw(std::vector<uint64_t> &data);
233
245 std::size_t getEventRaw(uint64_t *data, const bool allow_realloc = true);
246
247private:
248 template <typename T1, typename T2, typename T3>
249 void getData_([[maybe_unused]] T1 *dvs, [[maybe_unused]] T2 *aps, [[maybe_unused]] T3 *imu);
250
251 void init() override;
252};
253
254} // namespace ev
255
256#endif // OPENEV_DEVICES_DAVIS_HPP
Abstract camera device driver.
This is an auxiliary class. This class cannot be instanced.
Definition abstract-camera.hpp:118
This class extends AbstractCamera to operate with DAVIS event cameras. DAVIS cameras offer events (DV...
Definition davis.hpp:20
void enableDvs(bool state)
Enable DVS.
Definition davis.cpp:78
void enableAps(bool state)
Enable APS.
Definition davis.cpp:92
void setDvsEventsPerPacket(uint32_t n)
Set DVS maximum number of events per transmission.
Definition davis.cpp:87
bool setBias(const uint8_t name, const BiasValue &value)
Set the bias value associated with the given name.
Definition davis.cpp:74
void setDvsTimeInterval(uint32_t usec)
Set DVS maximum time interval between subsequent transmissions.
Definition davis.cpp:82
bool getData(Vector &events) override
Get DVS data.
Definition davis.cpp:110
void enableImu(bool state)
Enable IMU.
Definition davis.cpp:104
BiasValue getBias(const uint8_t name) const
Retrieve the bias value associated with the given name.
Definition davis.cpp:70
void setExposure(uint32_t exposure)
Set APS exposure time.
Definition davis.cpp:100
void getEventRaw(std::vector< uint64_t > &data)
Retrieve raw event data.
Definition davis.cpp:304
void setApsTimeInterval(uint32_t usec)
Set APS maximum time interval between subsequent transmissions.
Definition davis.cpp:96
This class extends cv::Mat to include timestamp.
Definition abstract-camera.hpp:54
Queue container for basic event structures.
Queuei Queue
Definition queue.hpp:153
Definition abstract-camera.hpp:36
This struct is used to store IMU data from a DAVIS event camera.
Definition abstract-camera.hpp:92