Panoramica
Questa guida è destinata agli sviluppatori che integrano dispositivi fotografici. Copre le API di Camera SDK per i prodotti delle serie M4, M4 Mega, M4 Pro, V1 Pro, S2, S2 Max e H3. L’SDK funziona su Windows x86 e su Linux x86 o Arm. Camera SDK fornisce API unificate per l’accesso ai dispositivi e la configurazione dei parametri. Supporta l’acquisizione sincrona e asincrona di dati di profondità, intensità, nuvole di punti e RGB. Alcuni modelli forniscono anche dati per l’evitamento degli ostacoli, l’aggancio o la localizzazione.Gli esempi e le descrizioni delle API si basano sulla versione dell’SDK distribuita con il prodotto. I parametri disponibili possono variare in base al prodotto, al firmware e alla versione dell’SDK.
Configurazione dell’ambiente
Configurazione host consigliata
Connessione e installazione
Connessione hardware
Collega la fotocamera a un’alimentazione esterna da 24 V e al computer host tramite un cavo di rete, come mostrato nella Figura 2.1. Figura 2.1 Diagramma del collegamento della fotocameraConfigurazione di rete
- Il segmento di rete IP predefinito della fotocamera è 192.168.100.*.
- Sul computer host, imposta l’indirizzo IP della porta di rete collegata alla fotocamera su un indirizzo del segmento 192.168.100.x e assicurati che non entri in conflitto con il dispositivo. La subnet mask è 255.255.255.0, come mostrato nella figura seguente:
- Quando colleghi la fotocamera, ti consigliamo di disattivare il firewall per impedire che i pacchetti dati della fotocamera vengano intercettati dall’host su cui si trova l’SDK, come mostrato nella figura seguente:
- La configurazione di rete di Linux è uguale a quella di Windows. I comandi del firewall variano in base alla distribuzione. Su Ubuntu, esegui:
Installare l’SDK
Windows
Apri il pacchetto di installazione e installa Lanxin-MRDVS-xxx.exe. Per installarlo per tutti gli utenti sono necessari i diritti di amministratore. La figura seguente mostra la procedura di installazione.Linux
- Decomprimi il pacchetto ed esegui lo script di installazione:
/opt/Lanxin-MRDVS e configura le variabili d’ambiente per l’utente corrente. Se il programma viene eseguito da un altro utente, esegui nuovamente lo script per quell’utente oppure aggiungi la riga seguente al relativo ~/.bashrc:
Utilizzare Camera SDK
Struttura delle directory
La directory di Camera SDK contiene i seguenti elementi:
- Document contiene various documentation per il SDK
- FirmWare contiene fotocamera firmware upgrade package
- Sample contiene esempio codice using il Camera SDK in various programming languages
- SDK includono il header file e library file di Camera SDK
Flusso di sviluppo
Configurare il progetto
Per l’integrazione dell’SDK si consiglia C/C++. L’SDK includono un fileCMakeLists.txt per le build CMake e la cartella Sample contiene esempi in più linguaggi. Per i dettagli, consulta gli esempi in Sample e la guida agli esempi Linux.
Synchronous call flow
Asynchronous call flow
Requisiti per le chiamate
Tipi di parametro e API corrispondenti
- For enumeration types prefixed con LX_INT, utilizzare DcSetIntValue o DcGetIntValue a impostare o ottenere INT tipo parametri;
- For enumeration types prefixed con LX_FLOAT, utilizzare DcSetFloatValue o DcGetFloatValue a impostare o ottenere FLOAT tipo parametri;
- For enumeration types prefixed con LX_BOOL, utilizzare DcSetBoolValue o DcGetBoolValue a impostare o ottenere BOOL tipo parametri;
- For enumeration types prefixed con LX_STRING, utilizzare DcSetStringValue o DcGetStringValue a impostare o ottenere string tipo parametri;
- Use DcSetCmd a execute instructions per enumeration types prefixed con LX_CMD;
- For enumeration types prefixed con LX_PTR, utilizzare DcGetPtrValue a obtain pointer tipo risultati;
Precondizioni delle API
1. When il flow è avviato o il working mode (LX_INT_WORK_MODE) è normally aprire mode, il seguente functions sono not allowed a be impostare:- DcSetRoi
- LX_INT_3D_BINNING_MODE;
- LX_INT_2D_BINNING_MODE;
- LX_BOOL_ENABLE_2D_TO_DEPTH;
- LX_BOOL_ENABLE_MULTI_EXPOSURE_HDR;
- LX_BOOL_ENABLE_MULTI_MACHINE;
- LX_INT_TRIGGER_MODE;
- LX_INT_CALCULATE_UP;
- LX_BOOL_ENABLE_HDR;
- LX_BOOL_ENABLE_TOF_DEPTH_CALIBE;
- LX_BOOL_ENABLE_SYNC_FRAME
- LX_INT_SAVE_PARAMS_GROUP
- LX_INT_TOF_FREQMODE
- LX_BOOL_ENABLE_MULTI_EXPOSURE_HDR ;
- LX_INT_FIRST_EXPOSURE;
- LX_INT_SECOND_EXPOSURE;
- LX_INT_THIRD_EXPOSURE;
- LX_INT_GAIN;
- LX_INT_3D_AUTO_EXPOSURE_LEVEL
- (LX_INT_3D_AUTO_EXPOSURE_MIN)
- LX_INT_2D_MANUAL_EXPOSURE
6. When 2D automatic exposure (LX_BOOL_ENABLE_2D_AUTO_EXPOSURE) is turned off, the following function enumeration is not allowed to operate:
- LX_INT_2D_AUTO_EXPOSURE_LEVEL;
7.In extraordinary filtering mode, the following settings are not allowed:
- LX_INT_FILTER_SMOOTH_LEVEL LX_INT_FILTER_NOISE_LEVEL
- LX_INT_FILTER_TIME_LEVEL
8.When turning on 2D anti-distortion, RGB-D alignment must be turned on first:
- LX_BOOL_ENABLE_2D_TO_DEPTH
9.For non-S2 type devices, when turning on the built-in algorithm, you need to set the tof algorithm first. The algorithm parameters are only allowed to be set when the built-in algorithm (LX_INT_ALGORITHM_MODE) is turned on.
- (LX_STRING_ALGORITHM_PARAMS)
10.To obtain point cloud data (LX_PTR_XYZ_DATA), you must first open the depth map
- (LX_BOOL_ENABLE_3D_DEPTH_STREAM)
Data types
5.1 LX_STATE
Function: SDK interface funzione return valore stato codice5.2 LX_DATA_TYPE
Function: dati format. 3D intensità map e profondità map have diverso dati formats. To obtain il dati pointer, you devi a utilizzare il corrispondente feature.5.3 LX_BINNING_MODE
Function: Bining mode5.4 LX_STRUCT_LIGHT_CODE_MODE
Function:5.5 LX_ALGORITHM_MODE
Function:5.6 LX_CAMERA_WORK_MODE
Function:5.7 LX_TRIGGER_MODE
Function:5.8 LX_CAMERA_FEATURE
Function: Various readable e writable parametri5.8.1 int tipo parametri
5.8.1.1 General parametri
5.8.1.2 3D immagine parametri
5.8.1.4 2D immagine parametri
5.8.1.5 Trigger parametri
5.8.1.6 Filter parametri
5.8.2 float tipo parametri
5.8.3 bool tipo parametro
5.8.4 string tipo parametri
5.8.5 Command tipo parametri
5.8.6 ptr tipo parametri
5.9 LxDeviceInfo
Function: Device attribute informazioni structure5.10 LxIntValueInfo
Function: Device attribute informazioni structure5.11 LxFloatValueInfo
Function: Device attribute informazioni structure5.12 LX_DEVICE_TYPE
Function: dispositivo tipo5.13 LX_OPEN_MODE
Function: dispositivo tipo5.14 FrameDataInfo
Function: Image visualizzare informazioni structure5.15 FrameInfo
Function: Data frame informazioni structureAPI reference
API prototypes sono defined da il SDK headers e il shipped SDK versione. Unless noted otherwise,
LX_SUCCESS indicates a riuscita call.6.1 Find, connect e chiudere il fotocamera
6.1.1 DcGetDeviceList
Prototipo della funzione: Funzione: Get a elenco di supportato fotocamere. Parametri della funzione:- [out]devlist Found fotocamera elenco
- [out]devnum numero di fotocamere found
6.1.2 DcOpenDevice
Prototipo della funzione:
- [in]aprire_mode aprire mode, see OpenMode per dettagli
- [in]param diverso opening metodi, fill in diverso parametri
- [out]handle è il dispositivo handle returned dopo riuscita connection. All subsequent interface access depends on questo handle.
- [out]info Camera dettagli returned dopo riuscita connection
6.1.3 DcCloseDevice
Prototipo della funzione:
- [in]handle dispositivo handle
6.2 Start streaming e chiudere streaming
6.2.1 DcStartStream
Prototipo della funzione:
- [in]handle dispositivo handle
6.2.2 DcStopStream
Prototipo della funzione:
- [in]handle dispositivo handle
6.3 Reading e setting fotocamera parametri
6.3.1 DcSetIntValue
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd reference LX_CAMERA_FEATURE
- [in]valore sets parametro valore
6.3.2 DcGetIntValue
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd reference LX_CAMERA_FEATURE
- [out]valore returns il parametro structure, il massimo e minimo valori di il parametri, il corrente valore, etc.
6.3.3 DcSetFloatValue
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd reference LX_CAMERA_FEATURE
- [in]valore sets parametro valore
6.3.4 DcGetFloatValue
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd reference LX_CAMERA_FEATURE
- [out]valore returns il parametro structure, il massimo e minimo valori di il parametri, il corrente valore, etc.
6.3.5 DcSetBoolValue
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd reference LX_CAMERA_FEATURE
- [in]valore sets parametro valore
6.3.6 DcGetBoolValue
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd reference LX_CAMERA_FEATURE
- [out]valore return parametri
6.3.7 DcSetStringValue
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd refer a LX_CAMERA_FEATURE
- [in]valore sets parametro valore
6.3.8 DcGetStringValue
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd reference LX_CAMERA_FEATURE
- [out]valore returns parametri senza external allocation di memoria
6.3.9 DcGetPtrValue
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd reference LX_CAMERA_FEATURE
- [out]valore returns parametri senza external allocation di memoria
6.3.10 DcSetCmd
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]cmd reference LX_CAMERA_FEATURE
6.4 Save punto nuvola
6.4.1 DcSaveXYZ
Prototipo della funzione:
- handle dispositivo handle
- filename file nome, supports txt, ply e pcd formats. txt format saves tutti dati in immagine order, ply e pcd solo save non-zero dati
6.5 Special Controls
6.5.1 DcSpecialControl
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]param operation
- [inout]valore è il corrispondente input parametro quando impostare, e il corrispondente outgoing parametro quando obtained, senza external allocation di memoria.
6.6 Set ROI e parametro percorso
6.6.1 DcSetRoI
Prototipo della funzione:
- [in]handle dispositivo handle
- [in]offsetx horizontal offset di starting punto in pixels
- [in]offsety vertical offset di starting punto in pixels
- [in]widthroi larghezza di il scelto area
- [in]heightroi altezza di il scelto area
- [in]type0-3D immagine 1-2D immagine
6.7 Set fotocamera IP
6.7.1 DcSetCameraIp
Prototipo della funzione: Funzione: Set fotocamera IP e subnet mask, gateway Parametri della funzione:- [in]handle dispositivo handle,
- [in]ip dispositivo IP,
- [in]netmask subnet mask (if empty, il internal predefinito è “255.255.0.0”)
- [in]gateway gateway ip (if empty, il internal predefinito è a impostare il last network segment di ip a “1” come il gateway)
6.8 Log informazioni e versione informazioni
6.8.1 DcGetApiVersion
Prototipo della funzione:
6.8.2 DcSetInfoOutput
Prototipo della funzione: Funzione: Set printing informazioni level Parametri della funzione:- [in]print_level 0: info tutti debugging informazioni; 1: warn important e warning debugging informazioni; 2: errore solo output errore informazioni
- [in]enable_screen_print whether a print in il window
- [in]log_path Il log file saving percorso (does not includono il log file nome), può be empty. Windows defaults a il corrente user percorso, e Linux defaults a il /var/log percorso.
- [in]linguaggio linguaggio (not used yet)
6.8.3 DcLog
Prototipo della funzione:
- [in]str Il string a be output, terminated da ‘\0’
6.8.4 DcRegisterFrameCallback
Prototipo della funzione: Funzione: Register a dati frame callback funzione e automatically call it quando new dati è received. Parametri della funzione:- [in]handle dispositivo handle,
- [in]func frame dati callback funzione,
- [in]usr_data user-defined parametri, può be passed empty
6.8.5 DcUnregisterFrameCallback
Prototipo della funzione:
- [in]handle dispositivo handle,
6.9 Device stato callback
6.9.1 DcRegisterCameraStatusCallback
Prototipo della funzione: Funzione: Register il fotocamera stato callback funzione, which è automatically called quando il fotocamera stato changes. Parametri della funzione:- [in]handle dispositivo handle,
- [in]func frame dati callback funzione,
- [in]usr_data user-defined parametri, può be passed empty
6.9.2 DcUnregisterCameraStatusCallback
Prototipo della funzione:
- [in]handle dispositivo handle,