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