Vai al contenuto principale

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.
Gli esempi sono indicazioni per lo sviluppo e potrebbero non coprire tutti i dispositivi o casi d’uso.

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 fotocamera

Configurazione di rete

  1. Il segmento di rete IP predefinito della fotocamera è 192.168.100.*.
  2. 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:
  3. 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:
  4. 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
  1. Decomprimi il pacchetto ed esegui lo script di installazione:
Lo script installa l’SDK in /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:
Per le sessioni del terminale aperte prima dell’installazione, esegui il comando seguente prima di avviare il programma:

Utilizzare Camera SDK

Struttura delle directory

La directory di Camera SDK contiene i seguenti elementi:
Camera SDK directory structure correlato diagram
  • 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 file CMakeLists.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

  1. For enumeration types prefixed con LX_INT, utilizzare DcSetIntValue o DcGetIntValue a impostare o ottenere INT tipo parametri;
  2. For enumeration types prefixed con LX_FLOAT, utilizzare DcSetFloatValue o DcGetFloatValue a impostare o ottenere FLOAT tipo parametri;
  3. For enumeration types prefixed con LX_BOOL, utilizzare DcSetBoolValue o DcGetBoolValue a impostare o ottenere BOOL tipo parametri;
  4. For enumeration types prefixed con LX_STRING, utilizzare DcSetStringValue o DcGetStringValue a impostare o ottenere string tipo parametri;
  5. Use DcSetCmd a execute instructions per enumeration types prefixed con LX_CMD;
  6. For enumeration types prefixed con LX_PTR, utilizzare DcGetPtrValue a obtain pointer tipo risultati;

Precondizioni delle API

When streaming è active, o quando LX_INT_WORK_MODE è impostare a always-on mode, do not impostare il functions listed below.
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
2. Settings sono not allowed even quando il working mode (LX_INT_WORK_MODE) è normally aprire:
  • LX_INT_TOF_FREQMODE
3. When 3D automatic exposure (LX_BOOL_ENABLE_3D_AUTO_EXPOSURE) è turned on, il seguente funzione enumeration operations sono not allowed:
  • LX_BOOL_ENABLE_MULTI_EXPOSURE_HDR ;
  • LX_INT_FIRST_EXPOSURE;
  • LX_INT_SECOND_EXPOSURE;
  • LX_INT_THIRD_EXPOSURE;
  • LX_INT_GAIN;
4.When 3D automatic exposure (LX_BOOL_ENABLE_3D_AUTO_EXPOSURE) è turned off, il seguente funzione enumeration è not allowed a operate:
  • LX_INT_3D_AUTO_EXPOSURE_LEVEL
Setting il 3D automatic exposure massimo valore (LX_INT_3D_AUTO_EXPOSURE_MAX) e minimo valore è not allowed
  • (LX_INT_3D_AUTO_EXPOSURE_MIN)
5. When 2D automatic exposure (LX_BOOL_ENABLE_2D_AUTO_EXPOSURE) è turned on, il seguente funzione enumeration operations sono not allowed:
  • 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 codice

5.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 mode

5.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 parametri

5.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 structure

5.10 LxIntValueInfo

Function: Device attribute informazioni structure

5.11 LxFloatValueInfo

Function: Device attribute informazioni structure

5.12 LX_DEVICE_TYPE

Function: dispositivo tipo

5.13 LX_OPEN_MODE

Function: dispositivo tipo

5.14 FrameDataInfo

Function: Image visualizzare informazioni structure

5.15 FrameInfo

Function: Data frame informazioni structure

API 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
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Note: Il memoria è maintained internally, e there è no devi a allocate external memoria. However, because il original content sarà be cleared prima each search, external thread safety needs a be ensured.

6.1.2 DcOpenDevice

Prototipo della funzione:
DcOpenDevice correlato immagini
Funzione: Connect tuo dispositivo. Parametri 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
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.1.3 DcCloseDevice

Prototipo della funzione:
DcCloseDevice correlato immagini
Funzione: Turn off il dispositivo Parametri della funzione:
  • [in]handle dispositivo handle
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.2 Start streaming e chiudere streaming

6.2.1 DcStartStream

Prototipo della funzione:
DcStartStream correlato immagini
**Function:**Open dati stream Parametri della funzione:
  • [in]handle dispositivo handle
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.2.2 DcStopStream

Prototipo della funzione:
DcStopStream correlato immagini
**Function:**Close dati flow Parametri della funzione:
  • [in]handle dispositivo handle
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3 Reading e setting fotocamera parametri

6.3.1 DcSetIntValue

Prototipo della funzione:
DcSetIntValue correlato immagini
Funzione: Set int tipo parametri Parametri della funzione:
  • [in]handle dispositivo handle
  • [in]cmd reference LX_CAMERA_FEATURE
  • [in]valore sets parametro valore
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3.2 DcGetIntValue

Prototipo della funzione:
DcGetIntValue correlato immagini
Funzione: Get int tipo parametri Parametri 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.
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3.3 DcSetFloatValue

Prototipo della funzione:
DcSetFloatValue correlato immagini
Funzione: Set float tipo parametri Parametri della funzione:
  • [in]handle dispositivo handle
  • [in]cmd reference LX_CAMERA_FEATURE
  • [in]valore sets parametro valore
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3.4 DcGetFloatValue

Prototipo della funzione:
DcGetFloatValue correlato immagini
Funzione: Get float tipo parametri Parametri 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.
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3.5 DcSetBoolValue

Prototipo della funzione:
DcSetBoolValue correlato immagini
Funzione: Set bool tipo parametri Parametri della funzione:
  • [in]handle dispositivo handle
  • [in]cmd reference LX_CAMERA_FEATURE
  • [in]valore sets parametro valore
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3.6 DcGetBoolValue

Prototipo della funzione:
DcGetBoolValue correlato immagini
Funzione: Get bool tipo parametro Parametri della funzione:
  • [in]handle dispositivo handle
  • [in]cmd reference LX_CAMERA_FEATURE
  • [out]valore return parametri
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3.7 DcSetStringValue

Prototipo della funzione:
DcSetStringValue correlato immagini
Funzione: Set string tipo parametri Parametri della funzione:
  • [in]handle dispositivo handle
  • [in]cmd refer a LX_CAMERA_FEATURE
  • [in]valore sets parametro valore
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3.8 DcGetStringValue

Prototipo della funzione:
DcGetStringValue correlato immagini
Funzione: Get string tipo parametri Parametri della funzione:
  • [in]handle dispositivo handle
  • [in]cmd reference LX_CAMERA_FEATURE
  • [out]valore returns parametri senza external allocation di memoria
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3.9 DcGetPtrValue

Prototipo della funzione:
DcGetPtrValue correlato immagini
Funzione: Get pointer tipo parametri Parametri della funzione:
  • [in]handle dispositivo handle
  • [in]cmd reference LX_CAMERA_FEATURE
  • [out]valore returns parametri senza external allocation di memoria
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.3.10 DcSetCmd

Prototipo della funzione:
DcSetCmd correlato immagini
Funzione: Esegui corrispondente CMD tipo comando operation Parametri della funzione:
  • [in]handle dispositivo handle
  • [in]cmd reference LX_CAMERA_FEATURE
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.4 Save punto nuvola

6.4.1 DcSaveXYZ

Prototipo della funzione:
DcSaveXYZ correlato immagini
Funzione: Save il punto nuvola e call it directly Parametri 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
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.5 Special Controls

6.5.1 DcSpecialControl

Prototipo della funzione:
DcSpecialControl correlato immagini
Funzione: LX_CAMERA_FEATURE Special operations beyond il definition Parametri 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.
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.6 Set ROI e parametro percorso

6.6.1 DcSetRoI

Prototipo della funzione:
DcSetRoI correlato immagini
Funzione: Set il ROI area. Se il input valore è not an integer multiple di 8, it sarà be automatically processed internally come il nearest integer multiple di 8 a il scelto valore. Image size parametri devi a be updated dopo setting Parametri 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
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

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)
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: When il dispositivo è not connected, you devi a obtain it through search prima. Se il dispositivo supports modifying il gateway e subnet mask, impostare il gateway a il stesso network segment e il subnet mask a “255.255.0.0”. After modification, il dispositivo elenco sarà change, e you devi a call il DcGetDeviceList interface again a obtain il new dispositivo elenco.

6.8 Log informazioni e versione informazioni

6.8.1 DcGetApiVersion

Prototipo della funzione:
DcGetApiVersion correlato immagini
Funzione: Get API versione numero Parametri della funzione: Valore restituito: char pointer dati. Nota:

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)
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.8.3 DcLog

Prototipo della funzione:
DcLog correlato immagini
Funzione: Allow users a output debugging informazioni a il log file Parametri della funzione:
  • [in]str Il string a be output, terminated da ‘\0’
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

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
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

6.8.5 DcUnregisterFrameCallback

Prototipo della funzione:
DcUnregisterFrameCallback correlato immagini
Funzione: Cancel frame callback Parametri della funzione:
  • [in]handle dispositivo handle,
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

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
Nota: Make sure il parametri passed in sono valid

6.9.2 DcUnregisterCameraStatusCallback

Prototipo della funzione:
DcUnregisterCameraStatusCallback correlato immagini
Funzione: Cancel fotocamera stato registration callback Parametri della funzione:
  • [in]handle dispositivo handle,
Valore restituito: Int dati, questo valore è equal a LX_SUCCESS, indicating that il interface call è riuscita. Nota: Make sure il parametri passed in sono valid

Versions e updates