Giter VIP home page Giter VIP logo

siliciuss / autonav Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jatinpatil2003/autonav

0.0 0.0 0.0 12.04 MB

AutoNav is an innovative autonomous mobile robot designed for efficient room navigation. Leveraging the Robot Operating System (ROS) along with SLAM (Simultaneous Localization and Mapping) and ROS Navstack

License: MIT License

Shell 0.30% C++ 17.83% Python 74.12% Lua 0.72% Makefile 0.31% CMake 5.56% Batchfile 0.42% Dockerfile 0.75%

autonav's Introduction

AutoNavv85


AUTONAV

AutoNav is an innovative autonomous mobile robot designed for efficient room navigation. Leveraging the Robot Operating System (ROS) along with SLAM (Simultaneous Localization and Mapping) and ROS Navstack.

It excels in autonomous pathfinding and obstacle avoidance. At its core, AutoNav employs IMU-based sensor fusion for precise movement control and utilizes a depth camera for accurate perception and 3D mapping. This integration of advanced technologies enables AutoNav to navigate complex environments with ease.

YAML Python C++ CMake

AutoNav_CI

GitHub license git-last-commit GitHub commit activity GitHub top language

๐Ÿ“– Table of Contents


๐Ÿ“ Overview

9-removebg-preview

AutoNav is an advanced autonomous mobile robot designed to navigate through rooms independently. This project showcases the integration of cutting-edge technologies in robotics, including the Robot Operating System (ROS), Simultaneous Localization and Mapping (SLAM), Sensor Fusion and the ROS Navigation Stack.

AutoNav is a testament to the possibilities in autonomous robotic systems, aiming to pave the way for future innovations in this field. This project is suitable for enthusiasts and professionals alike, seeking to explore and expand in the realm of autonomous robotics.


๐Ÿ“ฆ Features

  • Autonomous Navigation:

    Utilizes SLAM and ROS Navstack for intelligent pathfinding and obstacle avoidance in various environments.

  • Sensor Fusion:

    Integrates Inertial Measurement Unit (IMU) sensors for enhanced movement precision and stability.

  • Hardware Integration:

    Designed to work seamlessly with a range of robotic hardware, enabling easy integration of sensors, actuators, and other essential components for autonomous navigation.


๐Ÿ“‚ Repository Structure

โ””โ”€โ”€ AutoNav/
    โ”œโ”€โ”€ .github
    โ”‚   โ””โ”€โ”€ workflows
    โ”‚       โ””โ”€โ”€ AutoNav_CI.yml
    โ”œโ”€โ”€ autonav.Dockerfile
    โ”œโ”€โ”€ autonav_bringup
    โ”‚   โ”œโ”€โ”€ CMakeLists.txt
    โ”‚   โ””โ”€โ”€ launch
    โ”‚       โ”œโ”€โ”€ autonav_bringup.launch.py
    โ”‚       โ”œโ”€โ”€ view_rviz.launch.py
    โ”‚       โ”œโ”€โ”€ view_rviz_cartographer.launch.py
    โ”‚       โ”œโ”€โ”€ view_rviz_navigation.launch.py
    โ”‚       โ””โ”€โ”€ view_rviz_slam.launch.py
    โ”œโ”€โ”€ autonav_controller
    โ”‚   โ”œโ”€โ”€ CMakeLists.txt
    โ”‚   โ”œโ”€โ”€ autonav_controller
    โ”‚   โ”‚   โ”œโ”€โ”€ cmd_vel_republisher.py
    โ”‚   โ”‚   โ”œโ”€โ”€ control.py
    โ”‚   โ”‚   โ”œโ”€โ”€ lidar_republisher.py
    โ”‚   โ”‚   โ”œโ”€โ”€ odom_logger.py
    โ”‚   โ”‚   โ”œโ”€โ”€ pid_controller.py
    โ”‚   โ”‚   โ””โ”€โ”€ tune_pid.py
    โ”‚   โ”œโ”€โ”€ config
    โ”‚   โ”‚   โ””โ”€โ”€ autonav_controllers.yaml
    โ”‚   โ””โ”€โ”€ launch
    โ”‚       โ”œโ”€โ”€ autonav_bringup.launch.py
    โ”‚       โ””โ”€โ”€ controller.launch.py
    โ”œโ”€โ”€ autonav_description
    โ”‚   โ”œโ”€โ”€ CMakeLists.txt
    โ”‚   โ”œโ”€โ”€ launch
    โ”‚   โ”‚   โ”œโ”€โ”€ autonav_bringup.launch.py
    โ”‚   โ”‚   โ”œโ”€โ”€ display.launch.py
    โ”‚   โ”‚   โ”œโ”€โ”€ gazebo.launch.py
    โ”‚   โ”‚   โ””โ”€โ”€ robot_description.launch.py
    โ”‚   โ”œโ”€โ”€ meshes
    โ”‚   โ”‚   โ”œโ”€โ”€ base_link.stl
    โ”‚   โ”‚   โ”œโ”€โ”€ depth_camera_1.stl
    โ”‚   โ”‚   โ”œโ”€โ”€ imu_1.stl
    โ”‚   โ”‚   โ”œโ”€โ”€ left_wheel_1.stl
    โ”‚   โ”‚   โ”œโ”€โ”€ lidar_1.stl
    โ”‚   โ”‚   โ””โ”€โ”€ right_wheel_1.stl
    โ”‚   โ”œโ”€โ”€ rviz
    โ”‚   โ”‚   โ””โ”€โ”€ display.rviz
    โ”‚   โ””โ”€โ”€ urdf
    โ”‚       โ”œโ”€โ”€ autonav.trans
    โ”‚       โ”œโ”€โ”€ autonav.xacro
    โ”‚       โ”œโ”€โ”€ autonav_gazebo.xacro
    โ”‚       โ”œโ”€โ”€ autonav_ros2_control.xacro
    โ”‚       โ””โ”€โ”€ materials.xacro
    โ”œโ”€โ”€ autonav_firmware
    โ”‚   โ”œโ”€โ”€ CMakeLists.txt
    โ”‚   โ”œโ”€โ”€ firmware
    โ”‚   โ”‚   โ””โ”€โ”€ esp32_uros
    โ”‚   โ”œโ”€โ”€ include
    โ”‚   โ”‚   โ””โ”€โ”€ autonav_firmware
    โ”‚   โ”œโ”€โ”€ launch
    โ”‚   โ”‚   โ””โ”€โ”€ autonav_bringup.launch.py
    โ”‚   โ””โ”€โ”€ src
    โ”‚       โ”œโ”€โ”€ autonav_interface.cpp
    โ”‚       โ””โ”€โ”€ autonav_interface_backup.cpp
    โ”œโ”€โ”€ autonav_localization
    โ”‚   โ”œโ”€โ”€ CMakeLists.txt
    โ”‚   โ”œโ”€โ”€ config
    โ”‚   โ”‚   โ””โ”€โ”€ ekf.yaml
    โ”‚   โ””โ”€โ”€ launch
    โ”‚       โ””โ”€โ”€ ekf.launch.py
    โ”œโ”€โ”€ autonav_navigation
    โ”‚   โ”œโ”€โ”€ CMakeLists.txt
    โ”‚   โ”œโ”€โ”€ config
    โ”‚   โ”‚   โ”œโ”€โ”€ cartographer.lua
    โ”‚   โ”‚   โ”œโ”€โ”€ navigation.yaml
    โ”‚   โ”‚   โ””โ”€โ”€ slam.yaml
    โ”‚   โ”œโ”€โ”€ launch
    โ”‚   โ”‚   โ”œโ”€โ”€ cartographer.launch.py
    โ”‚   โ”‚   โ”œโ”€โ”€ navigation.launch.py
    โ”‚   โ”‚   โ”œโ”€โ”€ save_map.launch.py
    โ”‚   โ”‚   โ””โ”€โ”€ slam.launch.py
    โ”‚   โ”œโ”€โ”€ maps
    โ”‚   โ”‚   โ”œโ”€โ”€ L1012.pgm
    โ”‚   โ”‚   โ”œโ”€โ”€ L1012.yaml
    โ”‚   โ”‚   โ”œโ”€โ”€ L1012_test.pgm
    โ”‚   โ”‚   โ”œโ”€โ”€ L1012_test.yaml
    โ”‚   โ”‚   โ”œโ”€โ”€ world.pgm
    โ”‚   โ”‚   โ””โ”€โ”€ world.yaml
    โ”‚   โ””โ”€โ”€ rviz
    โ”‚       โ”œโ”€โ”€ cartographer.rviz
    โ”‚       โ”œโ”€โ”€ navigation.rviz
    โ”‚       โ””โ”€โ”€ slam.rviz
    โ”œโ”€โ”€ bno055
    โ”‚   โ”œโ”€โ”€ .github
    โ”‚   โ”‚   โ””โ”€โ”€ workflows
    โ”‚   โ”œโ”€โ”€ CHANGELOG.rst
    โ”‚   โ”œโ”€โ”€ LEGACY_LICENSE
    โ”‚   โ”œโ”€โ”€ bno055
    โ”‚   โ”‚   โ”œโ”€โ”€ bno055.py
    โ”‚   โ”‚   โ”œโ”€โ”€ connectors
    โ”‚   โ”‚   โ”œโ”€โ”€ error_handling
    โ”‚   โ”‚   โ”œโ”€โ”€ params
    โ”‚   โ”‚   โ”œโ”€โ”€ registers.py
    โ”‚   โ”‚   โ””โ”€โ”€ sensor
    โ”‚   โ”œโ”€โ”€ launch
    โ”‚   โ”‚   โ””โ”€โ”€ bno055.launch.py
    โ”‚   โ”œโ”€โ”€ requirements.txt
    โ”‚   โ”œโ”€โ”€ resource
    โ”‚   โ”‚   โ””โ”€โ”€ bno055
    โ”‚   โ””โ”€โ”€ setup.py
    โ”œโ”€โ”€ docker-compose.yml
    โ””โ”€โ”€ ydlidar_ros2_driver
        โ”œโ”€โ”€ CMakeLists.txt
        โ”œโ”€โ”€ LICENSE.txt
        โ”œโ”€โ”€ config
        โ”‚   โ””โ”€โ”€ ydlidar.rviz
        โ”œโ”€โ”€ launch
        โ”‚   โ”œโ”€โ”€ ydlidar.py
        โ”‚   โ”œโ”€โ”€ ydlidar_launch.py
        โ”‚   โ””โ”€โ”€ ydlidar_launch_view.py
        โ”œโ”€โ”€ params
        โ”‚   โ””โ”€โ”€ X4.yaml
        โ”œโ”€โ”€ src
        โ”‚   โ”œโ”€โ”€ ydlidar_ros2_driver_client.cpp
        โ”‚   โ””โ”€โ”€ ydlidar_ros2_driver_node.cpp
        โ””โ”€โ”€ startup
            โ””โ”€โ”€ initenv.sh

๐Ÿš€ Getting Started

Dependencies

Please ensure you have the following dependencies installed on your system:

- โ„น๏ธ Docker

Installation Link

๐Ÿ”ง Installation

  1. Clone the AutoNav repository:
mkdir ~/colcon_ws/src/ && cd ~/colcon_ws/src
git clone https://github.com/JatinPatil2003/AutoNav.git
  1. Change to the project directory:
cd AutoNav
  1. Pull Docker Images:
docker compose pull autonav micro_ros

๐Ÿค– Running AutoNav

Make sure you are in Project directory

cd colcon_ws/src/AutoNav
  • For Robot Bringup

    docker compose up micor_ros autonav
  • For Mapping

    docker compose up cartographer
    Mapping.mp4
  • For Saving Map

    docker compose run save_map
  • For Navigation

    docker compose run navigation
    Navigation.mp4
  • For rviz/rviz_cartographer/rviz_navigation on Host Computer

    xhost +local:
    docker compose up {rviz/rviz_cartographer/rviz_navigation}

๐Ÿงช Tests

โ–บ Give goal position using rviz form rviz docker conatiner

๐Ÿ›ฃ Project Roadmap

  • โ„น๏ธ Import urdf form fusion360
  • โ„น๏ธ Implement Mapping and Navigation in Simulation
  • โ„น๏ธ Implement Mapping and Naviagtion using Hardware
  • โ„น๏ธ Implement sensor fusion using IMU and Odometry
  • โ„น๏ธ Implement 3D-Mapping using depth camera

๐Ÿค Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines

Click to expand
  1. Fork the Repository: Start by forking the project repository to your GitHub account.
  2. Clone Locally: Clone the forked repository to your local machine using a Git client.
    git clone https://github.com/JatinPatil2003/AutoNav.git
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear and concise message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to GitHub: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.

Once your PR is reviewed and approved, it will be merged into the main branch.


๐Ÿ“„ License

This project is protected under the MIT License. For more details, refer to the LICENSE file.


๐Ÿ‘ Acknowledgments

Return


autonav's People

Contributors

jatinpatil2003 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.