This ROS package is a simple practice for controlling the TurtleBot3 to move in an elliptic path
The first step is to make a workspace directory
mkdir -p catkin_ws/src
cd catkin_ws/src
source /opt/ros/noetic/setup.bash
catkin_init_workspace
then clone the repository into the src directory
git clone https://github.com/aliy98/ROS_TurtleBot3_PID_Controller.git
now make the ros package using caktkin_make command
cd ..
catkin_make
the package would be up and and running using the command below
source devel/setup.bash
open another terminal to choose the turtlebot type
echo 'export TURTLEBOT3_MODEL=waffle' >> ~/.bashrc
now the simulation process can be done in gazebo
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
you can also use rviz to gain a better understanding of the path planning and robot footprint so open another terminal and run this command
roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch
in the first terminal run the source files for visualising the robot footprint
rosrun pi_controller foot_print.py
make sure you have added the path topic in rviz envoirenment
open another terminal to run controller.py which is for the whole control and path planning process. but before running the package make sure that you have simple pid module installed on your os
pip install simple_pid
source catkin_ws/devel/setup.bash
rosrun pi_contoller controller.py
the package also plots the path planning error during the simulation time