autonomous-driving-turtlebot-with-reinforcement-learning
                                
                                
                                
                                    autonomous-driving-turtlebot-with-reinforcement-learning copied to clipboard
                            
                            
                            
                        Implementation of Q-learning algorithm and Feedback control for the mobile robot (turtlebot3_burger) in ROS.
autonomous-driving-turtlebot-with-reinforcement-learning
Implementation of Q-learning algorithm and Feedback control for the mobile robot (turtlebot3_burger) in ROS.
- Algorithm is implemented from scratch.
 - To run the code in gazebo simulator, export the model (burger) and roslaunch turtlebot3_world.launch file.
 - To run the code live on a physical TurtleBot, the ROS_MASTER_URI and ROS_HOSTNAME need to be set via the terminal by editing the ~/.bashrc script.
 - After setting up the environment, rosrun the desired nodes!
 - Link to video: https://www.youtube.com/watch?v=zw1BCfku1Dc&t=3s
 

Content
- Thesis -> master thesis and learning phase flow chart
 - Log_feedback_1, 2, 3 -> folders containing data and parameters from Feedback Control algorithm testing
 - Log_learning ... -> folder containing data and parameters from the learning phase, as well as the Q-table
 - rqt_graphs -> folder containing rqt graphs in ROS
 - scripts -> python scripts
- Control.py -> functions for robot control, Odometry message processing and setting robot's initial position
 - Lidar.py -> functions for Lidar message processing and discretization
 - Qlearning.py -> functions for Q-learning algorithm
 - Plots.py -> plotting the data from learning phase and Q-table
 - scan_node.py -> initializing the node for displaying the Lidar measurements and the current state of the agent
 - learning_node.py -> initializing the node for learning session
 - feedback_control_node.py -> initializing the node for applying Feedback Control algorithm
 - control_node.py -> initializing the node for applying the Q-learning algorithm combined with Feedback control
 - learning phase flow chart -> flow chart of the learning phase of the algorithm