Giter Site home page Giter Site logo

molaorg / mola Goto Github PK

View Code? Open in Web Editor NEW
409.0 22.0 80.0 3.01 MB

A Modular Optimization framework for Localization and mApping (MOLA)

Home Page: https://docs.mola-slam.org/latest/

License: Other

Python 5.17% CMake 4.52% C++ 88.05% MATLAB 0.12% Shell 0.03% C 2.11%
slam lidar lidar-point-cloud localization mobile-robots graph-slam toolkit cxx cxx17 visual-slam computer-vision datasets

mola's Introduction

CI Check clang-format CI ROS Docs

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Iron (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Rolling (u24.04) Build Status Version

mola

A Modular Optimization framework for Localization and mApping (MOLA). This repository contains the base open-sourced packages for the MOLA project. Other packages exist under the MOLAorg organization.

Refer to the official documentation for build instructions, demos, API reference, etc.

kitti_demo_06

Individual package build status

Package ROS 2 Humble
BinBuild
ROS 2 Iron
BinBuild
ROS 2 Jazzy
BinBuild
ROS 2 Rolling
BinBuild
kitti_metrics_eval Build Status Build Status Build Status Build Status
mola Build Status Build Status Build Status Build Status
mola_bridge_ros2 Build Status Build Status Build Status Build Status
mola_demos Build Status Build Status Build Status Build Status
mola_imu_preintegration Build Status Build Status Build Status Build Status
mola_input_euroc_dataset Build Status Build Status Build Status Build Status
mola_input_kitti360_dataset Build Status Build Status Build Status Build Status
mola_input_kitti_dataset Build Status Build Status Build Status Build Status
mola_input_mulran_dataset Build Status Build Status Build Status Build Status
mola_input_paris_luco_dataset Build Status Build Status Build Status Build Status
mola_input_rawlog Build Status Build Status Build Status Build Status
mola_input_rosbag2 Build Status Build Status Build Status Build Status
mola_kernel Build Status Build Status Build Status Build Status
mola_launcher Build Status Build Status Build Status Build Status
mola_metric_maps Build Status Build Status Build Status Build Status
mola_msgs Build Status Build Status Build Status Build Status
mola_navstate_fg Build Status Build Status Build Status Build Status
mola_navstate_fuse Build Status Build Status Build Status Build Status
mola_pose_list Build Status Build Status Build Status Build Status
mola_relocalization Build Status Build Status Build Status Build Status
mola_traj_tools Build Status Build Status Build Status Build Status
mola_viz Build Status Build Status Build Status Build Status
mola_yaml Build Status Build Status Build Status Build Status

Citations

The latest publications on MOLA are (PDF).

@misc{blanco2024mola,
      title={A flexible framework for accurate LiDAR odometry, map manipulation, and localization},
      author={José Luis Blanco-Claraco},
      year={2024},
      eprint={2407.20465},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2407.20465},
}

MOLA was initially presented in 2019 in (PDF):

@INPROCEEDINGS{Blanco-Claraco-RSS-19, 
    AUTHOR    = {Jose Luis Blanco-Claraco}, 
    TITLE     = {A Modular Optimization Framework for Localization and Mapping}, 
    BOOKTITLE = {Proceedings of Robotics: Science and Systems}, 
    YEAR      = {2019}, 
    ADDRESS   = {FreiburgimBreisgau, Germany}, 
    MONTH     = {June}, 
    DOI       = {10.15607/RSS.2019.XV.043} 
} 

License

MOLA is released under the GNU GPL v3 license, except noted otherwise in each individual module. Other options available upon request. Some modules are released under BSD-3. See the official documentation.

Star History

Star History Chart

mola's People

Contributors

dependabot[bot] avatar jlblancoc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mola's Issues

Pending cli tools

Finish and publish these cli tools:

  • mola-dir
  • mola-parse-yaml
  • mola-map

cmake build error

Thanks for this great project. When I try to build the latest commit (b021176) of the mola code, I get the following error:

Screenshot from 2021-03-18 14-18-52

When I build the previous commit (b8f1156) everything builds fine. I use the following Dockerfile do the build:

RUN apt update -qq && \
    apt install -y --no-install-recommends \
    software-properties-common

RUN add-apt-repository ppa:joseluisblancoc/mrpt && \
    add-apt-repository ppa:joseluisblancoc/gtsam-develop

RUN apt update -qq && \
    apt install -y --no-install-recommends \
    curl \
    git \
    cmake \
    libmrpt-dev \
    mrpt-apps \
    libgtsam-dev \
    libboost-serialization-dev \
    libboost-system-dev \
    libboost-filesystem-dev \
    libboost-thread-dev \
    libboost-program-options-dev \
    libboost-date-time-dev \
    libboost-timer-dev \
    libboost-chrono-dev \
    libboost-regex-dev

RUN mkdir -p /root/src

WORKDIR /root/src/

RUN git clone https://github.com/MOLAorg/mola.git

WORKDIR /root/src/mola/

# RUN git checkout b8f1156315e656ee7855498d988ff7cfaff98d9d

# RUN git pull

RUN git submodule update --init

RUN mkdir -p /root/src/mola/build

WORKDIR /root/src/mola/build/

RUN cmake ..

RUN cmake --build .

Is there something wrong in my configuration?

Guidance Needed for Implementing Complete SLAM Process with KITTI Dataset

Hi @jlblancoc,

First of all, I want to express my gratitude for your incredible work on this project. It's truly a significant contribution to the field, and I appreciate all the effort you and the team have put into it.

I am currently trying to replicate the 1.0.5 version of the project on my system (Ubuntu 20.04, ROS2 Foxy). After several days of debugging, I successfully compiled the project and managed to run the demo mentioned in issue #51 which shows the replay visualization of the provided dataset.

However, I have encountered a problem. It seems that the current version of the code does not implement a complete SLAM process but only replays and displays the data. For instance, when I run:

ros2 launch mola_demos ros-kitti-play.launch.py kitti_sequence:=00

it only replays the data. Given your impressive results on the KITTI leaderboard [,](https://www.cvlibs.net/datasets/kitti/eval_odometry_detail.php?&result=e2110ded55ea27e10a0142ae3a126172c69fd006) I believe the project should include the full SLAM process.
Could you please provide guidance on how to achieve the complete SLAM process? Ideally, I would like to follow a tutorial to play the KITTI dataset, obtain the estimated robot poses, and save them in the KITTI dataset format.

If the current version does not support this, please let me know how I might assist in implementing this feature.

Thank you very much for your help and for your continued hard work on this amazing project.

Best regards,
Evelyn

demo-rawlog-velodyne-slam configuration/setting error

I try to run the demo: demo-rawlog-velodyne-slam, but I get the following error:

Screenshot from 2021-03-22 12-15-29

When I check the rawlog_odom_and_lidar.yml:

      # And its params:
      # Case: WITH a good twist (velocity) model:
      icp_params_with_vel.maxIterations:  10    90
      icp_params_with_vel.thresholdDist:   1.0   0.50   # [meters]
      icp_params_with_vel.thresholdAng:    2.0   0.01   # [deg]
      # Case: WITHOUT a good twist (velocity) model:
      icp_params_without_vel.maxIterations:   5     100
      icp_params_without_vel.thresholdDist:   3.0   0.50  # [meters]
      icp_params_without_vel.thresholdAng:    2.0   0.01  # [deg]
      # Case: Loop closure
      loop_closure_montecarlo_samples: 10
      icp_params_loopclosure.maxIterations: 10    40    90
      icp_params_loopclosure.thresholdDist: 30.0  5.0  0.50  # [meters]
      icp_params_loopclosure.thresholdAng:   2.0  0.5  0.01  # [deg]

The parameter names icp_params_with_vel seem incorrect (I assume should be icp_settings_with_vel). When I try to correct this I still get the error. Can you try help me correct the yaml-file? Thanks!

PS: demo ros1_velodyne_slam seems to have the same problem.

make error

Hello!
I have a error when I making this program :
/home/tb/workspace/mola/modules/mola-slam-gtsam/src/ASLAM_gtsam.cpp:205:20: error: ‘ISAM2UpdateParams’ is not a member of ‘gtsam’ ->gtsam::ISAM2UpdateParams updateParams;

home/tb/workspace/mola/modules/mola-slam-gtsam/src/ASLAM_gtsam.cpp:205:20: note: suggested alternative: ‘ISAM2Params’ ->gtsam::ISAM2UpdateParams updateParams;

/home/tb/workspace/mola/modules/mola-slam-gtsam/src/ASLAM_gtsam.cpp:206:13: error: ‘updateParams’ was not declared in this scope ->updateParams.newAffectedKeys =

And I also met lots of note like this

/home/tb/workspace/mola/modules/mola-slam-gtsam/src/ASLAM_gtsam.cpp:542:75: note: #pragma message: TODO: Disabled temporarily; see comment for gtsam::IMUHelper imu

How can I solve it?

Also I have noticed that in tutorial 👍

Build GTSAM from sources and disable “optimize native”. Note that make install is not required. Also, using the precompiled version of GTSAM from the PPA is not supported since it’s built using a different version of GCC and ABI incompatibilities will lead to crashes.

but How can I disable "optimaize native" when I am building GTSAM

Thank you very much in advance!

Segmentation Fault at Startup

Hi. Really enjoyed reading your paper. Outstanding work!

Unfortunately, I've so far been thwarted trying to run the code. I am able to compile everything and run the tests (which succeed). However, if I try to run the examples I get an immediate segmentation fault, no output, just "'core dumped".

I get this behaviour on ubuntu 16.04, ubuntu 18.04, and I even get the same behaviour trying to run an example on your docker image (mrpt/mrpt-build-env:full-bionic).

One commonality with all these systems is me. Any ideas?

Cmake Warning

Hello!

I have a warning when I run cmake ..

`
Cannot generate a safe runtime search path for target mola-input-ros1
because files in some directories may conflict with libraries in implicit
directories:

runtime library [libcv_bridge.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /opt/ros/kinetic/lib
runtime library [libtf2.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /opt/ros/kinetic/lib

`
How can I solve it?
Thanks in advance!

build failed

Hi, When I run 'cmake -H. -Bbuild', and get much error log like
'CMake Error at modules/mola-common/mola_cmake_functions.cmake:98 (target_compile_features):
target_compile_features specified unknown feature "cxx_std_17" for target "dbow2".
Call Stack (most recent call first):
modules/mola-common/mola_cmake_functions.cmake:112 (mola_set_target_cxx17)
modules/mola-common/mola_cmake_functions.cmake:253 (mola_set_target_build_options)
externals/DBoW2/CMakeLists.txt:38 (mola_add_library)'
And I'm sure I have installed all dependency, can you help me? Thank you.

Error after update

Hi, i have an old version working fine.
I make a git pull and now i have the following error when run

mola-cli -c kitti_lidar_slam.yml -p

[16:40:53.2298|ERROR|MolaLauncherApp] Error: Will shutdown since thread for module named backend ended due to an exception:
Exception message: call on a scalar
Any help?

can not git clone

Hi ,when I try
git clone --recurse-submodules https://github.com/MOLAorg/mola.git
I was refuse to clone something.
for example:
'[email protected]:jlblancoc/mola-fe-g2o-dataset.git'
'[email protected]:jlblancoc/mola-fe-imu-preintegration.git'
'[email protected]:jlblancoc/mola-fe-lidar-3d.git'
...
it shows:
Permission denied (publickey)

Is there any wrong?

About 3D LiDAR SLAM from KITTI dataset

Hi,
It is not an issue but I would like understand more about the code inside Mola, which is fantastic.
In this sample 3D LiDAR SLAM from KITTI dataset.
I would like to know if you are using landmarks in this sample for closure loop?
Best regards
Dibet

Server is down

Hi,
Thanks for the amazing work.
It happens that all the links to the documentation are dead. Could you check it please?
Thanks,
Bruno

cmake error

On running the command - cmake -DMOLA_BUILD_MARCH_NATIVE=OFF ..

I am getting this error ...

-- GTSAM include directory: /usr/local/lib/cmake/GTSAM/../../../include;/usr/include;/usr/local/include/gtsam/3rdparty/Eigen/
-- GTSAM found version: 4.0.2
-- Could NOT find LATEX (missing: LATEX_COMPILER)
OpenCL disabled, not looking for it
-- Found Boost: /usr/include (found version "1.58.0") found components: thread filesystem system program_options date_time chrono atomic
CMake Warning (dev) at /home/driverless/.local/lib/python3.6/site-packages/cmake/data/share/cmake-3.16/Modules/FindBoost.cmake:1287 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "chrono" will no longer be dereferenced when the
policy is set to NEW. Since the policy is not set the OLD behavior will be
used.
Call Stack (most recent call first):
/home/driverless/.local/lib/python3.6/site-packages/cmake/data/share/cmake-3.16/Modules/FindBoost.cmake:1921 (_Boost_MISSING_DEPENDENCIES)
externals/mp2p_icp/3rdparty/libpointmatcher/CMakeLists.txt:120 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.

-- Found Boost: /usr/include (found version "1.58.0") found components: thread filesystem system program_options date_time chrono chrono atomic
-- OpenMP found, parallel computer enabled
-- using built-in yaml-cpp, version 0.3.0
-- text-based configuration enabled
-- API Documentation (doxygen): disabled
CMake Error at externals/mp2p_icp/CMakeLists.txt:19 (find_package):
By not providing "Findmrpt-tfest.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"mrpt-tfest", but CMake did not find one.

Could not find a package configuration file provided by "mrpt-tfest" with
any of the following names:

mrpt-tfestConfig.cmake
mrpt-tfest-config.cmake

Add the installation prefix of "mrpt-tfest" to CMAKE_PREFIX_PATH or set
"mrpt-tfest_DIR" to a directory containing one of the above files. If
"mrpt-tfest" provides a separate development package or SDK, be sure it has
been installed.

-- Configuring incomplete, errors occurred!
See also "/home/driverless/mola/build/CMakeFiles/CMakeOutput.log".
See also "/home/driverless/mola/build/CMakeFiles/CMakeError.log".

Please help on how to resolve this.

DataSet Questions

I installed MOLa on my ubuntu . I am used ROS2 humble but, how to implement kitti dataset or other dataset your system . I dont understand actually .

Thank You .

Cmake error because of mrpt

On running the command - cmake -DMOLA_BUILD_MARCH_NATIVE=OFF ..

I am getting this error ( MRPT dependencies are already installed)...

-- GTSAM include directory: /usr/local/lib/cmake/GTSAM/../../../include;/usr/include;/usr/local/include/gtsam/3rdparty/Eigen/
-- GTSAM found version: 4.0.2
-- Could NOT find LATEX (missing: LATEX_COMPILER)
OpenCL disabled, not looking for it
-- Found Boost: /usr/include (found version "1.58.0") found components: thread filesystem system program_options date_time chrono atomic
CMake Warning (dev) at /home/driverless/.local/lib/python3.6/site-packages/cmake/data/share/cmake-3.16/Modules/FindBoost.cmake:1287 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "chrono" will no longer be dereferenced when the
policy is set to NEW. Since the policy is not set the OLD behavior will be
used.
Call Stack (most recent call first):
/home/driverless/.local/lib/python3.6/site-packages/cmake/data/share/cmake-3.16/Modules/FindBoost.cmake:1921 (_Boost_MISSING_DEPENDENCIES)
externals/mp2p_icp/3rdparty/libpointmatcher/CMakeLists.txt:120 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.

-- Found Boost: /usr/include (found version "1.58.0") found components: thread filesystem system program_options date_time chrono chrono atomic
-- OpenMP found, parallel computer enabled
-- using built-in yaml-cpp, version 0.3.0
-- text-based configuration enabled
-- API Documentation (doxygen): disabled
CMake Error at externals/mp2p_icp/CMakeLists.txt:19 (find_package):
By not providing "Findmrpt-tfest.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"mrpt-tfest", but CMake did not find one.

Could not find a package configuration file provided by "mrpt-tfest" with
any of the following names:

mrpt-tfestConfig.cmake
mrpt-tfest-config.cmake

Add the installation prefix of "mrpt-tfest" to CMAKE_PREFIX_PATH or set
"mrpt-tfest_DIR" to a directory containing one of the above files. If
"mrpt-tfest" provides a separate development package or SDK, be sure it has
been installed.

-- Configuring incomplete, errors occurred!
See also "/home/driverless/mola/build/CMakeFiles/CMakeOutput.log".
See also "/home/driverless/mola/build/CMakeFiles/CMakeError.log".

Please help on how to resolve this.

double free or corruption

Hi~

Today I met a problem, When I run
MOLA_INPUT_RAWLOG=map1_test1.rawlog mola-cli -c rawlog_odom_and_lidar.yml -p, it returned

[21:38:02.5804|INFO |MolaLauncherApp] Setting up system from YAML config... (set DEBUG verbosity level to see full config)
[21:38:02.8805|INFO |MolaLauncherApp] Instantiating module backend of type mola::ASLAM_gtsam
[21:38:02.8811|INFO |MolaLauncherApp] Instantiating module map of type mola::WorldModel
[21:38:02.8813|INFO |WorldModel] === Using map name: mola_map_2019_10_10,21_38_02.881325 ===
[21:38:02.8813|INFO |WorldModel] === Setting map storage base directory: /tmp/mola_map_2019_10_10,21_38_02.881325/ ===
[21:38:02.8817|INFO |MolaLauncherApp] Instantiating module lidar_fe of type mola::LidarOdometry
[21:38:02.8821|INFO |MolaLauncherApp] Instantiating module rawlog_input of type mola::RawlogDataset
[21:38:02.8826|INFO |MolaLauncherApp] Entering main SLAM/localization loop...(CTRL+C from mola-cli to stop)
[21:38:02.8826|INFO |mola::ASLAM_gtsam:backend] Attached to WorldModel module mola::WorldModel:map
[21:38:02.8835|INFO |mola::LidarOdometry:lidar_fe] Attached to SLAM backend module mola::ASLAM_gtsam:backend
[21:38:02.8835|INFO |mola::LidarOdometry:lidar_fe] Attached to WorldModel module mola::WorldModel:map
[21:38:02.8836|INFO |mola::LidarOdometry:lidar_fe] Number of ICP working threads: 2 (determined automatically)
[21:38:02.9248|WARN |mola::ASLAM_gtsam:backend] Creating KF #1 without a good initial guess.
[21:38:02.9282|INFO |mola::LidarOdometry:lidar_fe] New KF: ID=1
double free or corruption (out)
Aborted (core dumped)
in the terminal.

then the window which is mapping closed.

How can I solve it?

Thanks a lot in advance!

Accurate mapping in localization mode

Dears,
I did not find a localization mode in the documentation, but assuming there is one, is it possible to use it (with a reference map) and do online mapping (with loop closure and optimization) at the same time?
I believe this would be the solution for long-term localization and mapping, since you may already have a reliable map. However, not always the whole multisession data.
Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.