Robust Nonlinear Trajectory Tracking of a Mobile Robot
The goal of this project is to make a mobile robot follow a planned path accurately, even when reality gets in the way: wind, pushes, wheel slip, sensor noise or an imperfect model. A robust nonlinear controller is tested first in simulation, then on a real TurtleBot3, to measure how well the robot stays on its path and recovers after a disturbance.
Done
- Sliding mode controller of Rehman et al. (2025) reproduced: inconsistencies found in the paper’s printed equations, and a control law consistent with its proof re-derived.
- Gazebo simulation with a reproducible disturbance protocol (model errors, delay, sensor noise, wind, pushes, wheel slip): 1.4 mm RMSE without disturbance, about 2 cm peaks under 15 N pushes, and, under a steady 5 N wind with the paper’s gains, a deviation peaking at 21 cm and back to 1.5 cm by the end of the run, while the wind keeps blowing.
- Deployment on the real robot, with motor identification (about 250 ms loop delay), safety stops and a velocity watchdog: figure-eight tracked with 8 to 14 mm RMSE over 5 runs with the tuned controller (25 to 28 mm with the paper’s gains), as measured by wheel odometry.
In progress
- Measuring slips on the real robot with LiDAR SLAM, since wheel odometry cannot see them: the LiDAR pose is still being reconciled with the odometry.
Next steps
- Comparison campaign against a classical flatness-based SMC and the Kanayama law, in simulation and on the real robot (IAE, ISE, RMSE, control effort).
Technologies: ROS 2 Jazzy · Gazebo Harmonic · TurtleBot3 · Sliding mode control · slam_toolbox · Python