##Hera Bringup Contains all configs and resources necessary for bringing up hera robot
This package is an implementation of the Ros Navigation Stack (RNS) for the HERA robot (2020 version).
This package is an implementation of the Ros Navigation Stack (RNS) for the HERA (2020 version). The RNS is a set of packages from ROS specialized in navigating a mobile base. It uses information from odometry and distance sensors (laser scanning and point cloud) to generate speed commands sent to the robot.
Navigation Stack Setup.
- ROS (Melodic Morenia)
- hera_description
There are a folder called config
, that contains parameters used to visualize and configure the robot navigation.
|-- config
|-- localization
|-- amcl.yaml
|-- fl.yaml
|-- move_base
|--move_base_params.yaml
|--costmap_common_params.yaml
|--costmap_global_params.yaml
|--costmap_local_params.yaml
|--local_planner_base_params.yaml
|--local_planner_dwa_params.yaml
|--local_planner_eband_params.yaml
|--local_planner_teb_params.yaml
|-- rviz
|-- mapping.rviz
|-- navigation.rviz
The parameters were set and optimized following the Navigation tutorials, Configuring Layered Costmaps tutorial , teb_local_planner tutorials and ROS Navigation Tuning Guide.
There are a folder called launch
, that contains files used to launch the robot using roslaunch in the ROS ecosystem.
The files in this folder are divided in two extensions:
- xml - for intern use (they are not visible in the roslaunch system).
- launch - for public use.
|-- launch
|--localization.xml
|--navigation.xml
|--bringup_mapping.launch
|--bringup_navigation.launch
- bringup_mapping: Used to start the mapping process of a new environment. Parameters:
- robot_model: (string, default: hera_full) - Robot used. Available in the hera_description package.
- bringup_navigation: Used to start the navigation process. Parameters:
- robot_model: (string, default: hera_full) - Robot used. Available in the hera_description package.
- map_resource: (string, default: ) - Path to map folder used to navigation. This folder must contain a pgm and a yaml files.
- use_fake_localization: (boolean, default: false) - Used in simulated environment if you want an accurate localization.
- true - Use fake_localization package.
- false - Use amcl package.
- global_planner: (string, default: navfn/NavfnROS) - Global planer used to plan the navigation.
- local_planner: (string, default: eband_local_planner/EBandPlannerROS) - Local planner used to navigate. There are four available:
- Make sure do you have a ROS environment installed and ready.
- Create your catkin workspace
- Create a
src
folder in your catkin workspace (if it doesn't exist).
cd <catkin_workspace>/
mkdir src
- Git clone this repository and install all dependencies.
cd src
git clone https://github.com/Home-Environment-Robot-Assistant/hera_nav.git
sudo ./hera_description/install_dependencies.sh
- Install hera_description.
- Compile you catkin workspace.
cd <catkin_workspace>/
catkin_make
source devel/setup.bash
- Now you are ready to run the launch files.
- Mapping:
source devel/setup.bash
roslaunch gazebo_ros willowgarage_world.launch
source devel/setup.bash
roslaunch hera_nav bringup_mapping.launch
You will be able to see this interface for rviz:
RViz interface.
This interface for gazebo:
Gazebo interface.
And this interface for teleop:
Teleop interface.
With the teleop interface you can control the robot navigation to build a map.
Map in RViz.
When finish, you can use this command to save your map.
rosrun map_server map_saver
- Navigation:
source devel/setup.bash
roslaunch gazebo_ros willowgarage_world.launch
roslaunch hera_nav bringup_navigation.launch map_resource:=<path_to_map_folder>
You will be able to see this interface for rviz:
RViz interface.
This interface for gazebo:
Gazebo interface.