Dopo un po' di esperienza con i sensori a luce strutturata ho provata il sensore Intel RealSense D435 (attenzione manca la i finale....a differenza al D435i qui non e' presenta la IMU integrata) che funziona come sensore di profondita' usando la stereoscopia di due camere
Il sensore e' nato per applicazioni di robotica ed e' molto veloce nell'acquisizione/elaborazione (circa 30 fps) ma il risultato come dato di profondita' e' molto differente da quello che si ottiene da un sensore a luce strutturata
l'SDK e' nato per Windows e Ubuntu ma si puo' installare su Debian utilizzando Snap
snap install librealsense
Oltre alle librerie si installa anche realsense-viewer da cui e' possibile anche effettuare l'upgrade del firmware della camera
Gli esempi si trovano a https://dev.intelrealsense.com/docs/code-samples
Per compilare gli esempi ho dovuto installare anche la libreria StbEasyFont (e' presente nella directory third parts ma io la ho installata con apt per semplicita')
=================================================
cmake_minimum_required(VERSION 3.5)
project(realsense LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(realsense2 REQUIRED )
add_executable(realsense main.cpp)
target_link_libraries(realsense realsense2)
=================================================
=================================================
#include <iostream>
#include <librealsense2/rs.hpp>
using namespace std;
int main()
{
rs2::pipeline p;
p.start();
rs2::frameset frames = p.wait_for_frames();
rs2::depth_frame depth = frames.get_depth_frame();
float width = depth.get_width();
float height = depth.get_height();
float dist_to_center = depth.get_distance(width / 2, height / 2);
std::cout << "The camera is facing an object " <<
dist_to_center << " meters away" << endl << endl;
return 0;
}
=================================================
Multicam
Nell'esempio Multicam oltre alla libreria Realsense viene usata anche OpenGL con glfw
================================================
cmake_minimum_required(VERSION 3.5)
project(multicam LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# finds OpenGL, GLU and X11
find_package(OpenGL REQUIRED)
if(NOT OPENGL_FOUND)
message("ERROR: OpenGL not found")
endif(NOT OPENGL_FOUND)
set(GL_LIBRARY GL GLU X11)
find_package(realsense2 REQUIRED )
add_executable(multicam main.cpp)
target_link_libraries(multicam realsense2 glfw ${GL_LIBRARY} m)
================================================
Nessun commento:
Posta un commento