ROS implementation of trajectory planning and tracking for non-holonomic mobile robots. The algorithms were implemented from chapter 11 in Robotics Modelling, Planning and Control by Siciliano et al. The code was tested on TurtleBot3 Burger, both in simulator and on a real robot. All formulaes and figures below are from chapter 11. Please see the full report for further explanation, report.pdf.
Turtlebot was simulated in gazebo using the environment from simulate-in-various-worlds tutorial. Although I mainly used turtlebot3_fake with keyboard teleop for manual control.
The "Planning via Cartesian polynomials " cubic polynomial method was implemented from chapter 11.5.3 Path Planning in the book Robotis Modelling,Planning and Control.
To make the path into a trajectory a timing law is needed. From chapter "11.5.4 Trajectory Planning" a timing law was implemented. This allowed the robot to complete the the trajectory within a given time.
From chapter "11.6.1 Trajectory Tracking" a control algorithm was implemented that made the mobile robot track the trajectory. In other words, based on the planned trajectory, reference speed and angle were calculated and published to the robot.
See the written report report.pdf or Robotis Modelling,Planning and Control by Siciliano et al. to better understand the above formulae.
How to run simulator:
roslaunch turtlebot3_fake turtlebot3_fake.launch
How to run trajectory tracker:
rosrun traj_gen traj_gen.py 5 10 10 #T=5, ki=10, kf=10




