SLAMBot is a robotic system designed to navigate and map its environment using Simultaneous Localization and Mapping (SLAM) techniques. This project integrates various components, including a time-of-flight laser distance sensor, probabilistic occupancy grids, and advanced pathfinding algorithms, all managed within the Robot Operating System (ROS2).
- Real-time Mapping: Utilizes probabilistic occupancy grids for accurate environmental mapping.
- Pathfinding: Implements the A* algorithm for efficient navigation.
- Modular Design: Easily replace or upgrade components with a plug-and-play approach.
- ROS2 Integration: Fully integrated with ROS2 for seamless communication and control.
To set up the SLAMBot ROS project, follow these steps:
-
Clone the Repository:
git clone https://github.com/NexusAurora/SLAMBot_Ros.git cd SLAMBot_Ros
-
Install Dependencies: Navigate to the
src/lidar_navigation
directory and install the required Python packages:cd src/lidar_navigation pip install -r requirements.txt
-
Build the Package: From the root of the workspace, build the package using:
colcon build
-
Source the Setup File: After building, source the setup file:
source install/setup.bash
To run the SLAMBot, launch the ROS2 nodes as follows:
-
Launch the Navigation Node:
ros2 run lidar_navigation navigation
-
Launch the Pathfinding Node:
ros2 run lidar_navigation path_finder
-
Visualize in RViz: Open RViz to visualize the robot's mapping and navigation:
rviz2 -d rviz_config.rviz
SLAMBot_Ros/
│ rosgraph.png
│ rviz_config.rviz
│ slam.code-workspace
│
└───src
└───lidar_navigation
│ package.xml
│ setup.cfg
│ setup.py
│
├───lidar_navigation
│ │ calibration_model.pth
│ │ driver.py
│ │ movement_weights.npy
│ │ navigation.py
│ │ path_finder.py
│ │ requirements.txt
│ │ settings.py
│ │ update_grids.py
│ │ __init__.py
│ │
│ ├───utilities
│ │ │ model.py
│ │ │ movement.py
│ │ │ openCV_display.py
│ │ │ particle_filter.py
│ │ │ particle_filter_manual.py
│ │ │ path_finding.py
│ │ │ plotter.py
│ │ │
│ │ └───__pycache__
│ │ model.cpython-310.pyc
│ │ movement.cpython-310.pyc
│ │ particle_filter.cpython-310.pyc
│ │ path_finding.cpython-310.pyc
│ │ plotter.cpython-310.pyc
│ │
│ └───__pycache__
│ settings.cpython-310.pyc
│
├───resource
│ lidar_navigation
│
└───test
test_copyright.py
test_flake8.py
test_pep257.py
Contributions are welcome! If you have suggestions for improvements or new features, please fork the repository and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.