Purpose

Exwayz SLAM (for Simultaneous Localization And Mapping) aims at processing raw LiDAR data and compute the odometry trajectory of the sensor, which is its relative trajectory statring from its first arbitrary position in (0.0, 0.0, 0.0) .

The odometry is locally very accurate but is subject to drift.

<aside> 💡 Check the 3. Run the SLAM tutorial to learn easily how to run the SLAM.

</aside>

<aside> 💡

If you need to check the internal SLAM parameters, please refer to SLAM parameters

</aside>

Command line options

General I/O and parameters

Name Command line prefix Default value Definition
Profile -p [arg] wide Selected SLAM profile. Explanation of the mechanism is available at ‣ .
Output directory -o [arg] ./slam_session Specify the output directory path. The date in format yyyy-MM-dd-hh-mm-ss is appended to the directory name.
Write update distance --d-write - Allow to write frames only after a minimum motion of --d-write . This is useful for saving disk space and not writing redundant data, when the sensor is stationnary for instance.
Disable date appending --no-date - Disable the appending of the date at the end of the SLAM session name
No visualization --no-vis - Disable visualization, the writing will still take place if enabled
No ego-motion --no-em - Disable Ego-motion estimation. Use only if you already have applied ego-motion distortion to your LiDAR data (e.g. KITTI odometry benchmark).
No write --no-write - Disable the writting of the SLAM session : no frames nor odometry trajectory would be written
Help -h or --help - Prints help message

Dataset options

For launching the SLAM on your own dataset, read Supported dataset inputs

Hesai PCAP --hesai-pcap - Path to a PCAP file from a Hesai sensor. If set, the --hesai-model should also be set
Hesai model --hesai-model - Hesai model, among Pandar64, Pandar40P, Pandar40M, Pandar20A, Pandar20B, PandarQT, PandarXT-16, PandarXT-32, PandarXTM (XT32 M2X), QT128, OT128, JT16, JT128
Ouster PCAP --ouster-pcap - Path to a PCAP file from a Ouster sensor
Ouster JSON --ouster-json - JSON configuration file of the Ouster sensor. If no json is set, by default a .json file with the same name as the pcap is searched.
Livox LVX --lvx - Livox raw data format LVX or LVX2 file
Livox PCAP --lvx-pcap - Livox raw data captured in .pcap (HAP or Mid360)
Velodyne PCAP --velodyne-pcap - Path to a PCAP file from a Velodyne sensor. Supported models : VLP16, HDL32, VLP32C, HDL64, VL128
Robosense PCAP (since 1.1.0) --rs-pcap - Path to a PCAP file from a Robosense sensor. PCAP should contain both MSOP and DIFOP packets. Supported models : Airy 96
Velodyne hour --velodyne-hour - [optional] Start hour of the velodyne dataset
PLY files directory --ply - Path to a directory containing .ply frames
ROS bag --bag - Path to either a rosbag file or directory that contains multiple rosbags. Supports .bag, .db3 and .mcap formats.
Hesai packets topic name --bag-hesai - Name of the ROS topic in which the Hesai packet are recorded. If provided, you need to provide also --hesai-model.
PointCloud2 topic name --bag-lidar first PointCloud2 topic found Name of the PointCloud2 topic for the SLAM
Livox CustomMsg topic name --bag-livox - Name of the ROS topic in which the Livox CustomMsg messages are recorded.
Velodyne packets topic name (since 1.1.0) --bag-velodyne - Name of the ROS topic in which either the VelodyneScan or ExwayzPacket custom messages are recorded.
Ouster packets topic name --bag-ouster - Name of the ROS topic in which the Ouster packet are recorded. If provided, you need to provide also --ouster-json .
Allow rosbag topics not found --bag-allow-not-found - Don't return on error in case queried topic is not found in rosbag index. This is usefull for mcap format for which there is a known bug on the index building.

Output

Exwayz SLAM creates an output directory (the SLAM session directory) in which it writes the SLAM results as described below.

📂 slam_session_<hour>_<date>

traj_odometry.ply ****# Odometry trajectory computed by the SLAM