Skip to content

An autonomous navigation system using ROS with SLAM, path planning, and obstacle avoidance.

License

Notifications You must be signed in to change notification settings

kavehsgh/autonomous-navigation-ros2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Autonomous Navigation System with ROS

This project demonstrates the deployment of an autonomous navigation system using ROS. It includes SLAM, path planning, and obstacle avoidance algorithms.

Features

  • SLAM for mapping and localization
  • Path planning for navigation
  • Obstacle avoidance for safe traversal

Installation

Clone the repository:

git clone https://github.com/kavehsgh/autonomous-navigation-ros2.git
cd autonomous-navigation-ros2

Install ROS2 Humble and Nav2:

sudo apt update
sudo apt install ros-humble-desktop
sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup

Build the workspace:

colcon build

Usage

Source the setup file:

source install/setup.bash

Launch the navigation system:

ros2 launch navigation_system navigation_launch.py

Project Structure

  • src/: Source code for navigation, SLAM, and obstacle avoidance.
  • launch/: ROS launch files.
  • config/: Configuration files.
  • docs/: Documentation and tutorials.

Implementation

  1. SLAM Implementation:
  • Create a ROS2 package for SLAM:
cd src
ros2 pkg create --build-type ament_python slam
cd slam/slam
mkdir src
  • Implement SLAM using slam_toolbox:
  • Example: 'src/slam/slam/slam_node.py'
  1. Path Planning with Nav2:
  • Create a ROS2 package for navigation:
cd ../..
ros2 pkg create --build-type ament_python navigation
cd navigation/navigation
mkdir src
  • Implement path planning using Nav2.
  • Example: 'src/navigation/navigation/navigation_node.py'
  1. Obstacle Avoidance:
  • Create a ROS2 package for obstacle avoidance:
cd ..
catkin_create_pkg obstacle_avoidance rospy std_msgs sensor_msgs geometry_msgs
mkdir -p obstacle_avoidance/src
  • Implement obstacle avoidance using sensor data:
  • Example: 'src/obstacle_avoidance/obstacle_avoidance/obstacle_avoidance_node.py'
  1. Launch Files:
  • Create launch files for each component in the launch directory.
  • Example: 'launch/navigation_launch.py'

License

This project is licensed under the MIT License - see the LICENSE file for details

About

An autonomous navigation system using ROS with SLAM, path planning, and obstacle avoidance.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages