This project describes autonmous navigation using q learning for indoor environment divided into 10x10 grid. Further the simulation is performed on turtlebot in gazebo ROS
The code is implemented in Python and has the following Dependency :
- Python 3
- Gazebo 6
- ROS Kinetic distribution
- Turtlebot Gazebo kinetic package
Create a folder in which you would like to clone the project repository.
Execute the following command: git clone https://github.com/jkvasan7692/qlearning_turtlebot_indoor.git
Go to the codes folder and execute the following command: \ catkin build
The project is organized as ROS package that can be downloaded, built and executed using ROS command The project directory structure is as follows:
- codes - Contains the source code Files -- indoor_qlearning - ROS package -- src : The source files as explained below
- pointRobot.py - Point Robot Simulator class. Simulates the point robot behavior with 4 connected action space.
- turtlebotController.py - Controller Source code of the turtlebot controller module. Its functionality is to control the turtlebot in the simulation environment based on the sensor input and actuator output
- qLearningModule.py - Q learning module source code that predicts the action based on Q values. Q table has been used for this module
- Report.pdf - Description of the project, approach and the system implementation along with the results
- Open a terminal and goto codes folder.
- Source the indoor_qlearning ROS package: source devel/setup.bash
- Execute the following command: roslaunch indoor_qlearning qLearnPointRobot.launch
The program executes with the optimal policy being generated for a 10x10 gid. At the end of the execution, the path generation visualization is shown.
- Open a terminal and goto codes folder.
- Source the indoor_qlearning ROS package: source devel/setup.bash
- Execute the following command: roslaunch indoor_qlearning qlearn.launch
The program executes showing the win percentage Results
Janakiraman Kirthivasan - Initial work - jkvasan7692 Rama Prashanth - Initial work - ramaprashanth
The results of the project can be found in the following link: https://drive.google.com/open?id=1BX9xXawbQ8oi-33Z9jE6Ps7tH0FSTobX