This project aims to address the challenge of navigating unmanned aerial vehicles (UAVs) within indoor environments where traditional GNSS signals are unavailable. The project team, in collaboration with Turkish Aerospace Industries (TAI), leverages LiDAR technology to approach this challenge, targeting high-precision 2D mapping and localization. The project also focuses on enabling semi-autonomous control of UAVs using the generated maps. The motivation behind this work stems from the need for UAVs to function indoors for various tasks such as mine investigation and cave exploration. By integrating a LiDAR sensor onto a drone, coupled with a Raspberry Pi for on-board data processing, the team developed a solution that dynamically generates 2D maps and transmits them to the ground station, where the user controls the drone. Through extensive testing in both simulated and real-world environments, the project has demonstrated the UAV's capability to produce accurate indoor maps, in addition to reliable semi-autonomous control.
Website: https://sites.google.com/view/lidrone
Make sure you've installed ROS and Gazebo on your systems.
Additionally, you have to install the following packages:
sudo apt-get update
sudo apt-get install ros-melodic-noetic-ros-pkgs ros-melodic-noetic-ros-control ros-noetic-ros-control ros-noetic-ros-controllers
sudo apt-get install ros-noetic-joint-state-controller ros-noetic-effort-controllers ros-noetic-position-controllers
Open a terminal.
- Initiate a workspace in your home directory.
mkdir -p ~/lidrone_ws/src
- Clone this github repo to your src folder.
git clone https://github.com/CankutBoraTuncer/LIDRONE.git
- Build your workspace.
cd ~/lidrone_ws/src
- Add this workspace to your linux environment by sourcing the setup file to .bashrc.
echo "source ~/lidrone_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
- There are 5 different maps, you can launch amongs those 5.
roslaunch lidrone room1.launch
- To control the drone, launch the gui.py.
rosrun lidrone gui.py