Skip to content

Latest commit

 

History

History
74 lines (65 loc) · 6.45 KB

README.md

File metadata and controls

74 lines (65 loc) · 6.45 KB

BUTIÁBots Navigation and Mapping System

Overview

This repository contains a collection of ROS (Robot Operating System) packages needed for Simultaneous Localization and Mapping (SLAM), navigating and also performing simulations.

Dependencies

This software is built on the Robotic Operating System (ROS Noetic), which needs to be installed first. Additionally, the packages depends of a few libraries and frameworks:

  • gmapping: Provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping. Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot.
  • amcl: amcl is a probabilistic localization system for a robot moving in 2D. It implements the adaptive (or KLD-sampling) Monte Carlo localization approach (as described by Dieter Fox), which uses a particle filter to track the pose of a robot against a known map.
  • move_base: Provides an implementation of an action (see the actionlib package) that, given a goal in the world, will attempt to reach it with a mobile base. The move_base node links together a global and local planner to accomplish its global navigation task. It supports any global planner adhering to the nav_core::BaseGlobalPlanner interface specified in the nav_core package and any local planner adhering to the nav_core::BaseLocalPlanner interface specified in the nav_core package. The move_base node also maintains two costmaps, one for the global planner, and one for a local planner (see the costmap_2d package) that are used to accomplish navigation tasks.
  • urg_node: Driver for Hokuyos laser range-finders.
  • sick_scan: Driver for SICK laser range-finders.

Topics

  • /initialpose (geometry_msgs/PoseWithCovarianceStamped): Useful for setting the start pose of the robot. Used by amcl.
  • /map (nav_msgs/OccupancyGrid): A latched topic (meaning that the data is sent once to each new subscriber) that contains information about the occupancy grid. Usually created by a SLAM mapping service and saved to disk by the map_server.
  • /NavfnROS/plan (nav_msgs/Path): Displays the full plan for the robot computed by the global planner.
Subscribed Topics
  • /move_base_simple/goal (geometry_msgs/PoseStamped): Provides a non-action interface to move_base for users that don't care about tracking the execution status of their goals. Useful for setting a goal through Rviz, for example. The move_base package subscribes to this topic and use it to set new goals.
Action Subscribed Topics

Published Topics

  • /cmd_vel (geometry_msgs/Twist): Used to control the robot motors. Used internally by the nodes. Used by move_base and teleop_twist_joy.

Services

  • /make_plan (nav_msgs/GetPlan): Allows an external user to ask for a plan to a given pose from move_base without causing move_base to execute that plan.
  • /clear_unknown_space (std_srvs/Empty): Allows an external user to tell move_base to clear unknown space in the area directly around the robot. This is useful when move_base has its costmaps stopped for a long period of time and then started again in a new location in the environment.
  • /tf (tf/tfMessage): Contains coordinate frames for moving parts.
  • /tf_static (tf/tfMessage): Contains transform information about static components (laser, kinetic, robot model, etc.). Used mostly internally.
  • /scan (sensor_msgs/LaserScan): Laser scans to create the map from and to create the costmap.

References

Bagfiles

Recorded bags can be found on Google Drive

Citation

If you find this package useful, consider citing it using:

@misc{butia_navigation_system,
    title={Butia Navigation System Package},
    author={{ButiaBots}},
    howpublished={\url{https://github.com/vinismarques/butia_navigation_system}},
    year={2019}
}

If you liked this repository, please don't forget to starred it!