iris_lama_ros package from iris_lama_ros repoiris_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
Additional Links
Maintainers
- Eurico Pedrosa
Authors
- Eurico Pedrosa
LaMa ROS - Alternative Localization and Mapping for ROS.
https://github.com/iris-ua/iris_lama_ros
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 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
Package Dependencies
Deps | Name |
---|---|
tf | |
roscpp | |
rosbag | |
nav_msgs | |
tf_conversions | |
rosbag_storage | |
geometry_msgs | |
message_filters | |
visualization_msgs | |
iris_lama | |
std_srvs | |
catkin |
System Dependencies
Dependant Packages
Launch files
- 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]
- 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/loc2d.launch
-
- initial_pose_x [default: 0.0]
- initial_pose_y [default: 0.0]
- initial_yaw [default: 0.0]
Messages
Services
Plugins
Recent questions tagged iris_lama_ros at Robotics Stack Exchange
iris_lama_ros package from iris_lama_ros repoiris_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
Additional Links
Maintainers
- Eurico Pedrosa
Authors
- Eurico Pedrosa
LaMa ROS - Alternative Localization and Mapping for ROS.
https://github.com/iris-ua/iris_lama_ros
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 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
Package Dependencies
Deps | Name |
---|---|
tf | |
roscpp | |
rosbag | |
nav_msgs | |
tf_conversions | |
rosbag_storage | |
geometry_msgs | |
message_filters | |
visualization_msgs | |
iris_lama | |
std_srvs | |
catkin |
System Dependencies
Dependant Packages
Launch files
- 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]
- 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/loc2d.launch
-
- initial_pose_x [default: 0.0]
- initial_pose_y [default: 0.0]
- initial_yaw [default: 0.0]