Implementation of a Neural network controller for ROS based simulation of pi_robot
Simply clone the repo, compile and make sure you've installed the prerequisites and you're all ready to go.
- ROS Kinetic
- Gazebo7 - have not tested for compatibility with later versions of Gazebo.
Clone the repo into a catkin_workspace. Create workspace using the following commands.
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
Once cloned compile using the following commands
cd ~/catkin_ws
catkin_make
source devel/setup.bash
To launch the simulation launch the main.launch file using the following command
roslaunch pi_robot_pkg main.launch
To launch the controllers launch the controllers.launch file using the following command
roslaunch pi_robot_pkg controllers.launch
This project is my implementation of a neural network controller for the ROS based simulation of pi_robot. Currently neural network based control is implemented only for the head_pan_joint.
The training data for the neural network is generated by running the simulation using a effort joint_position_controller with PID control. The collected parameters are the current position, current velocity, target position and target velocity. The task of the network is to predict values for the commanded effort used to control the joint.
The neural network is built using keras library. The weights of the trained network are stored as a text file that is read by the C++ plugin during simulation.
This project is licensed under the MIT License - see the LICENSE file for details