Velocity-based dynamic model and adaptive controller for differential steered mobile robot

Blocks for simulation of the differential steered (unicycle) mobile robot. Controllers included!
6.3K Downloads
Updated 4 Nov 2017

View License

These files allow the simulation of a differential steered (unicycle-like) mobile robot considering its complete dynamic model. The dynamic model here adopted is based on velocities (not torques), which makes it easier to integrate with existing mobile robot controllers that generate references for linear and angular velocities.
Although not required, the blocks were built to be compatible with Peter Corke's Robotics Toolbox, so the user can make use of the toolbox functions.
Sets of dynamic parameters are available for the following robots:
- Pioneer 3-DX with Sick LASER sensor;
- Pioneer 3-DX without LASER sensor;
- Pioneer 2 without on-board computer (no LASER sensor);
- Pioneer 2 with on-board computer (no LASER sensor);
- Robotic wheelchair carrying a 55kg person;
- Robotic wheelchair carrying a 125kg person;
- Khepera III (LAUT, 2011);
- RobuLAB-10 (SHOJAEI et al., 2011).

The files include two libraries:

- "DiffSteer_model.slx": contains the kinematic and dynamic blocks of the differential-drive mobile robot.

- "Controllers.slx": contains the following blocks:
a) trajectory tracking kinematic controller;
b) dynamic compensation controller 1;
c) dynamic compensation controller 2;
d) dynamic parameters estimator (for adaptive controllers);
e) trajectory generator;
f) performance calculator (IAE, ITAE, ISE, ITSE and energy indexes).

Four Simulink systems are provided as examples:

1. "kinematic_controller_system.slx": implements a simple trajectory tracking controller using both kinematic and dynamic blocks of the robot.

2. "dynamic_controller_system.slx": implements a more complex system that includes an adaptive dynamic compensation controller and the trajectory tracking controller with noisy sensor measurements.

Note: After running "kinematic_controller_system.slx" or "dynamic_controller_system.slx" simulations you can check the results running the included script "plot_results.m".

3. "sl_lanechange_unicycle.slx": implements the same system as the Robotics Toolbox "sl_lanechange", but using the kinematic model of the differential steered mobile robot.

4. "sl_lanechange_unicycle_dynamics.slx": implements the same system as the Robotics Toolbox "sl_lanechange", but using the kinematic and the dynamic models of the differential steered mobile robot.

Also, the following scripts are provided:

1. "sim_kin_controller.m": uses the "kinematic_controller_system.slx" system to simulate a kinematic trajectory tracking controller acting on a mobile robot (complete model).

2. "sim_dyn_controller.m": uses the "dynamic_controller_system.slx" system to simulate an adaptive dynamic compensation controller operating with the trajectory tracking controller acting on a mobile robot (complete model).

3. "plot_results.m" and "plot_results_kin.m": present the results of the simulations.

All blocks were tested in MATLAB R2012b, R2013a, R2014b, R2016a and 2017a, all under Windows.

Enjoy!

If you use this toolbox, please cite the following paper:

MARTINS, F. N., Sarcinelli-Filho, M. and Carelli, R.
A Velocity-Based Dynamic Model and Its Properties for Differential Drive Mobile Robots.
Journal of Intelligent & Robotic Systems, 2016.
http://rdcu.be/npvw

@article{martins2017velocity,
title={A Velocity-Based Dynamic Model and Its Properties for Differential Drive Mobile Robots},
author={Martins, Felipe N and Sarcinelli-Filho, M{\'a}rio and Carelli, Ricardo},
journal={Journal of Intelligent \& Robotic Systems},
volume={85},
number={2},
pages={277--292},
year={2017},
publisher={Springer}
}

Author: Felipe Nascimento Martins
https://about.me/felipe.n.martins

Based on a prior work by Felipe Nascimento Martins and Wanderley Cardoso Celeste
UFES - Federal University of Espirito Santo, BRAZIL
2006--2008

For more information, please refer to:

MARTINS, F. N., Celeste, W. C., Carelli, R., Sarcinelli-Filho, M. and
Bastos-Filho, T. F. An Adaptive Dynamic Controller for Autonomous Mobile Robot
Trajectory Tracking. Control Engineering Practice, v. 16, p. 1354–1363, 2008.
http://www.sciencedirect.com/science/article/pii/S0967066108000373

MARTINS, F. N. Modelagem e Compensacao da Dinamica de Robos Moveis e sua
Aplicacao em Controle de Formacao. Tese de Doutorado em Engenharia Eletrica - Automacao.
Universidade Federal do Espírito Santo, 2009.

LAUT, Jeffrey. A Dynamic Parameter Identification Method for Migrating Control Strategies
Between Heterogeneous Wheeled Mobile Robots. M.Sc. Diss. Worcester Polytechnic Institute, 2011.
https://www.semanticscholar.org/paper/A-Dynamic-Parameter-Identification-Method-for-Migr-Laut/000b0647483dad86a7cb6c51c25cff0e3219b633

SHOJAEI, Khoshnam et al. Adaptive trajectory tracking control of a differential drive wheeled mobile robot. Robotica, v. 29, n. 03, p. 391-402, 2011.

Cite As

Felipe Martins (2024). Velocity-based dynamic model and adaptive controller for differential steered mobile robot (https://www.mathworks.com/matlabcentral/fileexchange/44850-velocity-based-dynamic-model-and-adaptive-controller-for-differential-steered-mobile-robot), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2017a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired: calculateEllipse(x, y, a, b, angle, steps)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.42

Reference included on the description.

1.41.0.0

Toolbox description update only.

1.4.0.0

- Included dynamic parameters of the RobuLAB-10 (SHOJAEI et al., 2011);
- Correction on the dynamic model block;
- New script files to assist simulations.
Update on description text, only.

1.3.0.0

Content offered as a toolbox (.mltbx file) automatically created by the Mathworks website. I didn't test it because I still don't have access to MATLAB 2014b.

1.2.0.0

Included the dynamic parameters for the Khepera III mobile robot (identified by Jeffrey Laut).

1.1.0.0

Small corrections on the read_me.txt file.

1.0.0.0