This project focuses on the development of an Autonomous Mobile Robot using ROS (noetic), running on Ubuntu 20.04. The robot is designed to navigate within a simulated hospital environment. The project is divided into three main packages: robot_description
, robot_gazebo
, and robot_navigation
.
This package contains the xacro files for defining the robot's components, properties, and gazebo plugins. These files are essential for describing the robot's physical characteristics and behavior within the simulation environment.
The robot_gazebo
package utilizes the AWS Robotics provided hospital world simulation environment (aws-robomaker-hospital-world) to spawn the robot described in robot_description
within Gazebo. This package also includes launch files for setting up and configuring the simulation environment.
In the robot_navigation
package, several ROS navigation packages are utilized to enable autonomous navigation for the robot within the hospital environment. The process involves:
- Mapping: Using slam_gmapping to generate a map of the hospital environment.
- Localization: Implementing AMCL (Adaptive Monte Carlo Localization) for accurate localization of the robot within the mapped environment.
- Navigation: Employing move_base package for path planning and execution, enabling the robot to navigate autonomously to predefined goals.
To ensure optimal navigation performance, various navigation parameters have been tuned. These include:
- costmap_common_params: Parameters governing the configuration of costmaps used for navigation.
- dwa_local_planner_params: Parameters specific to the DWA (Dynamic Window Approach) local planner.
- global_costmap_params: Parameters related to the global costmap configuration.
- global_planner_params: Parameters for configuring the global planner used by move_base.
- local_costmap_params: Parameters specific to the local costmap configuration.
- move_base_params: Overall parameters governing the behavior of move_base, including recovery behaviors and controller settings.
To utilize this project, follow these steps:
Note: The building process may take some time to download models for AWS World.
- Clone the repository:
git clone https://github.com/your_username/your_project.git
- Navigate to the cloned directory and build the packages:
cd your_project
catkin_make
- Source the setup file:
source devel/setup.bash
- Launch simulation environment:
roslaunch robot_gazebo nomeer_robot.launch
- Launch slam_gmapping to create map:
roslaunch robot_navigation slam_gmapping.launch
- Launch amcl for localization:
roslaunch robot_navigation amcl.launch
- Launch the navigation stack:
roslaunch robot_navigation navigation.launch
Contributions to this project are welcome! To contribute, please fork the repository, make your changes, and submit a pull request.
This project is licensed under the MIT License.