In this project, I have implemented a working Kinematic Model and Dynamic Model. All model parameters are extracted from a CSV and can be changed based on your model. The input to the model is a fifth order (quintic) position trajectory that is generated from a MATLAB script. The Models can be found in this paper. The dynamic model is represented as a State-Space Model and can be used for implementung control strategies. Multiple control strategies are implemented in here. You will simply have to change the State-Space Model to implement the control strategies.
C++
MATLAB
IDE: VS Code
(Any IDE of your choice can be used)
3rd party libraries:
- Eigen 3.4.0
-
Kinematic Model:
The paper derives a Kinematic Model that transforms the position trajectory from World Frame to Robot Frame and then maps it to wheel velocities. A C++ implementation of the derived model is provided. -
Dynamic Model:
A State-Space representation of the Dynamic Model is implemented in C++.
Step 1: The parameters.csv file contains all the model parameters. You can change these as per your model.
Step 2: The velocityTraj.csv contains velocity trajectories in the world frame. You can add any trajectory that you need to follow.
Step 3: Run the main.cpp file.
Step 4: You can check the output robot acceleration trajectories in the output.csv files. We get these trajectories fro the state space model.