Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Prerequisites

  • Camera Calibration: Ensure you have proper camera calibration data. Information on camera calibration can be found /wiki/spaces/LD/pages/2157314049.

  • Configuration File: A JSON file containing camera calibration parameters and other Visual-SLAM settings. Refer to this page for a complete list of available parameters.

Running the standalone app

Locate the app

Navigate to the bin directory within your LPSLAM build folder. The typical path would be:

lpgf-slam/out/build/x64-Release/bin/

Within this directory, you should find the executable file named lpslam-standalone.exe.

View available options

To see a list of all available command-line arguments and their descriptions, run the following command from your CLI:

./lpslam-standalone.exe --help

This will display a detailed explanation of each option, including:

Allowed options:
  --help                Show usage information
  --config arg          Load a configuration file
  --use-preset arg      Load a known configuration preset
  --list-presets        List all known configuration presets
  --show-preset arg     Show a known configuration preset
  --logfile arg         Log output to a file
  --replay arg          Replay data from a file
  --record              Record all data during operation
  --record-no-video     Record only sensor and tracking data (without video)
  --show-live           Display the camera feed during operation
  --store-images        Save captured images from the camera
  --verbose             Enable basic verbosity level
  --verbose-debug       Enable detailed verbosity level

Run the app

Assuming your configuration file is named config.json and located in the same directory as the executable, you can run LPSLAM with the following command:

./lpslam-standalone.exe --config config.json

Remember to replace config.json with the actual name of your configuration file (including its path, if necessary) and properly refer to the executable from your working directory.

Stop the app

To stop LPSLAM, focus on your CLI press the ENTER key. This will automatically stop all running processes, allowing the generated 3D map to be saved correctly (if use_map_database is set to true in the configuration file).

Running the GUI controller app

Locate the app

Navigate to the bin directory within your LPSLAM build folder. The typical path would be:

lpgf-slam/out/build/x64-Release/bin/

Within this directory, you should find the executable file named lpslam-gui.exe.

Run the app

You can run the controller app by executing it from your CLI or simply double-clicking on it. The following GUI will appear:

Screenshot 2024-11-27 114404.png

Usage

Unlike the standalone app, the LPSLAM Controller app has fewer execution options. It is a streamlined version intended to for real-time use, simply controlling the execution of LPSLAM.

1) Setting the verbosity

Using the verbosity buttons, you can set the desired verbosity level for LPSLAM, indicated by the corresponding icons:

  • error.png → Only ERROR log messages are show.

  • info.pngERROR + INFORMATION log messages are show.

  • debug.pngERROR + INFORMATION + DEBUG messages are show.

2) Loading a configuration

In the configuration section, you can load the desired file to configure LPSLAM. Simply click the LOAD load.png button, and a file explorer window will pop up for you to select your file.

Screenshot 2024-10-24 174029.png

3) Start or Stop tracking

Starting and stopping the tracking process in this app is straightforward; simply click the corresponding button:

  • start.pngSTART the tracking process.

  • stop.pngSTOP the tracking process.

Using a Stereolabs ZED2 stereo camera

The configuration shown below is an example that uses OpenCV as the back-end for the input device and the ZED2 stereo camera:

{
    "_comment": "Configuration for Stereolabs ZED 2 SN25661426 with 672x376 resolution",
    "manager": {
        "show_live": false,
        "thread_num": 4,
        "drop_frames": true
    },
    "cameras": [    
        {
            "number": 0,
            "model": "perspective",
            "resolution_x": 672,
            "resolution_y": 376,
            "fps": 15,
            "fx": 263.1325,
            "fy": 262.98,
            "cx": 333.895,
            "cy": 190.12275,
            "distortion": [
                -0.0398096,
                0.00724821,
                -0.000893297,
                -4.54703e-05,
                -0.00391994],
            "focal_x_baseline": 31.5530,
            "translation": [119.913, 0.00959959, -0.643623],
            "rotation_vec": [-0.00195593, -0.00113609, -0.000112217],
            "mask": "none"
        },
        {
            "number": 1,
            "model": "perspective",
            "resolution_x": 672,
            "resolution_y": 376,
            "fps": 15,
            "fx": 264.2975,
            "fy": 264.1525,
            "cx": 337.325,
            "cy": 193.21975,
            "distortion": [
                -0.0414599,
                0.010013,
                -0.000652239,
                -6.52452e-05,
                -0.00489542],
            "mask": "none"
        }
    ],
    "datasources": [
        {
            "type" : "OpenCV",
            "configuration": {
                "camera_number": 0,
                "grayscale": true, 
                "stereo_mode": "horizontal",
                "width": 672,
                "height": 376,
                "fps": 15
            }
        }
    ],
    "processors": [
        {
            "type": "Undistort",
            "configuration": {}
        },
    ]
    ,
    "trackers": [
        {
            "type": "VSLAMStereo",
            "configuration": {
                "camera_setup": "stereo",
                "live_view": true,
                "viewer_FPS": 15,
                "use_CUDA": false,
                "use_OpenCL": false,
                "vocab_file": ".../path_to_file/orb_vocab.dbow2",
                "save_status_file": false,
                
                "emit_map": true,
                "enable_mapping": true,
                "loop_closure": true,
                "map_file_name": "map.db",
                "use_map_database": false,
                
                "min_triangulated_pts": 30,
                "depth_threshold": 20.0,
                "max_keypoints": 1200,
                "scale_factor": 1.2,
                "num_levels": 8,
                "ini_keypoints_threshold": 20,
                "min_keypoints_threshold": 7,

                "forward_high_res_nav": false,
                "forward_IMU": false,
                "forward_nav_state": false,
                "reloc_with_navigation": false,
                "wait_for_navigation": false
            }
        }
    ]
}

The correct path to the file orb_vocab.dbow2 must be provided. This file contains a database used to assign identifiers to image features and is referenced by the vocab_file parameter in the VSLAM tracker configuration. Alternatively, you can copy it from lpgf-slam/data/orb/orb_vocab.dbow2 to your working directory.

Screenshot 2024-10-25 112335.png

To run LPSLAM with a ZED2 stereo camera, connect the camera to your computer and launch either the standalone app or the GUI controller with the appropriate configuration file. The LPSLAM Map Viewer window will then display the current image frame, the reconstructed 3D map, and the camera's estimated pose in space.

If you run LPSLAM on a laptop, which typically has built-in cameras, you will need to disable any of these to ensure the ZED2 is the sole image source.

To deactivate your built-in cameras on Windows, open Device Manager, expand the Cameras section, right-click on your built-in camera, and select Disable device.

Using a Varjo XR-3 HMD

To run LPSLAM with a Varjo XR-3 HMD, modify the configuration file (adjusting cameras and datasources) as shown in the example below.

When using a Varjo XR-3 HMD, the camera calibration process can be skipped by using a configuration file without the cameras field. LPSLAM will automatically retrieve the camera parameters at startup.

{
    "_comment" :  "Calibration for XR-3 in LPR office",
    "manager": {
        "drop_frames": true,
        "thread_num": 4,
        "show_live": false
    },
    "cameras": [
        {
            "number": 0,
            "model": "varjo",
            "fx": 1.18706476688385,
            "fy": 1.18706476688385,
            "cx": 0.532978355884552,
            "cy": 0.5058077573776245,
            "f_correction": 1.7,
            "c_correction": 2.0,
            "resolution_x": 1152,
            "resolution_y": 1152,
            "distortion": [
                0.6412177681922913,
                -0.8660373687744141,
                0.47459715604782104,
                -0.002288734307512641,
                -0.0012009869096800685
            ],
            "focal_x_baseline": 43.20569431080538,
            "rotation": [
                0.9999300244141561,
                0.009785937266698777,
                0.006646932159989518,
                -0.009785385681041777,
                0.9999521152969042,
                -0.0001155009611359007,
                -0.006647744158775169,
                5.045008421054563e-05,
                0.9999779022320736
            ]
        },
        {
            "number": 1,
            "model": "varjo",
            "fx": 1.2481434345245361,
            "fy": 1.2481434345245361,
            "cx": 0.4319934844970703,
            "cy": 0.4994443356990814,
            "resolution_x": 1152,
            "resolution_y": 1152,
            "distortion": [
                0.7144321799278259,
                -0.9300915002822876,
                0.5433128476142883,
                0.0014141352148726583,
                -0.0017072069458663464
            ],
            "rotation": [
                0.9999397368314507,
                -1.0797726242757499e-14,
                0.010978283367585984,
                -5.53855340397135e-07,
                0.9999999987273943,
                5.044704683978703e-05,
                -0.010978283353614959,
                -5.045008712176573e-05,
                0.9999397355589217
            ]
        }
    ],
    "datasources": [
        {
            "type": "Varjo",
            "configuration": {
                "prescale": 3
            }
        }
    ],
    "processors": [
        {
            "type": "Undistort",
            "configuration": {}
        }
    ],
    "trackers": [
        {
            "type": "VSLAMStereo",
            "configuration": {
              "camera_setup": "stereo",
              "use_CUDA": false,
              "use_OpenCL": false,
              "live_view": true,
              "viewer_FPS": 22,
              "vocab_file": ".../path_to_file/orb_vocab.dbow2",
              
              "emit_map": true,
              "enable_mapping": true,
              "loop_closure": true,
              "map_file_name": "map.db",
              "use_map_database": false,
              
              "undistort_image": false,
              
              "min_triangulated_pts": 30,
              "depth_threshold": 20.0,
              "max_keypoints": 1200,
              "scale_factor": 1.2,
              "num_levels": 8,
              "ini_keypoints_threshold": 20,
              "min_keypoints_threshold": 7,

              "forward_high_res_nav": false,
              "forward_IMU": false,
              "forward_nav_state": false,
              "reloc_with_navigation": false,
              "wait_for_navigation": false
            }
        }
    ]
}

With Varjo Base running in the background, launch either the standalone app or the GUI controller with your configuration file to start LPSLAM.

Screenshot 2024-10-25 112542.png

  • No labels