iris_lama_ros package from iris_lama_ros repo

iris_lama_ros

Package Summary

Tags No category tags.
Version 1.2.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/iris-ua/iris_lama_ros.git
VCS Type git
VCS Version noetic-devel
Last Updated 2021-04-10
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

ROS package of IRIS Localization and Mapping (LaMa).

Additional Links

No additional links.

Maintainers

  • Eurico Pedrosa

Authors

  • Eurico Pedrosa

LaMa ROS - Alternative Localization and Mapping for ROS.

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

Build Melodic

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

Overview

ROS integration of LaMa, a Localization and Mapping package from the Intelligent Robotics and Systems (IRIS) Laboratory, University of Aveiro. It provides 2D Localization and SLAM. It works great on a TurtleBot2 with a Raspberry Pi 3 Model B+ and an Hokuyo (Rapid URG).

Build

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

mkdir src
cd src
git clone https://github.com/iris-ua/iris_lama
git clone https://github.com/iris-ua/iris_lama_ros
cd ..
catkin config --extend /opt/ros/melodic
catkin build

The build was tested in Ubuntu 18.04 with ROS melodic. It will not build with catkin_make or catkin_make_isolated.

SLAM nodes

To create a map using Online SLAM execute

rosrun iris_lama_ros slam2d_ros scan_topic:=base_scan

and to create a map using Particle Filter SLAM execute

rosrun iris_lama_ros pf_slam2d_ros scan_topic:=base_scan

Both nodes will publish to expected topics such as /map and /tf.

Offline Mapping (rosbag)

If you want to obtain a map from a rosbag and you want to save time (a lot), you can let iris_lama_ros "play" the rosbag for you.

roslaunch iris_lama_ros slam2d_offine.launch scan_topic:=base_scan rosbag:=/path/your/rosbag.bag

or

roslaunch iris_lama_ros pf_slam2d_offine.launch scan_topic:=base_scan rosbag:=/path/your/rosbag.bag

Parameters

  • ~global_frame_id: The frame attached to the map (default: "map").
  • ~odom_frame_id: The frame attached to the odometry system (default: "odom").
  • ~base_frame_id: The frame attached to the mobile base (default: "base_link").
  • ~scan_topic: Laser scan topic to subscribe (default: "/scan").
  • ~initial_pos_x: Initial x position (default: 0 meters).
  • ~initial_pos_y: Initial y position (default: 0 meters).
  • ~initial_pos_a: Initial rotation (or angle) (default: 0 rad).
  • ~d_thresh: Traveled distance to accumulate before updating (default: 0.01 meters).
  • ~a_thresh: Angular motion to accumulate before updating (default: 0.25 rads).
  • ~l2_max: Maximum distance to use in the dynamic Euclidean distance map (default: 0.5 meters).
  • ~resolution: Resolution of the grid maps (default: 0.05 meters).
  • ~patch_size: Length of a patch (default: 32 cells).
  • ~strategy: Scan matching optimization strategy, GaussNewton ("gm") or Levenberg Marquard ("lm") (default: "gn").
  • ~max_iterations: Maximum number of interations performed by the optimizer (default: 100)
  • ~use_compression: Should the maps be compressed (default: false).
  • ~compression_algorithm: Compression algorithm to use, lz4 or zstd (default: "lz4").
  • ~cache_size: Size of the LRU used during online data compression (default: 100).
  • ~mrange: Maximum laser scan range (default: 16 meters).
  • ~truncate: Truncate the laser scan range from start to "middle" (default: 0.0 meters, 0.0 means no truncation).
  • ~truncate_ray: Truncate the laser scan range (or ray) from "middle" to end (default: 0.0 meters, 0.0 means no truncation).
  • ~map_publish_period: How long between updates to the map (default: 5 seconds).

Particle Filter SLAM only: * ~d_thresh: Traveled distance to accumulate before updating (default: 0.5 meters). * ~particles: Number of particles to use (default: 30). * ~seed: RNG seed value, use 0 for a random seed from device (default: 0) * ~threads: Number of working threads, -1 means disabled and 0 will expand to the available number of cores (default: -1). * ~sigma: Measurement variance (default: 0.05). * ~lgain: Gain value for smoothing the particles likelihood (default: 3.0). * ~srr: Odometry error in rotation as a function of rotation (default: 0.1). * ~str: Odometry error in rotation as a function of translation (default: 0.2). * ~stt: Odometry error in traslation as a function of translation (default: 0.1). * ~srt: Odometry error in translation as a funciton of rotation (default: 0.1).

Localization node

This node requires the existence of the /static_map service to load the map. To run the localization just execute

rosrun iris_lama_ros loc2d_ros scan:=base_scan

Please use rviz to set the initial pose. Global localization is not yet implemented.

Services

  • /request_nomotion_update: Called to trigger an update without moving the robot (no-motion update)
  • /global_localization: Called to trigger a global localization procedure.

Parameters

  • ~global_frame_id: The frame attached to the map (default: "map").
  • ~odom_frame_id: The frame attached to the odometry system (default: "odometry").
  • ~base_frame_id: The frame attached to the mobile base (default: "base_link").
  • ~scan_topic: Laser scan topic to subscribe (default: "/scan").
  • ~initial_pos_x: Initial x position (default: 0 meters).
  • ~initial_pos_y: Initial y position (default: 0 meters).
  • ~initial_pos_a: Initial rotation (or angle) (default: 0 rad).
  • ~d_thresh: Traveled distance to accumulate before updating (default: 0.01 meters).
  • ~a_thresh: Angular motion to accumulate before updating (default: 0.2 rads).
  • ~l2_max: Maximum distance to use in the dynamic Euclidean distance map (default: 0.5 meters).
  • ~strategy: Scan matching optimization strategy, GaussNewton ("gm") or Levenberg Marquard ("lm") (default: "gn").
  • ~patch_size: Length of a patch (default: 32 cells).
  • ~use_map_topic: True to subscribe to the /map topic instead of requesting the map through the "static_map" service (default: false).
  • ~first_map_only: True to use only the first map ever received (default: false).
  • ~use_pose_on_new_map: True to use the current algorithm pose when the map changes (default: false).
  • ~force_update_on_initial_pose: True to trigger a no-motion update when an initial pose is received (default: false)
  • ~gloc_particles: Number of particles used to find the best global localization (default: 3000)
  • ~gloc_thresh: Value at which a global localization particle is considered viable. (default: 0.15 RMSE)
  • ~gloc_iters: Maximum number of iterations executed by the global localization procedure (default: 20)
CHANGELOG

Changelog for package iris_lama_ros

1.2.0 (2021-04-10)

  • Remove backlash from frame ids
  • Fix laser orientation checks in the localization node
  • Add launch file for localization node
  • Remove backlash from global namespace topics
  • Publish localization covariance

1.1.0 (2020-12-05)

  • Add \"truncate\" parameters
  • Add a service to trigger global localization
  • Add a service to trigger localization non-motion updates
  • Localization node can now subscribe to maps instead of just using the static_map service
  • Enable TCP_NODELAY for laser scan subscribers to reduce communications delay
  • Filter \"map\" transformations when mapping offline
  • Fix inverted lidar
  • Use C++14
  • Fix eigen aligment issues

1.0.0 (2020-05-05)

  • First official release.

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/loc2d.launch
      • initial_pose_x [default: 0.0]
      • initial_pose_y [default: 0.0]
      • initial_yaw [default: 0.0]
  • launch/slam2d_offine.launch
      • scan_topic [default: /scan]
      • rosbag
      • particles [default: 30]
      • d_thresh [default: 0.5]
      • a_thresh [default: 0.5]
      • mrange [default: 20]
      • threads [default: 4]
      • use_compression [default: false]
  • launch/pf_slam2d_offine.launch
      • scan_topic [default: /scan]
      • rosbag
      • particles [default: 30]
      • d_thresh [default: 0.5]
      • a_thresh [default: 0.5]
      • mrange [default: 20]
      • threads [default: 4]
      • use_compression [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged iris_lama_ros at Robotics Stack Exchange

iris_lama_ros package from iris_lama_ros repo

iris_lama_ros

Package Summary

Tags No category tags.
Version 1.2.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/iris-ua/iris_lama_ros.git
VCS Type git
VCS Version melodic-devel
Last Updated 2021-04-10
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

ROS package of IRIS Localization and Mapping (LaMa).

Additional Links

No additional links.

Maintainers

  • Eurico Pedrosa

Authors

  • Eurico Pedrosa

LaMa ROS - Alternative Localization and Mapping for ROS.

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

Build Melodic

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

Overview

ROS integration of LaMa, a Localization and Mapping package from the Intelligent Robotics and Systems (IRIS) Laboratory, University of Aveiro. It provides 2D Localization and SLAM. It works great on a TurtleBot2 with a Raspberry Pi 3 Model B+ and an Hokuyo (Rapid URG).

Build

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

mkdir src
cd src
git clone https://github.com/iris-ua/iris_lama
git clone https://github.com/iris-ua/iris_lama_ros
cd ..
catkin config --extend /opt/ros/melodic
catkin build

The build was tested in Ubuntu 18.04 with ROS melodic. It will not build with catkin_make or catkin_make_isolated.

SLAM nodes

To create a map using Online SLAM execute

rosrun iris_lama_ros slam2d_ros scan_topic:=base_scan

and to create a map using Particle Filter SLAM execute

rosrun iris_lama_ros pf_slam2d_ros scan_topic:=base_scan

Both nodes will publish to expected topics such as /map and /tf.

Offline Mapping (rosbag)

If you want to obtain a map from a rosbag and you want to save time (a lot), you can let iris_lama_ros "play" the rosbag for you.

roslaunch iris_lama_ros slam2d_offine.launch scan_topic:=base_scan rosbag:=/path/your/rosbag.bag

or

roslaunch iris_lama_ros pf_slam2d_offine.launch scan_topic:=base_scan rosbag:=/path/your/rosbag.bag

Parameters

  • ~global_frame_id: The frame attached to the map (default: "map").
  • ~odom_frame_id: The frame attached to the odometry system (default: "odom").
  • ~base_frame_id: The frame attached to the mobile base (default: "base_link").
  • ~scan_topic: Laser scan topic to subscribe (default: "/scan").
  • ~initial_pos_x: Initial x position (default: 0 meters).
  • ~initial_pos_y: Initial y position (default: 0 meters).
  • ~initial_pos_a: Initial rotation (or angle) (default: 0 rad).
  • ~d_thresh: Traveled distance to accumulate before updating (default: 0.01 meters).
  • ~a_thresh: Angular motion to accumulate before updating (default: 0.25 rads).
  • ~l2_max: Maximum distance to use in the dynamic Euclidean distance map (default: 0.5 meters).
  • ~resolution: Resolution of the grid maps (default: 0.05 meters).
  • ~patch_size: Length of a patch (default: 32 cells).
  • ~strategy: Scan matching optimization strategy, GaussNewton ("gm") or Levenberg Marquard ("lm") (default: "gn").
  • ~max_iterations: Maximum number of interations performed by the optimizer (default: 100)
  • ~use_compression: Should the maps be compressed (default: false).
  • ~compression_algorithm: Compression algorithm to use, lz4 or zstd (default: "lz4").
  • ~cache_size: Size of the LRU used during online data compression (default: 100).
  • ~mrange: Maximum laser scan range (default: 16 meters).
  • ~truncate: Truncate the laser scan range from start to "middle" (default: 0.0 meters, 0.0 means no truncation).
  • ~truncate_ray: Truncate the laser scan range (or ray) from "middle" to end (default: 0.0 meters, 0.0 means no truncation).
  • ~map_publish_period: How long between updates to the map (default: 5 seconds).

Particle Filter SLAM only: * ~d_thresh: Traveled distance to accumulate before updating (default: 0.5 meters). * ~particles: Number of particles to use (default: 30). * ~seed: RNG seed value, use 0 for a random seed from device (default: 0) * ~threads: Number of working threads, -1 means disabled and 0 will expand to the available number of cores (default: -1). * ~sigma: Measurement variance (default: 0.05). * ~lgain: Gain value for smoothing the particles likelihood (default: 3.0). * ~srr: Odometry error in rotation as a function of rotation (default: 0.1). * ~str: Odometry error in rotation as a function of translation (default: 0.2). * ~stt: Odometry error in traslation as a function of translation (default: 0.1). * ~srt: Odometry error in translation as a funciton of rotation (default: 0.1).

Localization node

This node requires the existence of the /static_map service to load the map. To run the localization just execute

rosrun iris_lama_ros loc2d_ros scan:=base_scan

Please use rviz to set the initial pose. Global localization is not yet implemented.

Services

  • /request_nomotion_update: Called to trigger an update without moving the robot (no-motion update)
  • /global_localization: Called to trigger a global localization procedure.

Parameters

  • ~global_frame_id: The frame attached to the map (default: "map").
  • ~odom_frame_id: The frame attached to the odometry system (default: "odometry").
  • ~base_frame_id: The frame attached to the mobile base (default: "base_link").
  • ~scan_topic: Laser scan topic to subscribe (default: "/scan").
  • ~initial_pos_x: Initial x position (default: 0 meters).
  • ~initial_pos_y: Initial y position (default: 0 meters).
  • ~initial_pos_a: Initial rotation (or angle) (default: 0 rad).
  • ~d_thresh: Traveled distance to accumulate before updating (default: 0.01 meters).
  • ~a_thresh: Angular motion to accumulate before updating (default: 0.2 rads).
  • ~l2_max: Maximum distance to use in the dynamic Euclidean distance map (default: 0.5 meters).
  • ~strategy: Scan matching optimization strategy, GaussNewton ("gm") or Levenberg Marquard ("lm") (default: "gn").
  • ~patch_size: Length of a patch (default: 32 cells).
  • ~use_map_topic: True to subscribe to the /map topic instead of requesting the map through the "static_map" service (default: false).
  • ~first_map_only: True to use only the first map ever received (default: false).
  • ~use_pose_on_new_map: True to use the current algorithm pose when the map changes (default: false).
  • ~force_update_on_initial_pose: True to trigger a no-motion update when an initial pose is received (default: false)
  • ~gloc_particles: Number of particles used to find the best global localization (default: 3000)
  • ~gloc_thresh: Value at which a global localization particle is considered viable. (default: 0.15 RMSE)
  • ~gloc_iters: Maximum number of iterations executed by the global localization procedure (default: 20)
CHANGELOG

Changelog for package iris_lama_ros

1.2.0 (2021-04-10)

  • Remove backlash from frame ids
  • Fix laser orientation checks in the localization node
  • Add launch file for localization node
  • Remove backlash from global namespace topics
  • Publish localization covariance

1.1.0 (2020-12-05)

  • Add \"truncate\" parameters
  • Add a service to trigger global localization
  • Add a service to trigger localization non-motion updates
  • Localization node can now subscribe to maps instead of just using the static_map service
  • Enable TCP_NODELAY for laser scan subscribers to reduce communications delay
  • Filter \"map\" transformations when mapping offline
  • Fix inverted lidar
  • Use C++14
  • Fix eigen aligment issues

1.0.0 (2020-05-05)

  • First official release.

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/loc2d.launch
      • initial_pose_x [default: 0.0]
      • initial_pose_y [default: 0.0]
      • initial_yaw [default: 0.0]
  • launch/slam2d_offine.launch
      • scan_topic [default: /scan]
      • rosbag
      • particles [default: 30]
      • d_thresh [default: 0.5]
      • a_thresh [default: 0.5]
      • mrange [default: 20]
      • threads [default: 4]
      • use_compression [default: false]
  • launch/pf_slam2d_offine.launch
      • scan_topic [default: /scan]
      • rosbag
      • particles [default: 30]
      • d_thresh [default: 0.5]
      • a_thresh [default: 0.5]
      • mrange [default: 20]
      • threads [default: 4]
      • use_compression [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged iris_lama_ros at Robotics Stack Exchange