This project involves the creation of an autonomous mobile robot equipped with a RealSense camera for advanced 3D navigation capabilities. The robot is built using URDF and incorporates a differential drive system. The entire simulation and implementation take place in Gazebo, a powerful robot simulation environment.
The robot's physical characteristics and geometry are described using URDF(Unified Robot Description Format), allowing for a detailed and accurate representation in the simulation environment.
The gmapping
package is utilized for laser-based Simultaneous Localization and Mapping (SLAM), enabling the robot to generate a 2D occupancy grid map of its surroundings. This technology is crucial for the robot's understanding and mapping of the environment.
The robot's localization within the mapped environment is achieved through the implementation of the Adaptive Monte Carlo Localization AMCL
algorithm. This ensures precise tracking of the robot's position as it moves through the environment.
To enable autonomous navigation, the Navigation Stack is employed. This sophisticated software stack facilitates the robot in autonomously navigating through its surroundings, avoiding obstacles, and reaching predefined target locations. The core of this stack is the move_base
package, which integrates with the A*
algorithm for path planning.
To enhance the perception of the environment, the project incorporates the use of a Spatio-Temporal Voxel Layer. This layer enables the representation of both spatial and temporal aspects of the environment in voxel form, providing a richer understanding of the surroundings.
- ROS (Robot Operating System)
- Gazebo
- skid steer drive
- hokuyo lidar
- RealSense camera drivers
- gmapping package
- AMCL package
- Navigation Stack
- A* algorithm implementation
- Voxel Layer
To use these robots, follow these installation steps:
- Creating a workspace:
$ mkdir -p ~/robot_ws/src
$ cd ~/robot_ws/src
- Clone this repository to your local machine:
git clone https://github.com/sherif1152/Autonomous_3DNavigation.git
- Install Intel RealSense Gazebo ROS plugin and model
git clone https://github.com/SyrianSpock/realsense_gazebo_plugin.git
- Install Spatio-Temporal Voxel Layer
sudo apt-get install ros-noetic-spatio-temporal-voxel-layer
- Build and Setup
$ cd ..
$ catkin_make
$ source devel/setup.bash
- Run robots in gazebo :
roslaunch description_pkg robot.launch
- Run Nav in RVIZ
roslaunch navigtion_pkg navigation.launch