![]() |
mrpt_graphslam_2d package from mrpt_slam repomrpt_ekf_slam_2d mrpt_ekf_slam_3d mrpt_graphslam_2d mrpt_icp_slam_2d mrpt_rbpf_slam mrpt_slam |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.19 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | ROS wrappers for SLAM algorithms in MRPT |
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_slam.git |
VCS Type | git |
VCS Version | ros1 |
Last Updated | 2024-09-18 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | c-plus-plus mapping ros slam mobile-robotics slam-algorithms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Nikos Koukis
- Jose Luis Blanco-Claraco
Authors
- Nikos Koukis
General Information
Algorithm utilizes the MRPT mrpt-graphslam library to execute single, multi-robot graphSLAM using information from odometry and LaserScan ROS topics.
mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine application. Furthermore the command-line arguments offered by the latter can be provided by the user as parameters in the ROS Parameter Server. See the provided roslaunch files for examples of this. Also see the API of mrpt_graphslam_2d available here
Additional information:
Single robot algorithm
Real-Time experiment - short loop
-
A sample rosbag is included in the
rosbags/demo_short_loop
directory. To run this just launch the sr_graphslam_demo.launch file:roslaunch mrpt_graphslam_2d sr_graphslam_demo.launch start_rviz:=True
-
Demo rosbag contains Laser Scan measurements (and odometry which is not usuable in the algorithm due to the topic type)
Real-Time experiment - ground-truth data included
-
A real-time experiment using a KUKA youbot and having a rough ground-truth estimate path is available here. Ground-Truth estimation is provided using 2 ps3 cameras placed on the room ceiling. The cameras using the ar_sys ROS package are tracking Aruco markers that act as the workspace origin (static marker) and as the robot executing SLAM (moving marker) respectively. To run this demo, simply download the entire folder, place it directly under the
rosbags
directory of the mrpt_graphslam_2d package and run the sr_graphslam_demo_gt.launch file.roslaunch mrpt_graphslam_2d sr_graphslam_demo_gt.launch
-
One can also tinker with the aforementioned launchfile to enable/disable the different visualization features, use another decider/optimizer class, or modify the .ini file to change the algorithm behavior.
-
Robot movement starts after ~60’’. Due to different timestamps in the laserscans, odometry topics the algorithm feedback is lagging a bit compared to the ground-truth visualization
-
sr_graphslam_demo_gt file uses the pass_all_args XML directive which is only available starting from the ROS Jade distribution. If you have an older one, just replace this with all the args in that file exclusively. For an example on how to do this, see the sr_graphslam_demo.launch file
-
Rosbag was recorded in the Mechanical Engineering School of the National Technical University of Athens
Multi-robot algorithm
Multi-robot support is provided via the csl_mr_slam package suite as well as the use of multimaster_fkie packages utilized for communication across the various ROS agents.
Multi-robot real-time experiments - rosbag
A rosbag collected from real-robots can be found in the following link (more rosbags to be added in the MRPT-2.0 branch):
To run a demo using one of the corresponding rosbags download that directory,
place it directly under the rosbags
directory of the mrpt_graphslam_2d
package and run the run_mr_graphslam_demo.sh
script of the csl_robots_gazebo
package
. The latter script (as is standard with the nodes of the
csl_robots_gazebo
package reads its configuration parameters off the shell
environment at hand and adjusts its behavior accordingly. As an examaple users
can use the following command for running a multi-robot demo.
# see the script for configuration variables
rosrun csl_robots_gazebo run_mr_graphslam_demo.sh
Warning
-
For this to work, you need to have the csl_mr_slam package suite (as well as the packages that the latter depends on) in your catkin workspace.
-
When executing multi-robot graphSLAM using either Gazebo (via the
csl_robots_gazebo
package or using measurements from the prerecorded rosbags, you have to, a priori, generate the necessary rviz files from the template files found in$(rospack find mrpt_graphslam_2d)/rviz/templates
.
File truncated at 100 lines see the full file
Changelog for package mrpt_graphslam_2d
0.1.19 (2024-09-18)
- Fix cmake target creation
- Workaround for missing TBB::tbb target in Noetic
- cmake: fix case and whitespaces
- Contributors: Jose Luis Blanco-Claraco
0.1.18 (2024-09-05)
- Port to new 'mrpt_lib*' packages
- Contributors: Jose Luis Blanco-Claraco
0.1.17 (2024-06-05)
- Update to fix builds against mrpt>=2.13.0
- Contributors: Jose Luis Blanco-Claraco
0.1.16 (2024-03-25)
0.1.15 (2023-08-02)
- Fix build errors and warnings with latest mrpt2 versions (Closes: #71)
- Contributors: Jose Luis Blanco-Claraco
0.1.14 (2023-04-12)
- 0.1.13
- fix version
- changelog
- Fix build against last mrpt 2.7.x
- chagelogs
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.11 (2022-06-24)
- Ported to tf2 and mrpt::ros1bridge
- Fix build with mrpt2
- Update multimaster_msgs_fkie to fkie_ prefix
- Merge branch 'master' of <ssh://github.com/mrpt-ros-pkg/mrpt_slam>
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #65 from Pillowline/patch-1 setting trajectory publishers to latched
- setting trajectory publishers to latched So you can obtain data when running mrpt_graphslam with a bagfile, even after the playback has finished.
- Contributors: Jose Luis Blanco-Claraco, Pillowline
0.1.10 (2019-10-05)
- fix build against current mrpt2
- fix build against mrpt2
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.9 (2019-04-14)
- Fix build against MRPT 1.9.9
- Switch header guards to pragma once
- Contributors: Jose Luis Blanco-Claraco, Julian Lopez Velasquez, Vladislav Tananaev
0.1.8 (2018-09-21)
- Make catkin_lint clean
- Contributors: Jose Luis Blanco Claraco
0.1.7 (2018-09-20)
- mrpt_graphslam_2d: Fix compilation warnings
- Remove installation of the demo directory from mrpt_graphslam_2d. It doesn't exist, so causes problems at the last stage of cmake. Signed-off-by: Chris Lalancette <<clalancette@openrobotics.org>>
- Contributors: Chris Lalancette, Jose Luis Blanco-Claraco, Nikos Koukis
0.1.6 (2018-06-14)
- Fixed compilation with MRPT 1.5
- Merge pull request #41 from MaxGsomGsom/master Fixed build with mrpt 2.0
- Fixed indents
- Fixed build with mrpt 2.0
- partial fix build w mrpt 2.0
- fix build in mrpt 2.0
- fix build; add optimized builds (-O3)
- fix build against mrpt 1.5 series
- Merge pull request #32 from bergercookie/master Correct prev_nodes_ICP error
- Correct prev_nodes_ICP member var
- mrpt_graphslam_2d: Add link to GitPitch slideshow
- mrpt_graphslam_2d: Validate user args in rename_rviz_topics.py
- use consistent cmake conventions for c++14
- all but mrpt_graphslam_2d compiling against mrpt2.0
- porting to mrpt2
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
rospy | |
geometry_msgs | |
nav_msgs | |
std_msgs | |
sensor_msgs | |
mrpt_libros_bridge | |
mrpt_libgui | |
mrpt_libapps | |
mrpt_msgs | |
mrpt_msgs_bridge | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
fkie_multimaster_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mrpt_slam |
Launch files
- launch/graphslam.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile responsible for the mrpt_graphslam_2d application in a single agent setup. Refer to the README.md file for usage information
-
- output [default: screen]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans.ini]
- do_publish_gridmap_topic [default: true]
- run_under_gdb [default: false]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- odometry_frame_ID [default: odometry]
- NRD [default: CFixedIntervalsNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- start_rviz [default: false]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- disable_MRPT_visuals [default: false]
- verbosity [default: 1]
- launch/setup_robot_for_mr_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Setup an individual agent that is to run multi-robot graphSLAM Users typically don't need to run this directly and are advised to use the csl_robots_gazebo/run_graphslam_demo.sh shell script which executes this launchfile as many times as the number of robots used for the demo
-
- new_robot_ns
- verbosity [default: 1]
- output [default: screen]
- disable_MRPT_visuals [default: false]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans_LC_MR_real.ini]
- NRD [default: CFixedIntervalsNRD_MR]
- ERD [default: CLoopCloserERD_MR]
- GSO [default: CLevMarqGSO]
- launch/sr_graphslam_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Launchfile for a simple demonstration of the mrpt_graphslam_2d algorithm in single robot situations. More elaborate demo files are built on top of this one such as the sr_graphslam_demo_gt.launch file
-
- output [default: screen]
- robot_ns [default: /]
- disable_MRPT_visuals [default: false]
- verbosity [default: 0]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/demo_short_loop]
- bag_file [default: demo.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- bag_topic_remaps [default: /scan:=input/laser_scan]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
- start_rviz [default: true]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- laser_frame_ID [default: laser]
- odometry_frame_ID [default: odometry]
- NRD [default: CICPCriteriaNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- play_own_rosbag [default: true]
- launch/sr_graphslam_demo_gt.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile demonstrating the mrpt_graphslam_2d application. Ground-Truth path is also shown to compare with the algorithm trajectory estimation. Practically this constitutes a wrapper around the sr_graphslam_demo.launch file NOTES: - Do not define arguments not present in the sr_graphslam_demo due to the corresponding bug: https://github.com/ros/ros_comm/issues/889 WARNING: Make sure that you have downloaded the corresponding dataset from here: https://www.dropbox.com/sh/habf5mnc5404i66/AACvbzmAQ6UrYB4ix-6aVIc9a?dl=0. See the README.md file for more information on this
-
- output [default: screen]
- disable_MRPT_visuals [default: false]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/sr_graphslam_demo]
- bag_file [default: records_with_gt.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- start_rviz [default: true]
Messages
Services
Plugins
Recent questions tagged mrpt_graphslam_2d at Robotics Stack Exchange
![]() |
mrpt_graphslam_2d package from mrpt_slam repomrpt_ekf_slam_2d mrpt_ekf_slam_3d mrpt_graphslam_2d mrpt_icp_slam_2d mrpt_rbpf_slam mrpt_slam |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.19 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | ROS wrappers for SLAM algorithms in MRPT |
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_slam.git |
VCS Type | git |
VCS Version | ros1 |
Last Updated | 2024-09-18 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | c-plus-plus mapping ros slam mobile-robotics slam-algorithms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Nikos Koukis
- Jose Luis Blanco-Claraco
Authors
- Nikos Koukis
General Information
Algorithm utilizes the MRPT mrpt-graphslam library to execute single, multi-robot graphSLAM using information from odometry and LaserScan ROS topics.
mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine application. Furthermore the command-line arguments offered by the latter can be provided by the user as parameters in the ROS Parameter Server. See the provided roslaunch files for examples of this. Also see the API of mrpt_graphslam_2d available here
Additional information:
Single robot algorithm
Real-Time experiment - short loop
-
A sample rosbag is included in the
rosbags/demo_short_loop
directory. To run this just launch the sr_graphslam_demo.launch file:roslaunch mrpt_graphslam_2d sr_graphslam_demo.launch start_rviz:=True
-
Demo rosbag contains Laser Scan measurements (and odometry which is not usuable in the algorithm due to the topic type)
Real-Time experiment - ground-truth data included
-
A real-time experiment using a KUKA youbot and having a rough ground-truth estimate path is available here. Ground-Truth estimation is provided using 2 ps3 cameras placed on the room ceiling. The cameras using the ar_sys ROS package are tracking Aruco markers that act as the workspace origin (static marker) and as the robot executing SLAM (moving marker) respectively. To run this demo, simply download the entire folder, place it directly under the
rosbags
directory of the mrpt_graphslam_2d package and run the sr_graphslam_demo_gt.launch file.roslaunch mrpt_graphslam_2d sr_graphslam_demo_gt.launch
-
One can also tinker with the aforementioned launchfile to enable/disable the different visualization features, use another decider/optimizer class, or modify the .ini file to change the algorithm behavior.
-
Robot movement starts after ~60’’. Due to different timestamps in the laserscans, odometry topics the algorithm feedback is lagging a bit compared to the ground-truth visualization
-
sr_graphslam_demo_gt file uses the pass_all_args XML directive which is only available starting from the ROS Jade distribution. If you have an older one, just replace this with all the args in that file exclusively. For an example on how to do this, see the sr_graphslam_demo.launch file
-
Rosbag was recorded in the Mechanical Engineering School of the National Technical University of Athens
Multi-robot algorithm
Multi-robot support is provided via the csl_mr_slam package suite as well as the use of multimaster_fkie packages utilized for communication across the various ROS agents.
Multi-robot real-time experiments - rosbag
A rosbag collected from real-robots can be found in the following link (more rosbags to be added in the MRPT-2.0 branch):
To run a demo using one of the corresponding rosbags download that directory,
place it directly under the rosbags
directory of the mrpt_graphslam_2d
package and run the run_mr_graphslam_demo.sh
script of the csl_robots_gazebo
package
. The latter script (as is standard with the nodes of the
csl_robots_gazebo
package reads its configuration parameters off the shell
environment at hand and adjusts its behavior accordingly. As an examaple users
can use the following command for running a multi-robot demo.
# see the script for configuration variables
rosrun csl_robots_gazebo run_mr_graphslam_demo.sh
Warning
-
For this to work, you need to have the csl_mr_slam package suite (as well as the packages that the latter depends on) in your catkin workspace.
-
When executing multi-robot graphSLAM using either Gazebo (via the
csl_robots_gazebo
package or using measurements from the prerecorded rosbags, you have to, a priori, generate the necessary rviz files from the template files found in$(rospack find mrpt_graphslam_2d)/rviz/templates
.
File truncated at 100 lines see the full file
Changelog for package mrpt_graphslam_2d
0.1.19 (2024-09-18)
- Fix cmake target creation
- Workaround for missing TBB::tbb target in Noetic
- cmake: fix case and whitespaces
- Contributors: Jose Luis Blanco-Claraco
0.1.18 (2024-09-05)
- Port to new 'mrpt_lib*' packages
- Contributors: Jose Luis Blanco-Claraco
0.1.17 (2024-06-05)
- Update to fix builds against mrpt>=2.13.0
- Contributors: Jose Luis Blanco-Claraco
0.1.16 (2024-03-25)
0.1.15 (2023-08-02)
- Fix build errors and warnings with latest mrpt2 versions (Closes: #71)
- Contributors: Jose Luis Blanco-Claraco
0.1.14 (2023-04-12)
- 0.1.13
- fix version
- changelog
- Fix build against last mrpt 2.7.x
- chagelogs
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.11 (2022-06-24)
- Ported to tf2 and mrpt::ros1bridge
- Fix build with mrpt2
- Update multimaster_msgs_fkie to fkie_ prefix
- Merge branch 'master' of <ssh://github.com/mrpt-ros-pkg/mrpt_slam>
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #65 from Pillowline/patch-1 setting trajectory publishers to latched
- setting trajectory publishers to latched So you can obtain data when running mrpt_graphslam with a bagfile, even after the playback has finished.
- Contributors: Jose Luis Blanco-Claraco, Pillowline
0.1.10 (2019-10-05)
- fix build against current mrpt2
- fix build against mrpt2
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.9 (2019-04-14)
- Fix build against MRPT 1.9.9
- Switch header guards to pragma once
- Contributors: Jose Luis Blanco-Claraco, Julian Lopez Velasquez, Vladislav Tananaev
0.1.8 (2018-09-21)
- Make catkin_lint clean
- Contributors: Jose Luis Blanco Claraco
0.1.7 (2018-09-20)
- mrpt_graphslam_2d: Fix compilation warnings
- Remove installation of the demo directory from mrpt_graphslam_2d. It doesn't exist, so causes problems at the last stage of cmake. Signed-off-by: Chris Lalancette <<clalancette@openrobotics.org>>
- Contributors: Chris Lalancette, Jose Luis Blanco-Claraco, Nikos Koukis
0.1.6 (2018-06-14)
- Fixed compilation with MRPT 1.5
- Merge pull request #41 from MaxGsomGsom/master Fixed build with mrpt 2.0
- Fixed indents
- Fixed build with mrpt 2.0
- partial fix build w mrpt 2.0
- fix build in mrpt 2.0
- fix build; add optimized builds (-O3)
- fix build against mrpt 1.5 series
- Merge pull request #32 from bergercookie/master Correct prev_nodes_ICP error
- Correct prev_nodes_ICP member var
- mrpt_graphslam_2d: Add link to GitPitch slideshow
- mrpt_graphslam_2d: Validate user args in rename_rviz_topics.py
- use consistent cmake conventions for c++14
- all but mrpt_graphslam_2d compiling against mrpt2.0
- porting to mrpt2
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
rospy | |
geometry_msgs | |
nav_msgs | |
std_msgs | |
sensor_msgs | |
mrpt_libros_bridge | |
mrpt_libgui | |
mrpt_libapps | |
mrpt_msgs | |
mrpt_msgs_bridge | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
fkie_multimaster_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mrpt_slam |
Launch files
- launch/graphslam.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile responsible for the mrpt_graphslam_2d application in a single agent setup. Refer to the README.md file for usage information
-
- output [default: screen]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans.ini]
- do_publish_gridmap_topic [default: true]
- run_under_gdb [default: false]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- odometry_frame_ID [default: odometry]
- NRD [default: CFixedIntervalsNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- start_rviz [default: false]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- disable_MRPT_visuals [default: false]
- verbosity [default: 1]
- launch/setup_robot_for_mr_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Setup an individual agent that is to run multi-robot graphSLAM Users typically don't need to run this directly and are advised to use the csl_robots_gazebo/run_graphslam_demo.sh shell script which executes this launchfile as many times as the number of robots used for the demo
-
- new_robot_ns
- verbosity [default: 1]
- output [default: screen]
- disable_MRPT_visuals [default: false]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans_LC_MR_real.ini]
- NRD [default: CFixedIntervalsNRD_MR]
- ERD [default: CLoopCloserERD_MR]
- GSO [default: CLevMarqGSO]
- launch/sr_graphslam_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Launchfile for a simple demonstration of the mrpt_graphslam_2d algorithm in single robot situations. More elaborate demo files are built on top of this one such as the sr_graphslam_demo_gt.launch file
-
- output [default: screen]
- robot_ns [default: /]
- disable_MRPT_visuals [default: false]
- verbosity [default: 0]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/demo_short_loop]
- bag_file [default: demo.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- bag_topic_remaps [default: /scan:=input/laser_scan]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
- start_rviz [default: true]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- laser_frame_ID [default: laser]
- odometry_frame_ID [default: odometry]
- NRD [default: CICPCriteriaNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- play_own_rosbag [default: true]
- launch/sr_graphslam_demo_gt.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile demonstrating the mrpt_graphslam_2d application. Ground-Truth path is also shown to compare with the algorithm trajectory estimation. Practically this constitutes a wrapper around the sr_graphslam_demo.launch file NOTES: - Do not define arguments not present in the sr_graphslam_demo due to the corresponding bug: https://github.com/ros/ros_comm/issues/889 WARNING: Make sure that you have downloaded the corresponding dataset from here: https://www.dropbox.com/sh/habf5mnc5404i66/AACvbzmAQ6UrYB4ix-6aVIc9a?dl=0. See the README.md file for more information on this
-
- output [default: screen]
- disable_MRPT_visuals [default: false]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/sr_graphslam_demo]
- bag_file [default: records_with_gt.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- start_rviz [default: true]
Messages
Services
Plugins
Recent questions tagged mrpt_graphslam_2d at Robotics Stack Exchange
![]() |
mrpt_graphslam_2d package from mrpt_slam repomrpt_ekf_slam_2d mrpt_ekf_slam_3d mrpt_graphslam_2d mrpt_icp_slam_2d mrpt_rbpf_slam mrpt_slam |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.19 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | ROS wrappers for SLAM algorithms in MRPT |
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_slam.git |
VCS Type | git |
VCS Version | ros1 |
Last Updated | 2024-09-18 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | c-plus-plus mapping ros slam mobile-robotics slam-algorithms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Nikos Koukis
- Jose Luis Blanco-Claraco
Authors
- Nikos Koukis
General Information
Algorithm utilizes the MRPT mrpt-graphslam library to execute single, multi-robot graphSLAM using information from odometry and LaserScan ROS topics.
mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine application. Furthermore the command-line arguments offered by the latter can be provided by the user as parameters in the ROS Parameter Server. See the provided roslaunch files for examples of this. Also see the API of mrpt_graphslam_2d available here
Additional information:
Single robot algorithm
Real-Time experiment - short loop
-
A sample rosbag is included in the
rosbags/demo_short_loop
directory. To run this just launch the sr_graphslam_demo.launch file:roslaunch mrpt_graphslam_2d sr_graphslam_demo.launch start_rviz:=True
-
Demo rosbag contains Laser Scan measurements (and odometry which is not usuable in the algorithm due to the topic type)
Real-Time experiment - ground-truth data included
-
A real-time experiment using a KUKA youbot and having a rough ground-truth estimate path is available here. Ground-Truth estimation is provided using 2 ps3 cameras placed on the room ceiling. The cameras using the ar_sys ROS package are tracking Aruco markers that act as the workspace origin (static marker) and as the robot executing SLAM (moving marker) respectively. To run this demo, simply download the entire folder, place it directly under the
rosbags
directory of the mrpt_graphslam_2d package and run the sr_graphslam_demo_gt.launch file.roslaunch mrpt_graphslam_2d sr_graphslam_demo_gt.launch
-
One can also tinker with the aforementioned launchfile to enable/disable the different visualization features, use another decider/optimizer class, or modify the .ini file to change the algorithm behavior.
-
Robot movement starts after ~60’’. Due to different timestamps in the laserscans, odometry topics the algorithm feedback is lagging a bit compared to the ground-truth visualization
-
sr_graphslam_demo_gt file uses the pass_all_args XML directive which is only available starting from the ROS Jade distribution. If you have an older one, just replace this with all the args in that file exclusively. For an example on how to do this, see the sr_graphslam_demo.launch file
-
Rosbag was recorded in the Mechanical Engineering School of the National Technical University of Athens
Multi-robot algorithm
Multi-robot support is provided via the csl_mr_slam package suite as well as the use of multimaster_fkie packages utilized for communication across the various ROS agents.
Multi-robot real-time experiments - rosbag
A rosbag collected from real-robots can be found in the following link (more rosbags to be added in the MRPT-2.0 branch):
To run a demo using one of the corresponding rosbags download that directory,
place it directly under the rosbags
directory of the mrpt_graphslam_2d
package and run the run_mr_graphslam_demo.sh
script of the csl_robots_gazebo
package
. The latter script (as is standard with the nodes of the
csl_robots_gazebo
package reads its configuration parameters off the shell
environment at hand and adjusts its behavior accordingly. As an examaple users
can use the following command for running a multi-robot demo.
# see the script for configuration variables
rosrun csl_robots_gazebo run_mr_graphslam_demo.sh
Warning
-
For this to work, you need to have the csl_mr_slam package suite (as well as the packages that the latter depends on) in your catkin workspace.
-
When executing multi-robot graphSLAM using either Gazebo (via the
csl_robots_gazebo
package or using measurements from the prerecorded rosbags, you have to, a priori, generate the necessary rviz files from the template files found in$(rospack find mrpt_graphslam_2d)/rviz/templates
.
File truncated at 100 lines see the full file
Changelog for package mrpt_graphslam_2d
0.1.19 (2024-09-18)
- Fix cmake target creation
- Workaround for missing TBB::tbb target in Noetic
- cmake: fix case and whitespaces
- Contributors: Jose Luis Blanco-Claraco
0.1.18 (2024-09-05)
- Port to new 'mrpt_lib*' packages
- Contributors: Jose Luis Blanco-Claraco
0.1.17 (2024-06-05)
- Update to fix builds against mrpt>=2.13.0
- Contributors: Jose Luis Blanco-Claraco
0.1.16 (2024-03-25)
0.1.15 (2023-08-02)
- Fix build errors and warnings with latest mrpt2 versions (Closes: #71)
- Contributors: Jose Luis Blanco-Claraco
0.1.14 (2023-04-12)
- 0.1.13
- fix version
- changelog
- Fix build against last mrpt 2.7.x
- chagelogs
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.11 (2022-06-24)
- Ported to tf2 and mrpt::ros1bridge
- Fix build with mrpt2
- Update multimaster_msgs_fkie to fkie_ prefix
- Merge branch 'master' of <ssh://github.com/mrpt-ros-pkg/mrpt_slam>
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #65 from Pillowline/patch-1 setting trajectory publishers to latched
- setting trajectory publishers to latched So you can obtain data when running mrpt_graphslam with a bagfile, even after the playback has finished.
- Contributors: Jose Luis Blanco-Claraco, Pillowline
0.1.10 (2019-10-05)
- fix build against current mrpt2
- fix build against mrpt2
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.9 (2019-04-14)
- Fix build against MRPT 1.9.9
- Switch header guards to pragma once
- Contributors: Jose Luis Blanco-Claraco, Julian Lopez Velasquez, Vladislav Tananaev
0.1.8 (2018-09-21)
- Make catkin_lint clean
- Contributors: Jose Luis Blanco Claraco
0.1.7 (2018-09-20)
- mrpt_graphslam_2d: Fix compilation warnings
- Remove installation of the demo directory from mrpt_graphslam_2d. It doesn't exist, so causes problems at the last stage of cmake. Signed-off-by: Chris Lalancette <<clalancette@openrobotics.org>>
- Contributors: Chris Lalancette, Jose Luis Blanco-Claraco, Nikos Koukis
0.1.6 (2018-06-14)
- Fixed compilation with MRPT 1.5
- Merge pull request #41 from MaxGsomGsom/master Fixed build with mrpt 2.0
- Fixed indents
- Fixed build with mrpt 2.0
- partial fix build w mrpt 2.0
- fix build in mrpt 2.0
- fix build; add optimized builds (-O3)
- fix build against mrpt 1.5 series
- Merge pull request #32 from bergercookie/master Correct prev_nodes_ICP error
- Correct prev_nodes_ICP member var
- mrpt_graphslam_2d: Add link to GitPitch slideshow
- mrpt_graphslam_2d: Validate user args in rename_rviz_topics.py
- use consistent cmake conventions for c++14
- all but mrpt_graphslam_2d compiling against mrpt2.0
- porting to mrpt2
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
rospy | |
geometry_msgs | |
nav_msgs | |
std_msgs | |
sensor_msgs | |
mrpt_libros_bridge | |
mrpt_libgui | |
mrpt_libapps | |
mrpt_msgs | |
mrpt_msgs_bridge | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
fkie_multimaster_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mrpt_slam |
Launch files
- launch/graphslam.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile responsible for the mrpt_graphslam_2d application in a single agent setup. Refer to the README.md file for usage information
-
- output [default: screen]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans.ini]
- do_publish_gridmap_topic [default: true]
- run_under_gdb [default: false]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- odometry_frame_ID [default: odometry]
- NRD [default: CFixedIntervalsNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- start_rviz [default: false]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- disable_MRPT_visuals [default: false]
- verbosity [default: 1]
- launch/setup_robot_for_mr_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Setup an individual agent that is to run multi-robot graphSLAM Users typically don't need to run this directly and are advised to use the csl_robots_gazebo/run_graphslam_demo.sh shell script which executes this launchfile as many times as the number of robots used for the demo
-
- new_robot_ns
- verbosity [default: 1]
- output [default: screen]
- disable_MRPT_visuals [default: false]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans_LC_MR_real.ini]
- NRD [default: CFixedIntervalsNRD_MR]
- ERD [default: CLoopCloserERD_MR]
- GSO [default: CLevMarqGSO]
- launch/sr_graphslam_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Launchfile for a simple demonstration of the mrpt_graphslam_2d algorithm in single robot situations. More elaborate demo files are built on top of this one such as the sr_graphslam_demo_gt.launch file
-
- output [default: screen]
- robot_ns [default: /]
- disable_MRPT_visuals [default: false]
- verbosity [default: 0]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/demo_short_loop]
- bag_file [default: demo.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- bag_topic_remaps [default: /scan:=input/laser_scan]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
- start_rviz [default: true]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- laser_frame_ID [default: laser]
- odometry_frame_ID [default: odometry]
- NRD [default: CICPCriteriaNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- play_own_rosbag [default: true]
- launch/sr_graphslam_demo_gt.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile demonstrating the mrpt_graphslam_2d application. Ground-Truth path is also shown to compare with the algorithm trajectory estimation. Practically this constitutes a wrapper around the sr_graphslam_demo.launch file NOTES: - Do not define arguments not present in the sr_graphslam_demo due to the corresponding bug: https://github.com/ros/ros_comm/issues/889 WARNING: Make sure that you have downloaded the corresponding dataset from here: https://www.dropbox.com/sh/habf5mnc5404i66/AACvbzmAQ6UrYB4ix-6aVIc9a?dl=0. See the README.md file for more information on this
-
- output [default: screen]
- disable_MRPT_visuals [default: false]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/sr_graphslam_demo]
- bag_file [default: records_with_gt.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- start_rviz [default: true]
Messages
Services
Plugins
Recent questions tagged mrpt_graphslam_2d at Robotics Stack Exchange
![]() |
mrpt_graphslam_2d package from mrpt_slam repomrpt_ekf_slam_2d mrpt_ekf_slam_3d mrpt_graphslam_2d mrpt_icp_slam_2d mrpt_rbpf_slam mrpt_slam |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.19 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | ROS wrappers for SLAM algorithms in MRPT |
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_slam.git |
VCS Type | git |
VCS Version | ros1 |
Last Updated | 2024-09-18 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | c-plus-plus mapping ros slam mobile-robotics slam-algorithms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Nikos Koukis
- Jose Luis Blanco-Claraco
Authors
- Nikos Koukis
General Information
Algorithm utilizes the MRPT mrpt-graphslam library to execute single, multi-robot graphSLAM using information from odometry and LaserScan ROS topics.
mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine application. Furthermore the command-line arguments offered by the latter can be provided by the user as parameters in the ROS Parameter Server. See the provided roslaunch files for examples of this. Also see the API of mrpt_graphslam_2d available here
Additional information:
Single robot algorithm
Real-Time experiment - short loop
-
A sample rosbag is included in the
rosbags/demo_short_loop
directory. To run this just launch the sr_graphslam_demo.launch file:roslaunch mrpt_graphslam_2d sr_graphslam_demo.launch start_rviz:=True
-
Demo rosbag contains Laser Scan measurements (and odometry which is not usuable in the algorithm due to the topic type)
Real-Time experiment - ground-truth data included
-
A real-time experiment using a KUKA youbot and having a rough ground-truth estimate path is available here. Ground-Truth estimation is provided using 2 ps3 cameras placed on the room ceiling. The cameras using the ar_sys ROS package are tracking Aruco markers that act as the workspace origin (static marker) and as the robot executing SLAM (moving marker) respectively. To run this demo, simply download the entire folder, place it directly under the
rosbags
directory of the mrpt_graphslam_2d package and run the sr_graphslam_demo_gt.launch file.roslaunch mrpt_graphslam_2d sr_graphslam_demo_gt.launch
-
One can also tinker with the aforementioned launchfile to enable/disable the different visualization features, use another decider/optimizer class, or modify the .ini file to change the algorithm behavior.
-
Robot movement starts after ~60’’. Due to different timestamps in the laserscans, odometry topics the algorithm feedback is lagging a bit compared to the ground-truth visualization
-
sr_graphslam_demo_gt file uses the pass_all_args XML directive which is only available starting from the ROS Jade distribution. If you have an older one, just replace this with all the args in that file exclusively. For an example on how to do this, see the sr_graphslam_demo.launch file
-
Rosbag was recorded in the Mechanical Engineering School of the National Technical University of Athens
Multi-robot algorithm
Multi-robot support is provided via the csl_mr_slam package suite as well as the use of multimaster_fkie packages utilized for communication across the various ROS agents.
Multi-robot real-time experiments - rosbag
A rosbag collected from real-robots can be found in the following link (more rosbags to be added in the MRPT-2.0 branch):
To run a demo using one of the corresponding rosbags download that directory,
place it directly under the rosbags
directory of the mrpt_graphslam_2d
package and run the run_mr_graphslam_demo.sh
script of the csl_robots_gazebo
package
. The latter script (as is standard with the nodes of the
csl_robots_gazebo
package reads its configuration parameters off the shell
environment at hand and adjusts its behavior accordingly. As an examaple users
can use the following command for running a multi-robot demo.
# see the script for configuration variables
rosrun csl_robots_gazebo run_mr_graphslam_demo.sh
Warning
-
For this to work, you need to have the csl_mr_slam package suite (as well as the packages that the latter depends on) in your catkin workspace.
-
When executing multi-robot graphSLAM using either Gazebo (via the
csl_robots_gazebo
package or using measurements from the prerecorded rosbags, you have to, a priori, generate the necessary rviz files from the template files found in$(rospack find mrpt_graphslam_2d)/rviz/templates
.
File truncated at 100 lines see the full file
Changelog for package mrpt_graphslam_2d
0.1.19 (2024-09-18)
- Fix cmake target creation
- Workaround for missing TBB::tbb target in Noetic
- cmake: fix case and whitespaces
- Contributors: Jose Luis Blanco-Claraco
0.1.18 (2024-09-05)
- Port to new 'mrpt_lib*' packages
- Contributors: Jose Luis Blanco-Claraco
0.1.17 (2024-06-05)
- Update to fix builds against mrpt>=2.13.0
- Contributors: Jose Luis Blanco-Claraco
0.1.16 (2024-03-25)
0.1.15 (2023-08-02)
- Fix build errors and warnings with latest mrpt2 versions (Closes: #71)
- Contributors: Jose Luis Blanco-Claraco
0.1.14 (2023-04-12)
- 0.1.13
- fix version
- changelog
- Fix build against last mrpt 2.7.x
- chagelogs
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.11 (2022-06-24)
- Ported to tf2 and mrpt::ros1bridge
- Fix build with mrpt2
- Update multimaster_msgs_fkie to fkie_ prefix
- Merge branch 'master' of <ssh://github.com/mrpt-ros-pkg/mrpt_slam>
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #65 from Pillowline/patch-1 setting trajectory publishers to latched
- setting trajectory publishers to latched So you can obtain data when running mrpt_graphslam with a bagfile, even after the playback has finished.
- Contributors: Jose Luis Blanco-Claraco, Pillowline
0.1.10 (2019-10-05)
- fix build against current mrpt2
- fix build against mrpt2
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.9 (2019-04-14)
- Fix build against MRPT 1.9.9
- Switch header guards to pragma once
- Contributors: Jose Luis Blanco-Claraco, Julian Lopez Velasquez, Vladislav Tananaev
0.1.8 (2018-09-21)
- Make catkin_lint clean
- Contributors: Jose Luis Blanco Claraco
0.1.7 (2018-09-20)
- mrpt_graphslam_2d: Fix compilation warnings
- Remove installation of the demo directory from mrpt_graphslam_2d. It doesn't exist, so causes problems at the last stage of cmake. Signed-off-by: Chris Lalancette <<clalancette@openrobotics.org>>
- Contributors: Chris Lalancette, Jose Luis Blanco-Claraco, Nikos Koukis
0.1.6 (2018-06-14)
- Fixed compilation with MRPT 1.5
- Merge pull request #41 from MaxGsomGsom/master Fixed build with mrpt 2.0
- Fixed indents
- Fixed build with mrpt 2.0
- partial fix build w mrpt 2.0
- fix build in mrpt 2.0
- fix build; add optimized builds (-O3)
- fix build against mrpt 1.5 series
- Merge pull request #32 from bergercookie/master Correct prev_nodes_ICP error
- Correct prev_nodes_ICP member var
- mrpt_graphslam_2d: Add link to GitPitch slideshow
- mrpt_graphslam_2d: Validate user args in rename_rviz_topics.py
- use consistent cmake conventions for c++14
- all but mrpt_graphslam_2d compiling against mrpt2.0
- porting to mrpt2
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
rospy | |
geometry_msgs | |
nav_msgs | |
std_msgs | |
sensor_msgs | |
mrpt_libros_bridge | |
mrpt_libgui | |
mrpt_libapps | |
mrpt_msgs | |
mrpt_msgs_bridge | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
fkie_multimaster_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mrpt_slam |
Launch files
- launch/graphslam.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile responsible for the mrpt_graphslam_2d application in a single agent setup. Refer to the README.md file for usage information
-
- output [default: screen]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans.ini]
- do_publish_gridmap_topic [default: true]
- run_under_gdb [default: false]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- odometry_frame_ID [default: odometry]
- NRD [default: CFixedIntervalsNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- start_rviz [default: false]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- disable_MRPT_visuals [default: false]
- verbosity [default: 1]
- launch/setup_robot_for_mr_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Setup an individual agent that is to run multi-robot graphSLAM Users typically don't need to run this directly and are advised to use the csl_robots_gazebo/run_graphslam_demo.sh shell script which executes this launchfile as many times as the number of robots used for the demo
-
- new_robot_ns
- verbosity [default: 1]
- output [default: screen]
- disable_MRPT_visuals [default: false]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans_LC_MR_real.ini]
- NRD [default: CFixedIntervalsNRD_MR]
- ERD [default: CLoopCloserERD_MR]
- GSO [default: CLevMarqGSO]
- launch/sr_graphslam_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Launchfile for a simple demonstration of the mrpt_graphslam_2d algorithm in single robot situations. More elaborate demo files are built on top of this one such as the sr_graphslam_demo_gt.launch file
-
- output [default: screen]
- robot_ns [default: /]
- disable_MRPT_visuals [default: false]
- verbosity [default: 0]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/demo_short_loop]
- bag_file [default: demo.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- bag_topic_remaps [default: /scan:=input/laser_scan]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
- start_rviz [default: true]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- laser_frame_ID [default: laser]
- odometry_frame_ID [default: odometry]
- NRD [default: CICPCriteriaNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- play_own_rosbag [default: true]
- launch/sr_graphslam_demo_gt.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile demonstrating the mrpt_graphslam_2d application. Ground-Truth path is also shown to compare with the algorithm trajectory estimation. Practically this constitutes a wrapper around the sr_graphslam_demo.launch file NOTES: - Do not define arguments not present in the sr_graphslam_demo due to the corresponding bug: https://github.com/ros/ros_comm/issues/889 WARNING: Make sure that you have downloaded the corresponding dataset from here: https://www.dropbox.com/sh/habf5mnc5404i66/AACvbzmAQ6UrYB4ix-6aVIc9a?dl=0. See the README.md file for more information on this
-
- output [default: screen]
- disable_MRPT_visuals [default: false]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/sr_graphslam_demo]
- bag_file [default: records_with_gt.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- start_rviz [default: true]
Messages
Services
Plugins
Recent questions tagged mrpt_graphslam_2d at Robotics Stack Exchange
![]() |
mrpt_graphslam_2d package from mrpt_slam repomrpt_ekf_slam_2d mrpt_ekf_slam_3d mrpt_graphslam_2d mrpt_icp_slam_2d mrpt_rbpf_slam mrpt_slam |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.19 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | ROS wrappers for SLAM algorithms in MRPT |
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_slam.git |
VCS Type | git |
VCS Version | ros1 |
Last Updated | 2024-09-18 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | c-plus-plus mapping ros slam mobile-robotics slam-algorithms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Nikos Koukis
- Jose Luis Blanco-Claraco
Authors
- Nikos Koukis
General Information
Algorithm utilizes the MRPT mrpt-graphslam library to execute single, multi-robot graphSLAM using information from odometry and LaserScan ROS topics.
mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine application. Furthermore the command-line arguments offered by the latter can be provided by the user as parameters in the ROS Parameter Server. See the provided roslaunch files for examples of this. Also see the API of mrpt_graphslam_2d available here
Additional information:
Single robot algorithm
Real-Time experiment - short loop
-
A sample rosbag is included in the
rosbags/demo_short_loop
directory. To run this just launch the sr_graphslam_demo.launch file:roslaunch mrpt_graphslam_2d sr_graphslam_demo.launch start_rviz:=True
-
Demo rosbag contains Laser Scan measurements (and odometry which is not usuable in the algorithm due to the topic type)
Real-Time experiment - ground-truth data included
-
A real-time experiment using a KUKA youbot and having a rough ground-truth estimate path is available here. Ground-Truth estimation is provided using 2 ps3 cameras placed on the room ceiling. The cameras using the ar_sys ROS package are tracking Aruco markers that act as the workspace origin (static marker) and as the robot executing SLAM (moving marker) respectively. To run this demo, simply download the entire folder, place it directly under the
rosbags
directory of the mrpt_graphslam_2d package and run the sr_graphslam_demo_gt.launch file.roslaunch mrpt_graphslam_2d sr_graphslam_demo_gt.launch
-
One can also tinker with the aforementioned launchfile to enable/disable the different visualization features, use another decider/optimizer class, or modify the .ini file to change the algorithm behavior.
-
Robot movement starts after ~60’’. Due to different timestamps in the laserscans, odometry topics the algorithm feedback is lagging a bit compared to the ground-truth visualization
-
sr_graphslam_demo_gt file uses the pass_all_args XML directive which is only available starting from the ROS Jade distribution. If you have an older one, just replace this with all the args in that file exclusively. For an example on how to do this, see the sr_graphslam_demo.launch file
-
Rosbag was recorded in the Mechanical Engineering School of the National Technical University of Athens
Multi-robot algorithm
Multi-robot support is provided via the csl_mr_slam package suite as well as the use of multimaster_fkie packages utilized for communication across the various ROS agents.
Multi-robot real-time experiments - rosbag
A rosbag collected from real-robots can be found in the following link (more rosbags to be added in the MRPT-2.0 branch):
To run a demo using one of the corresponding rosbags download that directory,
place it directly under the rosbags
directory of the mrpt_graphslam_2d
package and run the run_mr_graphslam_demo.sh
script of the csl_robots_gazebo
package
. The latter script (as is standard with the nodes of the
csl_robots_gazebo
package reads its configuration parameters off the shell
environment at hand and adjusts its behavior accordingly. As an examaple users
can use the following command for running a multi-robot demo.
# see the script for configuration variables
rosrun csl_robots_gazebo run_mr_graphslam_demo.sh
Warning
-
For this to work, you need to have the csl_mr_slam package suite (as well as the packages that the latter depends on) in your catkin workspace.
-
When executing multi-robot graphSLAM using either Gazebo (via the
csl_robots_gazebo
package or using measurements from the prerecorded rosbags, you have to, a priori, generate the necessary rviz files from the template files found in$(rospack find mrpt_graphslam_2d)/rviz/templates
.
File truncated at 100 lines see the full file
Changelog for package mrpt_graphslam_2d
0.1.19 (2024-09-18)
- Fix cmake target creation
- Workaround for missing TBB::tbb target in Noetic
- cmake: fix case and whitespaces
- Contributors: Jose Luis Blanco-Claraco
0.1.18 (2024-09-05)
- Port to new 'mrpt_lib*' packages
- Contributors: Jose Luis Blanco-Claraco
0.1.17 (2024-06-05)
- Update to fix builds against mrpt>=2.13.0
- Contributors: Jose Luis Blanco-Claraco
0.1.16 (2024-03-25)
0.1.15 (2023-08-02)
- Fix build errors and warnings with latest mrpt2 versions (Closes: #71)
- Contributors: Jose Luis Blanco-Claraco
0.1.14 (2023-04-12)
- 0.1.13
- fix version
- changelog
- Fix build against last mrpt 2.7.x
- chagelogs
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.11 (2022-06-24)
- Ported to tf2 and mrpt::ros1bridge
- Fix build with mrpt2
- Update multimaster_msgs_fkie to fkie_ prefix
- Merge branch 'master' of <ssh://github.com/mrpt-ros-pkg/mrpt_slam>
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #65 from Pillowline/patch-1 setting trajectory publishers to latched
- setting trajectory publishers to latched So you can obtain data when running mrpt_graphslam with a bagfile, even after the playback has finished.
- Contributors: Jose Luis Blanco-Claraco, Pillowline
0.1.10 (2019-10-05)
- fix build against current mrpt2
- fix build against mrpt2
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.9 (2019-04-14)
- Fix build against MRPT 1.9.9
- Switch header guards to pragma once
- Contributors: Jose Luis Blanco-Claraco, Julian Lopez Velasquez, Vladislav Tananaev
0.1.8 (2018-09-21)
- Make catkin_lint clean
- Contributors: Jose Luis Blanco Claraco
0.1.7 (2018-09-20)
- mrpt_graphslam_2d: Fix compilation warnings
- Remove installation of the demo directory from mrpt_graphslam_2d. It doesn't exist, so causes problems at the last stage of cmake. Signed-off-by: Chris Lalancette <<clalancette@openrobotics.org>>
- Contributors: Chris Lalancette, Jose Luis Blanco-Claraco, Nikos Koukis
0.1.6 (2018-06-14)
- Fixed compilation with MRPT 1.5
- Merge pull request #41 from MaxGsomGsom/master Fixed build with mrpt 2.0
- Fixed indents
- Fixed build with mrpt 2.0
- partial fix build w mrpt 2.0
- fix build in mrpt 2.0
- fix build; add optimized builds (-O3)
- fix build against mrpt 1.5 series
- Merge pull request #32 from bergercookie/master Correct prev_nodes_ICP error
- Correct prev_nodes_ICP member var
- mrpt_graphslam_2d: Add link to GitPitch slideshow
- mrpt_graphslam_2d: Validate user args in rename_rviz_topics.py
- use consistent cmake conventions for c++14
- all but mrpt_graphslam_2d compiling against mrpt2.0
- porting to mrpt2
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
rospy | |
geometry_msgs | |
nav_msgs | |
std_msgs | |
sensor_msgs | |
mrpt_libros_bridge | |
mrpt_libgui | |
mrpt_libapps | |
mrpt_msgs | |
mrpt_msgs_bridge | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
fkie_multimaster_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mrpt_slam |
Launch files
- launch/graphslam.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile responsible for the mrpt_graphslam_2d application in a single agent setup. Refer to the README.md file for usage information
-
- output [default: screen]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans.ini]
- do_publish_gridmap_topic [default: true]
- run_under_gdb [default: false]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- odometry_frame_ID [default: odometry]
- NRD [default: CFixedIntervalsNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- start_rviz [default: false]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- disable_MRPT_visuals [default: false]
- verbosity [default: 1]
- launch/setup_robot_for_mr_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Setup an individual agent that is to run multi-robot graphSLAM Users typically don't need to run this directly and are advised to use the csl_robots_gazebo/run_graphslam_demo.sh shell script which executes this launchfile as many times as the number of robots used for the demo
-
- new_robot_ns
- verbosity [default: 1]
- output [default: screen]
- disable_MRPT_visuals [default: false]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans_LC_MR_real.ini]
- NRD [default: CFixedIntervalsNRD_MR]
- ERD [default: CLoopCloserERD_MR]
- GSO [default: CLevMarqGSO]
- launch/sr_graphslam_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Launchfile for a simple demonstration of the mrpt_graphslam_2d algorithm in single robot situations. More elaborate demo files are built on top of this one such as the sr_graphslam_demo_gt.launch file
-
- output [default: screen]
- robot_ns [default: /]
- disable_MRPT_visuals [default: false]
- verbosity [default: 0]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/demo_short_loop]
- bag_file [default: demo.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- bag_topic_remaps [default: /scan:=input/laser_scan]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
- start_rviz [default: true]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- laser_frame_ID [default: laser]
- odometry_frame_ID [default: odometry]
- NRD [default: CICPCriteriaNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- play_own_rosbag [default: true]
- launch/sr_graphslam_demo_gt.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile demonstrating the mrpt_graphslam_2d application. Ground-Truth path is also shown to compare with the algorithm trajectory estimation. Practically this constitutes a wrapper around the sr_graphslam_demo.launch file NOTES: - Do not define arguments not present in the sr_graphslam_demo due to the corresponding bug: https://github.com/ros/ros_comm/issues/889 WARNING: Make sure that you have downloaded the corresponding dataset from here: https://www.dropbox.com/sh/habf5mnc5404i66/AACvbzmAQ6UrYB4ix-6aVIc9a?dl=0. See the README.md file for more information on this
-
- output [default: screen]
- disable_MRPT_visuals [default: false]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/sr_graphslam_demo]
- bag_file [default: records_with_gt.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- start_rviz [default: true]
Messages
Services
Plugins
Recent questions tagged mrpt_graphslam_2d at Robotics Stack Exchange
![]() |
mrpt_graphslam_2d package from mrpt_slam repomrpt_ekf_slam_2d mrpt_ekf_slam_3d mrpt_graphslam_2d mrpt_icp_slam_2d mrpt_rbpf_slam mrpt_slam |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.19 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | ROS wrappers for SLAM algorithms in MRPT |
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_slam.git |
VCS Type | git |
VCS Version | ros1 |
Last Updated | 2024-09-18 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | c-plus-plus mapping ros slam mobile-robotics slam-algorithms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Nikos Koukis
- Jose Luis Blanco-Claraco
Authors
- Nikos Koukis
General Information
Algorithm utilizes the MRPT mrpt-graphslam library to execute single, multi-robot graphSLAM using information from odometry and LaserScan ROS topics.
mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine application. Furthermore the command-line arguments offered by the latter can be provided by the user as parameters in the ROS Parameter Server. See the provided roslaunch files for examples of this. Also see the API of mrpt_graphslam_2d available here
Additional information:
Single robot algorithm
Real-Time experiment - short loop
-
A sample rosbag is included in the
rosbags/demo_short_loop
directory. To run this just launch the sr_graphslam_demo.launch file:roslaunch mrpt_graphslam_2d sr_graphslam_demo.launch start_rviz:=True
-
Demo rosbag contains Laser Scan measurements (and odometry which is not usuable in the algorithm due to the topic type)
Real-Time experiment - ground-truth data included
-
A real-time experiment using a KUKA youbot and having a rough ground-truth estimate path is available here. Ground-Truth estimation is provided using 2 ps3 cameras placed on the room ceiling. The cameras using the ar_sys ROS package are tracking Aruco markers that act as the workspace origin (static marker) and as the robot executing SLAM (moving marker) respectively. To run this demo, simply download the entire folder, place it directly under the
rosbags
directory of the mrpt_graphslam_2d package and run the sr_graphslam_demo_gt.launch file.roslaunch mrpt_graphslam_2d sr_graphslam_demo_gt.launch
-
One can also tinker with the aforementioned launchfile to enable/disable the different visualization features, use another decider/optimizer class, or modify the .ini file to change the algorithm behavior.
-
Robot movement starts after ~60’’. Due to different timestamps in the laserscans, odometry topics the algorithm feedback is lagging a bit compared to the ground-truth visualization
-
sr_graphslam_demo_gt file uses the pass_all_args XML directive which is only available starting from the ROS Jade distribution. If you have an older one, just replace this with all the args in that file exclusively. For an example on how to do this, see the sr_graphslam_demo.launch file
-
Rosbag was recorded in the Mechanical Engineering School of the National Technical University of Athens
Multi-robot algorithm
Multi-robot support is provided via the csl_mr_slam package suite as well as the use of multimaster_fkie packages utilized for communication across the various ROS agents.
Multi-robot real-time experiments - rosbag
A rosbag collected from real-robots can be found in the following link (more rosbags to be added in the MRPT-2.0 branch):
To run a demo using one of the corresponding rosbags download that directory,
place it directly under the rosbags
directory of the mrpt_graphslam_2d
package and run the run_mr_graphslam_demo.sh
script of the csl_robots_gazebo
package
. The latter script (as is standard with the nodes of the
csl_robots_gazebo
package reads its configuration parameters off the shell
environment at hand and adjusts its behavior accordingly. As an examaple users
can use the following command for running a multi-robot demo.
# see the script for configuration variables
rosrun csl_robots_gazebo run_mr_graphslam_demo.sh
Warning
-
For this to work, you need to have the csl_mr_slam package suite (as well as the packages that the latter depends on) in your catkin workspace.
-
When executing multi-robot graphSLAM using either Gazebo (via the
csl_robots_gazebo
package or using measurements from the prerecorded rosbags, you have to, a priori, generate the necessary rviz files from the template files found in$(rospack find mrpt_graphslam_2d)/rviz/templates
.
File truncated at 100 lines see the full file
Changelog for package mrpt_graphslam_2d
0.1.19 (2024-09-18)
- Fix cmake target creation
- Workaround for missing TBB::tbb target in Noetic
- cmake: fix case and whitespaces
- Contributors: Jose Luis Blanco-Claraco
0.1.18 (2024-09-05)
- Port to new 'mrpt_lib*' packages
- Contributors: Jose Luis Blanco-Claraco
0.1.17 (2024-06-05)
- Update to fix builds against mrpt>=2.13.0
- Contributors: Jose Luis Blanco-Claraco
0.1.16 (2024-03-25)
0.1.15 (2023-08-02)
- Fix build errors and warnings with latest mrpt2 versions (Closes: #71)
- Contributors: Jose Luis Blanco-Claraco
0.1.14 (2023-04-12)
- 0.1.13
- fix version
- changelog
- Fix build against last mrpt 2.7.x
- chagelogs
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.11 (2022-06-24)
- Ported to tf2 and mrpt::ros1bridge
- Fix build with mrpt2
- Update multimaster_msgs_fkie to fkie_ prefix
- Merge branch 'master' of <ssh://github.com/mrpt-ros-pkg/mrpt_slam>
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #65 from Pillowline/patch-1 setting trajectory publishers to latched
- setting trajectory publishers to latched So you can obtain data when running mrpt_graphslam with a bagfile, even after the playback has finished.
- Contributors: Jose Luis Blanco-Claraco, Pillowline
0.1.10 (2019-10-05)
- fix build against current mrpt2
- fix build against mrpt2
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.9 (2019-04-14)
- Fix build against MRPT 1.9.9
- Switch header guards to pragma once
- Contributors: Jose Luis Blanco-Claraco, Julian Lopez Velasquez, Vladislav Tananaev
0.1.8 (2018-09-21)
- Make catkin_lint clean
- Contributors: Jose Luis Blanco Claraco
0.1.7 (2018-09-20)
- mrpt_graphslam_2d: Fix compilation warnings
- Remove installation of the demo directory from mrpt_graphslam_2d. It doesn't exist, so causes problems at the last stage of cmake. Signed-off-by: Chris Lalancette <<clalancette@openrobotics.org>>
- Contributors: Chris Lalancette, Jose Luis Blanco-Claraco, Nikos Koukis
0.1.6 (2018-06-14)
- Fixed compilation with MRPT 1.5
- Merge pull request #41 from MaxGsomGsom/master Fixed build with mrpt 2.0
- Fixed indents
- Fixed build with mrpt 2.0
- partial fix build w mrpt 2.0
- fix build in mrpt 2.0
- fix build; add optimized builds (-O3)
- fix build against mrpt 1.5 series
- Merge pull request #32 from bergercookie/master Correct prev_nodes_ICP error
- Correct prev_nodes_ICP member var
- mrpt_graphslam_2d: Add link to GitPitch slideshow
- mrpt_graphslam_2d: Validate user args in rename_rviz_topics.py
- use consistent cmake conventions for c++14
- all but mrpt_graphslam_2d compiling against mrpt2.0
- porting to mrpt2
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
rospy | |
geometry_msgs | |
nav_msgs | |
std_msgs | |
sensor_msgs | |
mrpt_libros_bridge | |
mrpt_libgui | |
mrpt_libapps | |
mrpt_msgs | |
mrpt_msgs_bridge | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
fkie_multimaster_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mrpt_slam |
Launch files
- launch/graphslam.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile responsible for the mrpt_graphslam_2d application in a single agent setup. Refer to the README.md file for usage information
-
- output [default: screen]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans.ini]
- do_publish_gridmap_topic [default: true]
- run_under_gdb [default: false]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- odometry_frame_ID [default: odometry]
- NRD [default: CFixedIntervalsNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- start_rviz [default: false]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- disable_MRPT_visuals [default: false]
- verbosity [default: 1]
- launch/setup_robot_for_mr_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Setup an individual agent that is to run multi-robot graphSLAM Users typically don't need to run this directly and are advised to use the csl_robots_gazebo/run_graphslam_demo.sh shell script which executes this launchfile as many times as the number of robots used for the demo
-
- new_robot_ns
- verbosity [default: 1]
- output [default: screen]
- disable_MRPT_visuals [default: false]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans_LC_MR_real.ini]
- NRD [default: CFixedIntervalsNRD_MR]
- ERD [default: CLoopCloserERD_MR]
- GSO [default: CLevMarqGSO]
- launch/sr_graphslam_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Launchfile for a simple demonstration of the mrpt_graphslam_2d algorithm in single robot situations. More elaborate demo files are built on top of this one such as the sr_graphslam_demo_gt.launch file
-
- output [default: screen]
- robot_ns [default: /]
- disable_MRPT_visuals [default: false]
- verbosity [default: 0]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/demo_short_loop]
- bag_file [default: demo.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- bag_topic_remaps [default: /scan:=input/laser_scan]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
- start_rviz [default: true]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- laser_frame_ID [default: laser]
- odometry_frame_ID [default: odometry]
- NRD [default: CICPCriteriaNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- play_own_rosbag [default: true]
- launch/sr_graphslam_demo_gt.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile demonstrating the mrpt_graphslam_2d application. Ground-Truth path is also shown to compare with the algorithm trajectory estimation. Practically this constitutes a wrapper around the sr_graphslam_demo.launch file NOTES: - Do not define arguments not present in the sr_graphslam_demo due to the corresponding bug: https://github.com/ros/ros_comm/issues/889 WARNING: Make sure that you have downloaded the corresponding dataset from here: https://www.dropbox.com/sh/habf5mnc5404i66/AACvbzmAQ6UrYB4ix-6aVIc9a?dl=0. See the README.md file for more information on this
-
- output [default: screen]
- disable_MRPT_visuals [default: false]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/sr_graphslam_demo]
- bag_file [default: records_with_gt.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- start_rviz [default: true]
Messages
Services
Plugins
Recent questions tagged mrpt_graphslam_2d at Robotics Stack Exchange
![]() |
mrpt_graphslam_2d package from mrpt_slam repomrpt_ekf_slam_2d mrpt_ekf_slam_3d mrpt_graphslam_2d mrpt_icp_slam_2d mrpt_rbpf_slam mrpt_slam |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.19 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | ROS wrappers for SLAM algorithms in MRPT |
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_slam.git |
VCS Type | git |
VCS Version | ros1 |
Last Updated | 2024-09-18 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | c-plus-plus mapping ros slam mobile-robotics slam-algorithms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Nikos Koukis
- Jose Luis Blanco-Claraco
Authors
- Nikos Koukis
General Information
Algorithm utilizes the MRPT mrpt-graphslam library to execute single, multi-robot graphSLAM using information from odometry and LaserScan ROS topics.
mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine application. Furthermore the command-line arguments offered by the latter can be provided by the user as parameters in the ROS Parameter Server. See the provided roslaunch files for examples of this. Also see the API of mrpt_graphslam_2d available here
Additional information:
Single robot algorithm
Real-Time experiment - short loop
-
A sample rosbag is included in the
rosbags/demo_short_loop
directory. To run this just launch the sr_graphslam_demo.launch file:roslaunch mrpt_graphslam_2d sr_graphslam_demo.launch start_rviz:=True
-
Demo rosbag contains Laser Scan measurements (and odometry which is not usuable in the algorithm due to the topic type)
Real-Time experiment - ground-truth data included
-
A real-time experiment using a KUKA youbot and having a rough ground-truth estimate path is available here. Ground-Truth estimation is provided using 2 ps3 cameras placed on the room ceiling. The cameras using the ar_sys ROS package are tracking Aruco markers that act as the workspace origin (static marker) and as the robot executing SLAM (moving marker) respectively. To run this demo, simply download the entire folder, place it directly under the
rosbags
directory of the mrpt_graphslam_2d package and run the sr_graphslam_demo_gt.launch file.roslaunch mrpt_graphslam_2d sr_graphslam_demo_gt.launch
-
One can also tinker with the aforementioned launchfile to enable/disable the different visualization features, use another decider/optimizer class, or modify the .ini file to change the algorithm behavior.
-
Robot movement starts after ~60’’. Due to different timestamps in the laserscans, odometry topics the algorithm feedback is lagging a bit compared to the ground-truth visualization
-
sr_graphslam_demo_gt file uses the pass_all_args XML directive which is only available starting from the ROS Jade distribution. If you have an older one, just replace this with all the args in that file exclusively. For an example on how to do this, see the sr_graphslam_demo.launch file
-
Rosbag was recorded in the Mechanical Engineering School of the National Technical University of Athens
Multi-robot algorithm
Multi-robot support is provided via the csl_mr_slam package suite as well as the use of multimaster_fkie packages utilized for communication across the various ROS agents.
Multi-robot real-time experiments - rosbag
A rosbag collected from real-robots can be found in the following link (more rosbags to be added in the MRPT-2.0 branch):
To run a demo using one of the corresponding rosbags download that directory,
place it directly under the rosbags
directory of the mrpt_graphslam_2d
package and run the run_mr_graphslam_demo.sh
script of the csl_robots_gazebo
package
. The latter script (as is standard with the nodes of the
csl_robots_gazebo
package reads its configuration parameters off the shell
environment at hand and adjusts its behavior accordingly. As an examaple users
can use the following command for running a multi-robot demo.
# see the script for configuration variables
rosrun csl_robots_gazebo run_mr_graphslam_demo.sh
Warning
-
For this to work, you need to have the csl_mr_slam package suite (as well as the packages that the latter depends on) in your catkin workspace.
-
When executing multi-robot graphSLAM using either Gazebo (via the
csl_robots_gazebo
package or using measurements from the prerecorded rosbags, you have to, a priori, generate the necessary rviz files from the template files found in$(rospack find mrpt_graphslam_2d)/rviz/templates
.
File truncated at 100 lines see the full file
Changelog for package mrpt_graphslam_2d
0.1.19 (2024-09-18)
- Fix cmake target creation
- Workaround for missing TBB::tbb target in Noetic
- cmake: fix case and whitespaces
- Contributors: Jose Luis Blanco-Claraco
0.1.18 (2024-09-05)
- Port to new 'mrpt_lib*' packages
- Contributors: Jose Luis Blanco-Claraco
0.1.17 (2024-06-05)
- Update to fix builds against mrpt>=2.13.0
- Contributors: Jose Luis Blanco-Claraco
0.1.16 (2024-03-25)
0.1.15 (2023-08-02)
- Fix build errors and warnings with latest mrpt2 versions (Closes: #71)
- Contributors: Jose Luis Blanco-Claraco
0.1.14 (2023-04-12)
- 0.1.13
- fix version
- changelog
- Fix build against last mrpt 2.7.x
- chagelogs
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.11 (2022-06-24)
- Ported to tf2 and mrpt::ros1bridge
- Fix build with mrpt2
- Update multimaster_msgs_fkie to fkie_ prefix
- Merge branch 'master' of <ssh://github.com/mrpt-ros-pkg/mrpt_slam>
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #65 from Pillowline/patch-1 setting trajectory publishers to latched
- setting trajectory publishers to latched So you can obtain data when running mrpt_graphslam with a bagfile, even after the playback has finished.
- Contributors: Jose Luis Blanco-Claraco, Pillowline
0.1.10 (2019-10-05)
- fix build against current mrpt2
- fix build against mrpt2
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.9 (2019-04-14)
- Fix build against MRPT 1.9.9
- Switch header guards to pragma once
- Contributors: Jose Luis Blanco-Claraco, Julian Lopez Velasquez, Vladislav Tananaev
0.1.8 (2018-09-21)
- Make catkin_lint clean
- Contributors: Jose Luis Blanco Claraco
0.1.7 (2018-09-20)
- mrpt_graphslam_2d: Fix compilation warnings
- Remove installation of the demo directory from mrpt_graphslam_2d. It doesn't exist, so causes problems at the last stage of cmake. Signed-off-by: Chris Lalancette <<clalancette@openrobotics.org>>
- Contributors: Chris Lalancette, Jose Luis Blanco-Claraco, Nikos Koukis
0.1.6 (2018-06-14)
- Fixed compilation with MRPT 1.5
- Merge pull request #41 from MaxGsomGsom/master Fixed build with mrpt 2.0
- Fixed indents
- Fixed build with mrpt 2.0
- partial fix build w mrpt 2.0
- fix build in mrpt 2.0
- fix build; add optimized builds (-O3)
- fix build against mrpt 1.5 series
- Merge pull request #32 from bergercookie/master Correct prev_nodes_ICP error
- Correct prev_nodes_ICP member var
- mrpt_graphslam_2d: Add link to GitPitch slideshow
- mrpt_graphslam_2d: Validate user args in rename_rviz_topics.py
- use consistent cmake conventions for c++14
- all but mrpt_graphslam_2d compiling against mrpt2.0
- porting to mrpt2
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
rospy | |
geometry_msgs | |
nav_msgs | |
std_msgs | |
sensor_msgs | |
mrpt_libros_bridge | |
mrpt_libgui | |
mrpt_libapps | |
mrpt_msgs | |
mrpt_msgs_bridge | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
fkie_multimaster_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mrpt_slam |
Launch files
- launch/graphslam.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile responsible for the mrpt_graphslam_2d application in a single agent setup. Refer to the README.md file for usage information
-
- output [default: screen]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans.ini]
- do_publish_gridmap_topic [default: true]
- run_under_gdb [default: false]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- odometry_frame_ID [default: odometry]
- NRD [default: CFixedIntervalsNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- start_rviz [default: false]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- disable_MRPT_visuals [default: false]
- verbosity [default: 1]
- launch/setup_robot_for_mr_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Setup an individual agent that is to run multi-robot graphSLAM Users typically don't need to run this directly and are advised to use the csl_robots_gazebo/run_graphslam_demo.sh shell script which executes this launchfile as many times as the number of robots used for the demo
-
- new_robot_ns
- verbosity [default: 1]
- output [default: screen]
- disable_MRPT_visuals [default: false]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans_LC_MR_real.ini]
- NRD [default: CFixedIntervalsNRD_MR]
- ERD [default: CLoopCloserERD_MR]
- GSO [default: CLevMarqGSO]
- launch/sr_graphslam_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Launchfile for a simple demonstration of the mrpt_graphslam_2d algorithm in single robot situations. More elaborate demo files are built on top of this one such as the sr_graphslam_demo_gt.launch file
-
- output [default: screen]
- robot_ns [default: /]
- disable_MRPT_visuals [default: false]
- verbosity [default: 0]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/demo_short_loop]
- bag_file [default: demo.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- bag_topic_remaps [default: /scan:=input/laser_scan]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
- start_rviz [default: true]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- laser_frame_ID [default: laser]
- odometry_frame_ID [default: odometry]
- NRD [default: CICPCriteriaNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- play_own_rosbag [default: true]
- launch/sr_graphslam_demo_gt.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile demonstrating the mrpt_graphslam_2d application. Ground-Truth path is also shown to compare with the algorithm trajectory estimation. Practically this constitutes a wrapper around the sr_graphslam_demo.launch file NOTES: - Do not define arguments not present in the sr_graphslam_demo due to the corresponding bug: https://github.com/ros/ros_comm/issues/889 WARNING: Make sure that you have downloaded the corresponding dataset from here: https://www.dropbox.com/sh/habf5mnc5404i66/AACvbzmAQ6UrYB4ix-6aVIc9a?dl=0. See the README.md file for more information on this
-
- output [default: screen]
- disable_MRPT_visuals [default: false]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/sr_graphslam_demo]
- bag_file [default: records_with_gt.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- start_rviz [default: true]
Messages
Services
Plugins
Recent questions tagged mrpt_graphslam_2d at Robotics Stack Exchange
![]() |
mrpt_graphslam_2d package from mrpt_slam repomrpt_ekf_slam_2d mrpt_ekf_slam_3d mrpt_graphslam_2d mrpt_icp_slam_2d mrpt_rbpf_slam mrpt_slam |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.19 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | ROS wrappers for SLAM algorithms in MRPT |
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_slam.git |
VCS Type | git |
VCS Version | ros1 |
Last Updated | 2024-09-18 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | c-plus-plus mapping ros slam mobile-robotics slam-algorithms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Nikos Koukis
- Jose Luis Blanco-Claraco
Authors
- Nikos Koukis
General Information
Algorithm utilizes the MRPT mrpt-graphslam library to execute single, multi-robot graphSLAM using information from odometry and LaserScan ROS topics.
mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine application. Furthermore the command-line arguments offered by the latter can be provided by the user as parameters in the ROS Parameter Server. See the provided roslaunch files for examples of this. Also see the API of mrpt_graphslam_2d available here
Additional information:
Single robot algorithm
Real-Time experiment - short loop
-
A sample rosbag is included in the
rosbags/demo_short_loop
directory. To run this just launch the sr_graphslam_demo.launch file:roslaunch mrpt_graphslam_2d sr_graphslam_demo.launch start_rviz:=True
-
Demo rosbag contains Laser Scan measurements (and odometry which is not usuable in the algorithm due to the topic type)
Real-Time experiment - ground-truth data included
-
A real-time experiment using a KUKA youbot and having a rough ground-truth estimate path is available here. Ground-Truth estimation is provided using 2 ps3 cameras placed on the room ceiling. The cameras using the ar_sys ROS package are tracking Aruco markers that act as the workspace origin (static marker) and as the robot executing SLAM (moving marker) respectively. To run this demo, simply download the entire folder, place it directly under the
rosbags
directory of the mrpt_graphslam_2d package and run the sr_graphslam_demo_gt.launch file.roslaunch mrpt_graphslam_2d sr_graphslam_demo_gt.launch
-
One can also tinker with the aforementioned launchfile to enable/disable the different visualization features, use another decider/optimizer class, or modify the .ini file to change the algorithm behavior.
-
Robot movement starts after ~60’’. Due to different timestamps in the laserscans, odometry topics the algorithm feedback is lagging a bit compared to the ground-truth visualization
-
sr_graphslam_demo_gt file uses the pass_all_args XML directive which is only available starting from the ROS Jade distribution. If you have an older one, just replace this with all the args in that file exclusively. For an example on how to do this, see the sr_graphslam_demo.launch file
-
Rosbag was recorded in the Mechanical Engineering School of the National Technical University of Athens
Multi-robot algorithm
Multi-robot support is provided via the csl_mr_slam package suite as well as the use of multimaster_fkie packages utilized for communication across the various ROS agents.
Multi-robot real-time experiments - rosbag
A rosbag collected from real-robots can be found in the following link (more rosbags to be added in the MRPT-2.0 branch):
To run a demo using one of the corresponding rosbags download that directory,
place it directly under the rosbags
directory of the mrpt_graphslam_2d
package and run the run_mr_graphslam_demo.sh
script of the csl_robots_gazebo
package
. The latter script (as is standard with the nodes of the
csl_robots_gazebo
package reads its configuration parameters off the shell
environment at hand and adjusts its behavior accordingly. As an examaple users
can use the following command for running a multi-robot demo.
# see the script for configuration variables
rosrun csl_robots_gazebo run_mr_graphslam_demo.sh
Warning
-
For this to work, you need to have the csl_mr_slam package suite (as well as the packages that the latter depends on) in your catkin workspace.
-
When executing multi-robot graphSLAM using either Gazebo (via the
csl_robots_gazebo
package or using measurements from the prerecorded rosbags, you have to, a priori, generate the necessary rviz files from the template files found in$(rospack find mrpt_graphslam_2d)/rviz/templates
.
File truncated at 100 lines see the full file
Changelog for package mrpt_graphslam_2d
0.1.19 (2024-09-18)
- Fix cmake target creation
- Workaround for missing TBB::tbb target in Noetic
- cmake: fix case and whitespaces
- Contributors: Jose Luis Blanco-Claraco
0.1.18 (2024-09-05)
- Port to new 'mrpt_lib*' packages
- Contributors: Jose Luis Blanco-Claraco
0.1.17 (2024-06-05)
- Update to fix builds against mrpt>=2.13.0
- Contributors: Jose Luis Blanco-Claraco
0.1.16 (2024-03-25)
0.1.15 (2023-08-02)
- Fix build errors and warnings with latest mrpt2 versions (Closes: #71)
- Contributors: Jose Luis Blanco-Claraco
0.1.14 (2023-04-12)
- 0.1.13
- fix version
- changelog
- Fix build against last mrpt 2.7.x
- chagelogs
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.11 (2022-06-24)
- Ported to tf2 and mrpt::ros1bridge
- Fix build with mrpt2
- Update multimaster_msgs_fkie to fkie_ prefix
- Merge branch 'master' of <ssh://github.com/mrpt-ros-pkg/mrpt_slam>
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #65 from Pillowline/patch-1 setting trajectory publishers to latched
- setting trajectory publishers to latched So you can obtain data when running mrpt_graphslam with a bagfile, even after the playback has finished.
- Contributors: Jose Luis Blanco-Claraco, Pillowline
0.1.10 (2019-10-05)
- fix build against current mrpt2
- fix build against mrpt2
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.9 (2019-04-14)
- Fix build against MRPT 1.9.9
- Switch header guards to pragma once
- Contributors: Jose Luis Blanco-Claraco, Julian Lopez Velasquez, Vladislav Tananaev
0.1.8 (2018-09-21)
- Make catkin_lint clean
- Contributors: Jose Luis Blanco Claraco
0.1.7 (2018-09-20)
- mrpt_graphslam_2d: Fix compilation warnings
- Remove installation of the demo directory from mrpt_graphslam_2d. It doesn't exist, so causes problems at the last stage of cmake. Signed-off-by: Chris Lalancette <<clalancette@openrobotics.org>>
- Contributors: Chris Lalancette, Jose Luis Blanco-Claraco, Nikos Koukis
0.1.6 (2018-06-14)
- Fixed compilation with MRPT 1.5
- Merge pull request #41 from MaxGsomGsom/master Fixed build with mrpt 2.0
- Fixed indents
- Fixed build with mrpt 2.0
- partial fix build w mrpt 2.0
- fix build in mrpt 2.0
- fix build; add optimized builds (-O3)
- fix build against mrpt 1.5 series
- Merge pull request #32 from bergercookie/master Correct prev_nodes_ICP error
- Correct prev_nodes_ICP member var
- mrpt_graphslam_2d: Add link to GitPitch slideshow
- mrpt_graphslam_2d: Validate user args in rename_rviz_topics.py
- use consistent cmake conventions for c++14
- all but mrpt_graphslam_2d compiling against mrpt2.0
- porting to mrpt2
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
rospy | |
geometry_msgs | |
nav_msgs | |
std_msgs | |
sensor_msgs | |
mrpt_libros_bridge | |
mrpt_libgui | |
mrpt_libapps | |
mrpt_msgs | |
mrpt_msgs_bridge | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
fkie_multimaster_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mrpt_slam |
Launch files
- launch/graphslam.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile responsible for the mrpt_graphslam_2d application in a single agent setup. Refer to the README.md file for usage information
-
- output [default: screen]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans.ini]
- do_publish_gridmap_topic [default: true]
- run_under_gdb [default: false]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- odometry_frame_ID [default: odometry]
- NRD [default: CFixedIntervalsNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- start_rviz [default: false]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- disable_MRPT_visuals [default: false]
- verbosity [default: 1]
- launch/setup_robot_for_mr_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Setup an individual agent that is to run multi-robot graphSLAM Users typically don't need to run this directly and are advised to use the csl_robots_gazebo/run_graphslam_demo.sh shell script which executes this launchfile as many times as the number of robots used for the demo
-
- new_robot_ns
- verbosity [default: 1]
- output [default: screen]
- disable_MRPT_visuals [default: false]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans_LC_MR_real.ini]
- NRD [default: CFixedIntervalsNRD_MR]
- ERD [default: CLoopCloserERD_MR]
- GSO [default: CLevMarqGSO]
- launch/sr_graphslam_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Launchfile for a simple demonstration of the mrpt_graphslam_2d algorithm in single robot situations. More elaborate demo files are built on top of this one such as the sr_graphslam_demo_gt.launch file
-
- output [default: screen]
- robot_ns [default: /]
- disable_MRPT_visuals [default: false]
- verbosity [default: 0]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/demo_short_loop]
- bag_file [default: demo.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- bag_topic_remaps [default: /scan:=input/laser_scan]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
- start_rviz [default: true]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- laser_frame_ID [default: laser]
- odometry_frame_ID [default: odometry]
- NRD [default: CICPCriteriaNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- play_own_rosbag [default: true]
- launch/sr_graphslam_demo_gt.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile demonstrating the mrpt_graphslam_2d application. Ground-Truth path is also shown to compare with the algorithm trajectory estimation. Practically this constitutes a wrapper around the sr_graphslam_demo.launch file NOTES: - Do not define arguments not present in the sr_graphslam_demo due to the corresponding bug: https://github.com/ros/ros_comm/issues/889 WARNING: Make sure that you have downloaded the corresponding dataset from here: https://www.dropbox.com/sh/habf5mnc5404i66/AACvbzmAQ6UrYB4ix-6aVIc9a?dl=0. See the README.md file for more information on this
-
- output [default: screen]
- disable_MRPT_visuals [default: false]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/sr_graphslam_demo]
- bag_file [default: records_with_gt.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- start_rviz [default: true]
Messages
Services
Plugins
Recent questions tagged mrpt_graphslam_2d at Robotics Stack Exchange
![]() |
mrpt_graphslam_2d package from mrpt_slam repomrpt_ekf_slam_2d mrpt_ekf_slam_3d mrpt_graphslam_2d mrpt_icp_slam_2d mrpt_rbpf_slam mrpt_slam |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.19 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | ROS wrappers for SLAM algorithms in MRPT |
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_slam.git |
VCS Type | git |
VCS Version | ros1 |
Last Updated | 2024-09-18 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | c-plus-plus mapping ros slam mobile-robotics slam-algorithms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Nikos Koukis
- Jose Luis Blanco-Claraco
Authors
- Nikos Koukis
General Information
Algorithm utilizes the MRPT mrpt-graphslam library to execute single, multi-robot graphSLAM using information from odometry and LaserScan ROS topics.
mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine application. Furthermore the command-line arguments offered by the latter can be provided by the user as parameters in the ROS Parameter Server. See the provided roslaunch files for examples of this. Also see the API of mrpt_graphslam_2d available here
Additional information:
Single robot algorithm
Real-Time experiment - short loop
-
A sample rosbag is included in the
rosbags/demo_short_loop
directory. To run this just launch the sr_graphslam_demo.launch file:roslaunch mrpt_graphslam_2d sr_graphslam_demo.launch start_rviz:=True
-
Demo rosbag contains Laser Scan measurements (and odometry which is not usuable in the algorithm due to the topic type)
Real-Time experiment - ground-truth data included
-
A real-time experiment using a KUKA youbot and having a rough ground-truth estimate path is available here. Ground-Truth estimation is provided using 2 ps3 cameras placed on the room ceiling. The cameras using the ar_sys ROS package are tracking Aruco markers that act as the workspace origin (static marker) and as the robot executing SLAM (moving marker) respectively. To run this demo, simply download the entire folder, place it directly under the
rosbags
directory of the mrpt_graphslam_2d package and run the sr_graphslam_demo_gt.launch file.roslaunch mrpt_graphslam_2d sr_graphslam_demo_gt.launch
-
One can also tinker with the aforementioned launchfile to enable/disable the different visualization features, use another decider/optimizer class, or modify the .ini file to change the algorithm behavior.
-
Robot movement starts after ~60’’. Due to different timestamps in the laserscans, odometry topics the algorithm feedback is lagging a bit compared to the ground-truth visualization
-
sr_graphslam_demo_gt file uses the pass_all_args XML directive which is only available starting from the ROS Jade distribution. If you have an older one, just replace this with all the args in that file exclusively. For an example on how to do this, see the sr_graphslam_demo.launch file
-
Rosbag was recorded in the Mechanical Engineering School of the National Technical University of Athens
Multi-robot algorithm
Multi-robot support is provided via the csl_mr_slam package suite as well as the use of multimaster_fkie packages utilized for communication across the various ROS agents.
Multi-robot real-time experiments - rosbag
A rosbag collected from real-robots can be found in the following link (more rosbags to be added in the MRPT-2.0 branch):
To run a demo using one of the corresponding rosbags download that directory,
place it directly under the rosbags
directory of the mrpt_graphslam_2d
package and run the run_mr_graphslam_demo.sh
script of the csl_robots_gazebo
package
. The latter script (as is standard with the nodes of the
csl_robots_gazebo
package reads its configuration parameters off the shell
environment at hand and adjusts its behavior accordingly. As an examaple users
can use the following command for running a multi-robot demo.
# see the script for configuration variables
rosrun csl_robots_gazebo run_mr_graphslam_demo.sh
Warning
-
For this to work, you need to have the csl_mr_slam package suite (as well as the packages that the latter depends on) in your catkin workspace.
-
When executing multi-robot graphSLAM using either Gazebo (via the
csl_robots_gazebo
package or using measurements from the prerecorded rosbags, you have to, a priori, generate the necessary rviz files from the template files found in$(rospack find mrpt_graphslam_2d)/rviz/templates
.
File truncated at 100 lines see the full file
Changelog for package mrpt_graphslam_2d
0.1.19 (2024-09-18)
- Fix cmake target creation
- Workaround for missing TBB::tbb target in Noetic
- cmake: fix case and whitespaces
- Contributors: Jose Luis Blanco-Claraco
0.1.18 (2024-09-05)
- Port to new 'mrpt_lib*' packages
- Contributors: Jose Luis Blanco-Claraco
0.1.17 (2024-06-05)
- Update to fix builds against mrpt>=2.13.0
- Contributors: Jose Luis Blanco-Claraco
0.1.16 (2024-03-25)
0.1.15 (2023-08-02)
- Fix build errors and warnings with latest mrpt2 versions (Closes: #71)
- Contributors: Jose Luis Blanco-Claraco
0.1.14 (2023-04-12)
- 0.1.13
- fix version
- changelog
- Fix build against last mrpt 2.7.x
- chagelogs
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.11 (2022-06-24)
- Ported to tf2 and mrpt::ros1bridge
- Fix build with mrpt2
- Update multimaster_msgs_fkie to fkie_ prefix
- Merge branch 'master' of <ssh://github.com/mrpt-ros-pkg/mrpt_slam>
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #65 from Pillowline/patch-1 setting trajectory publishers to latched
- setting trajectory publishers to latched So you can obtain data when running mrpt_graphslam with a bagfile, even after the playback has finished.
- Contributors: Jose Luis Blanco-Claraco, Pillowline
0.1.10 (2019-10-05)
- fix build against current mrpt2
- fix build against mrpt2
- Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
0.1.9 (2019-04-14)
- Fix build against MRPT 1.9.9
- Switch header guards to pragma once
- Contributors: Jose Luis Blanco-Claraco, Julian Lopez Velasquez, Vladislav Tananaev
0.1.8 (2018-09-21)
- Make catkin_lint clean
- Contributors: Jose Luis Blanco Claraco
0.1.7 (2018-09-20)
- mrpt_graphslam_2d: Fix compilation warnings
- Remove installation of the demo directory from mrpt_graphslam_2d. It doesn't exist, so causes problems at the last stage of cmake. Signed-off-by: Chris Lalancette <<clalancette@openrobotics.org>>
- Contributors: Chris Lalancette, Jose Luis Blanco-Claraco, Nikos Koukis
0.1.6 (2018-06-14)
- Fixed compilation with MRPT 1.5
- Merge pull request #41 from MaxGsomGsom/master Fixed build with mrpt 2.0
- Fixed indents
- Fixed build with mrpt 2.0
- partial fix build w mrpt 2.0
- fix build in mrpt 2.0
- fix build; add optimized builds (-O3)
- fix build against mrpt 1.5 series
- Merge pull request #32 from bergercookie/master Correct prev_nodes_ICP error
- Correct prev_nodes_ICP member var
- mrpt_graphslam_2d: Add link to GitPitch slideshow
- mrpt_graphslam_2d: Validate user args in rename_rviz_topics.py
- use consistent cmake conventions for c++14
- all but mrpt_graphslam_2d compiling against mrpt2.0
- porting to mrpt2
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
rospy | |
geometry_msgs | |
nav_msgs | |
std_msgs | |
sensor_msgs | |
mrpt_libros_bridge | |
mrpt_libgui | |
mrpt_libapps | |
mrpt_msgs | |
mrpt_msgs_bridge | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
fkie_multimaster_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mrpt_slam |
Launch files
- launch/graphslam.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile responsible for the mrpt_graphslam_2d application in a single agent setup. Refer to the README.md file for usage information
-
- output [default: screen]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans.ini]
- do_publish_gridmap_topic [default: true]
- run_under_gdb [default: false]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- odometry_frame_ID [default: odometry]
- NRD [default: CFixedIntervalsNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- start_rviz [default: false]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- disable_MRPT_visuals [default: false]
- verbosity [default: 1]
- launch/setup_robot_for_mr_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Setup an individual agent that is to run multi-robot graphSLAM Users typically don't need to run this directly and are advised to use the csl_robots_gazebo/run_graphslam_demo.sh shell script which executes this launchfile as many times as the number of robots used for the demo
-
- new_robot_ns
- verbosity [default: 1]
- output [default: screen]
- disable_MRPT_visuals [default: false]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_odometry_2DRangeScans_LC_MR_real.ini]
- NRD [default: CFixedIntervalsNRD_MR]
- ERD [default: CLoopCloserERD_MR]
- GSO [default: CLevMarqGSO]
- launch/sr_graphslam_demo.launch
- Fri Nov 11 14:26:18 EET 2016, Nikos Koukis Launchfile for a simple demonstration of the mrpt_graphslam_2d algorithm in single robot situations. More elaborate demo files are built on top of this one such as the sr_graphslam_demo_gt.launch file
-
- output [default: screen]
- robot_ns [default: /]
- disable_MRPT_visuals [default: false]
- verbosity [default: 0]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/demo_short_loop]
- bag_file [default: demo.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- bag_topic_remaps [default: /scan:=input/laser_scan]
- config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
- start_rviz [default: true]
- rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
- anchor_frame_ID [default: map]
- base_link_frame_ID [default: base_link]
- laser_frame_ID [default: laser]
- odometry_frame_ID [default: odometry]
- NRD [default: CICPCriteriaNRD]
- ERD [default: CICPCriteriaERD]
- GSO [default: CLevMarqGSO]
- is_mr_slam [default: false]
- play_own_rosbag [default: true]
- launch/sr_graphslam_demo_gt.launch
- Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis Launchfile demonstrating the mrpt_graphslam_2d application. Ground-Truth path is also shown to compare with the algorithm trajectory estimation. Practically this constitutes a wrapper around the sr_graphslam_demo.launch file NOTES: - Do not define arguments not present in the sr_graphslam_demo due to the corresponding bug: https://github.com/ros/ros_comm/issues/889 WARNING: Make sure that you have downloaded the corresponding dataset from here: https://www.dropbox.com/sh/habf5mnc5404i66/AACvbzmAQ6UrYB4ix-6aVIc9a?dl=0. See the README.md file for more information on this
-
- output [default: screen]
- disable_MRPT_visuals [default: false]
- bag_dir [default: $(find mrpt_graphslam_2d)/rosbags/sr_graphslam_demo]
- bag_file [default: records_with_gt.bag]
- bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
- start_rviz [default: true]