Objective of the project work is to create a trajectory tracking controller for a uni-cycle robot. The robot is simulated by the ROS node turtlebot_kin_sim, using the sim_ode library, while the controller runs in the ROS node turtlebot_traj_ctrl.
The complete assignment is described in the file project-work-assigment.pdf, while the report is in the file report.pdf. The report contains the description of the project, the results and the plots of the simulations and the controller.
The full ROS workspace is in the folder src, that also includes the bags with the results of the simulations and the controller.
The project aimed to correctly implement both the controller and the simulator, to tune the parameters and to test the system.
The ros runtime was organized according to the following rqt_graph:
To launch the simulation that simulates step commands to v,
roslaunch turtlebot_simulator test_step.launch
Note: It is possible to select both time and amplitude of the steps, it is sufficient to change the parameters in the config file sim_ode.yaml.
To launch the simulation that simulates a complex trajectory, run:
roslaunch turtlebot_simulator test_trajectory.launch
Note: To select the shape of the test trajectory, you can change the value of the parameter /test_node/traj_type in the config file sim_ode.yaml.
To launch the simulation and the controller, run:
roslaunch turtlebot_traj_ctrl eight_traj_ctrl.launch
To plot the results regarding the simulation taken from my bag, run:
python3 src/turtlebot_simulator/script/plot_req.py src/turtlebot_simulator/bags/sim_test.bag
To save the above plots in a png file, run:
python3 src/turtlebot_simulator/script/save_plots.py src/turtlebot_simulator/bags/sim_test.bag
To plot the results of the controller, run:
python3 src/turtlebot_traj_ctrl/script/plot_req.py src/turtlebot_traj_ctrl/bags/trajctrl_test.bag
To save the above plots in a png file, run:
python3 src/turtlebot_traj_ctrl/script/save_plots.py src/turtlebot_traj_ctrl/bags/trajctrl_test.bag
The most significant plots are included in this archive, they are well commented in the report.


