Versione del documento: V1.0; dati di revisione: 2024-10-12.
Panoramica
MRDVS Camera SDK per Linux includono esempi per C/C++, Java (server HTTP), ROS e ROS 2. Gli esempi mostrano il flusso di lavoro di base dell’SDK; aggiungi la logica specifica dell’applicazione e la gestione degli errori del tuo progetto. Completa prima la configurazione dell’ambiente, lo script di installazione e i controlli delle directory degli esempi. Segui quindi la sezione relativa alla compilazione e all’esecuzione per il linguaggio scelto. L’appendice elenca i metodi di installazione per le dipendenze e i pacchetti di test comuni.Sistema e ambiente
Sistemi compatibili e versioni delle dipendenze
Sono supportati i seguenti sistemi Linux. Le versioni predefinite dei programmi sono elencate di seguito:2.2 Controllare la versione del sistema e dell’applicazione
2.2.1 Controllare la versione del sistema

- Numero di versione principale: 5
- Numero di versione: 15 [I numeri dispari indicano versioni di sviluppo, quelli pari versioni stabili]
- Numero di revisione: 0 [Numero di modifiche]
- N-esima revisione di questa versione: 97
- Versione del kernel: #107~20.0.4.1; normalmente la versione del sistema corrisponde alla versione del kernel
2.2.2 Controllare la versione di CMake

2.2.3 Controllare la versione di GCC

2.2.4 Visualizzare la versione di OpenCV

2.2.5 Controllare la versione di PCL
2.2.6 Visualizzare la versione di ROS


2.3 Configurare un ambiente di sviluppo di base
Prima dell’installazione è necessario aggiornare l’elenco dei pacchetti:
2.3.1 Installare CMake

2.3.2 Installare GCC

2.4 Configurare un ambiente di sviluppo opzionale
2.4.1 Installare OpenCV [può visualizzare le immagini della fotocamera]
![Immagini relative all’installazione di OpenCV [può visualizzare le immagini della fotocamera]](https://mintcdn.com/mrdvs/tL-WJIR2I7zXpd8i/images/developers/camera-sdk-linux-examples-install-opencv-can-display-camera-images.avif?fit=max&auto=format&n=tL-WJIR2I7zXpd8i&q=85&s=2d198482de6242a7b996cf46e67a11e5)
2.4.2 Installare PCL [può visualizzare la nuvola di punti]
![Immagini relative all’installazione di PCL [può visualizzare la nuvola di punti]](https://mintcdn.com/mrdvs/tL-WJIR2I7zXpd8i/images/developers/camera-sdk-linux-examples-install-pcl-can-display-point-cloud.avif?fit=max&auto=format&n=tL-WJIR2I7zXpd8i&q=85&s=d3a7769cccce429095b1c579bfee93b1)
Preparare il codice di esempio
3.1 Eseguire lo script di installazione
- Decomprimi il file Lanxin-MRDVS e accedi alla cartella Lanxin-MRDVS.

- Fai clic con il pulsante destro del mouse per aprire la console.
- Esegui lo script install.sh.

- Accedi alla directory /opt/ per verificare che l’installazione sia riuscita.

- Se la cartella è presente, l’installazione è riuscita.
- Se l’installazione non riesce, aggiungi manualmente i file alla directory opt.
- Esegui lo script set_socket_buffer_size.sh.

- A questo punto lo script di installazione è stato eseguito completamente.
3.2 Introduzione al codice di esempio
Accedi alla directory Sample. Il contenuto della directory è il seguente:
- La cartella C contiene codice relativo a C e C++.
- Il Java cartella contiene an http server per indirectly calling il sdk
- Il Ros cartella contiene an esempio di ros
- Il Ros2 cartella contiene an esempio di ros2
3.2.1 C e C++ esempio codice
Enter il C directory. Il directory contenuto sono come segue:
- applicazione_obstacle: Obtain fotocamera stream dati e enable obstacle avoidance algorithm, output algorithm risultati
- applicazione_pallet: Obtain fotocamera stream dati e enable il pallet algorithm, output algorithm risultati
- arm_local_camera: Call il SDK in il fotocamera [ARM] e obtain il stream dati
- frame_callback: Use callback method a obtain fotocamera stream dati
- multi_cameras: aprire multiple fotocamere e ottenere streaming dati
- single_camera: Open a single fotocamera e ottenere streaming dati
- single_camera2: Get frame dati through structure
3.2.2 Java esempio codice
Enter il java directory. Il directory contenuto sono come segue:
- Config: Server-correlato configurations sono stored in il cartella
- Middleware: server theme
- LxCamera.Postman_collection.json: Postman configurazione file
- README: java virtual server usage tutorial
3.2.3 ROS esempio codice
Enter il ros directory. Il directory contenuto sono come segue:
- lx_camera_node_ws: Il cartella contiene a standard ros driver
- README.EN: explains in English how a compilare a node e create a new node
3.2.4 ROS2 esempio codice
Enter il ros2 directory. Il directory contenuto sono come segue:
- lx_camera_node_ws: Il cartella contiene a standard ros2 driver
- README.EN: explains in English how a compilare a node e create a new node
3.2.5 ros-v1pro esempio codice
Enter il ros-v1pro directory. Il directory contenuto sono come segue:
- src: Il cartella contiene a standard ros driver
- README: explains how a utilizzare questo node
- README.pdf: explains how a utilizzare questo node
Compilare ed eseguire gli esempi
4.1 Compiling e esecuzione C e C++ esempio codice
Go a il C cartella in il esempio:


4.2 Procedura di esecuzione dell’esempio Java
Java è diverso da altri esempio codes. It does not directly provide sorgente codice. It provides an http server e a Postman esempio. Se you devi a control il fotocamera indirectly through http, you può select il java esempio e accedi il java cartella. Il cartella content è come segue:
- Enter il config cartella e modify il http_sever_host campo e http_sever_port campo in il Configs.json file:
- Enter il middleware cartella e execute il start.sh script a enable il transfer server

- Use Postman a aprire il LxCamera.Postman_collection.json file a send dati a il esempio port
4.3 Compilare ed eseguire il codice di esempio ROS
Enter il ROS cartella, aprire a console, e eseguire:

lx_camera_node_ws cartella, e eseguire:



roslaunch:
4.4 Compilare ed eseguire il codice di esempio ROS2
Enter il ros2 cartella. Il contenuto di il cartella sono come segue:

ros-pcl dependency package. Replace foxy con il ROS 2 distribution installed on tuo sistema:
lx_camera_node_ws directory e build il progetto:


ros2 launch:
4.5 Compilazione ed esecuzione del codice di esempio ros-v1pro
ros-v1pro è a dedicated ros driver per il V1PRO fotocamera. There è a README.pdf in il ros-v1pro cartella that describes il driver in detail. Questo document solo gives a brief introduction a it: Enter ilros-v1pro cartella e compilare it:


- roslaunch lx_camera_ros localization.launch
- roslaunch lx_camera_ros mapping.launch
- roslaunch lx_camera_ros sensor_sim.launch
Riferimento al codice di esempio
In questo sezione, tutti codes e pseudocode sarà be divided into several parts. Generally speaking, everything in a sezione belongs a il stesso file. Except per special file con detailed explanations, il sorgente codice file solo explain il general modules. Detailed explanations sono commented in il codice.5.1 C e C++
5.1.1 CMakeLists
5.1.2 applicazione_obstacle e applicazione_pallet
5.1.3 arm_local_camera
5.1.4 frame_callback
5.1.5 multi_cameras
5.1.6 single_camera
5.1.7 single_camera2
5.2 java
Il Java esempio provides solo an HTTP server, so il descrizione è solo a descrizione di il interface e messaggio format. Use Postman a aprire il esempio file come shown below: Il messaggi sono tutti in post mode. Before sending, remember a change il IP a il server’s IP, but do not modify il URL. Il URL è hard-coded internally in il server. Il response messaggio format e content sono both in il body. Il interface provided in il esempio è come segue:

- log_path: percorso di log output
- print_level: log printing level
- enable_screen_print: whether il log è printed on il console

- aprire_mode: aprire il fotocamera mode
- param: parametri per opening il fotocamera

- handle: Il handle di il fotocamera, which sarà be returned in DcOpenDevice

- handle: il handle di il fotocamera a be impostare
- cmd: comando numero
- handle: il handle di il fotocamera a be impostare
- cmd: comando numero

- handle: il handle di il fotocamera a be impostare
- cmd: comando numero
- valore: il valore a be impostare
- handle: il handle di il fotocamera a be impostare
- cmd: comando numero
- Please see il table below per altri relevant instructions:
5.3 ROS1 & ROS2
In il ros descrizione, we sarà not talk about il driver sorgente codice, but about il content corrispondente a il configurazione in il launch file, how a adjust il configurazione, e how a send e subscribe a messaggi. Il provided ros node already contiene most di il functions, so it è not consigliato a directly modify il driver sorgente codice. Se you have special needs, you può prima understand il codice flow in il C++ esempio e then modify il driver sorgente codice. When executing il ros driver, you deve ensure that il versioni di opencv e pcl in il sistema predefinito percorso sono unique, otherwise an errore sarà occur quando linking il ros library, which may cause compilazione errore o runtime crash.5.3.1 ROS1 launch file descrizione
5.3.1.1 All launch file
- There sono il seguente file in il src/launch cartella:

- localization.launch: Run file per visual positioning nodes
- lx_camera_ros.launch: esecuzione file di ordinary nodes
- mapping.launch: esecuzione file per visual positioning mapping
- obstacle.launch: esecuzione file di obstacle avoidance algorithm
- obstacleV2.launch: esecuzione file di obstacle avoidance algorithm V2
- pallet.launch: pallet algorithm esecuzione file
- sensor_sim.launch: esecuzione file per simulating positioning dati
- You può execute diverso functions di il node da esecuzione diverso launch file. Except per localization, mapping e sensor, il parametro contenuto sono il stesso in tutti nodes, but il configurazione è diverso. Questo sarà be introduced in detail in il seguente sections. For a detailed introduction a il parametri di il three launch file di localization, mapping e sensor, please see il introduction in il ros-v1pro node.
5.3.1.2 Camera IP, stream configurazione, working mode configurazione, punto nuvola unit, etc.
- ip: Il fotocamera IP that needs a be connected. Se it è 0, il prima one sarà be connected da predefinito.
- log_path: SDK log storage percorso, il absolute percorso needs a be filled in
- è_xyz: whether a push punto nuvola dati
- è_depth: whether a push profondità dati
- è_amp: whether a push intensità map dati
- è_rgb: whether a push RGB immagine dati
- lx_work_mode: work mode
- lx_application: whether a enable il algorithm, 0: off, 1: obstacle avoidance algorithm, 2: pallet algorithm, 3: positioning algorithm, 4: obstacle avoidance algorithm V2
- lx_tof_unit: punto nuvola unit, 1 è meter, 0 è millimeter, needs a be changed a 1 quando viewing con rviz
5.3.1.3 Camera pose configurazione
Il rotation angle e translation vector di il punto nuvola può be configured.- X: X translation amount di il fotocamera da il center di il punto nuvola
- Y: Y translation amount di il fotocamera da il center di il punto nuvola
- Z: Z translation amount di il fotocamera da il center di il punto nuvola
- Yaw: il angle di rotation di il punto nuvola around il Z axis
- Roll: Il angle di rotation di il punto nuvola around il X-axis
- Pitch: Il angle di rotation di il punto nuvola around il Y axis
5.3.1.4 Whether a utilizzare launch configurazione
You può choose whether a utilizzare il fotocamera parametro configurazione in il launch file.- raw_param: 0: utilizzare il configurazione in il fotocamera, 1: utilizzare il configurazione in il launch file
5.3.1.5 2D parametro configurazione
- lx_2d_binning:0:1x1,1:2x2,2:4x4
- lx_2d_undistort: 2d anti-distortion, 0: off, 1: on
- lx_2d_undistort_scale: 2D anti-distortion coefficient
- lx_2d_auto_exposure: 2D automatic exposure, 0: off, 1: on
- lx_2d_auto_exposure_value: 2D automatic exposure scelto intensità
- lx_2d_exposure: 2D exposure valore
- lx_2d_gain: 2D gain
5.3.1.6 3D parametro configurazione
- lx_rgb_to_tof: RGB alignment
- lx_3d_binning:0:1x1,1:2x2,2:4x4
- lx_mulit_mode: multi-machine mode, which può eliminate multi-machine interference, 0: off, 1: on
- lx_3d_undistort: 3d anti-distortion, 0: off, 1: on
- lx_3d_undistort_scale: 3D anti-distortion coefficient
- lx_hdr: hdr, 0: off, 1: on
- lx_3d_auto_exposure: 3D automatic exposure, 0: off, 1: on
- lx_3d_auto_exposure_value: 3D automatic exposure scelto intensità
- lx_3d_first_exposure: 3D high points
- lx_3d_second_exposure: 3D low points
- lx_3d_gain: 3D gain
5.3.1.7 Maximum e minimo profondità
- lx_min_depth: minimo profondità
- lx_max_depth: massimo profondità
5.3.2 ROS2 launch file descrizione
5.3.2.1 All launch file
There sono il seguente file in il src/launch cartella:
- localization.launch.py: esecuzione file di visual positioning node
- lx_camera_ros.launch.py: esecuzione file di ordinary node
- mapping.launch.py: esecuzione file per visual positioning mapping
- obstacle.launch.py: esecuzione file di obstacle avoidance algorithm
- obstacleV2.launch.py: esecuzione file di obstacle avoidance algorithm V2
- pallet.launch.py: pallet algorithm esecuzione file
- sensor_sim.launch.py: esecuzione file per simulating positioning dati
5.3.2.2 Camera IP, stream configurazione, working mode configurazione, punto nuvola unit, etc.
- ip: Il fotocamera IP that needs a be connected. Se it è 0, il prima one sarà be connected da predefinito.
- log_path: SDK log storage percorso, il absolute percorso needs a be filled in
- è_xyz: whether a push punto nuvola dati
- è_depth: whether a push profondità dati
- è_amp: whether a push intensità map dati
- è_rgb: whether a push RGB immagine dati
- lx_work_mode: work mode
- lx_application: whether a enable il algorithm, 0: off, 1: obstacle avoidance algorithm, 2: pallet algorithm, 3: positioning algorithm, 4: obstacle avoidance algorithm V2
- lx_tof_unit: punto nuvola unit, 1 è meter, 0 è millimeter, needs a be changed a 1 quando viewing con rviz
5.3.2.3 Camera pose configurazione
Il rotation angle e translation vector di il punto nuvola può be configured.- X: X translation amount di il fotocamera da il center di il punto nuvola
- Y: Y translation amount di il fotocamera da il center di il punto nuvola
- Z: Z translation amount di il fotocamera da il center di il punto nuvola
- Yaw: il angle di rotation di il punto nuvola around il Z axis
- Roll: Il angle di rotation di il punto nuvola around il X-axis
- Pitch: Il angle di rotation di il punto nuvola around il Y axis
5.3.2.4 Whether a utilizzare launch configurazione
You può choose whether a utilizzare il fotocamera parametro configurazione in il launch file.- raw_param: 0: utilizzare il configurazione in il fotocamera, 1: utilizzare il configurazione in il launch file
5.3.2.5 2D parametro configurazione
- lx_2d_binning:0:1x1,1:2x2,2:4x4
- lx_2d_undistort: 2d anti-distortion, 0: off, 1: on
- lx_2d_undistort_scale: 2D anti-distortion coefficient
- lx_2d_auto_exposure: 2D automatic exposure, 0: off, 1: on
- lx_2d_auto_exposure_value: 2D automatic exposure scelto intensità
- lx_2d_exposure: 2D exposure valore
- lx_2d_gain: 2D gain
5.3.2.6 3D parametro configurazione
- lx_rgb_to_tof: RGB alignment
- lx_3d_binning:0:1x1,1:2x2,2:4x4
- lx_mulit_mode: multi-machine mode, which può eliminate multi-machine interference, 0: off, 1: on
- lx_3d_undistort: 3d anti-distortion, 0: off, 1: on
- lx_3d_undistort_scale: 3D anti-distortion coefficient
- lx_hdr: hdr, 0: off, 1: on
- lx_3d_auto_exposure: 3D automatic exposure, 0: off, 1: on
- lx_3d_auto_exposure_value: 3D automatic exposure scelto intensità
- lx_3d_first_exposure: 3D high points
- lx_3d_second_exposure: 3D low points
- lx_3d_gain: 3D gain
5.3.2.7 Maximum e minimo profondità
- lx_min_depth: minimo profondità
- lx_max_depth: massimo profondità
5.3.3 Unique theme descrizione
Since il unique topic types di ROS1 e ROS2 sono il stesso, ROS1 è used come an esempio here. There sono il seguente file in il src/msg cartella:
5.3.3.1 FrameRate.msg
Questo node outputs frame rate informazioni. Il messaggio format è come segue:
- header: frame informazioni e timestamp di il corrente dati
- profondità: When il profondità map è turned on, output il profondità map frame rate
- amp: When il intensità map è turned on, output il intensità map frame rate
- rgb: When rgb è on, output rgb frame rate
- temperature: output fotocamera temperature

5.3.3.2 Obstacle.msg
obstacle outputs informazioni correlato a il obstacle avoidance algorithm risultati. Il obstacle messaggio format è come segue:
- header: frame informazioni e timestamp di il corrente dati
- stato: stato informazioni returned da obstacle avoidance
- io_output: Obstacle avoidance informazioni output da il io interface
- riquadro_number: numero di obstacles
- riquadro: obstacle informazioni, variable length array, il length è determined da riquadro_number

5.3.3.3 Obstacle_box.msg
obstacle_box outputs obstacle-correlato informazioni, e il obstacle_box messaggio format è come segue:
- center: il center di mass di il obstacle in il punto nuvola
- rotation: rotation matrix di obstacle punto nuvola
- translation: translation vector di obstacle punto nuvola
- larghezza: larghezza di il obstacle frame
- altezza: altezza di obstacle frame
- profondità: il profondità di il obstacle frame

5.3.3.4 Result.msg
Il return valore obtained dopo sending il comando messaggio a il servic in il node è stored in Result:
- ret: il return valore obtained da executing il SDK
- msg: Description di il return valore obtained da executing il SDK
5.3.3.5 Pallet.msg
Il pallet outputs informazioni correlato a il pallet algorithm risultati. Il pallet messaggio format è come segue:
- header: frame informazioni e timestamp di il corrente dati
- stato: stato informazioni returned da pallet recognition:
- x: X distance between il tray e il optical center di il fotocamera
- y: Y distance between il tray e il optical center di il fotocamera
- yaw: theta angle between il center di il tray e il optical center di il fotocamera

5.3.4 Unique Service Description
Since il unique service types di ROS1 e ROS2 sono il stesso, ROS1 è used come an esempio here. There sono il seguente file in il src/srv cartella:
5.3.4.1 LxBool.srv

- cmd: il parametro numero that needs a be obtained o impostare
- val: il valore impostare quando setting
- è_set: Whether a impostare il parametro. When it è true, il valore in val sarà be impostare a il fotocamera. When it è false, il valore di questo parametro sarà be read da il fotocamera e displayed.
- val: Il valore di il fotocamera’s corrente parametro returned quando getting o setting it
- risultato: il valore e informazioni returned da calling il SDK interface
5.3.4.2 LxCmd.srv

- cmd: Il parametro numero that needs a be obtained o impostare. When it è 0, tutti parametro numeri sarà be returned.
- risultato: il valore e informazioni returned da calling il SDK interface, cmd may have multiple return valori
5.3.4.3 LxFloat.srv

- cmd: il parametro numero that needs a be obtained o impostare
- val: il valore impostare quando setting
- è_set: Whether a impostare il parametro. When it è true, il valore in val sarà be impostare a il fotocamera. When it è false, il valore di questo parametro sarà be read da il fotocamera e displayed.
- max_value: il massimo valore that può be impostare per questo parametro
- min_value: il minimo valore that può be impostare per questo parametro
- cur_value: il corrente valore di questo parametro in il fotocamera
- disponibile: whether questo parametro supports setting
- risultato: il valore e informazioni returned da calling il SDK interface
5.3.4.4 LxInt.srv

- cmd: il parametro numero that needs a be obtained o impostare
- val: il valore impostare quando setting
- è_set: Whether a impostare il parametro. When it è true, il valore in val sarà be impostare a il fotocamera. When it è false, il valore di questo parametro sarà be read da il fotocamera e displayed.
- max_value: il massimo valore that può be impostare per questo parametro
- min_value: il minimo valore that può be impostare per questo parametro
- cur_value: il corrente valore di questo parametro in il fotocamera
- disponibile: whether questo parametro supports setting
- risultato: il valore e informazioni returned da calling il SDK interface
5.3.4.5 LxString.srv

- cmd: il parametro numero that needs a be obtained o impostare
- val: il valore impostare quando setting
- è_set: Whether a impostare il parametro. When it è true, il valore in val sarà be impostare a il fotocamera. When it è false, il valore di questo parametro sarà be read da il fotocamera e displayed.
- val: Il valore di il fotocamera’s corrente parametro returned quando getting o setting it
- risultato: il valore e informazioni returned da calling il SDK interface
5.3.5 Description di topic subscription metodi
5.3.5.1 Subscription frame rate, tray algorithm, obstacle avoidance algorithm output dati
Subscribe Frame Rate In il lx_camera_node_ws directory, accedi: bash rate.sh





5.3.5.2 Subscribe a immagine dati (ROS1)
You può view il immagine informazioni output da il node through il immagine tool that comes con ros: Console input comando: rqt_image_view After entering il comando, il seguente window sarà pop up:




5.3.5.3 Subscribe a immagine dati (ROS2)
You può view il immagine informazioni output da il node through il immagine tool that comes con ros2: Enter il comando on il console: rqt After entering il comando, il seguente window sarà pop up:





5.3.5.4 Subscribe a punto nuvola dati
Il punto nuvola informazioni output da il node può be viewed through il punto nuvola tool provided da ros o ros2: Command: rviz【ROS1】, rviz2【ROS2】 After entering il comando, il seguente window sarà pop up:




5.3.6 Description di service communication metodi
In ROS1, tutti comandi può be completed using il Tab key, but in ROS2, solo topics può be completed, e il messaggio part needs a be entered manualmente. When inputting dati in ROS1, you può input it in il completion format. When inputting dati in ROS2, you devi a input it in il format di il yaml file. After il node è esecuzione, aprire a terminal under il lx_camera_node_ws cartella, configure il ambiente in il terminal, e accedi il comando: sorgente devel/configurazione.bash5.3.6.1 Get il elenco di tutti parametro numeri (Lx_Cmd)
ros1 Enter in il terminal: rosservice call /lx_camera_node/LxCamera_LxCmd “cmd: 0”



Some parametri devi a arrestare il flow prima they può be impostare, o there è a sequence di settings. Please contact il technical support staff per specific needs.
5.3.6.2 Get Int parametro (Lx_Int)
ROS1 Enter in il terminal: rosservice call /lx_camera_node/LxCamera_LxInt “cmd: 1001 val: 0 è_set: false”

ROS2 Enter in il terminal:
ros2 service call /LxCamera_LxInt lx_camera_ros/srv/LxInt '{cmd: 1001,val: 0,is_set: false}'


5.3.6.3 Set Int parametri (Lx_Int)
ROS1 Enter in il terminal: rosservice call /lx_camera_node/LxCamera_LxInt “cmd: 1001 val: 2000 è_set: true”

ROS2 Enter in il terminal:
ros2 service call /LxCamera_LxInt lx_camera_ros/srv/LxInt '{cmd: 1001,val: 3000,is_set: true}'


5.3.6.4 Get Float parametri (Lx_Float)
ROS1 Enter in il terminal: rosservice call /lx_camera_node/LxCamera_LxFloat “cmd: 2007 val: 0.0 è_set: false”

ROS2 Enter in il terminal:
ros2 service call /LxCamera_LxFloat lx_camera_ros/srv/LxFloat '{cmd: 2007,val: 0,is_set: false}'


5.3.6.5 Set Float parametri (Lx_Float)
ROS1 Enter in il terminal: rosservice call /lx_camera_node/LxCamera_LxFloat “cmd: 2007 val: 5.0 è_set: true”

ROS2 Enter in il terminal:
ros2 service call /LxCamera_LxFloat lx_camera_ros/srv/LxFloat '{cmd: 2007,val: 5.0,is_set: true}'


5.3.6.6 Get Bool parametri (Lx_Bool)
ROS1 Enter in il terminal: rosservice call /lx_camera_node/LxCamera_LxBool “cmd: 3012 val: false è_set: false”

ROS2 Enter in il terminal:
ros2 service call /LxCamera_LxBool lx_camera_ros/srv/LxBool '{cmd: 3012,val: false,is_set: false}'


5.3.6.7 Set Bool parametri (Lx_Bool)
ROS1 Enter in il terminal: rosservice call /lx_camera_node/LxCamera_LxBool “cmd: 3012 val: true è_set: true”

ROS2 Enter in il terminal:
ros2 service call /LxCamera_LxBool lx_camera_ros/srv/LxBool '{cmd: 3012,val: true,is_set: true}'


5.3.6.8 Get String parametro (Lx_String)
ROS1 Enter in il terminal: rosservice call /lx_camera_node/LxCamera_LxString “cmd: 4001 val: ” è_set: false”

ROS2 Enter in il terminal:
ros2 service call /LxCamera_LxString lx_camera_ros/srv/LxString '{cmd: 4001,val: '',is_set: false}'


5.3.6.9 Set String parametri (Lx_String)
ROS1 Enter in il terminal: rosservice call /lx_camera_node/LxCamera_LxString “cmd: 4001 val: ‘put:\“123\”’ è_set: true”

ROS2 Enter in il terminal:
ros2 service call /LxCamera_LxString lx_camera_ros/srv/LxString '{cmd: 4001,val: "put:\\"123\\"",is_set: true}'


Hardware ROS consigliato e utilizzo delle risorse
6.1 Configurazione hardware consigliata
In il consigliato hardware configurazione, il analysis è based on CPU core count, CPU usage, e memoria size. These sono consigliato configurations, not minimo requirements. Se tuo hardware è below il recommendation, stabili operation may still be possible da reducing stream output, disabling punto-nuvola computation, o lowering il algorithm load. Running a workload above il disponibile configurazione may crash il ROS core o Ubuntu. Il second e third sections di questo chapter provide detailed usage dati. Choose il operating ambiente e stream configurazione that best fits tuo sistema. All dati here was collected in a VM using an M4 Pro fotocamera. Ubuntu16.04
Ubuntu18.04
Ubuntu20.04
Ubuntu22.04
6.2 Dettagli CPU
Il Dettagli CPU sarà mostrano il amount di CPU resources occupied da il node under diverso operating conditions. Il test è based on AMD64 [8 cores], 8G memoria hardware ambiente, il test fotocamera è M4 Pro, il test algorithm è tray algorithm, 2D larghezza e altezza sono 1280*960, e 3D larghezza e altezza sono 640*480, 2D anti-distortion è on, 3D anti-distortion è off, e integration 110 - 3000, profondità 0 - 8000, ToF frame rate 14, streaming mode, smoothing level 1, noise level 1, time domain level 0, statistics comando è TOP. Because il test soft ambiente è VM virtual machine, it è normal per il dati displayed da il physical machine a fluctuate compared con that in il document. For some fotocamere, such come S2, some algorithms sono calculated on il host computer, which risultati in a large amount di resource usage, which è normal.1. Some nouns sono explained come segue: -Single stream: refers a turning on any stream di RGB, profondità, e intensità
- Dual stream: refers a turning on any two streams di RGB, profondità e intensità
- Four streams: means RGB, profondità, intensità, e punto nuvola sono tutti turned on
- To enable il pallet algorithm, il profondità deve be enabled
- To turn on il obstacle avoidance algorithm, you deve turn on profondità
- To turn on il positioning algorithm, you deve turn on RGB
Il light blu background in il table è il esecuzione configurazione con punto nuvola enabled, e il colorless background è il esecuzione configurazione senza punto nuvola enabled. All il test dati below have il algorithm shifted down da predefinito, so per S2 series fotocamere, tutti test valori may be too small [some algorithms di S2 series fotocamere sono forced a move up]. Ubuntu16.04
Ubuntu18.04
Ubuntu20.04
Ubuntu22.04
6.3 Dettagli della memoria
Il memoria dettagli sarà mostrano il amount di memoria resources occupied da il node under diverso operating conditions. Il test è based on AMD64 [8 cores], 8G memoria hardware ambiente, il test fotocamera è M4 Pro, il test algorithm è tray algorithm, 2D larghezza e altezza sono 1280*960, e 3D larghezza e altezza sono 640*480, 2D anti-distortion è on, 3D anti-distortion è off, points 110 - 3000, profondità 0 - 8000, ToF frame rate 14, streaming mode, smoothing level 1, noise level 1, time domain level 0, statistics comando è TOP. Because il test soft ambiente è VM virtual machine, it è normal per il dati displayed da il physical machine a fluctuate compared con that in il document. For some fotocamere, such come S2, some algorithms sono calculated on il host computer, which risultati in a large amount di resource usage, which è normal.1. Some nouns sono explained come segue: -Single stream: refers a turning on any stream di RGB, profondità, e intensità
- Dual stream: refers a turning on any two streams di RGB, profondità e intensità
- Four streams: means RGB, profondità, intensità, e punto nuvola sono tutti turned on
- To enable il pallet algorithm, il profondità deve be enabled
- To turn on il obstacle avoidance algorithm, you deve turn on profondità
- To turn on il positioning algorithm, you deve turn on RGB
- Il light blu background in il table è il esecuzione configurazione con punto nuvola enabled, e il colorless background è il esecuzione configurazione senza punto nuvola enabled. All il test dati below have il algorithm shifted down da predefinito, so per S2 series fotocamere, tutti test valori may be too small [some algorithms di S2 series fotocamere sono forced a move up].
Ubuntu18.04
Ubuntu20.04
Ubuntu22.04
Appendice
Questo appendice provides installazione metodi per some tools. When using these metodi, you devi a have at least some di base knowledge di Linux. There è no guarantee that every computer può be successfully installed through il metodi shown in il appendice di questo document. Il ambiente di each computer è diverso, e il problems encountered may not be consistent. Se you encounter problems not shown in questo appendice, please search per solutions yourself.1. Cmake specified versione installazione method
Apri https://cmake.org/download/, scarica la versione richiesta di CMake ed estrai il pacchetto contar -zxvf cmake-XXX.tar.gz. Entra nella directory estratta, quindi compila e configura CMake:
./bootstrap
make
sudo make install
Check il Cmake versione a see if il installazione è riuscita:
cmake —version
2. Opencv specified versione installazione method
- Download il richiesto versione di opencv: Releases-OpenCV

- Environment configurazione, execute il seguente comandi in sequence:
- Create a new opencv cartella e extract il downloaded sorgente codice into il opencv cartella.
- Esegui il seguente comandi in sequence:
- cd opencv
- mkdir build && cd build
- sudocmake-DCMAKE_BUILD_TYPE=Release-D
- CMAKE_INSTALL_PREFIX=/usr/local ..
- sudo make -j4
- sudo make installare e wait per il installazione a complete
3. Pcl specified versione installazione method
- Check il supportato pcl versione:
- Installa il specified pcl versione (where 1.10.0 needs a be replaced con il richiesto versione numero):
4. Installare ROS
Ubuntu16.04- Add il software sorgente e impostare il secret key:
- Add secret key:
- Update sorgente:
- Installa complete ros:
- Configure ambiente variables:
- Completa ROS-correlato tools:
- Now that il installazione di ROS1 è complete, eseguire il esempio that comes con ROS a controllare whether il installazione è correct:

Ubuntu18.04
- Set up il software sorgente:
- Update software elenco:
- Installa Ubuntu18.04 versione di ROS1:
- Set ambiente variables:
- Completa ROS-correlato tools:
- Now that il installazione di ROS1 è complete, eseguire il esempio that comes con ROS a controllare whether il installazione è correct:

- Configure il public key:
- Se it shows that it cannot connect a il server o times out, please aggiornare il software sorgente elenco prima:
- After configuring il public key, aggiornare il software elenco again:
- Set ambiente variables:
- Installare ROS tools:
- Now that il installazione di ROS1 è complete, eseguire il esempio that comes con ROS a controllare whether il installazione è correct:

5. Creare un nuovo pacchetto di test in ROS
- Create a new cartella ws, create a new src cartella in il ws cartella, accedi il src cartella e execute:
- Questo creates a new package named esempio, which depends on std_msgs rospy roscpp
- Quindi compilare questo new package: catkin_make Questo è an empty package, there sarà not be any executable program, it è just a package
- Next, we sarà demonstrate how a create a package that può output ‘Hellow world’
- Based on il package just now, we accedi il src cartella (src in il package) e create a new main.cpp, come shown below (pay attention a il percorso):

- In main.cpp, we accedi some codes:

- Quindi we change il outside CMakeLists.txt e aggiungi a line at il bottom: aggiungi_executable(esempio src/main.cpp)

- Quindi return a il ws directory a compilare e execute il comando: catkin_make

- Seeing these means il compilazione è riuscita.
- Next we configure il ambiente:

- Quindi execute il program e you può see il output:

6. Installare ROS2
Ubuntu16.04- Add secret key:
- Add permissions:
- Se an errore è reported in questo step, utilizzare VPN a bypass il wall e then aprire il browser, accedi il URL, e copy il content, then create a new ros.asc e copy il content a il file. After il copy è completed, il seguente è come segue:
- Quindi re-execute step 3: sudo apt-key aggiungi ros.asc
- Continue esecuzione:
- Installare ROS2:
- Configure ambiente variables:
- Installa il funzione package:
- Try esecuzione il esempio program, aprire a terminal e eseguire:
- Open another interrupt a eseguire:
- Il seguente terminal output proves that il installazione è riuscita:
- Add software sorgente
- Se questo step reports an errore come segue:
- Use VPN a bypass il wall, then aprire il browser, accedi il URL, e copy il content, then create a new ros.asc e copy il content a il file. After il copy è completed, it è come segue:
- Quindi re-execute step 3: sudo apt-key aggiungi ros.asc
- Continue esecuzione:
- After completion, avviare downloading ros2, in which il red fonts devi a be replaced con diverso versioni (see il table above):
- Wait per il installazione a complete e continue a installare il python library. Esegui: sudo apt installare -y libpython3-dev python3-pip pip3 installare -U argcomplete
- Try esecuzione il esempio program, aprire a terminal e eseguire:
- Open another interrupt a eseguire:
- Il seguente terminal output proves that il installazione è riuscita:
- Add software sorgente
- Se you encounter il errore “ailed a connect a raw.githubusercontent.com port 443 dopo 13 ms: connection refused”

- Add il seguente analysis
- Il added file sono come segue:

- Continue esecuzione:
- After completion, avviare downloading ros2:
- Wait per il installazione a complete e continue a installare il python library. Esegui: sudo apt installare -y libpython3-dev python3-pip pip3 installare -U argcomplete
- Quindi configure il ambiente variables:
- Try esecuzione il esempio program, aprire a terminal e eseguire:
- Open another interrupt a eseguire:
- Il seguente terminal output proves that il installazione è riuscita:
- Add software sorgente
- Se you encounter il errore “ailed a connect a raw.githubusercontent.com port 443 dopo 13 ms: connection refused”


- After completion, avviare downloading ros2: sudo apt aggiornare
- Wait per il installazione a complete e continue a installare il python library. Esegui: sudo apt installare -y libpython3-dev python3-pip pip3 installare -U argcomplete
- Quindi configure il ambiente variables:
- Try esecuzione il esempio program, aprire a terminal e eseguire:
- Open another interrupt a eseguire:
- Il seguente terminal output proves that il installazione è riuscita:
7. Creare un nuovo pacchetto di test in ROS2
- Esegui il comando:
- You può create a new package named esempio_p e a node named esempio_n. After esecuzione, it sarà output: hello world esempio_p package