Observer-based reference tracking feedback controller based on the standard LEGO Mindstorms EV3 Gyroboy segway robot build. Takes input from an Xbox One gamepad or keyboard.
This is joint work with Gareth Willetts and Jakub Kryczka.
The main Simulink files have been saved in MATLAB 2019a, and also exported to 2018a and 2017a formats.
To begin, refer to the file setup_guide.m on the GitHub repository.
Details of the project will appear in:
"LQG controller for the LEGO MINDSTORMS EV3
Gyroboy segway robot." by Timothy H. Hughes, Gareth H. Willetts and Jakub A. Kryczka. Submitted to the 2020 International Federation of Automatic Control World Congress.
KeyboardControl.slx: Simulink file for sending keyboard inputs to the Gyroboy robot.
setup.m: Matlab script for managing Simulink variants (for running on the EV3 or in simulation mode, and switching between pre-programmed and Xbox gamepad/keyboard input)
model.m: Matlab script with model parameters
gyroboy.mp4: Brief video of the Gyroboy robot in operation.
setup_guide.pdf: instructions for getting started.
MATLAB and Simulink files for various controllers are available in the following folders:
LQG_NPC: LQG controller.
LQG_WPC: LQG controller with pre-compensator.
LQG_IA_NPC: LQG controller plus integral action.
LQR_NPC: LQR controller
LQR_NPC_IA: LQR controller with integral action
OPP_NPC: LQR controller with observer designed using pole placement
PP_NPL: Pole placement controller
MATLAB and Simulink files for measuring model parameters are in the following folders:
MOTOR_TEST: for measuring LEGO EV3 motor parameters.
SENSOR_TEST: for quantifying the noise on the LEGO gyroscopic sensor.
Tim Hughes, Gareth Willetts and Jakub Kryczka (2019). LegoMindstormsEV3 (https://www.github.com/jakubk28/LegoMindstormsEV3), GitHub. Retrieved June 18, 2019.
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Versions that use the GitHub default branch cannot be downloaded
Added several controller designs to the GitHub repository
Added image (courtesy of Millie Papworth)
Edited description and added Acknowledgments