Merge branch 'develop' of http://gitlab.mynt.com/mynteye/mynt-eye-sdk-2 into develop
This commit is contained in:
		
						commit
						68705e111d
					
				
							
								
								
									
										3653
									
								
								wrappers/ros/src/mynt_eye_ros_wrapper/src/configuru.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3653
									
								
								wrappers/ros/src/mynt_eye_ros_wrapper/src/configuru.hpp
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -37,6 +37,9 @@
 | 
				
			|||||||
#include "mynteye/api/api.h"
 | 
					#include "mynteye/api/api.h"
 | 
				
			||||||
#include "mynteye/device/context.h"
 | 
					#include "mynteye/device/context.h"
 | 
				
			||||||
#include "mynteye/device/device.h"
 | 
					#include "mynteye/device/device.h"
 | 
				
			||||||
 | 
					#define CONFIGURU_IMPLEMENTATION 1
 | 
				
			||||||
 | 
					#include "configuru.hpp"
 | 
				
			||||||
 | 
					using namespace configuru;  // NOLINT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define FULL_PRECISION \
 | 
					#define FULL_PRECISION \
 | 
				
			||||||
  std::fixed << std::setprecision(std::numeric_limits<double>::max_digits10)
 | 
					  std::fixed << std::setprecision(std::numeric_limits<double>::max_digits10)
 | 
				
			||||||
@ -404,6 +407,115 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
 | 
				
			|||||||
      case Request::NOMINAL_BASELINE:
 | 
					      case Request::NOMINAL_BASELINE:
 | 
				
			||||||
        res.value = api_->GetInfo(Info::NOMINAL_BASELINE);
 | 
					        res.value = api_->GetInfo(Info::NOMINAL_BASELINE);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
 | 
					      case Request::IMG_INTRINSICS:
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        auto intri_left = api_->GetIntrinsicsBase(Stream::LEFT);
 | 
				
			||||||
 | 
					        auto calib_model = intri_left->calib_model();
 | 
				
			||||||
 | 
					        if (calib_model == CalibrationModel::PINHOLE) {
 | 
				
			||||||
 | 
					          auto intri_left =
 | 
				
			||||||
 | 
					              api_->GetIntrinsics<IntrinsicsPinhole>(Stream::LEFT);
 | 
				
			||||||
 | 
					          auto intri_right =
 | 
				
			||||||
 | 
					              api_->GetIntrinsics<IntrinsicsPinhole>(Stream::RIGHT);
 | 
				
			||||||
 | 
					          Config intrinsics{
 | 
				
			||||||
 | 
					            {"calib_model", "pinhole"},
 | 
				
			||||||
 | 
					            {"left", {
 | 
				
			||||||
 | 
					              {"width", intri_left.width},
 | 
				
			||||||
 | 
					              {"height", intri_left.height},
 | 
				
			||||||
 | 
					              {"fx", intri_left.fx},
 | 
				
			||||||
 | 
					              {"fy", intri_left.fy},
 | 
				
			||||||
 | 
					              {"cx", intri_left.cx},
 | 
				
			||||||
 | 
					              {"cy", intri_left.cy},
 | 
				
			||||||
 | 
					              {"model", intri_left.model},
 | 
				
			||||||
 | 
					              {"coeffs", Config::array(
 | 
				
			||||||
 | 
					                  {intri_left.coeffs[0],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[1],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[2],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[3],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[4]})}
 | 
				
			||||||
 | 
					            }},
 | 
				
			||||||
 | 
					            {"right", {
 | 
				
			||||||
 | 
					              {"width", intri_right.width},
 | 
				
			||||||
 | 
					              {"height", intri_right.height},
 | 
				
			||||||
 | 
					              {"fx", intri_right.fx},
 | 
				
			||||||
 | 
					              {"fy", intri_right.fy},
 | 
				
			||||||
 | 
					              {"cx", intri_right.cx},
 | 
				
			||||||
 | 
					              {"cy", intri_right.cy},
 | 
				
			||||||
 | 
					              {"model", intri_right.model},
 | 
				
			||||||
 | 
					              {"coeffs", Config::array(
 | 
				
			||||||
 | 
					                  {intri_right.coeffs[0],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[1],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[2],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[3],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[4]})}
 | 
				
			||||||
 | 
					            }}
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					          std::string json = dump_string(intrinsics, configuru::JSON);
 | 
				
			||||||
 | 
					          res.value = json;
 | 
				
			||||||
 | 
					        } else if (calib_model == CalibrationModel::KANNALA_BRANDT) {
 | 
				
			||||||
 | 
					          auto intri_left =
 | 
				
			||||||
 | 
					              api_->GetIntrinsics<IntrinsicsEquidistant>(Stream::LEFT);
 | 
				
			||||||
 | 
					          auto intri_right =
 | 
				
			||||||
 | 
					              api_->GetIntrinsics<IntrinsicsEquidistant>(Stream::RIGHT);
 | 
				
			||||||
 | 
					          Config intrinsics{
 | 
				
			||||||
 | 
					            {"calib_model", "kannala_brandt"},
 | 
				
			||||||
 | 
					            {"left", {
 | 
				
			||||||
 | 
					              {"width", intri_left.width},
 | 
				
			||||||
 | 
					              {"height", intri_left.height},
 | 
				
			||||||
 | 
					              {"coeffs", Config::array(
 | 
				
			||||||
 | 
					                  {intri_left.coeffs[0],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[1],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[2],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[3],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[4],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[5],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[6],
 | 
				
			||||||
 | 
					                   intri_left.coeffs[7]})
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }},
 | 
				
			||||||
 | 
					            {"right", {
 | 
				
			||||||
 | 
					              {"width", intri_right.width},
 | 
				
			||||||
 | 
					              {"height", intri_right.height},
 | 
				
			||||||
 | 
					              {"coeffs", Config::array(
 | 
				
			||||||
 | 
					                  {intri_right.coeffs[0],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[1],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[2],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[3],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[4],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[5],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[6],
 | 
				
			||||||
 | 
					                   intri_right.coeffs[7]})
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }}
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					          std::string json = dump_string(intrinsics, configuru::JSON);
 | 
				
			||||||
 | 
					          res.value = json;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          NODELET_INFO_STREAM("INVALID CALIB MODEL:" << calib_model);
 | 
				
			||||||
 | 
					          Config intrinsics{};
 | 
				
			||||||
 | 
					          std::string json = dump_string(intrinsics, configuru::JSON);
 | 
				
			||||||
 | 
					          res.value = json;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					      case Request::IMG_EXTRINSICS_RTOL:
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        auto extri = api_->GetExtrinsics(Stream::RIGHT, Stream::LEFT);
 | 
				
			||||||
 | 
					        Config extrinsics{
 | 
				
			||||||
 | 
					          {"rotation",     Config::array({extri.rotation[0][0], extri.rotation[0][1], extri.rotation[0][2],   // NOLINT
 | 
				
			||||||
 | 
					                                          extri.rotation[1][0], extri.rotation[1][1], extri.rotation[1][2],   // NOLINT
 | 
				
			||||||
 | 
					                                          extri.rotation[2][0], extri.rotation[2][1], extri.rotation[2][2]})},// NOLINT
 | 
				
			||||||
 | 
					          {"translation",  Config::array({extri.translation[0], extri.translation[1], extri.translation[2]})} // NOLINT
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        std::string json = dump_string(extrinsics, configuru::JSON);
 | 
				
			||||||
 | 
					        res.value = json;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					      case Request::IMU_INTRINSICS:
 | 
				
			||||||
 | 
					        res.value = "TODO";
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case Request::IMU_EXTRINSICS:
 | 
				
			||||||
 | 
					        res.value = "TODO";
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
      default:
 | 
					      default:
 | 
				
			||||||
        NODELET_WARN_STREAM("Info of key " << req.key << " not exist");
 | 
					        NODELET_WARN_STREAM("Info of key " << req.key << " not exist");
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,10 @@ uint32 SPEC_VERSION=4
 | 
				
			|||||||
uint32 LENS_TYPE=5
 | 
					uint32 LENS_TYPE=5
 | 
				
			||||||
uint32 IMU_TYPE=6
 | 
					uint32 IMU_TYPE=6
 | 
				
			||||||
uint32 NOMINAL_BASELINE=7
 | 
					uint32 NOMINAL_BASELINE=7
 | 
				
			||||||
 | 
					uint32 IMG_INTRINSICS=8
 | 
				
			||||||
 | 
					uint32 IMG_EXTRINSICS_RTOL=9
 | 
				
			||||||
 | 
					uint32 IMU_INTRINSICS=10
 | 
				
			||||||
 | 
					uint32 IMU_EXTRINSICS=11
 | 
				
			||||||
uint32 key
 | 
					uint32 key
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
string value
 | 
					string value
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user