Skip to content

Latest commit

 

History

History
108 lines (71 loc) · 2.1 KB

README.md

File metadata and controls

108 lines (71 loc) · 2.1 KB

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