No version for distro humble showing lunar. Known supported distros are highlighted in the buttons above.

Package Summary

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

Repository Summary

Checkout URI https://github.com/mrpt-ros-pkg/mrpt_slam.git
VCS Type git
VCS Version compat-mrpt-1.3
Last Updated 2023-04-12
Dev Status MAINTAINED
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Implement graphSLAM using the mrpt-graphslam library, in an online fashion by directly reading measurements off ROS Topics.

Additional Links

Maintainers

  • Nikos Koukis

Authors

  • Nikos Koukis

Description

Algorithm utilizes the MRPT mrpt-graphslam library to execute single-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:

Algorithm demonstration

Real-Time demo 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 laserScan 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, just download the whole 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.

  • 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 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

Notes:

  • Multi-Robot graphSLAM is not yet supported.
CHANGELOG

Changelog for package mrpt_graphslam_2d

0.1.5 (2016-11-18)

  • mrpt_graphslam_2d: Correct syntax in README file

  • mrpt_graphslam_2d: Complete the demo rviz, launch files Finish setting up the demos-related files. Setup a hierarchy of launchfiles with each each one delegating the corresponding tasks to the next one with the sr_graphslam.launch as the final link in this chain. This should make up for an easier maintenance of the whole setup later on.

  • Renamed demo bagfile

  • Be consistent with rviz, launchfile names

  • Readd demo_short_loop bag

  • mrpt_graphslam_2d: Add demo_gt launchfile for launching demo rosbag

  • Skip mrpt_graphslam_2d compilation if MRPT version < 1.5.0

  • mrpt_graphslam_2d: Add rviz file for complete single-robot SLAM experiment

  • mrpt_graphslam_2d: Use tf2 for all tf transformations. Commit also includes the following:

    - Introduction of the "anchor node", that is the frame that (a specific) robot trajectory starts from, which should also differ from the world frame in a multi-robot setup.

    - Odometry input messages are expected to be of type nav_msgs::Odometry, instead of the custom msg Pose2DStamped used so far

  • mrpt_graphslam_2d: Make changes to graphslam.launch file

  • mrpt_graphslam_2d: Add to the launchfiles

  • Contributors: Nikos Koukis

0.1.4 (2016-11-06)

  • Add install targets to CMake.

  • mrpt_graphslam_2d: Init MR-SLAM configuration Commit adds boilerplate code for:

    - Launchfile with nested topic and TF groups for manipulating more robotic agents in a consistent manner

    • New .rviz file for MR-SLAM
  • mrpt_graphslam_2d: queue_size as a private member

  • mrpt_graphslam_2d: Cleanup CMakeLists file, add catkin_INCLUDE_DIRS

  • Add demo workspace picture

  • mrpt_graphslam_2d: Make changes to README instructions and app launchfiles

  • mrpt_graphslam_2d: Initialize demo folder, Modify README

  • mrpt_graphslam_2d: Add to the feedback results

  • mrpt_graphslam_2d: Initialize feedback topics Provide feedback information that can be accessed via ROS Topics. These utilize the CGraphslamEngine API and include the following:

    • Latest robot pose
    • Estimated path trajectory
  • mprt_graphslam_2d: Use m_ prefix for class private vars

  • mrpt_graphslam_2d: Save result files after execution

  • Add README file.

  • mrpt_graphslam_2d:Add launchfile, configfile

  • mrpt_graphslam_2d: Initialize ROS wrapper for mrpt-graphslam Commit includes boilerplate code for running graphSLAM using the mrpt-graphslam library. The following should be noted:

    - mrpt_graphslam_2d is heavily based on the native MRPT graphslam-engine_app application.

    - graphslam-engine_app command line arguments correspond to parameters in the /graphslam_engine namespace of the ROS parameter server and can be set either by an external launchfile or by dirctly by the user.

  • Contributors: Logrus, Nikos Koukis

0.1.3 (2016-09-27)

0.1.2 (2016-09-24)

File truncated at 100 lines see the full file

Dependant Packages

No known dependants.

Launch files

  • launch/mr_graphslam.launch
    • Mon Oct 10 19:20:36 EEST 2016, Nikos Koukis The purpose of the launchfile is to initialize a (single) robot agent to operate in an MR-SLAM setup.
      • output [default: screen]
      • bag_file [default: $(find mrpt_graphslam_2d)/rosbags/20161006_ktM_2nd_floor/short_loop.bag]
      • ros_is_simulation
      • NRD [default: CICPCriteriaNRD]
      • ERD [default: CICPCriteriaERD]
      • GSO [default: CLevMarqGSO]
  • launch/sr_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]
      • anchor_frame_ID [default: map]
      • base_link_frame_ID [default: base_link]
      • odometry_frame_ID [default: odometry]
      • laser_frame_ID [default: laser]
      • NRD [default: CFixedIntervalsNRD]
      • ERD [default: CICPCriteriaERD]
      • GSO [default: CLevMarqGSO]
      • start_rviz [default: false]
      • rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
      • disable_MRPT_visuals [default: false]
  • 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 on single robot situations. More elaborate demo files are built on top of this one - see sr_graphslam_demo_gt.launch file
      • robot_ns [default: /]
      • output [default: screen]
      • disable_MRPT_visuals [default: false]
      • 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]
      • start_rviz [default: true]
      • rviz_file [default: $(find mrpt_graphslam_2d)/rviz/sr_graphslam.rviz]
      • anchor_frame_ID [default: map]
      • config_file [default: $(find mrpt_graphslam_2d)/config/ros_laser_odometry.ini]
      • NRD [default: CICPCriteriaNRD]
      • ERD [default: CICPCriteriaERD]
      • GSO [default: CLevMarqGSO]
  • 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]
      • bag_file [default: records_with_gt.bag]
      • bag_file_full [default: $(arg bag_dir)/$(arg bag_file)]
      • start_rviz [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mrpt_graphslam_2d at Robotics Stack Exchange