rcognita.controllers.CtrlNominal3WRobot¶
- class rcognita.controllers.CtrlNominal3WRobot(m, I, ctrl_gain=10, ctrl_bnds=[], t0=0, sampling_time=0.1)¶
This is a class of nominal controllers for 3-wheel robots used for benchmarking of other controllers.
The controller is sampled.
For a 3-wheel robot with dynamical pushing force and steering torque (a.k.a. ENDI - extended non-holonomic double integrator) [1], we use here a controller designed by non-smooth backstepping (read more in [2], [3]).
- m, I
Mass and moment of inertia around vertical axis of the robot.
- Type
: numbers
- ctrl_gain¶
Controller gain.
- Type
: number
- t0¶
Initial value of the controller’s internal clock.
- Type
: number
- sampling_time¶
Controller’s sampling time (in seconds).
- Type
: number
References
- 1(1,2)
W. Abbasi, F. urRehman, and I. Shah. “Backstepping based nonlinear adaptive control for the extended nonholonomic double integrator”. In: Kybernetika 53.4 (2017), pp. 578–594
- 2(1,2)
Matsumoto, R., Nakamura, H., Satoh, Y., and Kimura, S. (2015). Position control of two-wheeled mobile robot via semiconcave function backstepping. In 2015 IEEE Conference on Control Applications (CCA), 882–887
- 3
Osinenko, Pavel, Patrick Schmidt, and Stefan Streif. “Nonsmooth stabilization and its computational aspects.” arXiv preprint arXiv:2006.14013 (2020)
- __init__(m, I, ctrl_gain=10, ctrl_bnds=[], t0=0, sampling_time=0.1)¶
Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
(m, I[, ctrl_gain, ctrl_bnds, t0, …])Initialize self.
compute_LF
(observation)compute_action
(t, observation)compute_action_vanila
(observation)Same as
compute_action()
, but without invoking the internal clock.reset
(t0)Resets controller for use in multi-episode simulation.