Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Development 20.11.2024 #11

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5a886cf
New values for STM
marcinpaluch1994 Aug 22, 2024
14deffa
Merge remote-tracking branch 'origin/master' into Development
marcinpaluch1994 Oct 10, 2024
5c3fc3d
Making DataManager from import specific to CartPole
marcinpaluch1994 Oct 23, 2024
3ef3d7c
Moving DataManager to SI_Toolkit to make it available to Cartpole and…
marcinpaluch1994 Oct 23, 2024
ff19d09
refs
marcinpaluch1994 Nov 9, 2024
4b375f0
New logic for offset angle
marcinpaluch1994 Nov 9, 2024
aafd23d
refs
marcinpaluch1994 Nov 9, 2024
db2e2fa
The variable parameters have now a dedicated class as their container.
marcinpaluch1994 Nov 9, 2024
521295d
angle offset not changing as default.
marcinpaluch1994 Nov 9, 2024
7313b00
Getting reward from mpc cost function
marcinpaluch1994 Nov 9, 2024
0ae33fd
Moving filters to separate file mostly to reduce the amount of code i…
marcinpaluch1994 Nov 10, 2024
fc5c9b9
Remaining things
marcinpaluch1994 Nov 10, 2024
ffc3b93
New logic for vertical angle offset and standarizing the naming
marcinpaluch1994 Nov 11, 2024
fdfb454
Changing the meaning of L! Now it is full pole length. Half pole leng…
marcinpaluch1994 Nov 12, 2024
0669876
Updated logic to vary L parameter.
marcinpaluch1994 Nov 12, 2024
eadf45f
Settings for experiments
marcinpaluch1994 Nov 12, 2024
f678cff
Tool for visualization of adaptive control.
marcinpaluch1994 Nov 19, 2024
4c3c5b4
Improving legend
marcinpaluch1994 Nov 19, 2024
8c2761a
Slider to zoom on time axis
marcinpaluch1994 Nov 19, 2024
9b6ee5e
Reference and different clipping
marcinpaluch1994 Nov 19, 2024
63b3dc8
Added sum of squared differences
marcinpaluch1994 Nov 19, 2024
2094345
Fixing things related to new computational library design
marcinpaluch1994 Nov 19, 2024
25c2e05
refs
marcinpaluch1994 Nov 20, 2024
970635d
Adding option to vary pole mass
marcinpaluch1994 Nov 16, 2024
eaebff7
Few remaining things from experiments branch not got with cherry-picks.
marcinpaluch1994 Nov 20, 2024
99e4811
Correction regarding computation library
marcinpaluch1994 Nov 20, 2024
b96d259
Moving code for plots for controllers to SI_Tookit_ASF
marcinpaluch1994 Nov 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Driver/CartPoleSimulation
Submodule CartPoleSimulation updated 74 files
+1 −1 .gitignore
+82 −92 CartPole/__init__.py
+4 −4 CartPole/cartpole_drawer.py
+16 −14 CartPole/cartpole_equations.py
+8 −3 CartPole/cartpole_parameters.py
+52 −0 CartPole/controller_informer.py
+1 −0 CartPole/csv_logger.py
+1 −27 CartPole/data_generator.py
+0 −173 CartPole/data_manager.py
+122 −0 CartPole/parameter_updater.py
+1 −1 Control_Toolkit
+1 −1 Control_Toolkit_ASF/Controllers/controller_do_mpc.py
+1 −1 Control_Toolkit_ASF/Controllers/controller_do_mpc_discrete.py
+1 −1 Control_Toolkit_ASF/Controllers/controller_lqr.py
+1 −1 Control_Toolkit_ASF/Controllers/controller_mppi_cartpole.py
+1 −1 Control_Toolkit_ASF/Controllers/controller_secloc.py
+4 −4 Control_Toolkit_ASF/config_controllers.yml
+45 −0 Experiment_Recordings/rename_files.py
+7 −7 GUI/_CartPoleGUI_GuiActions.py
+12 −12 GUI/_CartPoleGUI_GuiLayout.py
+0 −278 GymlikeCartPole/CartPoleEnv_LTC.py
+216 −0 GymlikeCartPole/Cartpole_RL/Cartpole_OpenAI.py
+89 −0 GymlikeCartPole/Cartpole_RL/Cartpole_Sensors.py
+0 −0 GymlikeCartPole/Cartpole_RL/__init__.py
+92 −0 GymlikeCartPole/Cartpole_RL/_cartpole_rl_template.py
+55 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/C_implementation/network.c
+21 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/C_implementation/network.h
+18 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/C_implementation/network_parameters.c
+ GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/Dense-7IN-32H1-32H2-1OUT-0.keras
+62 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/Dense-7IN-32H1-32H2-1OUT-0.txt
+49 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/NI_2024-08-17_22-23-01.csv
+178 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/Training.py
+2 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/checkpoint
+ GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/ckpt.ckpt.data-00000-of-00001
+ GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/ckpt.ckpt.index
+109 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/config_training.yml
+1 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/denormalization_vec_A.csv
+1 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/denormalization_vec_B.csv
+61 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/log_training.csv
+1 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/normalization_vec_a.csv
+1 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/normalization_vec_b.csv
+258 −0 GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/terminal_output.txt
+ GymlikeCartPole/Dense-7IN-32H1-32H2-1OUT-0/training_curve.png
+206 −0 GymlikeCartPole/EnvGym/CartpoleEnv.py
+602 −0 GymlikeCartPole/EnvGym/OriginalCartPoleOpenAI.py
+0 −0 GymlikeCartPole/EnvGym/__init__.py
+6 −0 GymlikeCartPole/EnvGym/state_utils.py
+61 −0 GymlikeCartPole/Run_Controller_with_Gym.py
+63 −0 GymlikeCartPole/Train_RL_Cartpole.py
+0 −4 GymlikeCartPole/config_gym.yml
+151 −0 GymlikeCartPole/minimal_requirements.txt
+47 −0 GymlikeCartPole/mpc_cost_function.py
+0 −29 GymlikeCartPole/play_gym.py
+1 −1 SI_Toolkit
+754 −0 SI_Toolkit_ASF/PCA/AntiReference/antiref.csv
+10,890 −0 SI_Toolkit_ASF/PCA/Experiment/Stabilization_at_3_point_rotating_angle_offset.csv
+118 −0 SI_Toolkit_ASF/PCA/PCA_on_hidden_states.py
+ SI_Toolkit_ASF/PCA/PrecomputedPCA/pca_model.joblib
+208 −0 SI_Toolkit_ASF/PCA/visualization_pca.py
+10 −6 SI_Toolkit_ASF/Run/PreprocessData_Add_Control_Along_Trajectories.py
+4 −2 SI_Toolkit_ASF/Run/PreprocessData_Add_Fake_Trajectories.py
+3 −3 SI_Toolkit_ASF/Run/PreprocessData_Add_Shifted_Columns.py
+1 −1 SI_Toolkit_ASF/ToolkitCustomization/Modules/ODE_module.py
+62 −12 SI_Toolkit_ASF/ToolkitCustomization/data_augmentation.py
+10 −4 SI_Toolkit_ASF/ToolkitCustomization/predictors_customization.py
+4 −4 SI_Toolkit_ASF/ToolkitCustomization/predictors_customization_v0.py
+6 −2 SI_Toolkit_ASF/ToolkitCustomization/preprocess_data.py
+12 −7 SI_Toolkit_ASF/config_training.yml
+32 −9 cartpole_physical_parameters.yml
+1 −9 config_data_gen.yml
+1 −1 config_gui.yml
+18 −0 others/EulerClusterScripts/ControllerAlongTrajectories.sh
+2 −2 others/EulerClusterScripts/ParallelDataGeneration.sh
+3 −2 others/Find_better_M.py
2 changes: 1 addition & 1 deletion Driver/DriverFunctions/cartpole_simulator_batched.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class cartpole_simulator_batched(EnvironmentBatched, CartPoleEnv_LTC):
num_states = 6

def __init__(
self, batch_size=1, computation_lib=NumpyLibrary, render_mode="human", **kwargs
self, batch_size=1, computation_lib=NumpyLibrary(), render_mode="human", **kwargs
):
self._batch_size = batch_size
self._actuator_noise = np.array(kwargs["actuator_noise"], dtype=np.float32)
Expand Down
6 changes: 3 additions & 3 deletions Driver/DriverFunctions/main_logging_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
from CartPoleSimulation.CartPole.state_utilities import ANGLE_IDX, ANGLE_COS_IDX, ANGLE_SIN_IDX, ANGLED_IDX, \
POSITION_IDX, POSITIOND_IDX

from CartPoleSimulation.CartPole.data_manager import DataManager
from CartPoleSimulation.CartPole.csv_logger import create_csv_file_name
from SI_Toolkit.General.data_manager import DataManager
from CartPoleSimulation.CartPole.csv_logger import create_csv_file_name, create_csv_file
from DriverFunctions.csv_helpers import create_csv_header, create_csv_title

from globals import (
Expand Down Expand Up @@ -67,7 +67,7 @@ def __init__(self, driver):
self.data_to_save_measurement = {}
self.data_to_save_controller = {}

self.data_manager = DataManager()
self.data_manager = DataManager(create_csv_file)

self.csv_name = None
self.recording_length = np.inf
Expand Down
4 changes: 2 additions & 2 deletions Driver/globals.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@
# The other two shift (additive) to account for friction indep. of speed (separate for pos and neg Q)
# Only applied if CORRECT_MOTOR_DYNAMICS is True
MOTOR_CORRECTION_ORIGINAL = (0.63855139, 0.11653139, 0.11653139)
MOTOR_CORRECTION_POLOLU = (0.595228, 0.0323188, 0.0385016)
MOTOR_CORRECTION_POLOLU = (0.5733488, 0.0257380, 0.0258429)
# The 12-bit ADC has a range of 4096 units
# However due to potentiometer dead angle these 4096 units are mapped on less than full circle
# The full circle in adc units was determined
# by readout difference between up and down position on the side not including dead angle
ANGLE_360_DEG_IN_ADC_UNITS = 4271.34
ANGLE_HANGING_POLOLU = 1028.579 # Value from sensor when pendulum is at stable equilibrium point
ANGLE_HANGING_POLOLU = 1000 # Value from sensor when pendulum is at stable equilibrium point
ANGLE_HANGING_ORIGINAL = 910.0 # Value from sensor when pendulum is at stable equilibrium point
POSITION_ENCODER_RANGE = 4164 # This is an empirical approximation
elif CHIP == 'ZYNQ':
Expand Down