Merge branch 'develop' of http://gitlab.mynt.com/mynteye/mynt-eye-sdk-2 into develop
This commit is contained in:
commit
6ddc5758c5
|
@ -94,6 +94,18 @@ if(OS_WIN)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# rpath
|
||||||
|
|
||||||
|
set(CMAKE_MACOSX_RPATH 1)
|
||||||
|
set(MYNTEYE_CMAKE_RPATH "")
|
||||||
|
if(WITH_OPENCV)
|
||||||
|
list(APPEND MYNTEYE_CMAKE_RPATH ${OpenCV_LIB_PATH})
|
||||||
|
endif()
|
||||||
|
if(MYNTEYE_CMAKE_RPATH)
|
||||||
|
message(STATUS "RPATH: ${MYNTEYE_CMAKE_RPATH}")
|
||||||
|
set(CMAKE_INSTALL_RPATH "${MYNTEYE_CMAKE_RPATH}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# targets
|
# targets
|
||||||
|
|
||||||
add_definitions(-DMYNTEYE_EXPORTS)
|
add_definitions(-DMYNTEYE_EXPORTS)
|
||||||
|
@ -297,6 +309,7 @@ install(FILES
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/callbacks.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/callbacks.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/context.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/context.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/device.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/device.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/types.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/utils.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/utils.h
|
||||||
DESTINATION ${MYNTEYE_CMAKE_INCLUDE_DIR}/device
|
DESTINATION ${MYNTEYE_CMAKE_INCLUDE_DIR}/device
|
||||||
)
|
)
|
||||||
|
|
|
@ -41,6 +41,25 @@ if(${__index} GREATER -1)
|
||||||
set(WITH_OPENCV_WORLD TRUE)
|
set(WITH_OPENCV_WORLD TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT OpenCV_LIB_PATH)
|
||||||
|
list(LENGTH OpenCV_INCLUDE_DIRS __length)
|
||||||
|
if(${__length} GREATER 0)
|
||||||
|
list(GET OpenCV_INCLUDE_DIRS 0 __include_dir)
|
||||||
|
string(REGEX REPLACE "include.*$" "lib" __lib_dir "${__include_dir}")
|
||||||
|
find_library(__opencv_lib
|
||||||
|
NAMES opencv_core3 opencv_core opencv_world
|
||||||
|
PATHS "${__lib_dir}" "${__lib_dir}/x86_64-linux-gnu"
|
||||||
|
NO_DEFAULT_PATH)
|
||||||
|
#message(STATUS "__opencv_lib: ${__opencv_lib}")
|
||||||
|
if(__opencv_lib)
|
||||||
|
get_filename_component(OpenCV_LIB_PATH "${__opencv_lib}" DIRECTORY)
|
||||||
|
else()
|
||||||
|
set(OpenCV_LIB_PATH "${__lib_dir}")
|
||||||
|
endif()
|
||||||
|
#message(STATUS "OpenCV_LIB_PATH: ${OpenCV_LIB_PATH}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(MSVC OR MSYS OR MINGW)
|
if(MSVC OR MSYS OR MINGW)
|
||||||
get_filename_component(OpenCV_LIB_SEARCH_PATH "${OpenCV_LIB_PATH}/../bin" ABSOLUTE)
|
get_filename_component(OpenCV_LIB_SEARCH_PATH "${OpenCV_LIB_PATH}/../bin" ABSOLUTE)
|
||||||
else()
|
else()
|
||||||
|
|
|
@ -22,8 +22,8 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "mynteye/mynteye.h"
|
#include "mynteye/mynteye.h"
|
||||||
#include "mynteye/types.h"
|
|
||||||
#include "mynteye/device/callbacks.h"
|
#include "mynteye/device/callbacks.h"
|
||||||
|
#include "mynteye/device/types.h"
|
||||||
|
|
||||||
MYNTEYE_BEGIN_NAMESPACE
|
MYNTEYE_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
@ -51,26 +51,6 @@ class StreamsAdapter;
|
||||||
template <class Data>
|
template <class Data>
|
||||||
class AsyncCallback;
|
class AsyncCallback;
|
||||||
|
|
||||||
namespace device {
|
|
||||||
|
|
||||||
typedef struct ImgParams {
|
|
||||||
bool ok;
|
|
||||||
std::string version;
|
|
||||||
std::shared_ptr<IntrinsicsBase> in_left;
|
|
||||||
std::shared_ptr<IntrinsicsBase> in_right;
|
|
||||||
Extrinsics ex_right_to_left;
|
|
||||||
} img_params_t;
|
|
||||||
|
|
||||||
typedef struct ImuParams {
|
|
||||||
bool ok;
|
|
||||||
std::string version;
|
|
||||||
ImuIntrinsics in_accel;
|
|
||||||
ImuIntrinsics in_gyro;
|
|
||||||
Extrinsics ex_left_to_imu;
|
|
||||||
} imu_params_t;
|
|
||||||
|
|
||||||
} // namespace device
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Device class to communicate with MYNT® EYE device.
|
* The Device class to communicate with MYNT® EYE device.
|
||||||
*/
|
*/
|
||||||
|
@ -89,6 +69,7 @@ class MYNTEYE_API Device {
|
||||||
using motion_async_callback_ptr_t = std::shared_ptr<motion_async_callback_t>;
|
using motion_async_callback_ptr_t = std::shared_ptr<motion_async_callback_t>;
|
||||||
|
|
||||||
using img_params_t = device::img_params_t;
|
using img_params_t = device::img_params_t;
|
||||||
|
using img_params_map_t = std::map<Resolution, img_params_t>;
|
||||||
using imu_params_t = device::imu_params_t;
|
using imu_params_t = device::imu_params_t;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -337,10 +318,10 @@ class MYNTEYE_API Device {
|
||||||
|
|
||||||
virtual Capabilities GetKeyStreamCapability() const = 0;
|
virtual Capabilities GetKeyStreamCapability() const = 0;
|
||||||
|
|
||||||
std::map<Resolution, device::img_params_t> GetImgParams() const {
|
img_params_map_t GetImgParams() const {
|
||||||
return all_img_params_;
|
return all_img_params_;
|
||||||
}
|
}
|
||||||
device::imu_params_t GetImuParams() const {
|
imu_params_t GetImuParams() const {
|
||||||
return imu_params_;
|
return imu_params_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,8 +333,8 @@ class MYNTEYE_API Device {
|
||||||
std::shared_ptr<uvc::device> device_;
|
std::shared_ptr<uvc::device> device_;
|
||||||
std::shared_ptr<DeviceInfo> device_info_;
|
std::shared_ptr<DeviceInfo> device_info_;
|
||||||
|
|
||||||
std::map<Resolution, device::img_params_t> all_img_params_;
|
img_params_map_t all_img_params_;
|
||||||
device::imu_params_t imu_params_;
|
imu_params_t imu_params_;
|
||||||
|
|
||||||
std::map<Stream, std::shared_ptr<IntrinsicsBase>> stream_intrinsics_;
|
std::map<Stream, std::shared_ptr<IntrinsicsBase>> stream_intrinsics_;
|
||||||
std::map<Stream, std::map<Stream, Extrinsics>> stream_from_extrinsics_;
|
std::map<Stream, std::map<Stream, Extrinsics>> stream_from_extrinsics_;
|
||||||
|
@ -384,6 +365,11 @@ class MYNTEYE_API Device {
|
||||||
void CallbackPushedStreamData(const Stream &stream);
|
void CallbackPushedStreamData(const Stream &stream);
|
||||||
void CallbackMotionData(const device::MotionData &data);
|
void CallbackMotionData(const device::MotionData &data);
|
||||||
|
|
||||||
|
bool GetFiles(
|
||||||
|
DeviceInfo *info, img_params_map_t *img_params, imu_params_t *imu_params);
|
||||||
|
bool SetFiles(
|
||||||
|
DeviceInfo *info, img_params_map_t *img_params, imu_params_t *imu_params);
|
||||||
|
|
||||||
friend API;
|
friend API;
|
||||||
friend tools::DeviceWriter;
|
friend tools::DeviceWriter;
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,13 +18,35 @@
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <bitset>
|
#include <bitset>
|
||||||
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "mynteye/mynteye.h"
|
#include "mynteye/mynteye.h"
|
||||||
|
#include "mynteye/types.h"
|
||||||
|
|
||||||
MYNTEYE_BEGIN_NAMESPACE
|
MYNTEYE_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
namespace device {
|
||||||
|
|
||||||
|
typedef struct ImgParams {
|
||||||
|
bool ok;
|
||||||
|
std::string version;
|
||||||
|
std::shared_ptr<IntrinsicsBase> in_left;
|
||||||
|
std::shared_ptr<IntrinsicsBase> in_right;
|
||||||
|
Extrinsics ex_right_to_left;
|
||||||
|
} img_params_t;
|
||||||
|
|
||||||
|
typedef struct ImuParams {
|
||||||
|
bool ok;
|
||||||
|
std::string version;
|
||||||
|
ImuIntrinsics in_accel;
|
||||||
|
ImuIntrinsics in_gyro;
|
||||||
|
Extrinsics ex_left_to_imu;
|
||||||
|
} imu_params_t;
|
||||||
|
|
||||||
|
} // namespace device
|
||||||
|
|
||||||
#define MYNTEYE_PROPERTY(TYPE, NAME) \
|
#define MYNTEYE_PROPERTY(TYPE, NAME) \
|
||||||
public: \
|
public: \
|
||||||
void set_##NAME(TYPE NAME) { \
|
void set_##NAME(TYPE NAME) { \
|
||||||
|
@ -142,73 +164,6 @@ struct MYNTEYE_API DeviceInfo {
|
||||||
std::uint16_t nominal_baseline;
|
std::uint16_t nominal_baseline;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup datatypes
|
|
||||||
* Imu request packet.
|
|
||||||
*/
|
|
||||||
#pragma pack(push, 1)
|
|
||||||
struct ImuReqPacket {
|
|
||||||
std::uint8_t header;
|
|
||||||
std::uint32_t serial_number;
|
|
||||||
|
|
||||||
ImuReqPacket() = default;
|
|
||||||
explicit ImuReqPacket(std::uint32_t serial_number)
|
|
||||||
: ImuReqPacket(0x5A, serial_number) {}
|
|
||||||
ImuReqPacket(std::uint8_t header, std::uint32_t serial_number)
|
|
||||||
: header(header), serial_number(serial_number) {}
|
|
||||||
|
|
||||||
std::array<std::uint8_t, 5> to_data() const {
|
|
||||||
return {{header, static_cast<std::uint8_t>((serial_number >> 24) & 0xFF),
|
|
||||||
static_cast<std::uint8_t>((serial_number >> 16) & 0xFF),
|
|
||||||
static_cast<std::uint8_t>((serial_number >> 8) & 0xFF),
|
|
||||||
static_cast<std::uint8_t>(serial_number & 0xFF)}};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#pragma pack(pop)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup datatypes
|
|
||||||
* Imu segment.
|
|
||||||
*/
|
|
||||||
#pragma pack(push, 1)
|
|
||||||
struct ImuSegment {
|
|
||||||
std::uint32_t frame_id;
|
|
||||||
std::uint64_t timestamp;
|
|
||||||
std::uint8_t flag;
|
|
||||||
std::int16_t temperature;
|
|
||||||
std::int16_t accel[3];
|
|
||||||
std::int16_t gyro[3];
|
|
||||||
};
|
|
||||||
#pragma pack(pop)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup datatypes
|
|
||||||
* Imu packet.
|
|
||||||
*/
|
|
||||||
#pragma pack(push, 1)
|
|
||||||
struct ImuPacket {
|
|
||||||
std::uint8_t version;
|
|
||||||
std::uint8_t count;
|
|
||||||
std::uint32_t serial_number;
|
|
||||||
std::vector<ImuSegment> segments;
|
|
||||||
};
|
|
||||||
#pragma pack(pop)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup datatypes
|
|
||||||
* Imu response packet.
|
|
||||||
*/
|
|
||||||
#pragma pack(push, 1)
|
|
||||||
struct ImuResPacket {
|
|
||||||
std::uint8_t version;
|
|
||||||
std::uint8_t header;
|
|
||||||
std::uint8_t state;
|
|
||||||
std::uint16_t size;
|
|
||||||
std::vector<ImuPacket> packets;
|
|
||||||
std::uint8_t checksum;
|
|
||||||
};
|
|
||||||
#pragma pack(pop)
|
|
||||||
|
|
||||||
#undef MYNTEYE_PROPERTY
|
#undef MYNTEYE_PROPERTY
|
||||||
|
|
||||||
MYNTEYE_END_NAMESPACE
|
MYNTEYE_END_NAMESPACE
|
|
@ -14,6 +14,8 @@
|
||||||
#include "mynteye/api/processor/points_processor.h"
|
#include "mynteye/api/processor/points_processor.h"
|
||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
#include <vector>
|
||||||
|
#include <limits>
|
||||||
|
|
||||||
#include <opencv2/calib3d/calib3d.hpp>
|
#include <opencv2/calib3d/calib3d.hpp>
|
||||||
|
|
||||||
|
@ -21,6 +23,33 @@
|
||||||
|
|
||||||
MYNTEYE_BEGIN_NAMESPACE
|
MYNTEYE_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
// Encapsulate differences between processing float and uint16_t depths
|
||||||
|
template<typename T> struct DepthTraits {};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct DepthTraits<uint16_t> {
|
||||||
|
static inline bool valid(uint16_t depth) { return depth != 0; }
|
||||||
|
static inline float toMeters(uint16_t depth) { return depth * 0.001f; } // originally mm
|
||||||
|
static inline uint16_t fromMeters(float depth) { return (depth * 1000.0f) + 0.5f; }
|
||||||
|
static inline void initializeBuffer(std::vector<uint8_t>& buffer) {} // Do nothing - already zero-filled
|
||||||
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct DepthTraits<float> {
|
||||||
|
static inline bool valid(float depth) { return std::isfinite(depth); }
|
||||||
|
static inline float toMeters(float depth) { return depth; }
|
||||||
|
static inline float fromMeters(float depth) { return depth; }
|
||||||
|
|
||||||
|
static inline void initializeBuffer(std::vector<uint8_t>& buffer) {
|
||||||
|
float* start = reinterpret_cast<float*>(&buffer[0]);
|
||||||
|
float* end = reinterpret_cast<float*>(&buffer[0] + buffer.size());
|
||||||
|
std::fill(start, end, std::numeric_limits<float>::quiet_NaN());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}; // namespace
|
||||||
|
|
||||||
const char PointsProcessor::NAME[] = "PointsProcessor";
|
const char PointsProcessor::NAME[] = "PointsProcessor";
|
||||||
|
|
||||||
PointsProcessor::PointsProcessor(std::int32_t proc_period)
|
PointsProcessor::PointsProcessor(std::int32_t proc_period)
|
||||||
|
@ -42,6 +71,46 @@ Object *PointsProcessor::OnCreateOutput() {
|
||||||
|
|
||||||
bool PointsProcessor::OnProcess(
|
bool PointsProcessor::OnProcess(
|
||||||
Object *const in, Object *const out, Processor *const parent) {
|
Object *const in, Object *const out, Processor *const parent) {
|
||||||
|
MYNTEYE_UNUSED(parent)
|
||||||
|
|
||||||
|
float fx = 3.6797709792391299e+02;
|
||||||
|
float fy = 3.6808712539453859e+02;
|
||||||
|
float cx = 3.7414963027144353e+02;
|
||||||
|
float cy = 2.3125000326472903e+02;
|
||||||
|
|
||||||
|
// Use correct principal point from calibration
|
||||||
|
float center_x = cx;
|
||||||
|
float center_y = cy;
|
||||||
|
|
||||||
|
// Combine unit conversion (if necessary) with scaling by focal length for computing (X,Y)
|
||||||
|
double unit_scaling = DepthTraits<float>::toMeters(static_cast<float>(1));
|
||||||
|
float constant_x = unit_scaling / fx;
|
||||||
|
float constant_y = unit_scaling / fy;
|
||||||
|
// float bad_point = std::numeric_limits<float>::quiet_NaN();
|
||||||
|
|
||||||
|
const ObjMat *input = Object::Cast<ObjMat>(in);
|
||||||
|
ObjMat *output = Object::Cast<ObjMat>(out);
|
||||||
|
output->value.create(input->value.size(), CV_MAKETYPE(CV_32F, 3));
|
||||||
|
|
||||||
|
int height = static_cast<int>(output->value.rows);
|
||||||
|
int width = static_cast<int>(output->value.cols);
|
||||||
|
for (int v = 0; v < height; ++v) {
|
||||||
|
|
||||||
|
cv::Vec3f *dptr = output->value.ptr<cv::Vec3f>(v);
|
||||||
|
for (int u = 0; u < width; ++u) {
|
||||||
|
float depth = input->value.at<float>(v, u);
|
||||||
|
|
||||||
|
// Missing points denoted by NaNs
|
||||||
|
if (!DepthTraits<float>::valid(depth)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
dptr[u][0] = (u - center_x) * depth * constant_x;
|
||||||
|
dptr[u][1] = (v - center_y) * depth * constant_y;
|
||||||
|
dptr[u][2] = DepthTraits<float>::toMeters(depth);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,10 @@
|
||||||
#define MYNTEYE_DEVICE_CHANNEL_DEF_H_
|
#define MYNTEYE_DEVICE_CHANNEL_DEF_H_
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <array>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include "mynteye/mynteye.h"
|
#include "mynteye/mynteye.h"
|
||||||
|
|
||||||
MYNTEYE_BEGIN_NAMESPACE
|
MYNTEYE_BEGIN_NAMESPACE
|
||||||
|
@ -35,6 +39,73 @@ typedef enum FileId {
|
||||||
FID_LAST,
|
FID_LAST,
|
||||||
} file_id_t;
|
} file_id_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup datatypes
|
||||||
|
* Imu request packet.
|
||||||
|
*/
|
||||||
|
#pragma pack(push, 1)
|
||||||
|
struct ImuReqPacket {
|
||||||
|
std::uint8_t header;
|
||||||
|
std::uint32_t serial_number;
|
||||||
|
|
||||||
|
ImuReqPacket() = default;
|
||||||
|
explicit ImuReqPacket(std::uint32_t serial_number)
|
||||||
|
: ImuReqPacket(0x5A, serial_number) {}
|
||||||
|
ImuReqPacket(std::uint8_t header, std::uint32_t serial_number)
|
||||||
|
: header(header), serial_number(serial_number) {}
|
||||||
|
|
||||||
|
std::array<std::uint8_t, 5> to_data() const {
|
||||||
|
return {{header, static_cast<std::uint8_t>((serial_number >> 24) & 0xFF),
|
||||||
|
static_cast<std::uint8_t>((serial_number >> 16) & 0xFF),
|
||||||
|
static_cast<std::uint8_t>((serial_number >> 8) & 0xFF),
|
||||||
|
static_cast<std::uint8_t>(serial_number & 0xFF)}};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup datatypes
|
||||||
|
* Imu segment.
|
||||||
|
*/
|
||||||
|
#pragma pack(push, 1)
|
||||||
|
struct ImuSegment {
|
||||||
|
std::uint32_t frame_id;
|
||||||
|
std::uint64_t timestamp;
|
||||||
|
std::uint8_t flag;
|
||||||
|
std::int16_t temperature;
|
||||||
|
std::int16_t accel[3];
|
||||||
|
std::int16_t gyro[3];
|
||||||
|
};
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup datatypes
|
||||||
|
* Imu packet.
|
||||||
|
*/
|
||||||
|
#pragma pack(push, 1)
|
||||||
|
struct ImuPacket {
|
||||||
|
std::uint8_t version;
|
||||||
|
std::uint8_t count;
|
||||||
|
std::uint32_t serial_number;
|
||||||
|
std::vector<ImuSegment> segments;
|
||||||
|
};
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup datatypes
|
||||||
|
* Imu response packet.
|
||||||
|
*/
|
||||||
|
#pragma pack(push, 1)
|
||||||
|
struct ImuResPacket {
|
||||||
|
std::uint8_t version;
|
||||||
|
std::uint8_t header;
|
||||||
|
std::uint8_t state;
|
||||||
|
std::uint16_t size;
|
||||||
|
std::vector<ImuPacket> packets;
|
||||||
|
std::uint8_t checksum;
|
||||||
|
};
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
MYNTEYE_END_NAMESPACE
|
MYNTEYE_END_NAMESPACE
|
||||||
|
|
||||||
#endif // MYNTEYE_DEVICE_CHANNEL_DEF_H_
|
#endif // MYNTEYE_DEVICE_CHANNEL_DEF_H_
|
||||||
|
|
|
@ -676,4 +676,14 @@ void Device::CallbackMotionData(const device::MotionData &data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Device::GetFiles(
|
||||||
|
DeviceInfo *info, img_params_map_t *img_params, imu_params_t *imu_params) {
|
||||||
|
return channels_->GetFiles(info, img_params, imu_params);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Device::SetFiles(
|
||||||
|
DeviceInfo *info, img_params_map_t *img_params, imu_params_t *imu_params) {
|
||||||
|
return channels_->SetFiles(info, img_params, imu_params);
|
||||||
|
}
|
||||||
|
|
||||||
MYNTEYE_END_NAMESPACE
|
MYNTEYE_END_NAMESPACE
|
||||||
|
|
|
@ -20,10 +20,6 @@ set_outdir(
|
||||||
"${OUT_DIR}/bin/${DIR_NAME}"
|
"${OUT_DIR}/bin/${DIR_NAME}"
|
||||||
)
|
)
|
||||||
|
|
||||||
include_directories(
|
|
||||||
${PRO_DIR}/src
|
|
||||||
)
|
|
||||||
|
|
||||||
## device_writer
|
## device_writer
|
||||||
|
|
||||||
add_library(device_writer STATIC device_writer.cc)
|
add_library(device_writer STATIC device_writer.cc)
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include <opencv2/core/core.hpp>
|
#include <opencv2/core/core.hpp>
|
||||||
|
|
||||||
#include "mynteye/logger.h"
|
#include "mynteye/logger.h"
|
||||||
#include "mynteye/device/device.h"
|
|
||||||
#include "mynteye/util/files.h"
|
#include "mynteye/util/files.h"
|
||||||
|
|
||||||
#define SAVE_LATEST_VERSION Version(1, 2)
|
#define SAVE_LATEST_VERSION Version(1, 2)
|
||||||
|
@ -36,15 +35,13 @@ DeviceWriter::~DeviceWriter() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DeviceWriter::WriteDeviceInfo(const dev_info_t &info) {
|
bool DeviceWriter::WriteDeviceInfo(const dev_info_t &info) {
|
||||||
auto &&channels = device_->channels();
|
|
||||||
|
|
||||||
// Update device info
|
// Update device info
|
||||||
auto &&dev_info = device_->GetInfo();
|
auto &&dev_info = device_->GetInfo();
|
||||||
dev_info->lens_type = Type(info.lens_type);
|
dev_info->lens_type = Type(info.lens_type);
|
||||||
dev_info->imu_type = Type(info.imu_type);
|
dev_info->imu_type = Type(info.imu_type);
|
||||||
dev_info->nominal_baseline = info.nominal_baseline;
|
dev_info->nominal_baseline = info.nominal_baseline;
|
||||||
|
|
||||||
if (channels->SetFiles(dev_info.get(), nullptr, nullptr)) {
|
if (device_->SetFiles(dev_info.get(), nullptr, nullptr)) {
|
||||||
LOG(INFO) << "Write device info success";
|
LOG(INFO) << "Write device info success";
|
||||||
LOG(INFO) << "Device info: {name: " << dev_info->name
|
LOG(INFO) << "Device info: {name: " << dev_info->name
|
||||||
<< ", serial_number: " << dev_info->serial_number
|
<< ", serial_number: " << dev_info->serial_number
|
||||||
|
@ -68,8 +65,6 @@ bool DeviceWriter::WriteDeviceInfo(const std::string &filepath) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DeviceWriter::WriteImgParams(const img_params_map_t &img_params_map) {
|
bool DeviceWriter::WriteImgParams(const img_params_map_t &img_params_map) {
|
||||||
auto &&channels = device_->channels();
|
|
||||||
|
|
||||||
img_params_map_t *img_params_new =
|
img_params_map_t *img_params_new =
|
||||||
const_cast<img_params_map_t *>(&img_params_map);
|
const_cast<img_params_map_t *>(&img_params_map);
|
||||||
// Update image params with raw
|
// Update image params with raw
|
||||||
|
@ -81,7 +76,7 @@ bool DeviceWriter::WriteImgParams(const img_params_map_t &img_params_map) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (channels->SetFiles(nullptr, img_params_new, nullptr)) {
|
if (device_->SetFiles(nullptr, img_params_new, nullptr)) {
|
||||||
LOG(INFO) << "Write img params success";
|
LOG(INFO) << "Write img params success";
|
||||||
for (auto it = img_params_new->begin(); it != img_params_new->end(); it++) {
|
for (auto it = img_params_new->begin(); it != img_params_new->end(); it++) {
|
||||||
LOG(INFO) << "Resolution: {width: " << (*it).first.width
|
LOG(INFO) << "Resolution: {width: " << (*it).first.width
|
||||||
|
@ -103,8 +98,7 @@ bool DeviceWriter::WriteImgParams(const std::string &filepath) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DeviceWriter::WriteImuParams(const imu_params_t ¶ms) {
|
bool DeviceWriter::WriteImuParams(const imu_params_t ¶ms) {
|
||||||
auto &&channels = device_->channels();
|
if (device_->SetFiles(
|
||||||
if (channels->SetFiles(
|
|
||||||
nullptr, nullptr, const_cast<imu_params_t *>(¶ms))) {
|
nullptr, nullptr, const_cast<imu_params_t *>(¶ms))) {
|
||||||
LOG(INFO) << "Write imu params success";
|
LOG(INFO) << "Write imu params success";
|
||||||
LOG(INFO) << "Imu intrinsics accel: {" << params.in_accel << "}";
|
LOG(INFO) << "Imu intrinsics accel: {" << params.in_accel << "}";
|
||||||
|
|
|
@ -19,9 +19,7 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "mynteye/mynteye.h"
|
#include "mynteye/device/device.h"
|
||||||
#include "mynteye/device/channel/channels.h"
|
|
||||||
#include "mynteye/device/types.h"
|
|
||||||
|
|
||||||
MYNTEYE_BEGIN_NAMESPACE
|
MYNTEYE_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user