-
 
No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

iris_lama package from iris_lama repo

iris_lama

Package Summary

Tags No category tags.
Version 1.3.1
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/iris-ua/iris_lama.git
VCS Type git
VCS Version master
Last Updated 2024-03-11
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

IRIS package for Localization and Mapping (LaMa). This packages includes the sparse-dense library for grid mapping, a 2D localization algorithm based on scan matching, an online SLAM solution with a dynamic likelihood field and a 2D RB Particle Filter SLAM solution with multithreading.

Additional Links

No additional links.

Maintainers

  • Eurico Pedrosa

Authors

  • Eurico Pedrosa

LaMa - A Localization and Mapping library.

https://github.com/iris-ua/iris_lama

Build

Developed and maintained by Eurico Pedrosa, University of Aveiro (C) 2019.

Overview

LaMa is a C++11 software library for robotic localization and mapping developed at the Intelligent Robotics and Systems (IRIS) Laboratory from the University of Aveiro - Portugal. It includes a framework for 3D volumetric grids (for mapping), a localization algorithm based on scan matching and two SLAM solution (an Online SLAM and a Particle Filter SLAM).

The main feature is efficiency. Low computational effort and low memory usage whenever possible. The minimum viable computer to run our localization and SLAM solutions is a Raspberry Pi 3 Model B+.

Build

To build LaMa, clone it from GitHub and use CMake to build.

$ git clone https://github.com/iris-ua/iris_lama
$ cd iris_lama
$ mkdir build
$ cd build
$ cmake ..

Its only dependency is Eigen3. Note: LaMa does not provide any executable. For an example on how to use it, please take a look at our integration with ROS.

Integration with ROS

The source code contains package.xml so that it can be used as a library from external ros packages. We provide ROS nodes to run the localization and the two SLAM solutions. Please go to iris_lama_ros for more information.

Sparse-Dense Mapping (SDM)

Sparse-Dense Mapping (SDM) is a framework for efficient implementation of 3D volumetric grids. Its divides space into small dense patches addressable by a sparse data-structure. To improve memory usage each individual patch can be compressed during live operations using lossless data compression (currently lz4 and Zstandard) with low overhead. It can be a replacement for OctoMap.

Currently it has the following grid maps implemented:

  • Distance Map: It provides the distance to the closest occupied cells in the map. We provide the DynamicDistanceMap which is an implementation of the dynamic Euclidean map proposed by:

    B. Lau, C. Sprunk, and W. Burgard Efficient Grid-Based Spatial Representations for Robot Navigation in Dynamic Environments Robotics and Autonomous Systems, 61 (10), 2013, pp. 1116-1130, Elsevier

  • Occupancy Map: The most common representation of the environment used in robotics. Three (3) variants of the occupancy map are provided: a SimpleOccupancyMap where each cell has a tri-state: free, occupied or unknown: a ProbabilisticOccupancyMap that encodes the occupancy probability of each cell with logods; and a FrequencyOccupancyMap that tracks the number of times a beam hits or traverses (miss) a cell and calculates a hit/miss ratio.

For more information about SDM please read

Eurico Pedrosa, Artur Pereira, Nuno Lau
A Sparse-Dense Approach for Efficient Grid Mapping
2018 IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC)

Localization based on Scan Matching

We provide a fast scan matching approach to mobile robot localization supported by a continuous likelihood field. It can be used to provide accurate localization for robots equipped with a laser and a not so good odometry. Nevertheless, a good odometry is always recommended.

Eurico Pedrosa, Artur Pereira, Nuno Lau
Efficient Localization Based on Scan Matching with a Continuous Likelihood Field
2017 IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC)

Online SLAM

For environments without considerable loops this solution can be accurate and very efficient. It can run in real time even on a low-spec computer (we have it running on a turtlebot with a raspberry pi 3B+). It uses our localization algorithm combined with a dynamic likelihood field to incrementally build an occupancy map.

For more information please read

Eurico Pedrosa, Artur Pereira, Nuno Lau
A Non-Linear Least Squares Approach to SLAM using a Dynamic Likelihood Field
Journal of Intelligent & Robotic Systems 93 (3-4), 519-532

Multi-threaded Particle Filter SLAM

This Particle Filter SLAM is a RBPF SLAM like GMapping and it is the extension of the Online SLAM solution to multiple particles with multi-thread support. Our solution is capable of parallelizing both the localization and mapping processes. It uses a thread-pool to manage the number of working threads.

Even without multi-threading, our solutions is a lightweight competitor against the heavyweight GMapping.

For more information please read

Eurico Pedrosa, Artur Pereira, Nuno Lau
Fast Grid SLAM Based on Particle Filter with Scan Matching and Multithreading
2020 IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC), Ponta Delgada, Portugal, 2020, pp. 194-199, doi: 10.1109/ICARSC49921.2020.9096191.

Graph SLAM

A really fast graph based solution.

CHANGELOG

Changelog for package iris_lama

1.3.1 (2022-09-02)

  • Fix armhf compilation

1.3.0 (2022-09-01)

  • Switch to plain cmake instead of a catkin based
  • Several performance improvements
  • Add a 2D slam solution based on pose graph optimization
  • Add read support for more image types thanks to stb_image.h
  • Add IO to the map data structure
  • Introduce transient mapping to slam2d
  • Reduce memory usage of the dynamic distance map by ~30%
  • Fix a bug where some cells in the dynamic distance map were not update correctly

1.2.0 (2021-04-10)

  • Expose localization covariance

1.1.0 (2020-12-05)

  • Expose the global localization parameters as options
  • Add option to mark free cells when there is no hit in SLAM (i.e. truncated ranges)
  • Add non-motion update trigger to location
  • Fix infinite loop in global localization
  • Use C++14
  • Fix eigen aligment issues

1.0.0 (2020-05-05)

  • First official release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
eigen
cmake

Dependant Packages

Name Deps
iris_lama_ros

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged iris_lama at Robotics Stack Exchange

No version for distro galactic. Known supported distros are highlighted in the buttons above.

iris_lama package from iris_lama repo

iris_lama

Package Summary

Tags No category tags.
Version 1.3.1
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/iris-ua/iris_lama.git
VCS Type git
VCS Version master
Last Updated 2024-03-11
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

IRIS package for Localization and Mapping (LaMa). This packages includes the sparse-dense library for grid mapping, a 2D localization algorithm based on scan matching, an online SLAM solution with a dynamic likelihood field and a 2D RB Particle Filter SLAM solution with multithreading.

Additional Links

No additional links.

Maintainers

  • Eurico Pedrosa

Authors

  • Eurico Pedrosa

LaMa - A Localization and Mapping library.

https://github.com/iris-ua/iris_lama

Build

Developed and maintained by Eurico Pedrosa, University of Aveiro (C) 2019.

Overview

LaMa is a C++11 software library for robotic localization and mapping developed at the Intelligent Robotics and Systems (IRIS) Laboratory from the University of Aveiro - Portugal. It includes a framework for 3D volumetric grids (for mapping), a localization algorithm based on scan matching and two SLAM solution (an Online SLAM and a Particle Filter SLAM).

The main feature is efficiency. Low computational effort and low memory usage whenever possible. The minimum viable computer to run our localization and SLAM solutions is a Raspberry Pi 3 Model B+.

Build

To build LaMa, clone it from GitHub and use CMake to build.

$ git clone https://github.com/iris-ua/iris_lama
$ cd iris_lama
$ mkdir build
$ cd build
$ cmake ..

Its only dependency is Eigen3. Note: LaMa does not provide any executable. For an example on how to use it, please take a look at our integration with ROS.

Integration with ROS

The source code contains package.xml so that it can be used as a library from external ros packages. We provide ROS nodes to run the localization and the two SLAM solutions. Please go to iris_lama_ros for more information.

Sparse-Dense Mapping (SDM)

Sparse-Dense Mapping (SDM) is a framework for efficient implementation of 3D volumetric grids. Its divides space into small dense patches addressable by a sparse data-structure. To improve memory usage each individual patch can be compressed during live operations using lossless data compression (currently lz4 and Zstandard) with low overhead. It can be a replacement for OctoMap.

Currently it has the following grid maps implemented:

  • Distance Map: It provides the distance to the closest occupied cells in the map. We provide the DynamicDistanceMap which is an implementation of the dynamic Euclidean map proposed by:

    B. Lau, C. Sprunk, and W. Burgard Efficient Grid-Based Spatial Representations for Robot Navigation in Dynamic Environments Robotics and Autonomous Systems, 61 (10), 2013, pp. 1116-1130, Elsevier

  • Occupancy Map: The most common representation of the environment used in robotics. Three (3) variants of the occupancy map are provided: a SimpleOccupancyMap where each cell has a tri-state: free, occupied or unknown: a ProbabilisticOccupancyMap that encodes the occupancy probability of each cell with logods; and a FrequencyOccupancyMap that tracks the number of times a beam hits or traverses (miss) a cell and calculates a hit/miss ratio.

For more information about SDM please read

Eurico Pedrosa, Artur Pereira, Nuno Lau
A Sparse-Dense Approach for Efficient Grid Mapping
2018 IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC)

Localization based on Scan Matching

We provide a fast scan matching approach to mobile robot localization supported by a continuous likelihood field. It can be used to provide accurate localization for robots equipped with a laser and a not so good odometry. Nevertheless, a good odometry is always recommended.

Eurico Pedrosa, Artur Pereira, Nuno Lau
Efficient Localization Based on Scan Matching with a Continuous Likelihood Field
2017 IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC)

Online SLAM

For environments without considerable loops this solution can be accurate and very efficient. It can run in real time even on a low-spec computer (we have it running on a turtlebot with a raspberry pi 3B+). It uses our localization algorithm combined with a dynamic likelihood field to incrementally build an occupancy map.

For more information please read

Eurico Pedrosa, Artur Pereira, Nuno Lau
A Non-Linear Least Squares Approach to SLAM using a Dynamic Likelihood Field
Journal of Intelligent & Robotic Systems 93 (3-4), 519-532

Multi-threaded Particle Filter SLAM

This Particle Filter SLAM is a RBPF SLAM like GMapping and it is the extension of the Online SLAM solution to multiple particles with multi-thread support. Our solution is capable of parallelizing both the localization and mapping processes. It uses a thread-pool to manage the number of working threads.

Even without multi-threading, our solutions is a lightweight competitor against the heavyweight GMapping.

For more information please read

Eurico Pedrosa, Artur Pereira, Nuno Lau
Fast Grid SLAM Based on Particle Filter with Scan Matching and Multithreading
2020 IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC), Ponta Delgada, Portugal, 2020, pp. 194-199, doi: 10.1109/ICARSC49921.2020.9096191.

Graph SLAM

A really fast graph based solution.

CHANGELOG

Changelog for package iris_lama

1.3.1 (2022-09-02)

  • Fix armhf compilation

1.3.0 (2022-09-01)

  • Switch to plain cmake instead of a catkin based
  • Several performance improvements
  • Add a 2D slam solution based on pose graph optimization
  • Add read support for more image types thanks to stb_image.h
  • Add IO to the map data structure
  • Introduce transient mapping to slam2d
  • Reduce memory usage of the dynamic distance map by ~30%
  • Fix a bug where some cells in the dynamic distance map were not update correctly

1.2.0 (2021-04-10)

  • Expose localization covariance

1.1.0 (2020-12-05)

  • Expose the global localization parameters as options
  • Add option to mark free cells when there is no hit in SLAM (i.e. truncated ranges)
  • Add non-motion update trigger to location
  • Fix infinite loop in global localization
  • Use C++14
  • Fix eigen aligment issues

1.0.0 (2020-05-05)

  • First official release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
eigen
cmake

Dependant Packages

Name Deps
iris_lama_ros

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged iris_lama at Robotics Stack Exchange