From dc83839a3b4f42afd3f336221d463920bbc7a874 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:25:23 +0000 Subject: [PATCH] Updated Documentation --- docs/generated/double_pendulum.analysis.html | 8 ++++++-- docs/searchindex.js | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/generated/double_pendulum.analysis.html b/docs/generated/double_pendulum.analysis.html index 9da9c455..334af684 100644 --- a/docs/generated/double_pendulum.analysis.html +++ b/docs/generated/double_pendulum.analysis.html @@ -113,7 +113,7 @@

Submodules

double_pendulum.analysis.benchmark

-class double_pendulum.analysis.benchmark.benchmarker(controller, x0, dt, t_final, goal, epsilon=[0.1, 0.1, 1.0, 1.0], check_only_final_state=False, integrator='runge_kutta')
+class double_pendulum.analysis.benchmark.benchmarker(controller, x0, dt, t_final, goal, epsilon=[0.1, 0.1, 1.0, 1.0], check_only_final_state=False, goal_check_method='epsilon', goal_check_method_height=0.9, integrator='runge_kutta')

Bases: object

@@ -453,7 +453,7 @@

Submodules
-double_pendulum.analysis.leaderboard.leaderboard_scores(data_paths, save_to, mpar, weights={'energy': 0.0, 'integ_tau': 0.1, 'max_tau': 0.1, 'swingup_time': 0.2, 'tau_cost': 0.0, 'tau_smoothness': 0.6}, normalize={'energy': 1.0, 'integ_tau': 10.0, 'max_tau': 1.0, 'swingup_time': 10.0, 'tau_cost': 10.0, 'tau_smoothness': 1.0}, link_base='', simulation=True)
+double_pendulum.analysis.leaderboard.leaderboard_scores(data_paths, save_to, mpar, weights={'energy': 0.0, 'integ_tau': 0.1, 'max_tau': 0.1, 'swingup_time': 0.2, 'tau_cost': 0.0, 'tau_smoothness': 0.6, 'velocity_cost': 0.2}, normalize={'energy': 1.0, 'integ_tau': 10.0, 'max_tau': 1.0, 'swingup_time': 10.0, 'tau_cost': 10.0, 'tau_smoothness': 1.0, 'velocity_cost': 1000}, link_base='', simulation=True, score_version='v1')

leaderboard_scores. Compute leaderboard scores from data_dictionaries which will be loaded from data_paths. Data can be either from simulation or experiments (but for @@ -503,6 +503,10 @@

Submodulesstring

base-link for hosting data. Not needed for local execution

+
score_versionstring

which equation should be used for the score calculation +if set to something else than “v1”, “v2” will be used +default: “v1”

+

diff --git a/docs/searchindex.js b/docs/searchindex.js index b1ff9ddc..21100e56 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["control", "control.mpc", "control.mpc.ilqr", "control.policy", "control.policy.dqn", "control.policy.lqr", "control.policy.pfl", "control.policy.sac", "control.trajopt", "control.trajopt.dircol", "control.trajopt.ilqr", "control.trajstab", "control.trajstab.riccati", "control.trajstab.tvlqr", "dynamics", "generated/double_pendulum", "generated/double_pendulum.analysis", "generated/double_pendulum.controller", "generated/double_pendulum.controller.DQN", "generated/double_pendulum.controller.SAC", "generated/double_pendulum.controller.energy", "generated/double_pendulum.controller.friction_compensation", "generated/double_pendulum.controller.gamepad", "generated/double_pendulum.controller.gravity_compensation", "generated/double_pendulum.controller.ilqr", "generated/double_pendulum.controller.inverse_dynamics", "generated/double_pendulum.controller.lqr", "generated/double_pendulum.controller.lqr.roa", "generated/double_pendulum.controller.mcpilco", "generated/double_pendulum.controller.partial_feedback_linearization", "generated/double_pendulum.controller.pid", "generated/double_pendulum.controller.random_exploration", "generated/double_pendulum.controller.trajectory_following", "generated/double_pendulum.controller.tvlqr", "generated/double_pendulum.experiments", "generated/double_pendulum.filter", "generated/double_pendulum.model", "generated/double_pendulum.simulation", "generated/double_pendulum.system_identification", "generated/double_pendulum.trajectory_optimization", "generated/double_pendulum.trajectory_optimization.direct_collocation", "generated/double_pendulum.trajectory_optimization.ilqr", "generated/double_pendulum.utils", "hardware", "hardware.assembly", "hardware.bom", "hardware.electrical", "hardware.experiments", "hardware.motors", "hardware.motors.mjbots", "hardware.motors.tmotors", "hardware.testbench", "index", "installation", "leaderboard", "leaderboard.hardware", "leaderboard.robustness", "leaderboard.robustness.criteria", "leaderboard.simulation", "modules", "software_structure", "software_structure.controller", "software_structure.modelparameters", "software_structure.trajectorydata"], "filenames": ["control.rst", "control.mpc.rst", "control.mpc.ilqr.rst", "control.policy.rst", "control.policy.dqn.rst", "control.policy.lqr.rst", "control.policy.pfl.rst", "control.policy.sac.rst", "control.trajopt.rst", "control.trajopt.dircol.rst", "control.trajopt.ilqr.rst", "control.trajstab.rst", "control.trajstab.riccati.rst", "control.trajstab.tvlqr.rst", "dynamics.rst", "generated/double_pendulum.rst", "generated/double_pendulum.analysis.rst", "generated/double_pendulum.controller.rst", "generated/double_pendulum.controller.DQN.rst", "generated/double_pendulum.controller.SAC.rst", "generated/double_pendulum.controller.energy.rst", "generated/double_pendulum.controller.friction_compensation.rst", "generated/double_pendulum.controller.gamepad.rst", "generated/double_pendulum.controller.gravity_compensation.rst", "generated/double_pendulum.controller.ilqr.rst", "generated/double_pendulum.controller.inverse_dynamics.rst", "generated/double_pendulum.controller.lqr.rst", "generated/double_pendulum.controller.lqr.roa.rst", "generated/double_pendulum.controller.mcpilco.rst", "generated/double_pendulum.controller.partial_feedback_linearization.rst", "generated/double_pendulum.controller.pid.rst", "generated/double_pendulum.controller.random_exploration.rst", "generated/double_pendulum.controller.trajectory_following.rst", "generated/double_pendulum.controller.tvlqr.rst", "generated/double_pendulum.experiments.rst", "generated/double_pendulum.filter.rst", "generated/double_pendulum.model.rst", "generated/double_pendulum.simulation.rst", "generated/double_pendulum.system_identification.rst", "generated/double_pendulum.trajectory_optimization.rst", "generated/double_pendulum.trajectory_optimization.direct_collocation.rst", "generated/double_pendulum.trajectory_optimization.ilqr.rst", "generated/double_pendulum.utils.rst", "hardware.rst", "hardware.assembly.rst", "hardware.bom.rst", "hardware.electrical.rst", "hardware.experiments.rst", "hardware.motors.rst", "hardware.motors.mjbots.rst", "hardware.motors.tmotors.rst", "hardware.testbench.rst", "index.rst", "installation.rst", "leaderboard.rst", "leaderboard.hardware.rst", "leaderboard.robustness.rst", "leaderboard.robustness.criteria.rst", "leaderboard.simulation.rst", "modules.rst", "software_structure.rst", "software_structure.controller.rst", "software_structure.modelparameters.rst", "software_structure.trajectorydata.rst"], "titles": ["Control Methods", "Model Predictive Control (MPC)", "Iterative Linear Quadratic Regulator (iLQR) MPC", "Policy-based Control", "Deep-Q Learning (DQN)", "Linear Quadratic Regulator (LQR)", "Partial Feedback Linearization (PFL)", "Soft Actor Critic (SAC)", "Trajectory Optimization", "Direct Collocation", "Iterative Linear Quadratic Regulator (iLQR)", "Trajectory Stabilization", "Riccati Gains Stabilization", "Time Varying Linear Quadrativ Regulator (TVLQR)", "The Double Pendulum System", "double_pendulum", "double_pendulum.analysis", "double_pendulum.controller", "double_pendulum.controller.DQN", "double_pendulum.controller.SAC", "double_pendulum.controller.energy", "double_pendulum.controller.friction_compensation", "double_pendulum.controller.gamepad", "double_pendulum.controller.gravity_compensation", "double_pendulum.controller.ilqr", "double_pendulum.controller.inverse_dynamics", "double_pendulum.controller.lqr", "double_pendulum.controller.lqr.roa", "double_pendulum.controller.mcpilco", "double_pendulum.controller.partial_feedback_linearization", "double_pendulum.controller.pid", "double_pendulum.controller.random_exploration", "double_pendulum.controller.trajectory_following", "double_pendulum.controller.tvlqr", "double_pendulum.experiments", "double_pendulum.filter", "double_pendulum.model", "double_pendulum.simulation", "double_pendulum.system_identification", "double_pendulum.trajectory_optimization", "double_pendulum.trajectory_optimization.direct_collocation", "double_pendulum.trajectory_optimization.ilqr", "double_pendulum.utils", "Hardware", "Hardware Assembly", "Bill of Materials", "Electrical Setup", "Safety Notes", "Motors", "MJBots", "T-Motor (AK-80-6)", "Testbench Description", "Welcome to Double Pendulum\u2019s documentation!", "Installation", "Leaderboards", "Real System Leaderboard", "Robustness Leaderboard", "Controller Robustness", "Simulation Leaderboard", "<no title>", "Repository Structure", "Controller Class", "Model Parameters", "Trajectory data"], "terms": {"There": [0, 60, 63], "ar": [0, 1, 2, 7, 8, 10, 11, 14, 24, 26, 30, 32, 33, 36, 37, 41, 45, 46, 50, 51, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "mani": [0, 46, 57, 61], "doubl": [0, 4, 5, 6, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 43, 44, 45, 46, 47, 48, 50, 51, 53, 56, 58, 59, 61, 62], "pendulum": [0, 4, 5, 6, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 43, 44, 45, 46, 47, 48, 50, 51, 53, 56, 58, 59, 61, 62], "acrobot": [0, 4, 6, 14, 20, 26, 29, 33, 36, 40, 41, 52, 55, 56, 58], "pendubot": [0, 4, 6, 14, 26, 29, 33, 36, 40, 41, 52, 55, 56, 58], "system": [0, 3, 5, 6, 7, 8, 10, 11, 29, 34, 36, 40, 43, 46, 47, 50, 52, 54, 57], "here": [0, 46, 48, 50, 51, 55, 56, 57, 58], "we": [0, 5, 13, 14, 42, 46, 53, 55, 57], "categoris": 0, "them": [0, 17, 36, 56, 58], "trajectori": [0, 1, 2, 3, 9, 10, 12, 13, 14, 16, 17, 24, 25, 26, 30, 32, 33, 37, 40, 41, 55, 60, 61], "optim": [0, 1, 2, 4, 5, 7, 9, 10, 13, 14, 24, 26, 29, 40, 41, 53, 63], "stabil": [0, 1, 2, 4, 5, 7, 13, 24, 26, 32, 33, 45, 61, 63], "polici": [0, 4, 5, 7, 13, 37], "base": [0, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 50], "model": [0, 2, 12, 14, 15, 20, 21, 23, 24, 25, 26, 29, 33, 41, 51, 52, 56, 57, 58, 60, 63], "predict": [0, 2, 12, 61, 63], "even": [0, 2, 6, 11, 37], "though": 0, "can": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "build": [0, 45, 48, 52, 53], "upon": 0, "each": [0, 1, 7, 10, 17, 37, 42], "other": [0, 7, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 50, 56, 58, 60, 61], "e": [0, 3, 4, 5, 6, 7, 10, 14, 26, 27, 37, 44, 46, 56, 58, 61, 62], "g": [0, 3, 5, 14, 36, 37, 44, 46, 50, 56, 61, 62], "comput": [0, 1, 5, 8, 9, 12, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37, 40, 55, 56, 58, 61, 63], "algorithm": [0, 7, 13, 27, 37, 52], "iter": [0, 1, 4, 8, 24, 26, 41, 63], "linear": [0, 1, 3, 8, 11, 14, 29, 32, 36, 52], "quadrat": [0, 1, 3, 8, 9, 26, 27, 33], "regul": [0, 1, 3, 8, 11, 46], "ilqr": [0, 1, 8, 12, 17, 39, 53, 60], "direct": [0, 5, 8, 40, 44, 50, 51, 52, 63], "colloc": [0, 6, 8, 29, 40, 63], "time": [0, 2, 7, 10, 11, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 50, 57, 61, 62, 63], "vari": [0, 2, 11, 57, 63], "quadrativ": [0, 11], "tvlqr": [0, 11, 17, 26], "riccati": [0, 5, 11], "gain": [0, 6, 11, 20, 23, 25, 29, 30, 32], "lqr": [0, 3, 10, 13, 17, 29, 41, 63], "partial": [0, 3, 5, 29], "feedback": [0, 3, 26, 29, 32], "pfl": [0, 3], "soft": [0, 3], "actor": [0, 3], "critic": [0, 3, 37], "sac": [0, 3, 17], "deep": [0, 3, 7], "q": [0, 3, 5, 6, 7, 10, 14, 16, 26, 33, 36, 38, 40, 46], "learn": [0, 3, 7, 37], "dqn": [0, 3, 17], "mpc": [0, 24], "The": [1, 2, 4, 5, 6, 7, 8, 9, 10, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 44, 45, 46, 48, 50, 51, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "idea": [1, 4], "i": [1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 20, 21, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "solv": [1, 2, 6, 10, 26, 37, 40], "problem": [1, 2, 4, 6, 7, 9, 10, 40], "everi": [1, 2, 10, 37, 50, 61], "timestep": [1, 16, 17, 23, 24, 25, 26, 30, 34, 37, 40, 41], "again": [1, 37], "At": [1, 50], "step": [1, 2, 10, 13, 14, 24, 37, 40, 41, 44, 50, 51, 57], "warm": [1, 2, 24], "start": [1, 2, 10, 17, 24, 34, 37, 41, 44, 50, 56, 58], "solut": [1, 2, 5, 7, 9, 40], "previou": [1, 2], "updat": [1, 7, 34, 37, 54], "first": [1, 2, 17, 36, 37, 44, 50, 51, 55, 62, 63], "command": [1, 37, 50], "from": [1, 4, 5, 6, 7, 9, 11, 14, 16, 17, 24, 25, 26, 33, 34, 35, 36, 37, 40, 44, 45, 46, 47, 48, 50, 52, 55, 56, 57, 58, 61], "execut": [1, 2, 11, 14, 16, 32, 41, 57, 61, 63], "either": [1, 3, 5, 16, 48, 50, 51], "us": [1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 45, 46, 47, 50, 51, 52, 53, 56, 57, 58, 60, 61, 62, 63], "refer": [1, 17, 22, 24, 25, 29, 30, 32, 33, 37, 41, 50, 56, 57, 58, 61, 62], "cost": [1, 5, 8, 10, 16, 24, 26, 33, 40, 41, 46, 52], "refernc": 1, "free": [1, 2, 14, 16, 44, 56, 58], "method": [1, 2, 4, 5, 6, 8, 9, 10, 16, 17, 19, 22, 24, 28, 29, 31, 35, 37, 40, 41, 42, 46, 50, 52, 54, 55, 56, 58, 59, 63], "where": [1, 5, 7, 10, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 45, 46, 56, 58, 61, 62], "full": [1, 2, 14, 37, 46, 48, 62], "onlin": [1, 2, 5, 13, 52, 57], "newcommand": [2, 3, 5, 6, 9, 10, 13, 14, 46], "vect": [2, 3, 5, 6, 9, 10, 13, 14, 46], "1": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 20, 21, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 41, 42, 44, 45, 46, 50, 51, 55, 57, 62], "boldsymbol": [2, 3, 5, 6, 9, 10, 13, 14, 46], "dvect": [2, 3, 5, 6, 9, 10, 13, 14, 46], "dot": [2, 3, 5, 6, 9, 10, 13, 14, 36, 46], "ddvect": [2, 3, 5, 6, 9, 10, 13, 14, 46], "ddot": [2, 3, 5, 6, 9, 10, 13, 14, 36, 46], "mat": [2, 3, 5, 6, 9, 10, 13, 14, 36, 46], "shoot": 2, "ha": [2, 7, 16, 35, 37, 45, 46, 50, 60, 61, 62], "properti": [2, 20, 29, 37, 61], "all": [2, 13, 17, 20, 21, 23, 24, 25, 26, 29, 33, 35, 36, 41, 46, 50, 51, 56, 58, 61, 62, 63], "dure": [2, 7, 11, 12, 16, 37, 45, 46, 50, 53, 56, 57, 61], "process": [2, 7, 37], "physic": [2, 27, 37, 43, 44, 46, 52], "feasibl": [2, 29], "so": [2, 16, 45, 46, 60, 62], "when": [2, 4, 5, 11, 12, 29, 36, 37, 46, 47, 50, 52, 53, 56, 57, 58], "stop": [2, 24, 41, 46, 47, 50], "befor": [2, 17, 35, 37, 50, 61], "converg": [2, 7, 20], "inconsist": 2, "thi": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 17, 19, 20, 24, 26, 28, 30, 31, 32, 33, 35, 36, 37, 40, 41, 42, 43, 46, 50, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "advantag": 2, "control": [2, 4, 5, 6, 7, 9, 10, 12, 15, 16, 34, 35, 37, 40, 41, 42, 46, 47, 52, 54, 59, 60, 63], "ansatz": 2, "For": [2, 5, 6, 9, 13, 14, 26, 29, 37, 44, 46, 53, 54, 55, 56, 58, 60, 63], "perform": [2, 8, 14, 37, 41, 50, 55, 56, 57, 58], "input": [2, 6, 7, 9, 10, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 46, 61], "u": [2, 3, 5, 9, 10, 13, 14, 16, 26, 30, 32, 33, 35, 36, 37, 38, 40, 42, 44, 45, 61], "_0": [2, 9, 10], "next": [2, 24, 37, 50], "nomin": [2, 11, 13], "desir": [2, 6, 17, 23, 37, 50, 57, 61], "state": [2, 3, 5, 7, 9, 10, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 57, 61], "x": [2, 3, 5, 6, 7, 9, 10, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 61], "d": [2, 4, 5, 6, 7, 13, 14, 27, 37, 42], "t": [2, 5, 7, 10, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 42, 45, 46, 48, 57, 61], "goal": [2, 9, 14, 16, 17, 20, 24, 26, 27, 29, 30, 33, 37, 41, 42, 61], "kept": [2, 51, 52], "fix": [2, 4, 5, 10, 14, 30, 36, 44, 50, 56, 58], "do": [3, 44, 46, 47, 50, 51, 53, 56, 58, 61], "aim": [3, 50], "follow": [3, 7, 10, 30, 44, 45, 46, 47, 50, 53, 55, 57, 60, 62], "singular": 3, "instead": [3, 6, 9, 34, 46, 50, 57], "thei": [3, 30, 32, 33, 45, 46, 56, 57, 58, 61, 62], "defin": [3, 7, 27, 37, 56, 63], "funtion": 3, "pi": [3, 5, 7, 24, 26, 29, 33, 41], "over": [3, 7, 10, 14, 16, 37, 40, 57], "entir": [3, 10], "space": [3, 4, 7, 10, 37, 63], "return": [3, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 50, 61], "signal": [3, 16, 17, 34, 35, 37, 46, 50], "accord": [3, 27], "analyt": 3, "reason": [3, 37], "about": [3, 37, 51], "": [3, 5, 7, 12, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 50, 61], "energi": [3, 6, 16, 17, 24, 25, 26, 29, 30, 33, 36, 41, 42, 46], "reinforc": [3, 4, 7, 37], "strategi": [4, 7], "particularli": [4, 7], "well": [4, 5, 7, 9, 40, 50, 51, 57, 60], "suit": [4, 7], "scenario": [4, 7], "discret": [4, 9, 10, 14, 16, 26, 36], "action": [4, 7, 18, 37], "howev": [4, 5, 37, 46, 57], "an": [4, 5, 6, 7, 9, 10, 11, 14, 17, 24, 37, 44, 46, 50, 52, 55, 56, 58, 60, 61, 62], "option": [4, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 46, 50, 61], "its": [4, 6, 7, 52], "dimension": 4, "small": [4, 10, 11, 46, 50], "onli": [4, 10, 11, 16, 17, 25, 37, 46, 50, 53, 57, 61, 62], "compos": 4, "one": [4, 14, 16, 17, 37, 44, 46, 50, 52, 55, 57, 61], "dimens": [4, 50], "In": [4, 5, 7, 9, 10, 17, 35, 37, 45, 46, 50, 56, 57, 58, 61, 62], "context": [4, 7, 40], "swing": [4, 6, 7, 44, 47], "up": [4, 6, 7, 11, 16, 51], "task": [4, 7, 37, 55, 56, 58], "actuat": [4, 5, 7, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 46, 52, 61], "adjust": [4, 7], "ani": [4, 7, 46, 50], "valu": [4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 50, 57, 61], "within": [4, 7, 40, 50], "specifi": [4, 5, 7, 36, 37], "torqu": [4, 7, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 47, 50, 57, 61], "limit": [4, 7, 9, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 36, 37, 40, 41, 46, 47], "rang": [4, 7, 16, 46, 47], "addition": [4, 7, 55, 56, 58], "measur": [4, 7, 14, 37, 46, 47, 50, 57, 61], "posit": [4, 5, 7, 14, 16, 20, 23, 24, 25, 29, 30, 34, 36, 37, 40, 41, 44, 50], "veloc": [4, 7, 16, 20, 24, 29, 34, 36, 37, 40, 41, 46, 50, 57], "obtain": [4, 5, 7, 9], "motor": [4, 7, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 43, 44, 45, 46, 47, 51, 52, 57, 61, 62], "also": [4, 6, 7, 10, 14, 37, 40, 44, 46, 56, 57, 58, 60], "repres": [4, 7, 37, 61], "continu": [4, 7, 26, 37, 50], "setup": [4, 7, 43, 45, 48, 51, 52, 53, 55], "make": [4, 7, 14, 36, 37, 44, 46, 47, 50, 53], "suitabl": [4, 7], "implement": [4, 7, 27, 37, 40, 41, 50, 52, 55, 56, 58, 61], "function": [4, 5, 6, 7, 8, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 42, 50, 61, 62, 63], "which": [4, 5, 6, 7, 8, 9, 13, 14, 16, 17, 25, 26, 29, 32, 33, 34, 35, 36, 37, 40, 46, 47, 50, 51, 52, 56, 57, 58, 60, 61, 62], "greedi": 4, "would": [4, 44, 46], "yield": 4, "highest": 4, "possibl": [4, 5, 6, 37, 50, 53], "sum": [4, 11, 16, 17, 26], "discount": 4, "reward": [4, 7, 18, 37], "To": [4, 50, 57, 58, 61], "bellman": [4, 5], "oper": [4, 6, 22, 43, 45, 46, 47, 50, 53, 57], "contract": 4, "map": [4, 7], "mean": [4, 57], "success": [4, 40], "lead": [4, 7, 50], "point": [4, 5, 9, 10, 16, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 36, 37, 40, 41, 42, 50, 53], "theori": [4, 6], "guarante": 4, "cor": 4, "respond": 4, "max": [4, 9, 46, 50, 56, 58], "imum": 4, "v": [4, 5, 7, 46, 50], "mnih": 4, "k": [4, 5, 13, 26, 32, 42], "kavukcuoglu": 4, "silver": 4, "et": [4, 7], "al": [4, 7], "human": [4, 37], "level": 4, "through": [4, 7, 37], "na": 4, "ture": 4, "vol": [4, 5, 6], "518": 4, "7540": 4, "pp": [4, 5, 6, 10, 12], "529": 4, "533": 4, "2015": 4, "establish": [5, 50], "widespread": 5, "act": [5, 7], "A": [5, 12, 13, 17, 26, 35, 36, 37, 42, 46, 50], "b": [5, 13, 26, 35, 36, 42], "object": [5, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 61, 62], "instantan": 5, "j": [5, 7, 36], "r": [5, 7, 9, 10, 12, 13, 16, 26, 33, 40, 46], "symmetr": 5, "definit": 5, "matric": [5, 10, 12, 14, 26, 33, 36, 40], "succeq": 5, "0": [5, 6, 7, 10, 14, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 45, 50, 53, 61, 62], "succ": 5, "allow": [5, 9, 44, 62], "reduc": 5, "hamilton": 5, "jacobi": 5, "hjb": 5, "equat": [5, 6, 26, 36], "whose": [5, 34, 37], "go": [5, 26, 37, 46], "infer": 5, "algebra": 5, "good": [5, 50], "numer": [5, 9], "solver": [5, 60], "exist": [5, 37, 56, 58], "find": [5, 14], "matrix": [5, 14, 16, 26, 32, 33, 36, 37, 40, 46], "order": [5, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 50, 57, 61], "top": [5, 23], "dynam": [5, 9, 10, 11, 12, 13, 14, 17, 25, 26, 36, 37, 40, 50, 52, 59], "have": [5, 36, 37, 46, 47, 50, 53, 56, 57, 58, 61, 62, 63], "linearis": [5, 10, 13], "around": [5, 13], "left": [5, 6, 14, 50], "frac": [5, 46, 50], "f": [5, 10, 14, 36, 44, 46, 55, 56, 58], "right": [5, 6, 14, 37], "_": [5, 7, 9, 10, 14], "express": [5, 10], "rel": [5, 10, 50], "coordin": [5, 10, 14, 36, 37], "tild": [5, 7, 10], "mathcal": 5, "star": 5, "describ": [5, 6, 26, 33, 36, 37, 40, 50, 52, 56, 58], "set": [5, 10, 17, 19, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 33, 34, 36, 37, 41, 51, 61, 62], "initi": [5, 9, 17, 20, 23, 24, 25, 29, 30, 32, 33, 34, 35, 37, 40, 61, 62], "rightarrow": 5, "infti": [5, 7], "often": [5, 37, 53, 57], "estim": [5, 7, 27, 46, 62], "consid": [5, 6, 7, 14], "sublevel": 5, "lyapunov": 5, "serv": [5, 7, 46, 52], "2": [5, 6, 7, 9, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 44, 45, 46, 50, 55, 61, 62], "case": [5, 6, 37, 46, 47, 57], "written": [5, 14, 60], "text": [5, 9, 10, 14, 37], "est": 5, "vert": 5, "leq": [5, 9], "rho": [5, 27], "scalar": [5, 36, 38], "probabilist": 5, "3": [5, 6, 7, 9, 16, 23, 24, 25, 26, 27, 29, 33, 35, 36, 37, 41, 42, 44, 46, 53], "4": [5, 7, 9, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 44, 53, 61], "further": [5, 13, 37, 54], "read": [5, 6, 13, 22, 34, 37, 62], "lectur": [5, 13, 26], "note": [5, 13, 43, 53, 61], "h": [5, 7, 50, 62], "khalil": 5, "nonlinear": [5, 9, 10, 12], "3rd": 5, "ed": 5, "upper": [5, 6, 40], "saddl": 5, "river": 5, "n": [5, 9, 10, 12, 16, 24, 25, 26, 27, 30, 32, 33, 34, 37, 40, 41, 50], "prentic": 5, "hall": 5, "2002": 5, "tedrak": [5, 13], "underactu": [5, 6, 13, 52, 53], "robot": [5, 10, 12, 13, 26, 29, 33, 36, 37, 40, 41, 52], "2022": [5, 13, 26], "url": [5, 6, 7, 9, 10, 13], "http": [5, 6, 7, 9, 10, 13, 20, 26, 27, 29, 41, 50, 52, 53], "mit": [5, 13, 50], "edu": [5, 13, 27], "najafi": 5, "babu\u0161ka": 5, "lope": 5, "fast": 5, "sampl": [5, 40], "domain": 5, "86": 5, "823": 5, "834": 5, "oct": 5, "2016": 5, "link": [5, 6, 10, 14, 16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 44, 46, 51, 52, 54], "springer": 5, "com": [5, 6, 7, 16, 20, 21, 23, 24, 25, 26, 27, 29, 33, 36, 41, 42, 50, 52, 53], "articl": [5, 6, 29], "10": [5, 6, 9, 10, 16, 20, 24, 27, 31, 34, 35, 36, 40, 41, 55], "1007": 5, "s11071": 5, "016": 5, "2926": 5, "7": [5, 6], "p": [5, 7, 27, 46], "parrilo": 5, "structur": [5, 7, 52, 55, 59], "semidefinit": 5, "program": [5, 9, 12, 40], "semialgebra": 5, "ge": 5, "ometri": 5, "robust": [5, 44, 54, 55], "ph": 5, "dissert": 5, "california": 5, "institut": 5, "technologi": 5, "pasadena": 5, "2000": 5, "www": [5, 6, 10, 29, 41, 50], "proquest": 5, "openview": 5, "ff5fe1a4311720ae2dad28ddc1d22cf8": 5, "cbl": 5, "18750": 5, "diss": 5, "y": [5, 7, 37, 42], "pq": 5, "origsit": 5, "gscholar": 5, "parentsessionid": 5, "mjxeze6vrvd": 5, "2besjkr1uey6zldtg74txylcbk173fana": 5, "3d": [5, 45, 51], "classic": [6, 46], "With": [6, 53], "provok": 6, "respons": [6, 7, 35, 57], "both": [6, 7, 17, 45, 46, 50, 61], "joint": [6, 14, 36, 37, 46], "intuit": [6, 27], "manipul": [6, 12, 14], "u_1": [6, 14], "equiv": 6, "begin": [6, 7, 14, 45, 50], "arrai": [6, 14, 16, 17, 18, 26, 27, 33, 35, 36, 37, 40, 41, 42, 61], "cc": [6, 14], "m_": [6, 14], "11": [6, 42], "12": [6, 7, 45, 50], "21": [6, 50], "22": 6, "end": [6, 7, 14, 16, 34, 36, 37, 44, 50, 51, 55, 58], "c": [6, 14, 27, 36, 37, 41, 42, 46, 53, 60], "_1": [6, 10, 14, 36], "_2": [6, 14, 36], "c_": [6, 14], "g_1": 6, "g_2": 6, "f_1": 6, "f_2": 6, "u_2": [6, 14], "unactu": 6, "part": [6, 7, 47], "vector": [6, 14, 32, 36, 40], "acceler": [6, 7, 20, 21, 23, 24, 25, 26, 29, 33, 36, 40, 41, 50], "plug": 6, "lower": [6, 40], "now": [6, 37, 56, 58], "design": [6, 10, 36, 47, 50, 51, 62], "pd": 6, "term": [6, 17, 37], "k_p": 6, "q_2": [6, 14], "k_d": 6, "k_e": [6, 50], "label": [6, 10, 14, 16, 50, 63], "eq": [6, 10, 13, 14], "pfl_acro_col": 6, "configur": [6, 46, 47, 50], "second": [6, 17, 36, 37, 44, 51, 62], "total": [6, 14, 36, 37, 46, 61], "paramet": [6, 7, 9, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 47, 57, 60, 61], "abov": [6, 20, 21, 23, 24, 25, 26, 29, 33, 36, 37, 41, 55, 58], "call": [6, 17, 35, 37, 40, 41, 46, 53, 56, 58, 61, 62], "similarli": 6, "elimin": 6, "than": [6, 44, 46], "non": [6, 10, 29, 52], "done": [6, 37, 40, 50, 53], "same": [6, 45, 50, 60], "wai": [6, 37, 63], "law": 6, "q_1": [6, 14], "_pfl_pendu_col": 6, "m": [6, 14, 17, 20, 21, 23, 24, 25, 26, 27, 29, 33, 36, 37, 41, 46, 50], "w": [6, 9, 50], "spong": [6, 29], "ifac": 6, "proceed": 6, "volum": [6, 27], "27": [6, 46], "14": [6, 36], "833": 6, "838": 6, "sep": 6, "1994": 6, "doi": [6, 9, 10, 20, 40, 41], "1016": 6, "s1474": 6, "6670": 6, "17": 6, "47404": 6, "sciencedirect": [6, 29], "scienc": [6, 29], "pii": [6, 29], "s1474667017474040": [6, 29], "via": [6, 29, 37, 40, 46, 50, 61], "3dihub": [6, 29], "ieee": [6, 12, 29], "magazin": 6, "15": [6, 14, 26, 50, 51], "49": 6, "55": 6, "feb": 6, "1995": 6, "1109": 6, "37": 6, "341864": [6, 29], "ieeexplor": [6, 29], "org": [6, 9, 10, 27, 29, 41], "document": [6, 29, 48, 50, 51, 56, 59], "class": [6, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 60, 62], "mechan": [6, 16, 27, 46, 47, 51, 52], "29": 6, "2828": 6, "2832": 6, "jun": 6, "1996": 6, "58105": 6, "s1474667017581057": [6, 29], "environ": [7, 37, 53], "agent": [7, 37], "infinit": [7, 35], "choos": [7, 50], "real": [7, 11, 14, 17, 35, 37, 47, 52, 54, 57, 62], "prove": 7, "effect": [7, 57], "maxim": 7, "expect": [7, 37], "cumul": 7, "achiev": [7, 16, 37, 57], "select": [7, 14, 50], "current": [7, 22, 37, 40, 46, 47, 50], "observ": [7, 37], "It": [7, 29, 37, 40, 46, 47, 50, 52], "typic": [7, 37, 46], "shallow": 7, "neural": 7, "network": 7, "approxim": [7, 11, 14], "between": [7, 9, 17, 44, 46, 50, 51, 60], "output": [7, 17, 19, 28, 30, 31, 37, 46, 50, 57, 61], "probabl": 7, "distribut": 7, "incorpor": 7, "stochast": 7, "encourag": 7, "explor": [7, 37], "help": [7, 37, 50], "improv": [7, 50], "hand": 7, "evalu": [7, 54], "pair": [7, 50], "certain": [7, 37], "take": [7, 37, 42, 46, 56], "addit": [7, 17, 32, 35, 37, 46, 50, 61], "central": [7, 61], "featur": [7, 46, 50, 54], "entropi": [7, 37], "regular": [7, 13, 24, 41, 50], "train": 7, "trade": 7, "off": [7, 50], "random": [7, 37], "If": [7, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 36, 37, 40, 41, 44, 46, 50, 53, 55, 56, 58, 60, 61], "variabl": [7, 9, 36, 37, 40], "densiti": 7, "displaystyl": 7, "mathop": 7, "mathbb": 7, "sim": 7, "log": [7, 17, 26, 33, 34, 35, 37, 40], "By": [7, 14, 37, 51, 61], "prevent": [7, 44, 46, 50, 51], "prematur": [7, 37], "suboptim": 7, "alpha": [7, 35], "balanc": [7, 55, 56, 58], "import": [7, 46, 50, 56, 57, 58, 61], "exploit": 7, "arg": 7, "max_": 7, "tau": [7, 36, 37, 50, 57], "bigg": 7, "sum_": [7, 10], "gamma": 7, "big": 7, "s_t": 7, "a_t": 7, "s_": [7, 14], "cdot": [7, 46], "mid": 7, "pi_": 7, "theta": 7, "two": [7, 14, 17, 37, 44, 46, 51, 52, 53, 61, 62], "q_": 7, "phi_1": 7, "phi_2": 7, "concurr": 7, "loss": [7, 9], "l": [7, 9, 10, 12], "phi_i": 7, "tempor": 7, "differ": [7, 16, 37, 45, 46, 54, 55, 56, 58, 62], "target": 7, "given": [7, 10, 62], "align": 7, "nonumb": 7, "min": [7, 46], "phi_": 7, "targ": 7, "should": [7, 16, 17, 19, 24, 28, 30, 31, 32, 33, 34, 35, 37, 46, 50, 55, 56, 58, 61, 63], "futur": [7, 62], "while": [7, 9, 47, 56, 57, 62], "word": 7, "emploi": 7, "gradient": 7, "techniqu": 7, "undergo": 7, "subsequ": 7, "adapt": [7, 46], "themselv": 7, "conclus": 7, "combin": [7, 17, 37, 46, 50], "address": 7, "challeng": 7, "pose": 7, "haarnoja": 7, "tuoma": 7, "maximum": [7, 16, 24, 40, 41, 46], "intern": [7, 10, 12, 17, 35, 37, 40, 61], "confer": [7, 10, 12], "machin": 7, "pmlr": 7, "2018": 7, "applic": [7, 12, 46, 50, 56, 58], "arxiv": 7, "preprint": 7, "1812": 7, "05905": 7, "konda": 7, "vijai": 7, "john": 7, "tsitsikli": 7, "advanc": 7, "inform": [7, 26, 37, 43, 51, 53, 54], "1999": 7, "achiam": 7, "spin": 7, "spinningup": 7, "openai": [7, 37], "en": [7, 27, 50], "latest": 7, "html": [7, 27], "respect": [8, 10], "fucntion": 8, "encod": [8, 50, 52], "motion": [8, 36, 37, 46, 47, 54], "suppos": [8, 17, 19, 28, 31, 37, 61], "swingup": [8, 16, 20, 55, 56, 58], "belong": 9, "transform": 9, "mathemat": [9, 11, 14, 40], "transcrib": 9, "knot": [9, 40], "_i": [9, 10, 14], "minim": [9, 37], "decis": 9, "formul": [9, 40], "x_": 9, "init": [9, 17, 23, 24, 26, 33, 35, 41, 61], "obei": 9, "u_": 9, "min_": [9, 10], "ldot": [9, 10, 14], "subject": [9, 10], "hspace": [9, 10], "1cm": [9, 10], "f_": [9, 10], "quad": [9, 14], "foral": 9, "x_0": 9, "x_n": 9, "sequenti": 9, "sqp": 9, "practic": [9, 52], "interpol": [9, 24, 30, 32, 33, 40], "polynomi": [9, 24, 32, 35, 40, 42], "piecewis": 9, "fewer": 9, "still": 9, "consist": [9, 51, 62, 63], "hargrav": 9, "charl": 9, "stephen": 9, "pari": 9, "journal": 9, "guidanc": [9, 46], "1987": 9, "338": 9, "342": 9, "arc": [9, 37], "aiaa": 9, "ab": [9, 20], "2514": 9, "20223": 9, "extens": [10, 13], "henc": [10, 46, 50, 57], "long": 10, "error": [10, 11, 20, 23, 24, 25, 29, 30, 41, 42, 50, 53], "contrast": 10, "deal": 10, "being": [10, 34, 50, 61], "abl": [10, 46, 50, 57, 61], "finit": [10, 26], "horizon": [10, 24, 26, 41], "As": [10, 37, 54], "sequenc": [10, 37], "_n": 10, "ilqr_opt": 10, "beforehand": 10, "_f": 10, "penal": 10, "final": [10, 16, 24, 26, 33, 37, 40, 41], "intermedi": 10, "weiwei": 10, "todorov": 10, "biolog": 10, "movement": [10, 50], "informat": 10, "autom": [10, 12], "222": 10, "229": 10, "2004": 10, "scitepress": [10, 41], "aspx": [10, 41], "5220": [10, 41], "0001143902220229": [10, 41], "transfer": [11, 57], "precomput": 11, "simul": [11, 15, 16, 17, 27, 35, 42, 52, 54, 55, 56, 57, 60, 61], "realiti": [11, 57], "anoth": [11, 13, 46], "need": [11, 16, 17, 37, 44, 46, 50, 53, 56, 58], "alwai": [11, 17, 35, 47, 57, 61], "becaus": [11, 44, 46, 50], "eventu": 11, "deviat": [11, 16, 37], "differenti": [12, 30, 50], "ddp": 12, "alter": [12, 37], "discuss": [12, 52], "kleff": 12, "meduri": 12, "budhiraja": 12, "mansard": 12, "righetti": 12, "high": [12, 46, 50, 52, 57], "frequenc": [12, 35, 40, 46, 50], "2021": 12, "icra": 12, "7330": 12, "7336": 12, "formal": 13, "requir": [13, 46, 50, 52], "ref": 13, "dyn": [13, 14], "result": [13, 16, 36, 37, 40, 46, 52, 57], "page": [14, 27, 43, 50, 52], "give": [14, 34, 43, 46], "overview": 14, "descript": [14, 36, 43, 54, 55, 56, 58], "includ": [14, 37, 46, 51, 53], "8": [14, 34, 45, 53], "name": [14, 16, 55, 56, 58, 60, 62], "mass": [14, 16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 37, 41, 42, 46, 62], "m_1": 14, "m_2": 14, "length": [14, 16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 40, 41, 42, 62], "l_1": 14, "l_2": 14, "center": [14, 20, 21, 23, 24, 25, 26, 29, 33, 36, 37, 41], "r_1": 14, "r_2": 14, "inertia": [14, 16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 42, 50, 62], "i_1": 14, "i_2": 14, "6": [14, 16, 20, 23, 24, 25, 26, 28, 31, 33, 34, 36, 41, 42, 44, 45, 46, 48, 53], "i_r": 14, "gear": [14, 20, 36, 50], "ratio": [14, 20, 36, 50], "g_r": 14, "coulomb": [14, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "friction": [14, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 50, 52, 61, 62], "f1": 14, "f2": 14, "viscou": 14, "b_1": 14, "b_2": 14, "graviti": [14, 16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 61], "gener": [14, 26, 33, 37, 40, 46, 56, 57, 58], "angl": [14, 34, 37], "hang": [14, 46], "contain": [14, 16, 17, 25, 26, 29, 36, 37, 51, 55, 56, 58], "deriv": [14, 23, 25, 36, 50], "appli": [14, 23, 37, 50, 56, 57], "dyn2": 14, "bottom": 14, "half": 14, "known": [14, 37], "entiti": 14, "s_1": 14, "sin": 14, "c_1": 14, "co": 14, "2m_2": 14, "2l_1m_2r_2c_2": 14, "2i_r": 14, "l_1m_2r_2c_2": 14, "g_ri_r": 14, "corioli": [14, 36], "l_": 14, "r_": 14, "s_2": 14, "coriolis_matrix": [14, 36], "gravity_matrix": 14, "sign": 14, "arctan": 14, "100": [14, 24, 33, 41, 42, 50, 56, 58], "friction_matrix": 14, "pendu": 14, "acro": 14, "fulli": [14, 25, 46, 61], "kinet": [14, 36, 46], "e_": [14, 46], "kin": [14, 46], "potenti": [14, 36, 46, 62], "pot": 14, "natur": 14, "provid": [14, 17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 36, 37, 41, 46, 51, 52], "easili": 14, "independ": [14, 57], "identifi": [14, 62], "parmat": 14, "excit": 14, "hardwar": [14, 34, 45, 51, 52, 53, 54, 55, 57, 59, 61, 62], "data": [14, 16, 26, 33, 34, 37, 40, 42, 50, 55, 56, 57, 58, 60], "tupl": 14, "form": [14, 16, 24, 27, 41, 50], "record": [14, 37, 50, 55], "best": [14, 52], "fact": 14, "least": [14, 57], "squar": 14, "analysi": 15, "experi": [15, 16, 17, 35, 46, 47, 52, 55, 57, 61], "filter": [15, 17, 37, 46, 57], "system_identif": 15, "trajectory_optim": 15, "util": [15, 34, 63], "x0": [16, 17, 27, 35, 36, 37, 40, 42], "dt": [16, 19, 23, 24, 25, 26, 27, 30, 34, 35, 36, 37, 41, 42], "t_final": [16, 27, 34, 42], "epsilon": 16, "check_only_final_st": 16, "fals": [16, 17, 18, 28, 29, 32, 34, 37, 38, 42], "integr": [16, 23, 24, 25, 26, 27, 30, 37, 41, 42], "runge_kutta": [16, 24, 27, 37, 41], "compute_model_robust": 16, "true": [16, 19, 24, 27, 30, 31, 37, 38, 42], "compute_noise_robust": 16, "compute_unoise_robust": 16, "compute_uresponsiveness_robust": 16, "compute_delay_robust": 16, "compute_perturbation_robust": 16, "mpar_var": 16, "ir": [16, 36, 50, 62], "m1r1": 16, "i1": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "b1": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "cf1": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "m2r2": 16, "m2": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "i2": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "b2": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "cf2": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "modelpar_var_list": 16, "repetit": [16, 42], "meas_noise_mod": 16, "vel": [16, 37, 50], "meas_noise_sigma_list": 16, "5": [16, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 33, 35, 36, 37, 42, 44, 45, 50, 62], "u_noise_sigma_list": 16, "u_respons": [16, 37], "delay_mod": [16, 37], "delai": [16, 37, 56, 57], "01": [16, 23, 24, 25, 26, 27, 30, 34, 35, 37, 41], "02": [16, 37], "05": [16, 27, 37], "perturbation_repetit": 16, "50": 16, "perturbations_per_joint": 16, "perturbation_min_t_dist": 16, "perturbation_sigma_minmax": 16, "perturbation_amp_minmax": 16, "check_delay_robust": 16, "posvel": [16, 37], "check_goal_success": 16, "x_traj": [16, 26], "check_meas_noise_robust": 16, "check_modelpar_robust": 16, "var_list": 16, "check_perturbation_robust": 16, "20": [16, 37, 45], "n_pert_per_joint": 16, "min_t_dist": [16, 37], "sigma_minmax": [16, 37], "amplitude_min_max": [16, 37], "check_unoise_robust": 16, "check_uresponsiveness_robust": 16, "compute_cost": 16, "u_traj": [16, 26], "mode": [16, 37, 50], "compute_ref_cost": 16, "compute_success_measur": 16, "save": [16, 17, 18, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 41, 55, 56, 58, 61, 63], "save_dir": [16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 40, 42, 61], "set_cost_par": 16, "qf": [16, 26, 33], "set_init_traj": 16, "trajectory_csv": 16, "set_model_paramet": [16, 24, 41], "608": [16, 24, 36, 41], "63": [16, 24, 36, 41], "275": [16, 24, 36, 41], "166": [16, 24, 41], "damp": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 42, 62], "081": [16, 24, 41], "cfric": [16, 36], "093": [16, 24, 36, 41], "186": [16, 24, 41], "9": [16, 20, 21, 23, 24, 25, 26, 29, 33, 34, 36, 41], "81": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "05472": [16, 24, 41], "02522": [16, 24, 41], "motor_inertia": [16, 20, 36], "torque_limit": [16, 20, 21, 22, 23, 24, 25, 26, 29, 30, 32, 33, 36, 37, 40, 41, 42], "model_par": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 40, 41, 42], "none": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 41, 42, 61], "simulate_and_get_cost": 16, "plot_benchmark_result": 16, "results_dir": 16, "filenam": 16, "pkl": 16, "costlim": 16, "1000000": [16, 50], "show": [16, 27, 38, 42, 45, 46, 50], "file_format": 16, "pdf": 16, "scale": [16, 19, 37, 42, 57], "plot_model_robustness_multi": 16, "get_delay_scor": 16, "res_dict": 16, "get_measurement_noise_scor": 16, "get_model_scor": 16, "get_perturbation_scor": 16, "get_scor": 16, "get_unoise_scor": 16, "get_uresponsiveness_scor": 16, "get_energi": 16, "get": [16, 17, 24, 25, 30, 32, 33, 35, 36, 37, 40, 42, 46, 47, 53, 61], "like": [16, 17, 36, 37, 46, 61], "shape": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 44, 45, 61], "unit": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 50, 61, 62], "rad": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 50, 61], "angle1": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "angle2": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "velocity1": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "velocity2": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "u1": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "u2": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "nm": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 50, 61], "float": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 61], "get_integrated_torqu": 16, "get_max_tau": 16, "get_swingup_tim": 16, "ep": [16, 27], "has_to_stai": 16, "mpar": 16, "height": 16, "data_dict": [16, 34], "list": [16, 17, 18, 24, 26, 29, 34, 36, 37, 40, 41, 52, 55, 56, 58, 61], "len": 16, "threshold": 16, "successful": 16, "default": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 40, 41, 61], "1e": [16, 24, 41, 42], "bool": [16, 17, 18, 24, 29, 30, 32, 37], "whether": [16, 17, 24, 29, 30, 32, 37], "stai": [16, 47, 63], "upright": 16, "until": [16, 50], "get_tau_smooth": 16, "standard": [16, 37, 60], "chang": [16, 17, 19, 28, 31, 36, 37, 46, 50, 57, 61, 62], "smooth": 16, "std": 16, "get_torque_cost": 16, "run": [16, 37, 46, 50, 55, 56, 58], "normal": [16, 46], "numpi": [16, 36, 37, 42], "weight": [16, 24, 40, 41, 44, 45, 50, 51], "2x2": 16, "get_velocity_cost": 16, "leaderboard_scor": 16, "data_path": 16, "save_to": [16, 27, 38, 42, 55], "integ_tau": 16, "max_tau": 16, "swingup_tim": 16, "tau_cost": 16, "tau_smooth": 16, "link_bas": 16, "score": [16, 55, 56, 58], "data_dictionari": 16, "load": [16, 18, 24, 36, 46, 63], "compar": [16, 54, 55, 56, 58], "dict": [16, 18, 36, 37], "path": [16, 17, 18, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 40, 46, 55, 61], "controller1_nam": 16, "csv_path": [16, 24, 25, 30, 32, 33, 42, 56, 58], "data_path1": 16, "usernam": [16, 55, 56, 58], "username1": 16, "controller2_nam": 16, "data_path2": 16, "username2": 16, "string": [16, 17, 20, 21, 22, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 61], "csv": [16, 24, 25, 30, 32, 33, 34, 41, 55, 56, 58, 63], "file": [16, 24, 25, 26, 30, 32, 33, 34, 36, 40, 41, 50, 51, 55, 56, 58, 60, 62, 63], "dictionari": [16, 36, 37, 56, 58], "criteria": [16, 56], "weight1": 16, "weight2": 16, "weight3": 16, "weight4": 16, "weight5": 16, "weight6": 16, "velocity_cost": 16, "weight7": 16, "constant": [16, 50, 57], "norm1": 16, "norm2": 16, "norm3": 16, "norm4": 16, "norm5": 16, "norm6": 16, "norm7": 16, "after": [16, 37, 50, 61, 63], "divid": 16, "norm": 16, "simulait": 16, "host": 16, "Not": [16, 37, 57, 63], "local": [16, 53, 55, 56, 58], "get_par_list": 16, "min_rel": 16, "max_rel": 16, "friction_compens": 17, "gamepad": 17, "gravity_compens": 17, "inverse_dynam": [17, 36], "mcpilco": 17, "partial_feedback_linear": 17, "pid": [17, 23, 25, 50], "random_explor": 17, "trajectory_follow": 17, "abstractcontrol": [17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 61], "abc": [17, 35], "abstract": [17, 35, 61], "inherit": [17, 35, 61], "get_control_output": [17, 61], "loop": [17, 34, 35, 47, 50, 61], "doe": [17, 25, 26, 36, 37, 44, 50, 56, 58], "get_control_output_": [17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 61], "compens": [17, 21, 23], "activ": [17, 29, 50, 52, 61], "array_lik": [17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 61], "dtype": [17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 41, 61], "overwritten": [17, 19, 28, 31, 35, 61], "actual": [17, 19, 28, 31, 35, 36, 37, 50, 61], "api": [17, 19, 28, 31, 37, 61], "unus": [17, 19, 28, 31, 61], "get_forecast": [17, 24, 61], "forecast": [17, 24, 61], "plan": [17, 24, 61], "placehold": 17, "get_friction_torqu": 17, "numpy_arrai": [17, 24, 25, 26, 30, 32, 33, 35, 37, 40, 41], "get_gravity_torqu": 17, "get_init_trajectori": [17, 24, 25, 30, 32, 33, 61], "specif": [17, 35, 36, 37, 46, 61, 62], "init_": [17, 20, 23, 24, 25, 26, 29, 30, 33, 35, 61], "reset": [17, 37, 61], "reset_": [17, 61], "insid": [17, 50, 61], "directori": [17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 40, 51, 60, 61], "save_": [17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 35, 61], "set_filt": 17, "set_friction_compens": [17, 61], "coulomb_fr": [17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 42], "coeffici": [17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "kg": [17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 45, 50], "set_goal": [17, 20, 23, 24, 26, 29, 30, 33, 41, 61], "set_gravity_compens": [17, 61], "plant": [17, 26, 37, 40, 60, 61], "symbolicdoublependulum": [17, 26, 36, 37], "doublependulumpl": [17, 26, 36, 37], "kinemat": [17, 26, 36, 37], "set_paramet": [17, 20, 23, 24, 25, 26, 30, 41, 61], "set_start": [17, 24, 41], "combinedcontrol": 17, "controller1": 17, "controller2": 17, "condition1": 17, "condition2": 17, "compute_both": 17, "verbos": [17, 29], "switch": [17, 29, 45, 46], "condit": [17, 20, 37, 57], "must": [17, 50], "functin": 17, "flag": [17, 37], "Will": [17, 37], "check": [17, 20, 54, 56, 58], "potetntiolli": 17, "controller1_par": 17, "controller2_par": 17, "parametr": 17, "pars": [17, 40, 61, 62], "simultaneouscontrol": 17, "forecast_con": 17, "multipl": [17, 50], "add": [17, 18, 37, 40, 46, 56, 58], "containint": 17, "int": [17, 18, 20, 24, 30, 32, 33, 34, 36, 37, 40, 41], "integ": [17, 37, 62], "indic": [17, 27, 37, 50, 62], "self": [17, 61], "fc_ind": 17, "intit": 17, "controller_par": 17, "replaybuff": 18, "max_siz": 18, "batch_siz": 18, "state_shap": 18, "state_dtyp": 18, "type": [18, 22, 34, 37, 40, 45, 50, 63], "clip": 18, "ndarrai": [18, 37], "next_stat": 18, "absorb": [18, 46, 50], "static": 18, "create_batch": 18, "str": [18, 37], "get_sample_index": 18, "kei": [18, 36, 37, 62], "prngkeyarrai": 18, "maxval": 18, "sample_random_batch": 18, "sample_kei": 18, "load_pickled_data": 18, "device_put": 18, "save_pickled_data": 18, "saccontrol": 19, "model_path": 19, "dynamics_func": [19, 37], "energycontrol": 20, "gear_ratio": [20, 36], "inf": [20, 22, 29, 36], "paper": [20, 29, 40, 41], "onlinelibrari": 20, "wilei": 20, "1002": 20, "rnc": 20, "1184": 20, "m1": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "l1": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "l2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "r1": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "r2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "downward": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "s\u00b2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "m\u00b2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "entri": [20, 21, 23, 24, 25, 26, 29, 33, 36, 37, 41], "l\u00b2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "ir1": [20, 36], "ir2": [20, 36], "np": [20, 22, 24, 26, 29, 33, 36, 37, 41], "tl1": [20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 36, 41, 62], "tl2": [20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 36, 41, 62], "model_paramet": [20, 21, 23, 24, 25, 26, 29, 33, 40, 41, 62], "overwrit": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "check_paramet": 20, "fulfil": 20, "present": [20, 52, 57], "kp": [20, 23, 25, 30, 50], "kd": [20, 23, 25, 30, 50], "kv": 20, "kd_func": 20, "q2": [20, 36], "a1": 20, "a2": 20, "a3": 20, "er": 20, "frictioncompensationcontrol": 21, "gamepad_nam": 22, "logitech": 22, "rumblepad": 22, "usb": [22, 45, 46, 50], "support": [22, 37, 40], "gamepadcontrol": 22, "pidgravitycompensationcontrol": 23, "gravit": 23, "forc": [23, 46, 47], "ki": [23, 25, 30], "proport": [23, 25, 50], "gravitycompensationcontrol": 23, "ilqrmpccppcontrol": 24, "python": [24, 41, 53, 55, 56, 58, 60], "bind": [24, 41, 53, 60], "cpp": [24, 53], "630": [24, 36, 41], "compute_init_traj": 24, "1000": [24, 27, 34, 37, 41, 50], "005": [24, 29, 36, 41], "max_it": [24, 41], "regu_init": [24, 41], "max_regu": [24, 41], "10000": [24, 41, 42], "min_regu": [24, 41], "break_cost_redu": [24, 41], "06": [24, 41], "scu": [24, 41], "scp": [24, 41], "scv": [24, 41], "scen": [24, 41], "fcp": [24, 41], "fcv": [24, 41], "fcen": [24, 41], "number": [24, 30, 32, 33, 37, 40, 41, 42, 50, 62], "per": [24, 41], "minimum": [24, 40, 41], "reduct": [24, 41], "stage": [24, 41], "determin": [24, 27, 37, 41, 57], "euler": [24, 37, 41], "rung": [24, 37, 41], "kutta": [24, 37, 41], "load_init_traj": 24, "num_break": [24, 30, 32, 33, 42], "40": [24, 30, 32, 33, 42, 46], "poly_degre": [24, 42], "store": [24, 26, 30, 32, 33, 34, 36, 37, 40, 46, 50, 55, 61, 62, 63], "standarf": [24, 30, 32, 33], "format": [24, 30, 32, 33, 60, 62, 63], "repo": [24, 30, 32, 33], "break": [24, 30, 32, 33, 42, 46], "degre": [24, 36, 50], "set_cost_paramet": [24, 26, 29, 33, 41], "set_cost_parameters_": [24, 26, 29, 41], "par": [24, 26, 27, 29, 38, 41, 42], "scu1": [24, 41], "scp1": [24, 41], "scp2": [24, 41], "scv1": [24, 41], "scv2": [24, 41], "fcp1": [24, 41], "fcp2": [24, 41], "fcv1": [24, 41], "fcv2": [24, 41], "set_final_cost_paramet": 24, "141592653589793": [24, 26, 29, 33], "trajectory_stabil": 24, "shift": 24, "freeli": 24, "ilqrmpc_swingup_loss": 24, "bound": [24, 27, 37, 38, 40, 41, 42], "loss_weight": [24, 41, 42], "rescale_par": [24, 27, 38, 41, 42], "unscale_par": [24, 27, 38, 41, 42], "computedtorquecontrol": 25, "invers": [25, 36, 46], "obj": [25, 42], "inversedynamicscontrol": 25, "roa": 26, "dlqr": 26, "iterative_riccati": 26, "ricatti": 26, "intend": 26, "more": [26, 27, 45, 46, 53, 60, 61, 62], "see": [26, 37, 54, 55, 56, 58, 60], "exampl": [26, 37, 50, 55], "github": [26, 52, 53, 55, 56, 58], "16": 26, "745": 26, "notebook": 26, "tree": [26, 42], "main": [26, 46, 50, 56, 58, 60], "207": 26, "lagrang": 26, "multipli": [26, 36], "constraint": [26, 40], "dx": 26, "lqrcontrol": 26, "unstabl": 26, "fixpoint": 26, "set_cost_matric": 26, "directli": [26, 37, 62], "p1p1_cost": 26, "p2p2_cost": 26, "v1v1_cost": 26, "v2v2_cost": 26, "p1p2_cost": 26, "v1v2_cost": 26, "p1v1_cost": 26, "p1v2_cost": 26, "p2v1_cost": 26, "p2v2_cost": 26, "u1u1_cost": 26, "u2u2_cost": 26, "u1u2_cost": 26, "p1p1": 26, "p1p2": 26, "p1v1": 26, "p1v2": 26, "p2p2": 26, "p2v1": 26, "p2v2": 26, "v1v1": 26, "v1v2": 26, "v2v2": 26, "u1u1": 26, "u1u2": 26, "u2u2": 26, "diagon": 26, "failure_valu": 26, "nan": 26, "cost_to_go_cut": 26, "exce": 26, "retur": 26, "lqrcontroller_nonsymbol": 26, "version": [26, 37, 46, 53], "symbol": [26, 36], "thu": 26, "compat": [26, 61], "cma": 26, "urdf_path": [26, 33, 40], "drake": [26, 33, 40], "urdf": [26, 33, 40, 52], "necessari": [26, 33, 37, 40, 46, 61], "temporari": [26, 33, 40], "lqr_check_ctg": 27, "tf": [27, 37], "sim_callback": 27, "callback": 27, "pass": [27, 37, 57, 61], "probabilit": 27, "lqr_check_ctg_verif": 27, "dpar": 27, "cpar": 27, "grid": 27, "idx1": 27, "idx2": 27, "lqr_check_epsilon": 27, "14159265": 27, "eps_p": 27, "eps_v": 27, "lqr_check_epsilon_verif": 27, "directspher": 27, "r_i": 27, "r_o": 27, "krauth": 27, "werner": 27, "statist": 27, "oxford": 27, "master": 27, "seri": [27, 46, 50], "13": 27, "univers": [27, 50], "press": [27, 50], "2006": 27, "42": 27, "getellipseparamsfromquad": 27, "s0idx": 27, "s1idx": 27, "ellips": 27, "plane": [27, 44, 47], "match": 27, "funnel": 27, "plot": [27, 37, 50, 55, 61], "getellipsepatch": 27, "x1": [27, 36], "just": 27, "patch": [27, 37], "involv": 27, "centerpoint": 27, "rhohist": 27, "plotellips": 27, "quadform": 27, "helper": [27, 40], "tmx": 27, "samplefromellipsoid": 27, "rinner": 27, "router": 27, "volellipsoid": 27, "calcul": [27, 36, 37, 40, 41, 46, 55, 56, 58], "hyperellipsoid": 27, "hyperllipsoid": 27, "math": 27, "stackexchang": 27, "question": 27, "332391": 27, "332434": 27, "textbook": 27, "gatech": 27, "ila": 27, "ball": 27, "wikipedia": 27, "wiki": 27, "volume_of_an_n": 27, "check_x0": 27, "compute_roa_prob": 27, "n_iter": 27, "n_check_sim": 27, "xbar_max": 27, "roa_prob_loss": 27, "controller_muli_out_sum_of_gaussians_with_angles_numpi": 28, "ctrl_rate": [28, 31], "u_max": [28, 31], "num_dof": [28, 31], "controlled_dof": [28, 31], "wait_step": [28, 31], "get_np_polici": 28, "ret_dict": 28, "controller_multi_policy_sum_of_gaussians_with_angles_numpi": 28, "parameters_list": 28, "active_pos_list": 28, "active_vel_list": 28, "controller_sum_of_gaussians_with_angles_numpi": 28, "energyshapingpflandlqrcontrol": 29, "nergi": 29, "print": [29, 45, 50, 51], "kpo": 29, "kvel": 29, "ken": 29, "energyshapingpflcontrol": 29, "symbolicpflcontrol": 29, "symbolicpflandlqrcontrol": 29, "pfl_method": 29, "noncolloc": 29, "energysat": 29, "q1sat": 29, "q1": [29, 36], "pointpidcontrol": 30, "trajpidcontrol": 30, "use_feed_forward_torqu": 30, "prefer": [30, 32, 33, 45], "feed": [30, 50], "forward": [30, 36, 50], "controller_random_explor": 31, "filt_freq": 31, "seed": [31, 37], "type_random": 31, "wgn": 31, "random_par": 31, "expl_tim": 31, "system_freq": 31, "500": 31, "plot_profil": 31, "init_profil": 31, "feedforwardcontrol": 32, "feedforward": 32, "trajectorycontrol": 32, "kk_stabil": 32, "trajectoryinterpcontrol": 32, "tvlqrcontrol": 33, "diag": 33, "ey": [33, 37], "zero": [33, 34, 37, 50], "rad2rev": 34, "angle_in_radian": 34, "convert": [34, 36, 46], "radian": [34, 50], "revolut": [34, 50], "rev2rad": 34, "angle_in_revolut": 34, "rev": 34, "save_data": 34, "date": 34, "shoulder_meas_po": [34, 42], "shoulder_meas_vel": [34, 42], "shoulder_meas_tau": [34, 38, 42], "elbow_meas_po": [34, 42], "elbow_meas_vel": [34, 42], "elbow_meas_tau": [34, 38, 42], "meas_tim": [34, 42], "deprec": [34, 37], "One": [34, 46], "save_trajectori": [34, 42, 63], "setzeroposit": 34, "initpo": 34, "initvel": 34, "inittau": 34, "tmotor": [34, 50], "motor_driv": 34, "canmotorlib": 34, "canmotorcontrol": [34, 50], "sensor": 34, "run_experi": 34, "can_port": 34, "can0": [34, 50], "motor_id": [34, 50], "motor_typ": 34, "ak80_6_v1p1": 34, "tau_limit": [34, 40], "record_video": 34, "durat": 34, "port": [34, 50], "id": [34, 50, 62], "motor_send_n_command": 34, "numtim": 34, "motor_send_n_commands2": 34, "motor_speed_test": 34, "motor_speed_test2": 34, "profil": [34, 50], "meas_dt": 34, "valid": 34, "avg": 34, "numstep": 34, "videowriterwidget": 34, "video_file_nam": 34, "src": [34, 53, 60], "save_fram": 34, "show_fram": 34, "start_record": 34, "abstractfilt": 35, "get_filtered_st": 35, "get_filtered_state_": 35, "butterworth_filt": 35, "cutoff": 35, "002": 35, "filt_velocity_cut": 35, "creat": [35, 40, 60], "nyquist": 35, "200": 35, "hz": 35, "enumer": 35, "denomin": 35, "impuls": 35, "iir": 35, "identity_filt": 35, "kalman_filt": 35, "process_nois": 35, "measurement_nois": 35, "001": 35, "covariance_matrix": 35, "lowpass_filt": 35, "runningmean_filt": 35, "window": [35, 40, 46, 50], "iden": 35, "unscentedkalman_filt": 35, "fx": [35, 36], "yb_friction_matrix": 36, "dq_vec": 36, "contribut": [36, 60], "dq1": 36, "dq2": 36, "415": 36, "0475": 36, "0798": 36, "dof": 36, "filepath": [36, 37], "model_design": 36, "model_id": [36, 62], "freedom": 36, "sens": 36, "yaml": 36, "togeth": 36, "hd": 36, "get_dict": 36, "load_dict": 36, "mpar_dict": 36, "look": 36, "gr": [36, 62], "load_model": 36, "load_yaml": 36, "file_path": 36, "save_dict": 36, "save_path": 36, "set_cfric": 36, "setter": 36, "set_com": 36, "set_damp": 36, "set_dof": 36, "set_gear_ratio": 36, "set_grav": 36, "set_inertia": 36, "set_length": 36, "set_mass": 36, "set_motor_inertia": 36, "set_torque_limit": 36, "coulomb_vector": 36, "forward_dynam": 36, "acc1": [36, 63], "acc2": [36, 63], "forward_kinemat": 36, "po": [36, 50], "origin": [36, 42, 57], "y1": 36, "x2": 36, "y2": 36, "cartesian": 36, "get_alin": 36, "xd": 36, "ax": 36, "bu": [36, 46, 51], "get_blin": 36, "get_cx": 36, "cx": 36, "del": 36, "x_i": 36, "get_fx": 36, "get_gx": 36, "gx": 36, "get_minvx": 36, "minvx": 36, "minv": 36, "get_mx": 36, "mx": 36, "gravity_vector": 36, "kinetic_energi": 36, "linear_matric": 36, "u0": 36, "mass_matrix": 36, "potential_energi": 36, "rh": 36, "integrand": 36, "vel1": [36, 63], "vel2": [36, 63], "total_energi": 36, "ir_sym": 36, "angular_momentum_bas": 36, "angular": [36, 46], "momentum": 36, "angular_momentum_ddot_bas": 36, "s\u00b3": 36, "angular_momentum_dot_bas": 36, "center_of_mass": 36, "whole": 36, "com_dot": 36, "equation_of_mot": 36, "2nd": 36, "eom": [36, 37], "1st": [36, 40], "sympi": 36, "qd": [36, 40], "qdd": [36, 40, 52, 57], "g_sym": 36, "gr_sym": 36, "acc": [36, 38, 42], "lambdify_matric": 36, "lambdifi": 36, "linear_matrices_discret": 36, "n_actuat": 36, "n_link": 36, "q01": 36, "hat": 36, "q02": 36, "q0d1": 36, "q0d2": 36, "qd1": 36, "qd2": 36, "qdd1": 36, "qdd2": 36, "replace_paramet": 36, "replac": 36, "shall": 36, "symbolic_coriolis_matrix": 36, "symbolic_coulomb_vector": 36, "symbolic_gravity_vector": 36, "symbolic_kinetic_energi": 36, "symbolic_linear_matric": 36, "symbolic_mass_matrix": 36, "symbolic_potential_energi": 36, "symbolic_total_energi": 36, "u01": 36, "u02": 36, "diff_to_matrix": 36, "diff": 36, "sub_symbol": 36, "new_symbol": 36, "substitut": 36, "new": [36, 37, 50, 54], "vector_mult": 36, "vec1": 36, "vec2": 36, "product": 36, "customenv": 37, "reward_func": 37, "terminated_func": 37, "reset_func": 37, "obs_spac": 37, "box": [37, 50], "float32": 37, "act_spac": 37, "max_episode_step": 37, "env": 37, "action_spac": 37, "acttyp": 37, "observation_spac": 37, "obstyp": 37, "render": 37, "frame": 37, "render_mod": 37, "metadata": 37, "most": [37, 62], "gymnasium": 37, "automat": 37, "wrapper": 37, "collect": 37, "__init__": [37, 61], "initialis": 37, "convent": [37, 62], "displai": [37, 50, 56, 58], "termin": [37, 50], "usual": [37, 42, 50], "consumpt": 37, "occur": 37, "doesn": [37, 46], "rgb_arrai": 37, "singl": [37, 46], "rgb": 37, "pixel": 37, "imag": 37, "ansi": 37, "stringio": 37, "style": 37, "represent": 37, "newlin": 37, "escap": 37, "color": [37, 50], "rgb_array_list": 37, "ansi_list": 37, "except": [37, 50], "rendercollect": 37, "pop": 37, "sure": [37, 44, 46, 47, 50], "your": [37, 46, 50, 54], "25": 37, "wa": [37, 50, 53], "longer": [37, 44, 55], "accept": [37, 46], "rather": 37, "cartpol": 37, "v1": 37, "info": 37, "some": [37, 46, 62], "ensur": [37, 46, 61], "generalis": 37, "otherwis": 37, "alreadi": [37, 56, 58], "rng": 37, "therefor": [37, 46, 50], "never": [37, 46, 57], "custom": 37, "line": [37, 50, 55, 58, 63], "super": [37, 61], "correctli": [37, 53], "v0": 37, "return_info": 37, "remov": 37, "prng": 37, "np_random": 37, "attribut": 37, "np_random_se": 37, "chosen": 37, "sourc": [37, 46, 52], "timestamp": 37, "dev": [37, 53], "urandom": 37, "you": [37, 46, 47, 50, 53, 55, 56, 58, 60, 61], "want": [37, 42, 46, 53, 55, 56, 58, 60, 61], "been": [37, 45, 57, 62], "pleas": [37, 55, 56, 58, 60], "paradigm": 37, "how": [37, 43, 46, 50, 54, 57], "depend": [37, 46, 50, 53, 56, 57, 61], "element": 37, "analog": 37, "auxiliari": 37, "complement": 37, "episod": 37, "reach": 37, "truncat": 37, "26": 37, "favor": 37, "clearer": 37, "user": [37, 50], "had": 37, "bootstrap": 37, "due": [37, 50, 52, 57], "pole": [37, 50], "supportsfloat": 37, "under": [37, 46, 50, 56, 57, 58], "mdp": 37, "neg": [37, 50], "move": [37, 47], "lava": 37, "sutton": 37, "barto": 37, "gridworld": 37, "outsid": [37, 44], "scope": 37, "satisfi": 37, "timelimit": 37, "could": [37, 50], "out": 37, "diagnost": 37, "debug": 37, "might": 37, "instanc": [37, 56, 58], "metric": 37, "hidden": 37, "individu": [37, 55], "produc": 37, "gym": 37, "v26": 37, "distinguish": 37, "favour": 37, "boolean": 37, "undefin": 37, "mai": [37, 46, 53, 56, 57, 61, 62], "emit": 37, "mayb": [37, 61], "underli": 37, "successfulli": 37, "exceed": 37, "enter": [37, 50], "invalid": 37, "double_pendulum_dynamics_func": 37, "state_represent": 37, "max_veloc": 37, "normalize_st": 37, "rescal": [37, 38], "unscale_act": 37, "unscale_st": 37, "get_gaussian_perturbation_arrai": 37, "tmax": 37, "mu": [37, 50], "sigma": 37, "amplitud": 37, "get_random_gauss_perturbation_arrai": 37, "n_per_joint": 37, "plot_perturbation_arrai": 37, "perturbation_arrai": 37, "anim": [37, 40, 61], "matplotlib": 37, "funcanim": 37, "controller_step": 37, "motir": 37, "euler_integr": 37, "get_control_u": 37, "get_measur": 37, "x_mea": [37, 42], "set_measurement_paramet": 37, "get_real_applied_u": 37, "u_out": 37, "relat": [37, 51], "last": [37, 57], "u_last": 37, "set_motor_paramet": 37, "get_stat": 37, "get_trajectory_data": 37, "rocrd": 37, "record_data": 37, "argument": 37, "nois": [37, 56, 57], "reset_data_record": 37, "runge_integr": 37, "set_disturb": 37, "disturb": 37, "hit": 37, "happen": 37, "yet": 37, "pertub": 37, "meas_noise_sigma": 37, "measuremt": 37, "gaussian": 37, "what": [37, 53], "u_noise_sigma": 37, "resons": 37, "set_process_nois": 37, "process_noise_sigma": 37, "correspond": [37, 50, 63], "set_stat": 37, "t0": 37, "period": [37, 54], "simulate_and_anim": 37, "plot_inittraj": 37, "plot_forecast": 37, "plot_trail": 37, "phase_plot": 37, "save_video": 37, "video_nam": 37, "pendulum_swingup": 37, "mp4": 37, "anim_dt": 37, "plot_horizontal_lin": 37, "horizontal_line_height": 37, "2d": 37, "serial": [37, 50], "chain": [37, 50], "forcast": 37, "trail": 37, "video": [37, 55], "get_arrow": 37, "radiu": 37, "centx": 37, "centi": 37, "angle_": 37, "theta2_": 37, "color_": 37, "black": 37, "circular": 37, "arrow": 37, "coordint": 37, "orient": 37, "extend": [37, 44, 51], "regularpolygon": 37, "head": 37, "set_arrow_properti": 37, "made": [37, 45, 46], "errfunc": 38, "phi": 38, "errfunc_nl": 38, "dyn_fun": 38, "plot_torqu": 38, "shoulder_fit_tau": 38, "elbow_fit_tau": 38, "direct_colloc": 39, "scene_graph": 40, "x_trajectori": 40, "browser": 40, "pydrak": 40, "multibodi": 40, "multibodypl": 40, "geometri": 40, "scenegraph": 40, "scene": 40, "graph": 40, "piecewisepolynomial_": 40, "construct_trajectori": 40, "dircol": 40, "construct": [40, 43], "directcolloc": 40, "jerk": 40, "create_plant_from_urdf": 40, "froma": 40, "extract_data_from_polynomi": 40, "extract": 40, "polnomi": 40, "dircol_calcul": 40, "animate_trajectori": 40, "found": [40, 50, 54, 55, 56, 58], "meshcat": 40, "viewer": 40, "compute_trajectori": [40, 41], "initial_st": 40, "final_st": 40, "theta_limit": 40, "speed_limit": 40, "time_pen": 40, "init_traj_time_interv": 40, "minimum_timestep": 40, "maximum_timestep": 40, "interv": 40, "size": [40, 46], "rais": 40, "assertionerror": 40, "optmiz": 40, "get_trajectori": 40, "freq": 40, "urdfpath": 40, "robottyp": 40, "modelpar": 40, "savedir": 40, "nx": 40, "nu": 40, "avoid": 40, "better": [40, 54], "resampl": 40, "collocationconstraint": 40, "var": 40, "computetrajectori": 40, "scipi": 40, "cubichermitesplin": 40, "hold": 40, "float64": 40, "equationofmot": 40, "xdot": 40, "interpolationconstraint": 40, "mathematicalprogram": 40, "wh": 40, "h_min": 40, "h_max": 40, "xf": 40, "x_initi": 40, "u_initi": 40, "h_initi": 40, "snopt": 40, "matthew": 40, "kelli": 40, "2017": 40, "1137": 40, "16m1062569": 40, "_type_": 40, "factor": [40, 46, 57], "guess": 40, "ilqr_calcul": 41, "save_trajectory_csv": 41, "place": [41, 46], "folder": [41, 55, 60], "script": [41, 50, 55, 56, 58], "ilqr_trajopt_loss": 41, "goal_weight": 41, "swingup_loss": 42, "goal_accuraci": 42, "traj_opt_loss": 42, "traj_opt": 42, "concatenate_trajectori": 42, "with_tau": 42, "load_kk_valu": 42, "load_trajectori": [42, 63], "load_trajectory_ful": [42, 63], "x_filt": 42, "x_de": 42, "u_con": 42, "u_fric": 42, "u_mea": 42, "u_d": 42, "trajectory_properti": 42, "obj_to_list": 42, "cma_optim": 42, "loss_func": 42, "init_par": 42, "outcma": 42, "sigma0": 42, "popsize_factor": 42, "maxfev": 42, "tolfun": 42, "tolx": 42, "tolstagn": 42, "num_proc": 42, "scipy_par_optim": 42, "nelder": 42, "mead": 42, "solve_least_squar": 42, "xb0": 42, "fitpiecewisepolynomi": 42, "data_x": 42, "data_i": 42, "fit": 42, "cubic": 42, "segment": 42, "section": [42, 43], "create_section_poli": 42, "split": 42, "setion": 42, "determin_poli": 42, "end_tim": 42, "get_valu": 42, "split_data": 42, "start_tim": 42, "interpolatematrix": 42, "interpolatevector": 42, "resampletrajectori": 42, "poly1": 42, "poly2": 42, "poly3": 42, "plot_figur": 42, "index": [42, 52], "shoulder_tau_control": 42, "elbow_tau_control": 42, "shoulder_filtered_vel": 42, "elbow_filtered_vel": 42, "shoulder_des_tim": 42, "shoulder_des_po": 42, "shoulder_des_vel": 42, "shoulder_des_tau": 42, "elbow_des_tim": 42, "elbow_des_po": 42, "elbow_des_vel": 42, "elbow_des_tau": 42, "shoulder_fric_tau": 42, "elbow_fric_tau": 42, "plot_timeseri": 42, "plot_po": 42, "plot_vel": 42, "plot_acc": 42, "plot_tau": 42, "plot_energi": 42, "pos_x_lin": 42, "pos_y_lin": 42, "vel_x_lin": 42, "vel_y_lin": 42, "acc_x_lin": 42, "acc_y_lin": 42, "tau_x_lin": 42, "tau_y_lin": 42, "energy_x_lin": 42, "energy_y_lin": 42, "t_de": 42, "u_friccomp": 42, "acc_d": 42, "generate_urdf": 42, "urdf_in": 42, "urdf_out": 42, "054": 42, "025": 42, "remove_namespac": 42, "wrap_angles_diff": 42, "wrap_angles_top": 42, "instruct": [43, 51, 54], "testbench": [43, 46, 48], "bill": [43, 51, 52], "materi": [43, 51, 52, 62], "assembli": [43, 45, 51], "electr": [43, 50, 51], "safeti": [43, 46], "assembl": [44, 45], "mount": [44, 45, 46, 51], "horizont": 44, "surfac": 44, "tabl": [44, 56, 58], "suffic": 44, "screw": [44, 45], "clamp": 44, "attach": [44, 50], "shaft": [44, 50, 51], "fixat": [44, 45], "sinc": [44, 51], "offer": [44, 50, 52, 55], "hollow": [44, 51], "cabl": [44, 45, 46, 50, 51], "power": [44, 45, 46, 47, 50], "come": [44, 46], "front": [44, 62], "opposit": [44, 51], "aluminium": 44, "piec": 44, "windup": [44, 51], "width": 44, "inward": 44, "face": 44, "figur": [44, 50, 60], "collid": 44, "compon": [45, 52, 60, 61], "quantiti": 45, "ak80": [45, 46, 50], "fold": [45, 51], "aluminum": [45, 51], "sheet": [45, 50], "metal": 45, "cm": 45, "30": 45, "airex": [45, 51], "carbon": [45, 51], "lath": 45, "pom": 45, "suppli": [45, 46, 47, 50], "capacitor": [45, 46], "emerg": [45, 46, 47], "interfac": [45, 46, 60], "m10x45": 45, "hexagon": 45, "nut": 45, "m10": 45, "m5x40": 45, "m4x20": 45, "m3x20": 45, "m3x6": 45, "past": 45, "pvc": [45, 51], "rigid": [45, 51], "foam": [45, 51], "later": [45, 63], "fiber": [45, 51], "stabl": [45, 46], "less": 45, "vibrat": 45, "warranti": 46, "reproduct": 46, "our": 46, "own": [46, 54], "risk": 46, "diagram": [46, 50, 51], "below": [46, 50, 60, 61], "pc": [46, 50, 56], "connect": [46, 61], "board": [46, 50, 51], "cubemars_ak_v1": 46, "commun": [46, 57, 60], "1mbit": 46, "sec": 46, "protocol": [46, 50], "furthermor": 46, "pci": 46, "card": 46, "devic": [46, 50], "modul": [46, 50, 52, 60], "pcan": 46, "peak": [46, 50], "former": 46, "uart": 46, "connector": [46, 50], "work": [46, 47, 50, 53], "latter": [46, 61], "linux": [46, 50], "calibr": [46, 50], "voltag": [46, 50], "24": [46, 50], "consum": 46, "deliv": 46, "test": [46, 51, 52, 53, 57], "ea": 46, "9032": 46, "elektro": 46, "automatik": 46, "protect": 46, "wouldn": 46, "batteri": 46, "pack": 46, "simpli": 46, "recharg": 46, "10x": 46, "7v": 46, "400": 46, "cell": 46, "capac": 46, "parallel": 46, "button": [46, 50], "disconnect": 46, "keep": [46, 55, 58], "fig": [46, 50], "400f": 46, "revers": 46, "speed": [46, 47, 50, 56], "low": [46, 50, 51, 52, 57], "electro": 46, "magnet": 46, "decreas": [46, 50], "flow": 46, "recycl": 46, "back": [46, 50], "caus": 46, "spike": 46, "enough": 46, "capacit": 46, "suffici": 46, "larg": [46, 57], "desgin": 46, "curcuit": 46, "benefici": 46, "bulk": 46, "disadvantag": 46, "increas": 46, "were": 46, "perfect": [46, 57], "dc": 46, "especi": [46, 50], "polar": 46, "diod": 46, "cannot": 46, "sink": 46, "amount": [46, 57], "v_": 46, "nom": 46, "simpl": [46, 56, 58], "across": 46, "accordingli": 46, "nevertheless": 46, "tune": [46, 57], "tricki": 46, "extern": 46, "brake": 46, "short": [46, 55, 56, 58], "parasit": 46, "induct": [46, 50], "rate": [46, 50, 54], "larger": 46, "higher": 46, "quickli": 46, "rippl": 46, "too": 46, "apllic": 46, "introduc": 46, "burn": 46, "safti": 46, "margin": 46, "wherea": 46, "buffer": 46, "charg": 46, "don": 46, "bui": 46, "huge": 46, "expens": 46, "resistor": [46, 50], "cheaper": 46, "purchas": 46, "topic": 46, "drawback": 46, "heat": 46, "frequent": [46, 62], "regener": 46, "resist": [46, 50], "shunt": 46, "polulu": 46, "dissip": 46, "much": 46, "care": [47, 50], "mind": 47, "brushless": 47, "veri": [47, 50, 51, 54], "tremend": 47, "awai": 47, "recommend": [47, 53, 55], "cage": 47, "surround": 47, "loos": 47, "fly": 47, "access": [47, 61], "Be": 47, "extra": 47, "pure": [47, 50], "mjbot": [48, 53], "usag": [48, 50], "ak": 48, "80": 48, "ad": [48, 56, 58, 61], "soon": 48, "driver": 50, "manual": 50, "quasi": [50, 52], "drive": [50, 51, 52], "equip": 50, "absolut": 50, "bit": 50, "rotari": 50, "basic": 50, "mini": 50, "cheetah": 50, "ben": 50, "katz": 50, "transmiss": 50, "485": 50, "98": 50, "mm": [50, 51], "38": 50, "365": 50, "rpm": 50, "backlash": 50, "accuraci": 50, "k_m": 50, "2206": 50, "sqrt": 50, "009524": 50, "k_t": 50, "091": 50, "092": 50, "184": 50, "emf": 50, "k_v": 50, "251": 50, "2400": 50, "nabla": 50, "phase": 50, "170": 50, "pm5": 50, "omega": 50, "57": 50, "pm10": 50, "rotor": 50, "000060719": 50, "download": 50, "cp210x": 50, "silab": 50, "isn": 50, "properli": 50, "sparkfun": 50, "instal": [50, 52, 59], "ch340": 50, "ch": 50, "341ser": 50, "ex": 50, "webpag": 50, "notic": 50, "uninstal": 50, "ch341": 50, "menu": 50, "old": 50, "softwar": [50, 52, 59], "websit": 50, "youtub": 50, "watch": 50, "hbqqcgebaf8": 50, "skyentif": 50, "hzy9vzgpzka": 50, "special": 50, "cubemar": 50, "modular": 50, "shown": 50, "micro": 50, "5pin": 50, "goe": 50, "24v": 50, "12a": 50, "cut": [50, 51], "complet": [50, 51], "serial_ch340": 50, "wch": 50, "cp": 50, "along": [50, 51], "appropri": 50, "baud": 50, "921600": 50, "115200": 50, "bd": 50, "remain": 50, "issu": 50, "side": 50, "gui": 50, "correct": [50, 62], "motorselectent": 50, "slow": 50, "commonli": [50, 57], "tick": 50, "m_mode": 50, "red": 50, "green": 50, "push": 50, "send": 50, "onc": 50, "reliabl": 50, "sever": 50, "exit": 50, "restart": 50, "exact": 50, "danger": 50, "deactiv": 50, "messag": 50, "procedur": 50, "uvlo": 50, "vm": 50, "lockout": 50, "otw": 50, "thermal": 50, "warn": 50, "shutdown": 50, "interpret": 50, "drv8353m": 50, "three": [50, 54], "smart": 50, "gate": 50, "texa": 50, "instrument": 50, "datasheet": 50, "proper": 50, "ground": 50, "ideal": 50, "isol": 50, "qualiti": [50, 57], "common": 50, "share": 50, "great": 50, "daisi": 50, "pin": 50, "120": 50, "These": [50, 63], "reflect": 50, "cpu": 50, "transceiv": 50, "xcvr": 50, "ac": 50, "ip": 50, "mbaud": 50, "sudo": [50, 53], "bitrat": 50, "bring": 50, "altern": 50, "shell": 50, "setup_caninterfac": 50, "sh": 50, "job": 50, "purpos": [50, 52], "cutecom": 50, "receiv": 50, "can_socket": 50, "socket_timeout": 50, "avail": 50, "enable_motor": 50, "disable_motor": 50, "set_zero_posit": 50, "send_deg_command": 50, "position_in_degre": 50, "velocity_in_degre": 50, "tau_ff": 50, "send_rad_command": 50, "position_in_radian": 50, "velocity_in_radian": 50, "si": 50, "block": 50, "close": 50, "bee": 50, "seen": 50, "flexibl": 50, "those": [50, 62], "pde": 50, "pvel": 50, "tff": 50, "let": 50, "built": [51, 52], "pednulum": 51, "bench": 51, "cad": [51, 52], "wire": 51, "cover": [51, 60], "shoulder": [51, 52], "bracket": 51, "light": 51, "laser": 51, "thick": 51, "sandwich": 51, "plate": 51, "lamin": 51, "arm": 51, "effector": [51, 55, 58], "elbow": [51, 52], "hous": 51, "project": 52, "open": 52, "kit": 52, "strongli": 52, "platform": 52, "transpar": 52, "passiv": 52, "offlin": 52, "studi": [52, 57], "dual": 52, "repositori": [52, 53, 54, 56, 58, 59, 62], "Of": 52, "bom": 52, "etc": 52, "dfki": [52, 53, 55], "ric": [52, 53], "lab": [52, 53], "double_pendulum": [52, 53, 61, 63], "leaderboard": [52, 59], "search": 52, "code": [53, 60], "mostli": 53, "moment": [53, 62], "moteu": 53, "packag": 53, "comment": 53, "py": [53, 55, 56, 58], "virtual": 53, "neccessari": 53, "ubuntu20": 53, "apt": 53, "libyaml": 53, "libeigen3": 53, "libpython3": 53, "libx11": 53, "libsm6": 53, "libxt6": 53, "libglib2": 53, "python3": 53, "sphinx": 53, "numpydoc": 53, "rtd": 53, "theme": 53, "ubuntu22": 53, "clone": 53, "git": 53, "cd": 53, "bullet": 53, "recompil": 53, "appear": [53, 56, 58], "pip": 53, "eigen": 53, "librari": [53, 60, 61, 62, 63], "header": [53, 63], "wget": 53, "o": 53, "zip": 53, "gitlab": 53, "libeigen": 53, "archiv": 53, "unzip": 53, "mv": 53, "usr": 53, "visit": 53, "wildli": 54, "interest": 54, "understand": 54, "behavior": [54, 57], "offici": [54, 56, 58], "threshhold": [55, 58], "real_hardwar": 55, "create_leaderboard": [55, 56, 58], "dir": 55, "controller_1": 55, "experiment01": 55, "timeseri": 55, "png": 55, "experiment02": 55, "experiment10": 55, "txt": 55, "short_descript": [55, 56, 58], "readm": [55, 56, 58], "md": [55, 56, 58], "gif": 55, "controller_2": 55, "creator": 55, "sentenc": 55, "remot": 55, "contact": 55, "shivesh": 55, "kumar": 55, "de": [55, 57], "felix": 55, "wieb": 55, "shubham": 55, "vya": 55, "detail": [55, 60], "schedul": 55, "submit": 55, "perturb": 56, "con_": [56, 58], "sim_paramet": [56, 58], "benchmark": 56, "con_controllernam": [56, 58], "controllernam": [56, 58], "yout": [56, 58], "leaderboard_config": [56, 58], "sim_swingup": [56, 58], "simple_nam": [56, 58], "charact": [56, 58], "readme_path": [56, 58], "comma": [56, 58, 63], "separ": [56, 58, 63], "particip": [56, 58], "pull": [56, 58], "request": [56, 57, 58], "markdown": [56, 58], "feel": [56, 58], "instanti": [56, 58], "benchmark_control": 56, "relev": [56, 58], "1h": 56, "6h": 56, "influenc": 57, "capabl": 57, "fail": 57, "phenomenon": 57, "gap": 57, "conduct": 57, "quantifi": 57, "inaccuraci": 57, "identif": 57, "perfectli": 57, "accur": 57, "ass": 57, "noisi": 57, "handl": 57, "without": [57, 61], "exactli": 57, "sometim": 57, "react": 57, "immedi": 57, "overshoot": 57, "undershoot": 57, "tau_": 57, "k_": 57, "resp": 57, "neq": 57, "reaction": 57, "sim_control": 58, "calculate_leaderboard_scor": 58, "welcom": 60, "besid": 60, "someth": 60, "ecosystem": 60, "organ": 60, "interplai": 60, "visual": 60, "explain": 60, "abstract_control": 61, "sent": 61, "precis": [61, 62], "underscor": 61, "retrac": 61, "initiali": 61, "ba": 61, "funciton": 61, "set_filter_arg": 61, "incom": 61, "turn": 61, "u_hist": 61, "friciton": 61, "u_fric_hist": 61, "u_grav_hist": 61, "histori": 61, "x_hist": 61, "xfilt_hist": 61, "templat": 61, "strictli": 61, "controllertempl": 61, "def": 61, "yml": 62, "conveni": 62, "write": 62, "design_a": 62, "design_b": 62, "design_c": 62, "design_hd": 62, "design_": 62, "capit": 62, "letter": 62, "minor": 62, "hypothet": 62, "realiz": 62, "model_1": 62, "model_2": 62, "model_3": 62, "model_": 62, "folow": 62, "simplifi": 62, "zhe": 63, "reserv": 63, "column": 63, "pos1": 63, "pos2": 63, "pos_meas1": 63, "pos_meas2": 63, "vel_meas1": 63, "vel_meas2": 63, "pos_filt1": 63, "pos_filt2": 63, "vel_filt1": 63, "vel_filt2": 63, "pos_des1": 63, "pos_des2": 63, "vel_des1": 63, "vel_des2": 63, "tau_con1": 63, "tau_con2": 63, "tau_fric1": 63, "tau_fric2": 63, "tau_meas1": 63, "tau_meas2": 63, "tau_des1": 63, "tau_des2": 63, "k11": 63, "k12": 63, "k13": 63, "k14": 63, "k21": 63, "k22": 63, "k23": 63, "k24": 63, "k1": 63, "k2": 63, "easiest": 63, "csv_trajectori": 63, "panda": 63, "miss": 63, "skip": 63}, "objects": {"": [[15, 0, 0, "-", "double_pendulum"]], "double_pendulum": [[16, 0, 0, "-", "analysis"], [17, 0, 0, "-", "controller"], [34, 0, 0, "-", "experiments"], [35, 0, 0, "-", "filter"], [36, 0, 0, "-", "model"], [37, 0, 0, "-", "simulation"], [38, 0, 0, "-", "system_identification"], [39, 0, 0, "-", "trajectory_optimization"], [42, 0, 0, "-", "utils"]], "double_pendulum.analysis": [[16, 0, 0, "-", "benchmark"], [16, 0, 0, "-", "benchmark_plot"], [16, 0, 0, "-", "benchmark_scores"], [16, 0, 0, "-", "leaderboard"], [16, 0, 0, "-", "utils"]], "double_pendulum.analysis.benchmark": [[16, 1, 1, "", "benchmarker"]], "double_pendulum.analysis.benchmark.benchmarker": [[16, 2, 1, "", "benchmark"], [16, 2, 1, "", "check_delay_robustness"], [16, 2, 1, "", "check_goal_success"], [16, 2, 1, "", "check_meas_noise_robustness"], [16, 2, 1, "", "check_modelpar_robustness"], [16, 2, 1, "", "check_perturbation_robustness"], [16, 2, 1, "", "check_unoise_robustness"], [16, 2, 1, "", "check_uresponsiveness_robustness"], [16, 2, 1, "", "compute_cost"], [16, 2, 1, "", "compute_ref_cost"], [16, 2, 1, "", "compute_success_measure"], [16, 2, 1, "", "save"], [16, 2, 1, "", "set_cost_par"], [16, 2, 1, "", "set_init_traj"], [16, 2, 1, "", "set_model_parameter"], [16, 2, 1, "", "simulate_and_get_cost"]], "double_pendulum.analysis.benchmark_plot": [[16, 3, 1, "", "plot_benchmark_results"], [16, 3, 1, "", "plot_model_robustness_multi"]], "double_pendulum.analysis.benchmark_scores": [[16, 3, 1, "", "get_delay_score"], [16, 3, 1, "", "get_measurement_noise_score"], [16, 3, 1, "", "get_model_score"], [16, 3, 1, "", "get_perturbation_score"], [16, 3, 1, "", "get_scores"], [16, 3, 1, "", "get_unoise_score"], [16, 3, 1, "", "get_uresponsiveness_score"]], "double_pendulum.analysis.leaderboard": [[16, 3, 1, "", "get_energy"], [16, 3, 1, "", "get_integrated_torque"], [16, 3, 1, "", "get_max_tau"], [16, 3, 1, "", "get_swingup_time"], [16, 3, 1, "", "get_tau_smoothness"], [16, 3, 1, "", "get_torque_cost"], [16, 3, 1, "", "get_velocity_cost"], [16, 3, 1, "", "leaderboard_scores"]], "double_pendulum.analysis.utils": [[16, 3, 1, "", "get_par_list"]], "double_pendulum.controller": [[18, 0, 0, "-", "DQN"], [19, 0, 0, "-", "SAC"], [17, 0, 0, "-", "abstract_controller"], [17, 0, 0, "-", "combined_controller"], [20, 0, 0, "-", "energy"], [21, 0, 0, "-", "friction_compensation"], [22, 0, 0, "-", "gamepad"], [23, 0, 0, "-", "gravity_compensation"], [24, 0, 0, "-", "ilqr"], [25, 0, 0, "-", "inverse_dynamics"], [26, 0, 0, "-", "lqr"], [28, 0, 0, "-", "mcpilco"], [29, 0, 0, "-", "partial_feedback_linearization"], [30, 0, 0, "-", "pid"], [31, 0, 0, "-", "random_exploration"], [32, 0, 0, "-", "trajectory_following"], [33, 0, 0, "-", "tvlqr"]], "double_pendulum.controller.DQN": [[18, 0, 0, "-", "replay_buffer"], [18, 0, 0, "-", "utils"]], "double_pendulum.controller.DQN.replay_buffer": [[18, 1, 1, "", "ReplayBuffer"]], "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer": [[18, 2, 1, "", "add"], [18, 2, 1, "", "create_batch"], [18, 2, 1, "", "get_sample_indexes"], [18, 2, 1, "", "load"], [18, 2, 1, "", "sample_random_batch"], [18, 2, 1, "", "save"]], "double_pendulum.controller.DQN.utils": [[18, 3, 1, "", "load_pickled_data"], [18, 3, 1, "", "save_pickled_data"]], "double_pendulum.controller.SAC": [[19, 0, 0, "-", "SAC_controller"]], "double_pendulum.controller.SAC.SAC_controller": [[19, 1, 1, "", "SACController"]], "double_pendulum.controller.SAC.SAC_controller.SACController": [[19, 2, 1, "", "get_control_output_"]], "double_pendulum.controller.abstract_controller": [[17, 1, 1, "", "AbstractController"]], "double_pendulum.controller.abstract_controller.AbstractController": [[17, 2, 1, "", "get_control_output"], [17, 2, 1, "", "get_control_output_"], [17, 2, 1, "", "get_forecast"], [17, 2, 1, "", "get_friction_torque"], [17, 2, 1, "", "get_gravity_torque"], [17, 2, 1, "", "get_init_trajectory"], [17, 2, 1, "", "init"], [17, 2, 1, "", "init_"], [17, 2, 1, "", "reset"], [17, 2, 1, "", "reset_"], [17, 2, 1, "", "save"], [17, 2, 1, "", "save_"], [17, 2, 1, "", "set_filter"], [17, 2, 1, "", "set_friction_compensation"], [17, 2, 1, "", "set_goal"], [17, 2, 1, "", "set_gravity_compensation"], [17, 2, 1, "", "set_parameters"], [17, 2, 1, "", "set_start"]], "double_pendulum.controller.combined_controller": [[17, 1, 1, "", "CombinedController"], [17, 1, 1, "", "SimultaneousControllers"]], "double_pendulum.controller.combined_controller.CombinedController": [[17, 2, 1, "", "get_control_output_"], [17, 2, 1, "", "get_forecast"], [17, 2, 1, "", "get_init_trajectory"], [17, 2, 1, "", "init_"], [17, 2, 1, "", "reset_"], [17, 2, 1, "", "save_"], [17, 2, 1, "", "set_goal"], [17, 2, 1, "", "set_parameters"], [17, 2, 1, "", "set_start"]], "double_pendulum.controller.combined_controller.SimultaneousControllers": [[17, 2, 1, "", "get_control_output_"], [17, 2, 1, "", "get_forecast"], [17, 2, 1, "", "get_init_trajectory"], [17, 2, 1, "", "init_"], [17, 2, 1, "", "set_goal"], [17, 2, 1, "", "set_parameters"], [17, 2, 1, "", "set_start"]], "double_pendulum.controller.energy": [[20, 0, 0, "-", "energy_Xin"]], "double_pendulum.controller.energy.energy_Xin": [[20, 1, 1, "", "EnergyController"], [20, 3, 1, "", "kd_func"]], "double_pendulum.controller.energy.energy_Xin.EnergyController": [[20, 2, 1, "", "check_parameters"], [20, 2, 1, "", "get_control_output_"], [20, 2, 1, "", "init_"], [20, 2, 1, "", "save_"], [20, 2, 1, "", "set_goal"], [20, 2, 1, "", "set_parameters"]], "double_pendulum.controller.friction_compensation": [[21, 0, 0, "-", "friction_compensation_controller"]], "double_pendulum.controller.friction_compensation.friction_compensation_controller": [[21, 1, 1, "", "FrictionCompensationController"]], "double_pendulum.controller.friction_compensation.friction_compensation_controller.FrictionCompensationController": [[21, 2, 1, "", "get_control_output_"], [21, 2, 1, "", "save_"]], "double_pendulum.controller.gamepad": [[22, 0, 0, "-", "gamepad"], [22, 0, 0, "-", "gamepad_controller"]], "double_pendulum.controller.gamepad.gamepad": [[22, 1, 1, "", "GamePad"]], "double_pendulum.controller.gamepad.gamepad.GamePad": [[22, 2, 1, "", "read"]], "double_pendulum.controller.gamepad.gamepad_controller": [[22, 1, 1, "", "GamepadController"]], "double_pendulum.controller.gamepad.gamepad_controller.GamepadController": [[22, 2, 1, "", "get_control_output_"]], "double_pendulum.controller.gravity_compensation": [[23, 0, 0, "-", "PID_gravity_compensation_controller"], [23, 0, 0, "-", "gravity_compensation_controller"]], "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller": [[23, 1, 1, "", "PIDGravityCompensationController"]], "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController": [[23, 2, 1, "", "get_control_output_"], [23, 2, 1, "", "init_"], [23, 2, 1, "", "save_"], [23, 2, 1, "", "set_goal"], [23, 2, 1, "", "set_parameters"]], "double_pendulum.controller.gravity_compensation.gravity_compensation_controller": [[23, 1, 1, "", "GravityCompensationController"]], "double_pendulum.controller.gravity_compensation.gravity_compensation_controller.GravityCompensationController": [[23, 2, 1, "", "get_control_output_"], [23, 2, 1, "", "save_"]], "double_pendulum.controller.ilqr": [[24, 0, 0, "-", "ilqr_mpc_cpp"], [24, 0, 0, "-", "paropt"]], "double_pendulum.controller.ilqr.ilqr_mpc_cpp": [[24, 1, 1, "", "ILQRMPCCPPController"]], "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController": [[24, 2, 1, "", "compute_init_traj"], [24, 2, 1, "", "get_control_output_"], [24, 2, 1, "", "get_forecast"], [24, 2, 1, "", "get_init_trajectory"], [24, 2, 1, "", "init_"], [24, 2, 1, "", "load_init_traj"], [24, 2, 1, "", "save_"], [24, 2, 1, "", "set_cost_parameters"], [24, 2, 1, "", "set_cost_parameters_"], [24, 2, 1, "", "set_final_cost_parameters"], [24, 2, 1, "", "set_goal"], [24, 2, 1, "", "set_parameters"], [24, 2, 1, "", "set_start"]], "double_pendulum.controller.ilqr.paropt": [[24, 1, 1, "", "ilqrmpc_swingup_loss"]], "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss": [[24, 2, 1, "", "init"], [24, 2, 1, "", "rescale_pars"], [24, 2, 1, "", "set_model_parameters"], [24, 2, 1, "", "set_parameters"], [24, 2, 1, "", "unscale_pars"]], "double_pendulum.controller.inverse_dynamics": [[25, 0, 0, "-", "computed_torque_controller"], [25, 0, 0, "-", "inverse_dynamics_ff_controller"]], "double_pendulum.controller.inverse_dynamics.computed_torque_controller": [[25, 1, 1, "", "ComputedTorqueController"]], "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController": [[25, 2, 1, "", "get_control_output_"], [25, 2, 1, "", "get_init_trajectory"], [25, 2, 1, "", "init_"], [25, 2, 1, "", "save_"], [25, 2, 1, "", "set_parameters"]], "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller": [[25, 1, 1, "", "InverseDynamicsController"]], "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController": [[25, 2, 1, "", "get_control_output_"], [25, 2, 1, "", "get_init_trajectory"], [25, 2, 1, "", "init_"], [25, 2, 1, "", "save_"]], "double_pendulum.controller.lqr": [[26, 0, 0, "-", "lqr"], [26, 0, 0, "-", "lqr_controller"], [26, 0, 0, "-", "lqr_controller_drake"], [27, 0, 0, "-", "roa"]], "double_pendulum.controller.lqr.lqr": [[26, 3, 1, "", "dlqr"], [26, 3, 1, "", "iterative_riccati"], [26, 3, 1, "", "lqr"]], "double_pendulum.controller.lqr.lqr_controller": [[26, 1, 1, "", "LQRController"], [26, 1, 1, "", "LQRController_nonsymbolic"]], "double_pendulum.controller.lqr.lqr_controller.LQRController": [[26, 2, 1, "", "get_control_output_"], [26, 2, 1, "", "init_"], [26, 2, 1, "", "save_"], [26, 2, 1, "", "set_cost_matrices"], [26, 2, 1, "", "set_cost_parameters"], [26, 2, 1, "", "set_cost_parameters_"], [26, 2, 1, "", "set_goal"], [26, 2, 1, "", "set_parameters"]], "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic": [[26, 2, 1, "", "get_control_output_"], [26, 2, 1, "", "init_"], [26, 2, 1, "", "save_"], [26, 2, 1, "", "set_cost_matrices"], [26, 2, 1, "", "set_cost_parameters"], [26, 2, 1, "", "set_cost_parameters_"], [26, 2, 1, "", "set_goal"], [26, 2, 1, "", "set_parameters"]], "double_pendulum.controller.lqr.lqr_controller_drake": [[26, 1, 1, "", "LQRController"]], "double_pendulum.controller.lqr.lqr_controller_drake.LQRController": [[26, 2, 1, "", "get_control_output_"], [26, 2, 1, "", "init_"], [26, 2, 1, "", "save_"], [26, 2, 1, "", "set_cost_matrices"], [26, 2, 1, "", "set_cost_parameters"], [26, 2, 1, "", "set_cost_parameters_"], [26, 2, 1, "", "set_goal"]], "double_pendulum.controller.lqr.roa": [[27, 0, 0, "-", "check"], [27, 0, 0, "-", "ellipsoid"], [27, 0, 0, "-", "prob_roa"]], "double_pendulum.controller.lqr.roa.check": [[27, 1, 1, "", "lqr_check_ctg"], [27, 3, 1, "", "lqr_check_ctg_verification"], [27, 1, 1, "", "lqr_check_epsilon"], [27, 3, 1, "", "lqr_check_epsilon_verification"]], "double_pendulum.controller.lqr.roa.check.lqr_check_ctg": [[27, 2, 1, "", "sim_callback"]], "double_pendulum.controller.lqr.roa.check.lqr_check_epsilon": [[27, 2, 1, "", "sim_callback"]], "double_pendulum.controller.lqr.roa.ellipsoid": [[27, 3, 1, "", "directSphere"], [27, 3, 1, "", "getEllipseParamsFromQuad"], [27, 3, 1, "", "getEllipsePatch"], [27, 3, 1, "", "getEllipsePatches"], [27, 3, 1, "", "plotEllipse"], [27, 3, 1, "", "quadForm"], [27, 3, 1, "", "sampleFromEllipsoid"], [27, 3, 1, "", "volEllipsoid"]], "double_pendulum.controller.lqr.roa.prob_roa": [[27, 3, 1, "", "check_x0"], [27, 3, 1, "", "compute_roa_prob"], [27, 1, 1, "", "roa_prob_loss"]], "double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss": [[27, 2, 1, "", "rescale_pars"], [27, 2, 1, "", "unscale_pars"]], "double_pendulum.controller.mcpilco": [[28, 0, 0, "-", "mcpilco_controller"]], "double_pendulum.controller.mcpilco.mcpilco_controller": [[28, 1, 1, "", "Controller_muli_out_sum_of_Gaussians_with_angles_numpy"], [28, 1, 1, "", "Controller_multi_policy_sum_of_gaussians_with_angles_numpy"], [28, 1, 1, "", "Controller_sum_of_Gaussians_with_angles_numpy"]], "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_muli_out_sum_of_Gaussians_with_angles_numpy": [[28, 2, 1, "", "get_control_output_"], [28, 2, 1, "", "get_np_policy"]], "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_multi_policy_sum_of_gaussians_with_angles_numpy": [[28, 2, 1, "", "get_control_output_"], [28, 2, 1, "", "get_np_policy"]], "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_sum_of_Gaussians_with_angles_numpy": [[28, 2, 1, "", "get_control_output_"]], "double_pendulum.controller.partial_feedback_linearization": [[29, 0, 0, "-", "pfl"], [29, 0, 0, "-", "symbolic_pfl"]], "double_pendulum.controller.partial_feedback_linearization.pfl": [[29, 1, 1, "", "EnergyShapingPFLAndLQRController"], [29, 1, 1, "", "EnergyShapingPFLController"]], "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController": [[29, 2, 1, "", "get_control_output_"], [29, 2, 1, "", "init_"], [29, 2, 1, "", "set_cost_parameters_"], [29, 2, 1, "", "set_goal"]], "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController": [[29, 2, 1, "", "get_control_output_"], [29, 2, 1, "", "save_"], [29, 2, 1, "", "set_cost_parameters"], [29, 2, 1, "", "set_cost_parameters_"], [29, 2, 1, "", "set_goal"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl": [[29, 1, 1, "", "SymbolicPFLAndLQRController"], [29, 1, 1, "", "SymbolicPFLController"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController": [[29, 2, 1, "", "get_control_output_"], [29, 2, 1, "", "init_"], [29, 2, 1, "", "save_"], [29, 2, 1, "", "set_cost_parameters_"], [29, 2, 1, "", "set_goal"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController": [[29, 2, 1, "", "get_control_output_"], [29, 2, 1, "", "init_"], [29, 2, 1, "", "save_"], [29, 2, 1, "", "set_cost_parameters"], [29, 2, 1, "", "set_cost_parameters_"], [29, 2, 1, "", "set_goal"]], "double_pendulum.controller.pid": [[30, 0, 0, "-", "point_pid_controller"], [30, 0, 0, "-", "trajectory_pid_controller"]], "double_pendulum.controller.pid.point_pid_controller": [[30, 1, 1, "", "PointPIDController"]], "double_pendulum.controller.pid.point_pid_controller.PointPIDController": [[30, 2, 1, "", "get_control_output_"], [30, 2, 1, "", "init_"], [30, 2, 1, "", "save_"], [30, 2, 1, "", "set_goal"], [30, 2, 1, "", "set_parameters"]], "double_pendulum.controller.pid.trajectory_pid_controller": [[30, 1, 1, "", "TrajPIDController"]], "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController": [[30, 2, 1, "", "get_control_output_"], [30, 2, 1, "", "get_init_trajectory"], [30, 2, 1, "", "init_"], [30, 2, 1, "", "save_"], [30, 2, 1, "", "set_parameters"]], "double_pendulum.controller.random_exploration": [[31, 0, 0, "-", "random_exploration_controller"]], "double_pendulum.controller.random_exploration.random_exploration_controller": [[31, 1, 1, "", "Controller_Random_exploration"]], "double_pendulum.controller.random_exploration.random_exploration_controller.Controller_Random_exploration": [[31, 2, 1, "", "get_control_output_"], [31, 2, 1, "", "init_profile"]], "double_pendulum.controller.trajectory_following": [[32, 0, 0, "-", "feed_forward"], [32, 0, 0, "-", "trajectory_controller"]], "double_pendulum.controller.trajectory_following.feed_forward": [[32, 1, 1, "", "FeedForwardController"]], "double_pendulum.controller.trajectory_following.feed_forward.FeedForwardController": [[32, 2, 1, "", "get_control_output_"], [32, 2, 1, "", "save_"]], "double_pendulum.controller.trajectory_following.trajectory_controller": [[32, 1, 1, "", "TrajectoryController"], [32, 1, 1, "", "TrajectoryInterpController"]], "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryController": [[32, 2, 1, "", "get_control_output_"], [32, 2, 1, "", "get_init_trajectory"]], "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController": [[32, 2, 1, "", "get_control_output_"], [32, 2, 1, "", "get_init_trajectory"], [32, 2, 1, "", "save_"]], "double_pendulum.controller.tvlqr": [[33, 0, 0, "-", "tvlqr_controller"], [33, 0, 0, "-", "tvlqr_controller_drake"]], "double_pendulum.controller.tvlqr.tvlqr_controller": [[33, 1, 1, "", "TVLQRController"]], "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController": [[33, 2, 1, "", "get_control_output_"], [33, 2, 1, "", "get_init_trajectory"], [33, 2, 1, "", "init_"], [33, 2, 1, "", "save_"], [33, 2, 1, "", "set_cost_parameters"], [33, 2, 1, "", "set_goal"]], "double_pendulum.controller.tvlqr.tvlqr_controller_drake": [[33, 1, 1, "", "TVLQRController"]], "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController": [[33, 2, 1, "", "get_control_output_"], [33, 2, 1, "", "get_init_trajectory"], [33, 2, 1, "", "init_"], [33, 2, 1, "", "save_"], [33, 2, 1, "", "set_cost_parameters"]], "double_pendulum.experiments": [[34, 0, 0, "-", "experimental_utils"], [34, 0, 0, "-", "hardware_control_loop_mjbots"], [34, 0, 0, "-", "hardware_control_loop_tmotors"], [34, 0, 0, "-", "performance_profiler"], [34, 0, 0, "-", "video_recording"]], "double_pendulum.experiments.experimental_utils": [[34, 3, 1, "", "rad2rev"], [34, 3, 1, "", "rev2rad"], [34, 3, 1, "", "save_data"], [34, 3, 1, "", "setZeroPosition"]], "double_pendulum.experiments.hardware_control_loop_tmotors": [[34, 3, 1, "", "run_experiment"]], "double_pendulum.experiments.performance_profiler": [[34, 3, 1, "", "motor_send_n_commands"], [34, 3, 1, "", "motor_send_n_commands2"], [34, 3, 1, "", "motor_speed_test"], [34, 3, 1, "", "motor_speed_test2"], [34, 3, 1, "", "profiler"]], "double_pendulum.experiments.video_recording": [[34, 1, 1, "", "VideoWriterWidget"]], "double_pendulum.experiments.video_recording.VideoWriterWidget": [[34, 2, 1, "", "save_frame"], [34, 2, 1, "", "show_frame"], [34, 2, 1, "", "start_recording"], [34, 2, 1, "", "update"]], "double_pendulum.filter": [[35, 0, 0, "-", "abstract_filter"], [35, 0, 0, "-", "butterworth"], [35, 0, 0, "-", "identity"], [35, 0, 0, "-", "kalman"], [35, 0, 0, "-", "lowpass"], [35, 0, 0, "-", "running_mean"], [35, 0, 0, "-", "unscented_kalman"]], "double_pendulum.filter.abstract_filter": [[35, 1, 1, "", "AbstractFilter"]], "double_pendulum.filter.abstract_filter.AbstractFilter": [[35, 2, 1, "", "get_filtered_state"], [35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.butterworth": [[35, 1, 1, "", "butterworth_filter"]], "double_pendulum.filter.butterworth.butterworth_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.identity": [[35, 1, 1, "", "identity_filter"]], "double_pendulum.filter.identity.identity_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.kalman": [[35, 1, 1, "", "kalman_filter"]], "double_pendulum.filter.kalman.kalman_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.lowpass": [[35, 1, 1, "", "lowpass_filter"]], "double_pendulum.filter.lowpass.lowpass_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.running_mean": [[35, 1, 1, "", "runningmean_filter"]], "double_pendulum.filter.running_mean.runningmean_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.unscented_kalman": [[35, 3, 1, "", "iden"], [35, 1, 1, "", "unscentedkalman_filter"]], "double_pendulum.filter.unscented_kalman.unscentedkalman_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.model": [[36, 0, 0, "-", "friction_matrix"], [36, 0, 0, "-", "model_parameters"], [36, 0, 0, "-", "plant"], [36, 0, 0, "-", "symbolic_plant"]], "double_pendulum.model.friction_matrix": [[36, 3, 1, "", "yb_friction_matrix"]], "double_pendulum.model.model_parameters": [[36, 1, 1, "", "model_parameters"]], "double_pendulum.model.model_parameters.model_parameters": [[36, 2, 1, "", "get_dict"], [36, 2, 1, "", "load_dict"], [36, 2, 1, "", "load_model"], [36, 2, 1, "", "load_yaml"], [36, 2, 1, "", "save_dict"], [36, 2, 1, "", "set_cfric"], [36, 2, 1, "", "set_com"], [36, 2, 1, "", "set_damping"], [36, 2, 1, "", "set_dof"], [36, 2, 1, "", "set_gear_ratio"], [36, 2, 1, "", "set_gravity"], [36, 2, 1, "", "set_inertia"], [36, 2, 1, "", "set_length"], [36, 2, 1, "", "set_mass"], [36, 2, 1, "", "set_motor_inertia"], [36, 2, 1, "", "set_torque_limit"]], "double_pendulum.model.plant": [[36, 1, 1, "", "DoublePendulumPlant"]], "double_pendulum.model.plant.DoublePendulumPlant": [[36, 2, 1, "", "coriolis_matrix"], [36, 2, 1, "", "coulomb_vector"], [36, 2, 1, "", "forward_dynamics"], [36, 2, 1, "", "forward_kinematics"], [36, 2, 1, "", "get_Alin"], [36, 2, 1, "", "get_Blin"], [36, 2, 1, "", "get_Cx"], [36, 2, 1, "", "get_Fx"], [36, 2, 1, "", "get_Gx"], [36, 2, 1, "", "get_Minvx"], [36, 2, 1, "", "get_Mx"], [36, 2, 1, "", "gravity_vector"], [36, 2, 1, "", "kinetic_energy"], [36, 2, 1, "", "linear_matrices"], [36, 2, 1, "", "mass_matrix"], [36, 2, 1, "", "potential_energy"], [36, 2, 1, "", "rhs"], [36, 2, 1, "", "total_energy"]], "double_pendulum.model.symbolic_plant": [[36, 1, 1, "", "SymbolicDoublePendulum"], [36, 3, 1, "", "diff_to_matrix"], [36, 3, 1, "", "sub_symbols"], [36, 3, 1, "", "vector_mult"]], "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum": [[36, 4, 1, "", "I1"], [36, 4, 1, "", "I2"], [36, 4, 1, "", "Ir_sym"], [36, 2, 1, "", "angular_momentum_base"], [36, 2, 1, "", "angular_momentum_ddot_base"], [36, 2, 1, "", "angular_momentum_dot_base"], [36, 4, 1, "", "b1"], [36, 4, 1, "", "b2"], [36, 4, 1, "", "base"], [36, 2, 1, "", "center_of_mass"], [36, 4, 1, "", "cf1"], [36, 4, 1, "", "cf2"], [36, 2, 1, "", "com_dot"], [36, 2, 1, "", "coriolis_matrix"], [36, 2, 1, "", "coulomb_vector"], [36, 4, 1, "", "dof"], [36, 2, 1, "", "equation_of_motion"], [36, 2, 1, "", "forward_dynamics"], [36, 2, 1, "", "forward_kinematics"], [36, 4, 1, "", "g_sym"], [36, 4, 1, "", "gr_sym"], [36, 2, 1, "", "gravity_vector"], [36, 2, 1, "", "inverse_dynamics"], [36, 2, 1, "", "kinetic_energy"], [36, 4, 1, "", "l1"], [36, 4, 1, "", "l2"], [36, 2, 1, "", "lambdify_matrices"], [36, 2, 1, "", "linear_matrices"], [36, 2, 1, "", "linear_matrices_discrete"], [36, 4, 1, "", "m1"], [36, 4, 1, "", "m2"], [36, 2, 1, "", "mass_matrix"], [36, 4, 1, "", "n_actuators"], [36, 4, 1, "", "n_links"], [36, 2, 1, "", "potential_energy"], [36, 4, 1, "", "q"], [36, 4, 1, "", "q01"], [36, 4, 1, "", "q02"], [36, 4, 1, "", "q0d1"], [36, 4, 1, "", "q0d2"], [36, 4, 1, "", "q1"], [36, 4, 1, "", "q2"], [36, 4, 1, "", "qd"], [36, 4, 1, "", "qd1"], [36, 4, 1, "", "qd2"], [36, 4, 1, "", "qdd"], [36, 4, 1, "", "qdd1"], [36, 4, 1, "", "qdd2"], [36, 4, 1, "", "r1"], [36, 4, 1, "", "r2"], [36, 2, 1, "", "replace_parameters"], [36, 2, 1, "", "rhs"], [36, 2, 1, "", "symbolic_coriolis_matrix"], [36, 2, 1, "", "symbolic_coulomb_vector"], [36, 2, 1, "", "symbolic_gravity_vector"], [36, 2, 1, "", "symbolic_kinetic_energy"], [36, 2, 1, "", "symbolic_linear_matrices"], [36, 2, 1, "", "symbolic_mass_matrix"], [36, 2, 1, "", "symbolic_potential_energy"], [36, 2, 1, "", "symbolic_total_energy"], [36, 4, 1, "", "tl1"], [36, 4, 1, "", "tl2"], [36, 2, 1, "", "total_energy"], [36, 4, 1, "", "u"], [36, 4, 1, "", "u0"], [36, 4, 1, "", "u01"], [36, 4, 1, "", "u02"], [36, 4, 1, "", "u1"], [36, 4, 1, "", "u2"], [36, 4, 1, "", "x"], [36, 4, 1, "", "x0"], [36, 4, 1, "", "xd"]], "double_pendulum.simulation": [[37, 0, 0, "-", "gym_env"], [37, 0, 0, "-", "perturbations"], [37, 0, 0, "-", "simulation"], [37, 0, 0, "-", "visualization"]], "double_pendulum.simulation.gym_env": [[37, 1, 1, "", "CustomEnv"], [37, 1, 1, "", "double_pendulum_dynamics_func"]], "double_pendulum.simulation.gym_env.CustomEnv": [[37, 4, 1, "", "action_space"], [37, 4, 1, "", "observation_space"], [37, 2, 1, "", "render"], [37, 2, 1, "", "reset"], [37, 2, 1, "", "step"]], "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func": [[37, 2, 1, "", "integration"], [37, 2, 1, "", "normalize_state"], [37, 2, 1, "", "unscale_action"], [37, 2, 1, "", "unscale_state"]], "double_pendulum.simulation.perturbations": [[37, 3, 1, "", "get_gaussian_perturbation_array"], [37, 3, 1, "", "get_random_gauss_perturbation_array"], [37, 3, 1, "", "plot_perturbation_array"]], "double_pendulum.simulation.simulation": [[37, 1, 1, "", "Simulator"]], "double_pendulum.simulation.simulation.Simulator": [[37, 2, 1, "", "controller_step"], [37, 2, 1, "", "euler_integrator"], [37, 2, 1, "", "get_control_u"], [37, 2, 1, "", "get_measurement"], [37, 2, 1, "", "get_real_applied_u"], [37, 2, 1, "", "get_state"], [37, 2, 1, "", "get_trajectory_data"], [37, 2, 1, "", "record_data"], [37, 2, 1, "", "reset"], [37, 2, 1, "", "reset_data_recorder"], [37, 2, 1, "", "runge_integrator"], [37, 2, 1, "", "set_disturbances"], [37, 2, 1, "", "set_measurement_parameters"], [37, 2, 1, "", "set_motor_parameters"], [37, 2, 1, "", "set_process_noise"], [37, 2, 1, "", "set_state"], [37, 2, 1, "", "simulate"], [37, 2, 1, "", "simulate_and_animate"], [37, 2, 1, "", "step"]], "double_pendulum.simulation.visualization": [[37, 3, 1, "", "get_arrow"], [37, 3, 1, "", "set_arrow_properties"]], "double_pendulum.system_identification": [[38, 0, 0, "-", "loss"], [38, 0, 0, "-", "plotting"]], "double_pendulum.system_identification.loss": [[38, 1, 1, "", "errfunc"], [38, 1, 1, "", "errfunc_nl"]], "double_pendulum.system_identification.loss.errfunc": [[38, 2, 1, "", "rescale_pars"], [38, 2, 1, "", "unscale_pars"]], "double_pendulum.system_identification.loss.errfunc_nl": [[38, 2, 1, "", "rescale_pars"], [38, 2, 1, "", "unscale_pars"]], "double_pendulum.system_identification.plotting": [[38, 3, 1, "", "plot_torques"]], "double_pendulum.trajectory_optimization": [[40, 0, 0, "-", "direct_collocation"], [41, 0, 0, "-", "ilqr"]], "double_pendulum.trajectory_optimization.direct_collocation": [[40, 0, 0, "-", "dircol_utils"], [40, 0, 0, "-", "direct_collocation_drake"], [40, 0, 0, "-", "direct_collocation_drake2"]], "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils": [[40, 3, 1, "", "animation"], [40, 3, 1, "", "construct_trajectories"], [40, 3, 1, "", "create_plant_from_urdf"], [40, 3, 1, "", "extract_data_from_polynomial"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake": [[40, 1, 1, "", "dircol_calculator"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator": [[40, 2, 1, "", "animate_trajectory"], [40, 2, 1, "", "compute_trajectory"], [40, 2, 1, "", "get_trajectory"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2": [[40, 1, 1, "", "DirCol"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol": [[40, 2, 1, "", "CollocationConstraint"], [40, 2, 1, "", "ComputeTrajectory"], [40, 2, 1, "", "EquationOfMotion"], [40, 2, 1, "", "InterpolationConstraint"], [40, 2, 1, "", "MathematicalProgram"]], "double_pendulum.trajectory_optimization.ilqr": [[41, 0, 0, "-", "ilqr_cpp"], [41, 0, 0, "-", "paropt"]], "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp": [[41, 1, 1, "", "ilqr_calculator"]], "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator": [[41, 2, 1, "", "compute_trajectory"], [41, 2, 1, "", "save_trajectory_csv"], [41, 2, 1, "", "set_cost_parameters"], [41, 2, 1, "", "set_cost_parameters_"], [41, 2, 1, "", "set_goal"], [41, 2, 1, "", "set_model_parameters"], [41, 2, 1, "", "set_parameters"], [41, 2, 1, "", "set_start"]], "double_pendulum.trajectory_optimization.ilqr.paropt": [[41, 1, 1, "", "ilqr_trajopt_loss"]], "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss": [[41, 2, 1, "", "rescale_pars"], [41, 2, 1, "", "set_model_parameters"], [41, 2, 1, "", "set_parameters"], [41, 2, 1, "", "unscale_pars"]], "double_pendulum.utils": [[42, 0, 0, "-", "cmaes_controller_par_optimizer"], [42, 0, 0, "-", "csv_trajectory"], [42, 0, 0, "-", "lists"], [42, 0, 0, "-", "optimization"], [42, 0, 0, "-", "pcw_polynomial"], [42, 0, 0, "-", "plotting"], [42, 0, 0, "-", "urdfs"], [42, 0, 0, "-", "wrap_angles"]], "double_pendulum.utils.cmaes_controller_par_optimizer": [[42, 1, 1, "", "swingup_loss"], [42, 1, 1, "", "traj_opt_loss"]], "double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss": [[42, 2, 1, "", "rescale_pars"], [42, 2, 1, "", "unscale_pars"]], "double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss": [[42, 2, 1, "", "rescale_pars"], [42, 2, 1, "", "unscale_pars"]], "double_pendulum.utils.csv_trajectory": [[42, 3, 1, "", "concatenate_trajectories"], [42, 3, 1, "", "load_Kk_values"], [42, 3, 1, "", "load_trajectory"], [42, 3, 1, "", "load_trajectory_full"], [42, 3, 1, "", "save_trajectory"], [42, 3, 1, "", "trajectory_properties"]], "double_pendulum.utils.lists": [[42, 3, 1, "", "obj_to_list"]], "double_pendulum.utils.optimization": [[42, 3, 1, "", "cma_optimization"], [42, 3, 1, "", "scipy_par_optimization"], [42, 3, 1, "", "solve_least_squares"]], "double_pendulum.utils.pcw_polynomial": [[42, 1, 1, "", "FitPiecewisePolynomial"], [42, 1, 1, "", "InterpolateMatrix"], [42, 1, 1, "", "InterpolateVector"], [42, 3, 1, "", "ResampleTrajectory"], [42, 3, 1, "", "poly1"], [42, 3, 1, "", "poly2"], [42, 3, 1, "", "poly3"]], "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial": [[42, 2, 1, "", "create_section_poly"], [42, 2, 1, "", "determin_poly"], [42, 2, 1, "", "end_time"], [42, 2, 1, "", "get_value"], [42, 2, 1, "", "split_data"], [42, 2, 1, "", "start_time"]], "double_pendulum.utils.pcw_polynomial.InterpolateMatrix": [[42, 2, 1, "", "get_value"]], "double_pendulum.utils.pcw_polynomial.InterpolateVector": [[42, 2, 1, "", "get_value"]], "double_pendulum.utils.plotting": [[42, 3, 1, "", "plot_figures"], [42, 3, 1, "", "plot_timeseries"]], "double_pendulum.utils.urdfs": [[42, 3, 1, "", "generate_urdf"], [42, 3, 1, "", "remove_namespaces"]], "double_pendulum.utils.wrap_angles": [[42, 3, 1, "", "wrap_angles"], [42, 3, 1, "", "wrap_angles_diff"], [42, 3, 1, "", "wrap_angles_top"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "attribute", "Python attribute"]}, "titleterms": {"control": [0, 1, 3, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 50, 55, 56, 57, 58, 61], "method": [0, 61], "model": [1, 36, 62], "predict": 1, "mpc": [1, 2], "iter": [2, 10], "linear": [2, 5, 6, 10, 13], "quadrat": [2, 5, 10], "regul": [2, 5, 10, 13], "ilqr": [2, 10, 24, 41], "polici": 3, "base": 3, "deep": 4, "q": 4, "learn": 4, "dqn": [4, 18], "refer": [4, 5, 6, 7, 9, 10, 12, 13], "lqr": [5, 26, 27], "region": 5, "attract": 5, "roa": [5, 27], "partial": 6, "feedback": 6, "pfl": [6, 29], "soft": 7, "actor": 7, "critic": 7, "sac": [7, 19], "trajectori": [8, 11, 63], "optim": [8, 42], "direct": 9, "colloc": 9, "stabil": [11, 12], "riccati": 12, "gain": 12, "time": 13, "vari": 13, "quadrativ": 13, "tvlqr": [13, 33], "The": 14, "doubl": [14, 52], "pendulum": [14, 52], "system": [14, 55], "equat": 14, "motion": 14, "energi": [14, 20], "identif": 14, "double_pendulum": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42], "subpackag": [15, 17, 26, 39], "analysi": 16, "submodul": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42], "benchmark": 16, "benchmark_plot": 16, "benchmark_scor": 16, "leaderboard": [16, 54, 55, 56, 58], "util": [16, 18, 42], "abstract_control": 17, "combined_control": 17, "dqn_control": 18, "environ": 18, "explor": 18, "network": 18, "replay_buff": 18, "simul": [18, 37, 58], "sac_control": 19, "energy_xin": 20, "friction_compens": 21, "friction_compensation_control": 21, "gamepad": 22, "gamepad_control": 22, "gravity_compens": 23, "pid_gravity_compensation_control": 23, "gravity_compensation_control": 23, "ilqr_mpc_cpp": 24, "paropt": [24, 41], "inverse_dynam": 25, "computed_torque_control": 25, "inverse_dynamics_ff_control": 25, "lqr_control": 26, "lqr_controller_drak": 26, "check": 27, "coopt_interfac": 27, "ellipsoid": 27, "prob_roa": 27, "roa_estim": 27, "roa_paropt": 27, "mcpilco": 28, "mcpilco_control": 28, "partial_feedback_linear": 29, "symbolic_pfl": 29, "pid": 30, "point_pid_control": 30, "trajectory_pid_control": 30, "random_explor": 31, "random_exploration_control": 31, "trajectory_follow": 32, "feed_forward": 32, "trajectory_control": 32, "tvlqr_control": 33, "tvlqr_controller_drak": 33, "experi": 34, "experimental_util": 34, "hardware_control_loop_mjbot": 34, "hardware_control_loop_tmotor": 34, "performance_profil": 34, "video_record": 34, "filter": [35, 61], "abstract_filt": 35, "butterworth": 35, "ident": 35, "kalman": 35, "lowpass": 35, "running_mean": 35, "unscented_kalman": 35, "friction_matrix": 36, "model_paramet": 36, "plant": 36, "symbolic_pl": 36, "gym_env": 37, "perturb": 37, "visual": 37, "system_identif": 38, "data_prep": 38, "dynam": 38, "loss": 38, "plot": [38, 42], "sys_id": 38, "trajectory_optim": [39, 40, 41], "direct_colloc": 40, "dircol_util": 40, "direct_collocation_drak": 40, "direct_collocation_drake2": 40, "ilqr_cpp": 41, "cmaes_controller_par_optim": 42, "csv_trajectori": 42, "list": 42, "pcw_polynomi": 42, "urdf": 42, "wrap_angl": 42, "hardwar": [43, 44], "assembli": 44, "bill": 45, "materi": 45, "link": [45, 50], "electr": 46, "setup": [46, 49, 50], "wire": [46, 50], "step": 46, "set": [46, 50], "up": [46, 50], "backemf": 46, "safeti": 47, "note": 47, "motor": [48, 50], "mjbot": 49, "initi": [49, 50], "commun": [49, 50], "t": 50, "ak": 50, "80": 50, "6": 50, "physic": 50, "paramet": [50, 56, 58, 62], "actuat": 50, "tutori": 50, "instruct": 50, "r": 50, "config": 50, "tool": 50, "debug": 50, "can": 50, "bu": 50, "interfac": 50, "test": 50, "connect": 50, "python": 50, "intern": 50, "pd": 50, "testbench": 51, "descript": 51, "welcom": 52, "": 52, "document": 52, "tabl": 52, "content": 52, "indic": 52, "instal": 53, "potenti": 53, "issu": 53, "real": 55, "creat": [55, 56, 58], "evalu": [55, 56, 58], "your": [55, 56, 58, 61], "own": [55, 56, 58, 61], "robust": [56, 57], "repositori": 60, "structur": 60, "program": 60, "languag": 60, "overview": 60, "class": 61, "log": 61, "compens": 61, "write": 61, "data": 63}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Control Methods": [[0, "control-methods"]], "Model Predictive Control (MPC)": [[1, "model-predictive-control-mpc"]], "Iterative Linear Quadratic Regulator (iLQR) MPC": [[2, "iterative-linear-quadratic-regulator-ilqr-mpc"]], "Policy-based Control": [[3, "policy-based-control"]], "Deep-Q Learning (DQN)": [[4, "deep-q-learning-dqn"]], "References": [[4, "references"], [5, "references"], [6, "references"], [7, "references"], [9, "references"], [10, "references"], [12, "references"], [13, "references"]], "Linear Quadratic Regulator (LQR)": [[5, "linear-quadratic-regulator-lqr"]], "Region of Attraction (RoA)": [[5, "region-of-attraction-roa"]], "Partial Feedback Linearization (PFL)": [[6, "partial-feedback-linearization-pfl"]], "Soft Actor Critic (SAC)": [[7, "soft-actor-critic-sac"]], "Trajectory Optimization": [[8, "trajectory-optimization"]], "Direct Collocation": [[9, "direct-collocation"]], "Iterative Linear Quadratic Regulator (iLQR)": [[10, "iterative-linear-quadratic-regulator-ilqr"]], "Trajectory Stabilization": [[11, "trajectory-stabilization"]], "Riccati Gains Stabilization": [[12, "riccati-gains-stabilization"]], "Time Varying Linear Quadrativ Regulator (TVLQR)": [[13, "time-varying-linear-quadrativ-regulator-tvlqr"]], "The Double Pendulum System": [[14, "the-double-pendulum-system"]], "Equation of Motion": [[14, "equation-of-motion"]], "Energy": [[14, "energy"]], "System Identification": [[14, "system-identification"]], "double_pendulum": [[15, "module-double_pendulum"]], "Subpackages": [[15, "subpackages"], [17, "subpackages"], [26, "subpackages"], [39, "subpackages"]], "double_pendulum.analysis": [[16, "module-double_pendulum.analysis"]], "Submodules": [[16, "submodules"], [17, "submodules"], [18, "submodules"], [19, "submodules"], [20, "submodules"], [21, "submodules"], [22, "submodules"], [23, "submodules"], [24, "submodules"], [25, "submodules"], [26, "submodules"], [27, "submodules"], [28, "submodules"], [29, "submodules"], [30, "submodules"], [31, "submodules"], [32, "submodules"], [33, "submodules"], [34, "submodules"], [35, "submodules"], [36, "submodules"], [37, "submodules"], [38, "submodules"], [40, "submodules"], [41, "submodules"], [42, "submodules"]], "double_pendulum.analysis.benchmark": [[16, "module-double_pendulum.analysis.benchmark"]], "double_pendulum.analysis.benchmark_plot": [[16, "module-double_pendulum.analysis.benchmark_plot"]], "double_pendulum.analysis.benchmark_scores": [[16, "module-double_pendulum.analysis.benchmark_scores"]], "double_pendulum.analysis.leaderboard": [[16, "module-double_pendulum.analysis.leaderboard"]], "double_pendulum.analysis.utils": [[16, "module-double_pendulum.analysis.utils"]], "double_pendulum.controller": [[17, "module-double_pendulum.controller"]], "double_pendulum.controller.abstract_controller": [[17, "module-double_pendulum.controller.abstract_controller"]], "double_pendulum.controller.combined_controller": [[17, "module-double_pendulum.controller.combined_controller"]], "double_pendulum.controller.DQN": [[18, "module-double_pendulum.controller.DQN"]], "double_pendulum.controller.DQN.DQN_controller": [[18, "double-pendulum-controller-dqn-dqn-controller"]], "double_pendulum.controller.DQN.environment": [[18, "double-pendulum-controller-dqn-environment"]], "double_pendulum.controller.DQN.exploration": [[18, "double-pendulum-controller-dqn-exploration"]], "double_pendulum.controller.DQN.networks": [[18, "double-pendulum-controller-dqn-networks"]], "double_pendulum.controller.DQN.replay_buffer": [[18, "module-double_pendulum.controller.DQN.replay_buffer"]], "double_pendulum.controller.DQN.simulate": [[18, "double-pendulum-controller-dqn-simulate"]], "double_pendulum.controller.DQN.utils": [[18, "module-double_pendulum.controller.DQN.utils"]], "double_pendulum.controller.SAC": [[19, "module-double_pendulum.controller.SAC"]], "double_pendulum.controller.SAC.SAC_controller": [[19, "module-double_pendulum.controller.SAC.SAC_controller"]], "double_pendulum.controller.energy": [[20, "module-double_pendulum.controller.energy"]], "double_pendulum.controller.energy.energy_Xin": [[20, "module-double_pendulum.controller.energy.energy_Xin"]], "double_pendulum.controller.friction_compensation": [[21, "module-double_pendulum.controller.friction_compensation"]], "double_pendulum.controller.friction_compensation.friction_compensation_controller": [[21, "module-double_pendulum.controller.friction_compensation.friction_compensation_controller"]], "double_pendulum.controller.gamepad": [[22, "module-double_pendulum.controller.gamepad"]], "Controllers": [[22, "controllers"]], "double_pendulum.controller.gamepad.gamepad": [[22, "module-double_pendulum.controller.gamepad.gamepad"]], "double_pendulum.controller.gamepad.gamepad_controller": [[22, "module-double_pendulum.controller.gamepad.gamepad_controller"]], "Gamepad Controller": [[22, "gamepad-controller"]], "double_pendulum.controller.gravity_compensation": [[23, "module-double_pendulum.controller.gravity_compensation"]], "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller": [[23, "module-double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller"]], "double_pendulum.controller.gravity_compensation.gravity_compensation_controller": [[23, "module-double_pendulum.controller.gravity_compensation.gravity_compensation_controller"]], "double_pendulum.controller.ilqr": [[24, "module-double_pendulum.controller.ilqr"]], "double_pendulum.controller.ilqr.ilqr_mpc_cpp": [[24, "module-double_pendulum.controller.ilqr.ilqr_mpc_cpp"]], "double_pendulum.controller.ilqr.paropt": [[24, "module-double_pendulum.controller.ilqr.paropt"]], "double_pendulum.controller.inverse_dynamics": [[25, "module-double_pendulum.controller.inverse_dynamics"]], "double_pendulum.controller.inverse_dynamics.computed_torque_controller": [[25, "module-double_pendulum.controller.inverse_dynamics.computed_torque_controller"]], "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller": [[25, "module-double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller"]], "double_pendulum.controller.lqr": [[26, "module-double_pendulum.controller.lqr"]], "double_pendulum.controller.lqr.lqr": [[26, "module-double_pendulum.controller.lqr.lqr"]], "double_pendulum.controller.lqr.lqr_controller": [[26, "module-double_pendulum.controller.lqr.lqr_controller"]], "double_pendulum.controller.lqr.lqr_controller_drake": [[26, "module-double_pendulum.controller.lqr.lqr_controller_drake"]], "double_pendulum.controller.lqr.roa": [[27, "module-double_pendulum.controller.lqr.roa"]], "double_pendulum.controller.lqr.roa.check": [[27, "module-double_pendulum.controller.lqr.roa.check"]], "double_pendulum.controller.lqr.roa.coopt_interface": [[27, "double-pendulum-controller-lqr-roa-coopt-interface"]], "double_pendulum.controller.lqr.roa.ellipsoid": [[27, "module-double_pendulum.controller.lqr.roa.ellipsoid"]], "double_pendulum.controller.lqr.roa.prob_roa": [[27, "module-double_pendulum.controller.lqr.roa.prob_roa"]], "double_pendulum.controller.lqr.roa.roa_estimation": [[27, "double-pendulum-controller-lqr-roa-roa-estimation"]], "double_pendulum.controller.lqr.roa.roa_paropt": [[27, "double-pendulum-controller-lqr-roa-roa-paropt"]], "double_pendulum.controller.mcpilco": [[28, "module-double_pendulum.controller.mcpilco"]], "double_pendulum.controller.mcpilco.mcpilco_controller": [[28, "module-double_pendulum.controller.mcpilco.mcpilco_controller"]], "double_pendulum.controller.partial_feedback_linearization": [[29, "module-double_pendulum.controller.partial_feedback_linearization"]], "double_pendulum.controller.partial_feedback_linearization.pfl": [[29, "module-double_pendulum.controller.partial_feedback_linearization.pfl"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl": [[29, "module-double_pendulum.controller.partial_feedback_linearization.symbolic_pfl"]], "double_pendulum.controller.pid": [[30, "module-double_pendulum.controller.pid"]], "double_pendulum.controller.pid.point_pid_controller": [[30, "module-double_pendulum.controller.pid.point_pid_controller"]], "double_pendulum.controller.pid.trajectory_pid_controller": [[30, "module-double_pendulum.controller.pid.trajectory_pid_controller"]], "double_pendulum.controller.random_exploration": [[31, "module-double_pendulum.controller.random_exploration"]], "double_pendulum.controller.random_exploration.random_exploration_controller": [[31, "module-double_pendulum.controller.random_exploration.random_exploration_controller"]], "double_pendulum.controller.trajectory_following": [[32, "module-double_pendulum.controller.trajectory_following"]], "double_pendulum.controller.trajectory_following.feed_forward": [[32, "module-double_pendulum.controller.trajectory_following.feed_forward"]], "double_pendulum.controller.trajectory_following.trajectory_controller": [[32, "module-double_pendulum.controller.trajectory_following.trajectory_controller"]], "double_pendulum.controller.tvlqr": [[33, "module-double_pendulum.controller.tvlqr"]], "double_pendulum.controller.tvlqr.tvlqr_controller": [[33, "module-double_pendulum.controller.tvlqr.tvlqr_controller"]], "double_pendulum.controller.tvlqr.tvlqr_controller_drake": [[33, "module-double_pendulum.controller.tvlqr.tvlqr_controller_drake"]], "double_pendulum.experiments": [[34, "module-double_pendulum.experiments"]], "double_pendulum.experiments.experimental_utils": [[34, "module-double_pendulum.experiments.experimental_utils"]], "double_pendulum.experiments.hardware_control_loop_mjbots": [[34, "module-double_pendulum.experiments.hardware_control_loop_mjbots"]], "double_pendulum.experiments.hardware_control_loop_tmotors": [[34, "module-double_pendulum.experiments.hardware_control_loop_tmotors"]], "double_pendulum.experiments.performance_profiler": [[34, "module-double_pendulum.experiments.performance_profiler"]], "double_pendulum.experiments.video_recording": [[34, "module-double_pendulum.experiments.video_recording"]], "double_pendulum.filter": [[35, "module-double_pendulum.filter"]], "double_pendulum.filter.abstract_filter": [[35, "module-double_pendulum.filter.abstract_filter"]], "double_pendulum.filter.butterworth": [[35, "module-double_pendulum.filter.butterworth"]], "double_pendulum.filter.identity": [[35, "module-double_pendulum.filter.identity"]], "double_pendulum.filter.kalman": [[35, "module-double_pendulum.filter.kalman"]], "double_pendulum.filter.lowpass": [[35, "module-double_pendulum.filter.lowpass"]], "double_pendulum.filter.running_mean": [[35, "module-double_pendulum.filter.running_mean"]], "double_pendulum.filter.unscented_kalman": [[35, "module-double_pendulum.filter.unscented_kalman"]], "double_pendulum.model": [[36, "module-double_pendulum.model"]], "double_pendulum.model.friction_matrix": [[36, "module-double_pendulum.model.friction_matrix"]], "double_pendulum.model.model_parameters": [[36, "module-double_pendulum.model.model_parameters"]], "double_pendulum.model.plant": [[36, "module-double_pendulum.model.plant"]], "double_pendulum.model.symbolic_plant": [[36, "module-double_pendulum.model.symbolic_plant"]], "double_pendulum.simulation": [[37, "module-double_pendulum.simulation"]], "double_pendulum.simulation.gym_env": [[37, "module-double_pendulum.simulation.gym_env"]], "double_pendulum.simulation.perturbations": [[37, "module-double_pendulum.simulation.perturbations"]], "double_pendulum.simulation.simulation": [[37, "module-double_pendulum.simulation.simulation"]], "double_pendulum.simulation.visualization": [[37, "module-double_pendulum.simulation.visualization"]], "double_pendulum.system_identification": [[38, "module-double_pendulum.system_identification"]], "double_pendulum.system_identification.data_prep": [[38, "double-pendulum-system-identification-data-prep"]], "double_pendulum.system_identification.dynamics": [[38, "double-pendulum-system-identification-dynamics"]], "double_pendulum.system_identification.loss": [[38, "module-double_pendulum.system_identification.loss"]], "double_pendulum.system_identification.plotting": [[38, "module-double_pendulum.system_identification.plotting"]], "double_pendulum.system_identification.sys_id": [[38, "double-pendulum-system-identification-sys-id"]], "double_pendulum.trajectory_optimization": [[39, "module-double_pendulum.trajectory_optimization"]], "double_pendulum.trajectory_optimization.direct_collocation": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation"]], "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.dircol_utils"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2"]], "double_pendulum.trajectory_optimization.ilqr": [[41, "module-double_pendulum.trajectory_optimization.ilqr"]], "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp": [[41, "module-double_pendulum.trajectory_optimization.ilqr.ilqr_cpp"]], "double_pendulum.trajectory_optimization.ilqr.paropt": [[41, "module-double_pendulum.trajectory_optimization.ilqr.paropt"]], "double_pendulum.utils": [[42, "module-double_pendulum.utils"]], "double_pendulum.utils.cmaes_controller_par_optimizer": [[42, "module-double_pendulum.utils.cmaes_controller_par_optimizer"]], "double_pendulum.utils.csv_trajectory": [[42, "module-double_pendulum.utils.csv_trajectory"]], "double_pendulum.utils.lists": [[42, "module-double_pendulum.utils.lists"]], "double_pendulum.utils.optimization": [[42, "module-double_pendulum.utils.optimization"]], "double_pendulum.utils.pcw_polynomial": [[42, "module-double_pendulum.utils.pcw_polynomial"]], "double_pendulum.utils.plotting": [[42, "module-double_pendulum.utils.plotting"]], "double_pendulum.utils.urdfs": [[42, "module-double_pendulum.utils.urdfs"]], "double_pendulum.utils.wrap_angles": [[42, "module-double_pendulum.utils.wrap_angles"]], "Hardware": [[43, "hardware"]], "Hardware Assembly": [[44, "hardware-assembly"]], "Bill of Materials": [[45, "bill-of-materials"]], "Links": [[45, "links"]], "Electrical Setup": [[46, "electrical-setup"]], "Wiring": [[46, "wiring"]], "Steps for setting up the wiring": [[46, "steps-for-setting-up-the-wiring"]], "backEMF": [[46, "backemf"]], "Safety Notes": [[47, "safety-notes"]], "Motors": [[48, "motors"]], "MJBots": [[49, "mjbots"]], "Initial Setup": [[49, "initial-setup"]], "Communication": [[49, "communication"], [50, "communication"]], "T-Motor (AK-80-6)": [[50, "t-motor-ak-80-6"]], "Physical Parameters of the Actuator": [[50, "physical-parameters-of-the-actuator"]], "Initial Motor Setup": [[50, "initial-motor-setup"]], "Tutorials": [[50, "tutorials"]], "Instructions: R-Link Config Tool": [[50, "instructions-r-link-config-tool"]], "Debugging": [[50, "debugging"]], "CAN Bus wiring": [[50, "can-bus-wiring"]], "Setting up the CAN interface": [[50, "setting-up-the-can-interface"]], "Testing Motor Connection": [[50, "testing-motor-connection"]], "Python Interface": [[50, "python-interface"]], "Internal PD-Controller": [[50, "internal-pd-controller"]], "Testbench Description": [[51, "testbench-description"], [51, "id1"]], "Welcome to Double Pendulum\u2019s documentation!": [[52, "welcome-to-double-pendulum-s-documentation"]], "Table of Contents": [[52, null]], "Indices and tables": [[52, "indices-and-tables"]], "Installation": [[53, "installation"]], "Potential Issues": [[53, "potential-issues"]], "Leaderboards": [[54, "leaderboards"]], "Real System Leaderboard": [[55, "real-system-leaderboard"]], "Creating the Leaderboard": [[55, "creating-the-leaderboard"], [56, "creating-the-leaderboard"], [58, "creating-the-leaderboard"]], "Evaluating your own controller": [[55, "evaluating-your-own-controller"], [56, "evaluating-your-own-controller"], [58, "evaluating-your-own-controller"]], "Robustness Leaderboard": [[56, "robustness-leaderboard"]], "Leaderboard Parameters": [[56, "leaderboard-parameters"], [58, "leaderboard-parameters"]], "Controller Robustness": [[57, "controller-robustness"]], "Simulation Leaderboard": [[58, "simulation-leaderboard"]], "Repository Structure": [[60, "repository-structure"]], "Programming Language": [[60, "programming-language"]], "Repository Overview": [[60, "repository-overview"]], "Controller Class": [[61, "controller-class"]], "Class Methods": [[61, "class-methods"]], "Logging, Filtering and Compensation": [[61, "logging-filtering-and-compensation"]], "Writing your own controller": [[61, "writing-your-own-controller"]], "Model Parameters": [[62, "model-parameters"]], "Trajectory data": [[63, "trajectory-data"]]}, "indexentries": {"double_pendulum": [[15, "module-double_pendulum"]], "module": [[15, "module-double_pendulum"], [16, "module-double_pendulum.analysis"], [16, "module-double_pendulum.analysis.benchmark"], [16, "module-double_pendulum.analysis.benchmark_plot"], [16, "module-double_pendulum.analysis.benchmark_scores"], [16, "module-double_pendulum.analysis.leaderboard"], [16, "module-double_pendulum.analysis.utils"], [17, "module-double_pendulum.controller"], [17, "module-double_pendulum.controller.abstract_controller"], [17, "module-double_pendulum.controller.combined_controller"], [18, "module-double_pendulum.controller.DQN"], [18, "module-double_pendulum.controller.DQN.replay_buffer"], [18, "module-double_pendulum.controller.DQN.utils"], [19, "module-double_pendulum.controller.SAC"], [19, "module-double_pendulum.controller.SAC.SAC_controller"], [20, "module-double_pendulum.controller.energy"], [20, "module-double_pendulum.controller.energy.energy_Xin"], [21, "module-double_pendulum.controller.friction_compensation"], [21, "module-double_pendulum.controller.friction_compensation.friction_compensation_controller"], [22, "module-double_pendulum.controller.gamepad"], [22, "module-double_pendulum.controller.gamepad.gamepad"], [22, "module-double_pendulum.controller.gamepad.gamepad_controller"], [23, "module-double_pendulum.controller.gravity_compensation"], [23, "module-double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller"], [23, "module-double_pendulum.controller.gravity_compensation.gravity_compensation_controller"], [24, "module-double_pendulum.controller.ilqr"], [24, "module-double_pendulum.controller.ilqr.ilqr_mpc_cpp"], [24, "module-double_pendulum.controller.ilqr.paropt"], [25, "module-double_pendulum.controller.inverse_dynamics"], [25, "module-double_pendulum.controller.inverse_dynamics.computed_torque_controller"], [25, "module-double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller"], [26, "module-double_pendulum.controller.lqr"], [26, "module-double_pendulum.controller.lqr.lqr"], [26, "module-double_pendulum.controller.lqr.lqr_controller"], [26, "module-double_pendulum.controller.lqr.lqr_controller_drake"], [27, "module-double_pendulum.controller.lqr.roa"], [27, "module-double_pendulum.controller.lqr.roa.check"], [27, "module-double_pendulum.controller.lqr.roa.ellipsoid"], [27, "module-double_pendulum.controller.lqr.roa.prob_roa"], [28, "module-double_pendulum.controller.mcpilco"], [28, "module-double_pendulum.controller.mcpilco.mcpilco_controller"], [29, "module-double_pendulum.controller.partial_feedback_linearization"], [29, "module-double_pendulum.controller.partial_feedback_linearization.pfl"], [29, "module-double_pendulum.controller.partial_feedback_linearization.symbolic_pfl"], [30, "module-double_pendulum.controller.pid"], [30, "module-double_pendulum.controller.pid.point_pid_controller"], [30, "module-double_pendulum.controller.pid.trajectory_pid_controller"], [31, "module-double_pendulum.controller.random_exploration"], [31, "module-double_pendulum.controller.random_exploration.random_exploration_controller"], [32, "module-double_pendulum.controller.trajectory_following"], [32, "module-double_pendulum.controller.trajectory_following.feed_forward"], [32, "module-double_pendulum.controller.trajectory_following.trajectory_controller"], [33, "module-double_pendulum.controller.tvlqr"], [33, "module-double_pendulum.controller.tvlqr.tvlqr_controller"], [33, "module-double_pendulum.controller.tvlqr.tvlqr_controller_drake"], [34, "module-double_pendulum.experiments"], [34, "module-double_pendulum.experiments.experimental_utils"], [34, "module-double_pendulum.experiments.hardware_control_loop_mjbots"], [34, "module-double_pendulum.experiments.hardware_control_loop_tmotors"], [34, "module-double_pendulum.experiments.performance_profiler"], [34, "module-double_pendulum.experiments.video_recording"], [35, "module-double_pendulum.filter"], [35, "module-double_pendulum.filter.abstract_filter"], [35, "module-double_pendulum.filter.butterworth"], [35, "module-double_pendulum.filter.identity"], [35, "module-double_pendulum.filter.kalman"], [35, "module-double_pendulum.filter.lowpass"], [35, "module-double_pendulum.filter.running_mean"], [35, "module-double_pendulum.filter.unscented_kalman"], [36, "module-double_pendulum.model"], [36, "module-double_pendulum.model.friction_matrix"], [36, "module-double_pendulum.model.model_parameters"], [36, "module-double_pendulum.model.plant"], [36, "module-double_pendulum.model.symbolic_plant"], [37, "module-double_pendulum.simulation"], [37, "module-double_pendulum.simulation.gym_env"], [37, "module-double_pendulum.simulation.perturbations"], [37, "module-double_pendulum.simulation.simulation"], [37, "module-double_pendulum.simulation.visualization"], [38, "module-double_pendulum.system_identification"], [38, "module-double_pendulum.system_identification.loss"], [38, "module-double_pendulum.system_identification.plotting"], [39, "module-double_pendulum.trajectory_optimization"], [40, "module-double_pendulum.trajectory_optimization.direct_collocation"], [40, "module-double_pendulum.trajectory_optimization.direct_collocation.dircol_utils"], [40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake"], [40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2"], [41, "module-double_pendulum.trajectory_optimization.ilqr"], [41, "module-double_pendulum.trajectory_optimization.ilqr.ilqr_cpp"], [41, "module-double_pendulum.trajectory_optimization.ilqr.paropt"], [42, "module-double_pendulum.utils"], [42, "module-double_pendulum.utils.cmaes_controller_par_optimizer"], [42, "module-double_pendulum.utils.csv_trajectory"], [42, "module-double_pendulum.utils.lists"], [42, "module-double_pendulum.utils.optimization"], [42, "module-double_pendulum.utils.pcw_polynomial"], [42, "module-double_pendulum.utils.plotting"], [42, "module-double_pendulum.utils.urdfs"], [42, "module-double_pendulum.utils.wrap_angles"]], "benchmark() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.benchmark"]], "benchmarker (class in double_pendulum.analysis.benchmark)": [[16, "double_pendulum.analysis.benchmark.benchmarker"]], "check_delay_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_delay_robustness"]], "check_goal_success() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_goal_success"]], "check_meas_noise_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_meas_noise_robustness"]], "check_modelpar_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_modelpar_robustness"]], "check_perturbation_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_perturbation_robustness"]], "check_unoise_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_unoise_robustness"]], "check_uresponsiveness_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_uresponsiveness_robustness"]], "compute_cost() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.compute_cost"]], "compute_ref_cost() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.compute_ref_cost"]], "compute_success_measure() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.compute_success_measure"]], "double_pendulum.analysis": [[16, "module-double_pendulum.analysis"]], "double_pendulum.analysis.benchmark": [[16, "module-double_pendulum.analysis.benchmark"]], "double_pendulum.analysis.benchmark_plot": [[16, "module-double_pendulum.analysis.benchmark_plot"]], "double_pendulum.analysis.benchmark_scores": [[16, "module-double_pendulum.analysis.benchmark_scores"]], "double_pendulum.analysis.leaderboard": [[16, "module-double_pendulum.analysis.leaderboard"]], "double_pendulum.analysis.utils": [[16, "module-double_pendulum.analysis.utils"]], "get_delay_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_delay_score"]], "get_energy() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_energy"]], "get_integrated_torque() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_integrated_torque"]], "get_max_tau() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_max_tau"]], "get_measurement_noise_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_measurement_noise_score"]], "get_model_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_model_score"]], "get_par_list() (in module double_pendulum.analysis.utils)": [[16, "double_pendulum.analysis.utils.get_par_list"]], "get_perturbation_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_perturbation_score"]], "get_scores() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_scores"]], "get_swingup_time() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_swingup_time"]], "get_tau_smoothness() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_tau_smoothness"]], "get_torque_cost() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_torque_cost"]], "get_unoise_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_unoise_score"]], "get_uresponsiveness_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_uresponsiveness_score"]], "get_velocity_cost() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_velocity_cost"]], "leaderboard_scores() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.leaderboard_scores"]], "plot_benchmark_results() (in module double_pendulum.analysis.benchmark_plot)": [[16, "double_pendulum.analysis.benchmark_plot.plot_benchmark_results"]], "plot_model_robustness_multi() (in module double_pendulum.analysis.benchmark_plot)": [[16, "double_pendulum.analysis.benchmark_plot.plot_model_robustness_multi"]], "save() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.save"]], "set_cost_par() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.set_cost_par"]], "set_init_traj() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.set_init_traj"]], "set_model_parameter() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.set_model_parameter"]], "simulate_and_get_cost() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.simulate_and_get_cost"]], "abstractcontroller (class in double_pendulum.controller.abstract_controller)": [[17, "double_pendulum.controller.abstract_controller.AbstractController"]], "combinedcontroller (class in double_pendulum.controller.combined_controller)": [[17, "double_pendulum.controller.combined_controller.CombinedController"]], "simultaneouscontrollers (class in double_pendulum.controller.combined_controller)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers"]], "double_pendulum.controller": [[17, "module-double_pendulum.controller"]], "double_pendulum.controller.abstract_controller": [[17, "module-double_pendulum.controller.abstract_controller"]], "double_pendulum.controller.combined_controller": [[17, "module-double_pendulum.controller.combined_controller"]], "get_control_output() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_control_output"]], "get_control_output_() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.get_control_output_"]], "get_forecast() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_forecast"]], "get_forecast() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.get_forecast"]], "get_forecast() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.get_forecast"]], "get_friction_torque() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_friction_torque"]], "get_gravity_torque() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_gravity_torque"]], "get_init_trajectory() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.get_init_trajectory"]], "init() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.init"]], "init_() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.init_"]], "init_() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.init_"]], "init_() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.init_"]], "reset() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.reset"]], "reset_() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.reset_"]], "reset_() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.reset_"]], "save() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.save"]], "save_() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.save_"]], "save_() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.save_"]], "set_filter() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_filter"]], "set_friction_compensation() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_friction_compensation"]], "set_goal() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_goal"]], "set_goal() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.set_goal"]], "set_goal() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.set_goal"]], "set_gravity_compensation() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_gravity_compensation"]], "set_parameters() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_parameters"]], "set_parameters() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.set_parameters"]], "set_parameters() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.set_parameters"]], "set_start() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_start"]], "set_start() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.set_start"]], "set_start() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.set_start"]], "replaybuffer (class in double_pendulum.controller.dqn.replay_buffer)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer"]], "add() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.add"]], "create_batch() (double_pendulum.controller.dqn.replay_buffer.replaybuffer static method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.create_batch"]], "double_pendulum.controller.dqn": [[18, "module-double_pendulum.controller.DQN"]], "double_pendulum.controller.dqn.replay_buffer": [[18, "module-double_pendulum.controller.DQN.replay_buffer"]], "double_pendulum.controller.dqn.utils": [[18, "module-double_pendulum.controller.DQN.utils"]], "get_sample_indexes() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.get_sample_indexes"]], "load() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.load"]], "load_pickled_data() (in module double_pendulum.controller.dqn.utils)": [[18, "double_pendulum.controller.DQN.utils.load_pickled_data"]], "sample_random_batch() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.sample_random_batch"]], "save() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.save"]], "save_pickled_data() (in module double_pendulum.controller.dqn.utils)": [[18, "double_pendulum.controller.DQN.utils.save_pickled_data"]], "saccontroller (class in double_pendulum.controller.sac.sac_controller)": [[19, "double_pendulum.controller.SAC.SAC_controller.SACController"]], "double_pendulum.controller.sac": [[19, "module-double_pendulum.controller.SAC"]], "double_pendulum.controller.sac.sac_controller": [[19, "module-double_pendulum.controller.SAC.SAC_controller"]], "get_control_output_() (double_pendulum.controller.sac.sac_controller.saccontroller method)": [[19, "double_pendulum.controller.SAC.SAC_controller.SACController.get_control_output_"]], "energycontroller (class in double_pendulum.controller.energy.energy_xin)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController"]], "check_parameters() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.check_parameters"]], "double_pendulum.controller.energy": [[20, "module-double_pendulum.controller.energy"]], "double_pendulum.controller.energy.energy_xin": [[20, "module-double_pendulum.controller.energy.energy_Xin"]], "get_control_output_() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.get_control_output_"]], "init_() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.init_"]], "kd_func() (in module double_pendulum.controller.energy.energy_xin)": [[20, "double_pendulum.controller.energy.energy_Xin.kd_func"]], "save_() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.save_"]], "set_goal() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.set_goal"]], "set_parameters() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.set_parameters"]], "frictioncompensationcontroller (class in double_pendulum.controller.friction_compensation.friction_compensation_controller)": [[21, "double_pendulum.controller.friction_compensation.friction_compensation_controller.FrictionCompensationController"]], "double_pendulum.controller.friction_compensation": [[21, "module-double_pendulum.controller.friction_compensation"]], "double_pendulum.controller.friction_compensation.friction_compensation_controller": [[21, "module-double_pendulum.controller.friction_compensation.friction_compensation_controller"]], "get_control_output_() (double_pendulum.controller.friction_compensation.friction_compensation_controller.frictioncompensationcontroller method)": [[21, "double_pendulum.controller.friction_compensation.friction_compensation_controller.FrictionCompensationController.get_control_output_"]], "save_() (double_pendulum.controller.friction_compensation.friction_compensation_controller.frictioncompensationcontroller method)": [[21, "double_pendulum.controller.friction_compensation.friction_compensation_controller.FrictionCompensationController.save_"]], "gamepad (class in double_pendulum.controller.gamepad.gamepad)": [[22, "double_pendulum.controller.gamepad.gamepad.GamePad"]], "gamepadcontroller (class in double_pendulum.controller.gamepad.gamepad_controller)": [[22, "double_pendulum.controller.gamepad.gamepad_controller.GamepadController"]], "double_pendulum.controller.gamepad": [[22, "module-double_pendulum.controller.gamepad"]], "double_pendulum.controller.gamepad.gamepad": [[22, "module-double_pendulum.controller.gamepad.gamepad"]], "double_pendulum.controller.gamepad.gamepad_controller": [[22, "module-double_pendulum.controller.gamepad.gamepad_controller"]], "get_control_output_() (double_pendulum.controller.gamepad.gamepad_controller.gamepadcontroller method)": [[22, "double_pendulum.controller.gamepad.gamepad_controller.GamepadController.get_control_output_"]], "read() (double_pendulum.controller.gamepad.gamepad.gamepad method)": [[22, "double_pendulum.controller.gamepad.gamepad.GamePad.read"]], "gravitycompensationcontroller (class in double_pendulum.controller.gravity_compensation.gravity_compensation_controller)": [[23, "double_pendulum.controller.gravity_compensation.gravity_compensation_controller.GravityCompensationController"]], "pidgravitycompensationcontroller (class in double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController"]], "double_pendulum.controller.gravity_compensation": [[23, "module-double_pendulum.controller.gravity_compensation"]], "double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller": [[23, "module-double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller"]], "double_pendulum.controller.gravity_compensation.gravity_compensation_controller": [[23, "module-double_pendulum.controller.gravity_compensation.gravity_compensation_controller"]], "get_control_output_() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.gravity_compensation.gravity_compensation_controller.gravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.gravity_compensation_controller.GravityCompensationController.get_control_output_"]], "init_() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.init_"]], "save_() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.save_"]], "save_() (double_pendulum.controller.gravity_compensation.gravity_compensation_controller.gravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.gravity_compensation_controller.GravityCompensationController.save_"]], "set_goal() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.set_goal"]], "set_parameters() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.set_parameters"]], "ilqrmpccppcontroller (class in double_pendulum.controller.ilqr.ilqr_mpc_cpp)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController"]], "compute_init_traj() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.compute_init_traj"]], "double_pendulum.controller.ilqr": [[24, "module-double_pendulum.controller.ilqr"]], "double_pendulum.controller.ilqr.ilqr_mpc_cpp": [[24, "module-double_pendulum.controller.ilqr.ilqr_mpc_cpp"]], "double_pendulum.controller.ilqr.paropt": [[24, "module-double_pendulum.controller.ilqr.paropt"]], "get_control_output_() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.get_control_output_"]], "get_forecast() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.get_forecast"]], "get_init_trajectory() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.get_init_trajectory"]], "ilqrmpc_swingup_loss (class in double_pendulum.controller.ilqr.paropt)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss"]], "init() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.init"]], "init_() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.init_"]], "load_init_traj() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.load_init_traj"]], "rescale_pars() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.rescale_pars"]], "save_() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.save_"]], "set_cost_parameters() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_cost_parameters"]], "set_cost_parameters_() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_cost_parameters_"]], "set_final_cost_parameters() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_final_cost_parameters"]], "set_goal() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_goal"]], "set_model_parameters() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.set_model_parameters"]], "set_parameters() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_parameters"]], "set_parameters() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.set_parameters"]], "set_start() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_start"]], "unscale_pars() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.unscale_pars"]], "computedtorquecontroller (class in double_pendulum.controller.inverse_dynamics.computed_torque_controller)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController"]], "inversedynamicscontroller (class in double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController"]], "double_pendulum.controller.inverse_dynamics": [[25, "module-double_pendulum.controller.inverse_dynamics"]], "double_pendulum.controller.inverse_dynamics.computed_torque_controller": [[25, "module-double_pendulum.controller.inverse_dynamics.computed_torque_controller"]], "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller": [[25, "module-double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller"]], "get_control_output_() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.inversedynamicscontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController.get_control_output_"]], "get_init_trajectory() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.inversedynamicscontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController.get_init_trajectory"]], "init_() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.init_"]], "init_() (double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.inversedynamicscontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController.init_"]], "save_() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.save_"]], "save_() (double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.inversedynamicscontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController.save_"]], "set_parameters() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.set_parameters"]], "lqrcontroller (class in double_pendulum.controller.lqr.lqr_controller)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController"]], "lqrcontroller (class in double_pendulum.controller.lqr.lqr_controller_drake)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController"]], "lqrcontroller_nonsymbolic (class in double_pendulum.controller.lqr.lqr_controller)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic"]], "dlqr() (in module double_pendulum.controller.lqr.lqr)": [[26, "double_pendulum.controller.lqr.lqr.dlqr"]], "double_pendulum.controller.lqr": [[26, "module-double_pendulum.controller.lqr"]], "double_pendulum.controller.lqr.lqr": [[26, "module-double_pendulum.controller.lqr.lqr"]], "double_pendulum.controller.lqr.lqr_controller": [[26, "module-double_pendulum.controller.lqr.lqr_controller"]], "double_pendulum.controller.lqr.lqr_controller_drake": [[26, "module-double_pendulum.controller.lqr.lqr_controller_drake"]], "get_control_output_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.get_control_output_"]], "get_control_output_() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.get_control_output_"]], "init_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.init_"]], "init_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.init_"]], "init_() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.init_"]], "iterative_riccati() (in module double_pendulum.controller.lqr.lqr)": [[26, "double_pendulum.controller.lqr.lqr.iterative_riccati"]], "lqr() (in module double_pendulum.controller.lqr.lqr)": [[26, "double_pendulum.controller.lqr.lqr.lqr"]], "save_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.save_"]], "save_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.save_"]], "save_() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.save_"]], "set_cost_matrices() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_cost_matrices"]], "set_cost_matrices() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_cost_matrices"]], "set_cost_matrices() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.set_cost_matrices"]], "set_cost_parameters() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_cost_parameters"]], "set_cost_parameters() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_cost_parameters"]], "set_cost_parameters() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.set_cost_parameters"]], "set_cost_parameters_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.set_cost_parameters_"]], "set_goal() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_goal"]], "set_goal() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_goal"]], "set_goal() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.set_goal"]], "set_parameters() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_parameters"]], "set_parameters() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_parameters"]], "check_x0() (in module double_pendulum.controller.lqr.roa.prob_roa)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.check_x0"]], "compute_roa_prob() (in module double_pendulum.controller.lqr.roa.prob_roa)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.compute_roa_prob"]], "directsphere() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.directSphere"]], "double_pendulum.controller.lqr.roa": [[27, "module-double_pendulum.controller.lqr.roa"]], "double_pendulum.controller.lqr.roa.check": [[27, "module-double_pendulum.controller.lqr.roa.check"]], "double_pendulum.controller.lqr.roa.ellipsoid": [[27, "module-double_pendulum.controller.lqr.roa.ellipsoid"]], "double_pendulum.controller.lqr.roa.prob_roa": [[27, "module-double_pendulum.controller.lqr.roa.prob_roa"]], "getellipseparamsfromquad() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.getEllipseParamsFromQuad"]], "getellipsepatch() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.getEllipsePatch"]], "getellipsepatches() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.getEllipsePatches"]], "lqr_check_ctg (class in double_pendulum.controller.lqr.roa.check)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_ctg"]], "lqr_check_ctg_verification() (in module double_pendulum.controller.lqr.roa.check)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_ctg_verification"]], "lqr_check_epsilon (class in double_pendulum.controller.lqr.roa.check)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_epsilon"]], "lqr_check_epsilon_verification() (in module double_pendulum.controller.lqr.roa.check)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_epsilon_verification"]], "plotellipse() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.plotEllipse"]], "quadform() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.quadForm"]], "rescale_pars() (double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss method)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss.rescale_pars"]], "roa_prob_loss (class in double_pendulum.controller.lqr.roa.prob_roa)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss"]], "samplefromellipsoid() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.sampleFromEllipsoid"]], "sim_callback() (double_pendulum.controller.lqr.roa.check.lqr_check_ctg method)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_ctg.sim_callback"]], "sim_callback() (double_pendulum.controller.lqr.roa.check.lqr_check_epsilon method)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_epsilon.sim_callback"]], "unscale_pars() (double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss method)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss.unscale_pars"]], "volellipsoid() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.volEllipsoid"]], "controller_muli_out_sum_of_gaussians_with_angles_numpy (class in double_pendulum.controller.mcpilco.mcpilco_controller)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_muli_out_sum_of_Gaussians_with_angles_numpy"]], "controller_multi_policy_sum_of_gaussians_with_angles_numpy (class in double_pendulum.controller.mcpilco.mcpilco_controller)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_multi_policy_sum_of_gaussians_with_angles_numpy"]], "controller_sum_of_gaussians_with_angles_numpy (class in double_pendulum.controller.mcpilco.mcpilco_controller)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_sum_of_Gaussians_with_angles_numpy"]], "double_pendulum.controller.mcpilco": [[28, "module-double_pendulum.controller.mcpilco"]], "double_pendulum.controller.mcpilco.mcpilco_controller": [[28, "module-double_pendulum.controller.mcpilco.mcpilco_controller"]], "get_control_output_() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_muli_out_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_muli_out_sum_of_Gaussians_with_angles_numpy.get_control_output_"]], "get_control_output_() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_multi_policy_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_multi_policy_sum_of_gaussians_with_angles_numpy.get_control_output_"]], "get_control_output_() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_sum_of_Gaussians_with_angles_numpy.get_control_output_"]], "get_np_policy() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_muli_out_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_muli_out_sum_of_Gaussians_with_angles_numpy.get_np_policy"]], "get_np_policy() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_multi_policy_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_multi_policy_sum_of_gaussians_with_angles_numpy.get_np_policy"]], "energyshapingpflandlqrcontroller (class in double_pendulum.controller.partial_feedback_linearization.pfl)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController"]], "energyshapingpflcontroller (class in double_pendulum.controller.partial_feedback_linearization.pfl)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController"]], "symbolicpflandlqrcontroller (class in double_pendulum.controller.partial_feedback_linearization.symbolic_pfl)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController"]], "symbolicpflcontroller (class in double_pendulum.controller.partial_feedback_linearization.symbolic_pfl)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController"]], "double_pendulum.controller.partial_feedback_linearization": [[29, "module-double_pendulum.controller.partial_feedback_linearization"]], "double_pendulum.controller.partial_feedback_linearization.pfl": [[29, "module-double_pendulum.controller.partial_feedback_linearization.pfl"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl": [[29, "module-double_pendulum.controller.partial_feedback_linearization.symbolic_pfl"]], "get_control_output_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.get_control_output_"]], "init_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController.init_"]], "init_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.init_"]], "init_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.init_"]], "save_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.save_"]], "save_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.save_"]], "save_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.save_"]], "set_cost_parameters() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.set_cost_parameters"]], "set_cost_parameters() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.set_cost_parameters"]], "set_cost_parameters_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.set_cost_parameters_"]], "set_goal() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController.set_goal"]], "set_goal() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.set_goal"]], "set_goal() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.set_goal"]], "set_goal() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.set_goal"]], "pointpidcontroller (class in double_pendulum.controller.pid.point_pid_controller)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController"]], "trajpidcontroller (class in double_pendulum.controller.pid.trajectory_pid_controller)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController"]], "double_pendulum.controller.pid": [[30, "module-double_pendulum.controller.pid"]], "double_pendulum.controller.pid.point_pid_controller": [[30, "module-double_pendulum.controller.pid.point_pid_controller"]], "double_pendulum.controller.pid.trajectory_pid_controller": [[30, "module-double_pendulum.controller.pid.trajectory_pid_controller"]], "get_control_output_() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.get_control_output_"]], "get_init_trajectory() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.get_init_trajectory"]], "init_() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.init_"]], "init_() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.init_"]], "save_() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.save_"]], "save_() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.save_"]], "set_goal() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.set_goal"]], "set_parameters() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.set_parameters"]], "set_parameters() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.set_parameters"]], "controller_random_exploration (class in double_pendulum.controller.random_exploration.random_exploration_controller)": [[31, "double_pendulum.controller.random_exploration.random_exploration_controller.Controller_Random_exploration"]], "double_pendulum.controller.random_exploration": [[31, "module-double_pendulum.controller.random_exploration"]], "double_pendulum.controller.random_exploration.random_exploration_controller": [[31, "module-double_pendulum.controller.random_exploration.random_exploration_controller"]], "get_control_output_() (double_pendulum.controller.random_exploration.random_exploration_controller.controller_random_exploration method)": [[31, "double_pendulum.controller.random_exploration.random_exploration_controller.Controller_Random_exploration.get_control_output_"]], "init_profile() (double_pendulum.controller.random_exploration.random_exploration_controller.controller_random_exploration method)": [[31, "double_pendulum.controller.random_exploration.random_exploration_controller.Controller_Random_exploration.init_profile"]], "feedforwardcontroller (class in double_pendulum.controller.trajectory_following.feed_forward)": [[32, "double_pendulum.controller.trajectory_following.feed_forward.FeedForwardController"]], "trajectorycontroller (class in double_pendulum.controller.trajectory_following.trajectory_controller)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryController"]], "trajectoryinterpcontroller (class in double_pendulum.controller.trajectory_following.trajectory_controller)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController"]], "double_pendulum.controller.trajectory_following": [[32, "module-double_pendulum.controller.trajectory_following"]], "double_pendulum.controller.trajectory_following.feed_forward": [[32, "module-double_pendulum.controller.trajectory_following.feed_forward"]], "double_pendulum.controller.trajectory_following.trajectory_controller": [[32, "module-double_pendulum.controller.trajectory_following.trajectory_controller"]], "get_control_output_() (double_pendulum.controller.trajectory_following.feed_forward.feedforwardcontroller method)": [[32, "double_pendulum.controller.trajectory_following.feed_forward.FeedForwardController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectorycontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectoryinterpcontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController.get_control_output_"]], "get_init_trajectory() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectorycontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectoryinterpcontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController.get_init_trajectory"]], "save_() (double_pendulum.controller.trajectory_following.feed_forward.feedforwardcontroller method)": [[32, "double_pendulum.controller.trajectory_following.feed_forward.FeedForwardController.save_"]], "save_() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectoryinterpcontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController.save_"]], "tvlqrcontroller (class in double_pendulum.controller.tvlqr.tvlqr_controller)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController"]], "tvlqrcontroller (class in double_pendulum.controller.tvlqr.tvlqr_controller_drake)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController"]], "double_pendulum.controller.tvlqr": [[33, "module-double_pendulum.controller.tvlqr"]], "double_pendulum.controller.tvlqr.tvlqr_controller": [[33, "module-double_pendulum.controller.tvlqr.tvlqr_controller"]], "double_pendulum.controller.tvlqr.tvlqr_controller_drake": [[33, "module-double_pendulum.controller.tvlqr.tvlqr_controller_drake"]], "get_control_output_() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.get_control_output_"]], "get_init_trajectory() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.get_init_trajectory"]], "init_() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.init_"]], "init_() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.init_"]], "save_() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.save_"]], "save_() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.save_"]], "set_cost_parameters() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.set_cost_parameters"]], "set_cost_parameters() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.set_cost_parameters"]], "set_goal() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.set_goal"]], "videowriterwidget (class in double_pendulum.experiments.video_recording)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget"]], "double_pendulum.experiments": [[34, "module-double_pendulum.experiments"]], "double_pendulum.experiments.experimental_utils": [[34, "module-double_pendulum.experiments.experimental_utils"]], "double_pendulum.experiments.hardware_control_loop_mjbots": [[34, "module-double_pendulum.experiments.hardware_control_loop_mjbots"]], "double_pendulum.experiments.hardware_control_loop_tmotors": [[34, "module-double_pendulum.experiments.hardware_control_loop_tmotors"]], "double_pendulum.experiments.performance_profiler": [[34, "module-double_pendulum.experiments.performance_profiler"]], "double_pendulum.experiments.video_recording": [[34, "module-double_pendulum.experiments.video_recording"]], "motor_send_n_commands() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.motor_send_n_commands"]], "motor_send_n_commands2() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.motor_send_n_commands2"]], "motor_speed_test() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.motor_speed_test"]], "motor_speed_test2() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.motor_speed_test2"]], "profiler() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.profiler"]], "rad2rev() (in module double_pendulum.experiments.experimental_utils)": [[34, "double_pendulum.experiments.experimental_utils.rad2rev"]], "rev2rad() (in module double_pendulum.experiments.experimental_utils)": [[34, "double_pendulum.experiments.experimental_utils.rev2rad"]], "run_experiment() (in module double_pendulum.experiments.hardware_control_loop_tmotors)": [[34, "double_pendulum.experiments.hardware_control_loop_tmotors.run_experiment"]], "save_data() (in module double_pendulum.experiments.experimental_utils)": [[34, "double_pendulum.experiments.experimental_utils.save_data"]], "save_frame() (double_pendulum.experiments.video_recording.videowriterwidget method)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget.save_frame"]], "setzeroposition() (in module double_pendulum.experiments.experimental_utils)": [[34, "double_pendulum.experiments.experimental_utils.setZeroPosition"]], "show_frame() (double_pendulum.experiments.video_recording.videowriterwidget method)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget.show_frame"]], "start_recording() (double_pendulum.experiments.video_recording.videowriterwidget method)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget.start_recording"]], "update() (double_pendulum.experiments.video_recording.videowriterwidget method)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget.update"]], "abstractfilter (class in double_pendulum.filter.abstract_filter)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter"]], "butterworth_filter (class in double_pendulum.filter.butterworth)": [[35, "double_pendulum.filter.butterworth.butterworth_filter"]], "double_pendulum.filter": [[35, "module-double_pendulum.filter"]], "double_pendulum.filter.abstract_filter": [[35, "module-double_pendulum.filter.abstract_filter"]], "double_pendulum.filter.butterworth": [[35, "module-double_pendulum.filter.butterworth"]], "double_pendulum.filter.identity": [[35, "module-double_pendulum.filter.identity"]], "double_pendulum.filter.kalman": [[35, "module-double_pendulum.filter.kalman"]], "double_pendulum.filter.lowpass": [[35, "module-double_pendulum.filter.lowpass"]], "double_pendulum.filter.running_mean": [[35, "module-double_pendulum.filter.running_mean"]], "double_pendulum.filter.unscented_kalman": [[35, "module-double_pendulum.filter.unscented_kalman"]], "get_filtered_state() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.get_filtered_state"]], "get_filtered_state_() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.butterworth.butterworth_filter method)": [[35, "double_pendulum.filter.butterworth.butterworth_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.identity.identity_filter method)": [[35, "double_pendulum.filter.identity.identity_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.kalman.kalman_filter method)": [[35, "double_pendulum.filter.kalman.kalman_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.lowpass.lowpass_filter method)": [[35, "double_pendulum.filter.lowpass.lowpass_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.running_mean.runningmean_filter method)": [[35, "double_pendulum.filter.running_mean.runningmean_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.unscented_kalman.unscentedkalman_filter method)": [[35, "double_pendulum.filter.unscented_kalman.unscentedkalman_filter.get_filtered_state_"]], "iden() (in module double_pendulum.filter.unscented_kalman)": [[35, "double_pendulum.filter.unscented_kalman.iden"]], "identity_filter (class in double_pendulum.filter.identity)": [[35, "double_pendulum.filter.identity.identity_filter"]], "init() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.init"]], "init_() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.init_"]], "init_() (double_pendulum.filter.butterworth.butterworth_filter method)": [[35, "double_pendulum.filter.butterworth.butterworth_filter.init_"]], "init_() (double_pendulum.filter.identity.identity_filter method)": [[35, "double_pendulum.filter.identity.identity_filter.init_"]], "init_() (double_pendulum.filter.kalman.kalman_filter method)": [[35, "double_pendulum.filter.kalman.kalman_filter.init_"]], "init_() (double_pendulum.filter.lowpass.lowpass_filter method)": [[35, "double_pendulum.filter.lowpass.lowpass_filter.init_"]], "init_() (double_pendulum.filter.running_mean.runningmean_filter method)": [[35, "double_pendulum.filter.running_mean.runningmean_filter.init_"]], "init_() (double_pendulum.filter.unscented_kalman.unscentedkalman_filter method)": [[35, "double_pendulum.filter.unscented_kalman.unscentedkalman_filter.init_"]], "kalman_filter (class in double_pendulum.filter.kalman)": [[35, "double_pendulum.filter.kalman.kalman_filter"]], "lowpass_filter (class in double_pendulum.filter.lowpass)": [[35, "double_pendulum.filter.lowpass.lowpass_filter"]], "runningmean_filter (class in double_pendulum.filter.running_mean)": [[35, "double_pendulum.filter.running_mean.runningmean_filter"]], "save() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.save"]], "save_() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.save_"]], "save_() (double_pendulum.filter.butterworth.butterworth_filter method)": [[35, "double_pendulum.filter.butterworth.butterworth_filter.save_"]], "save_() (double_pendulum.filter.identity.identity_filter method)": [[35, "double_pendulum.filter.identity.identity_filter.save_"]], "save_() (double_pendulum.filter.kalman.kalman_filter method)": [[35, "double_pendulum.filter.kalman.kalman_filter.save_"]], "save_() (double_pendulum.filter.lowpass.lowpass_filter method)": [[35, "double_pendulum.filter.lowpass.lowpass_filter.save_"]], "save_() (double_pendulum.filter.running_mean.runningmean_filter method)": [[35, "double_pendulum.filter.running_mean.runningmean_filter.save_"]], "save_() (double_pendulum.filter.unscented_kalman.unscentedkalman_filter method)": [[35, "double_pendulum.filter.unscented_kalman.unscentedkalman_filter.save_"]], "unscentedkalman_filter (class in double_pendulum.filter.unscented_kalman)": [[35, "double_pendulum.filter.unscented_kalman.unscentedkalman_filter"]], "doublependulumplant (class in double_pendulum.model.plant)": [[36, "double_pendulum.model.plant.DoublePendulumPlant"]], "i1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.I1"]], "i2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.I2"]], "ir_sym (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.Ir_sym"]], "symbolicdoublependulum (class in double_pendulum.model.symbolic_plant)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum"]], "angular_momentum_base() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.angular_momentum_base"]], "angular_momentum_ddot_base() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.angular_momentum_ddot_base"]], "angular_momentum_dot_base() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.angular_momentum_dot_base"]], "b1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.b1"]], "b2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.b2"]], "base (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.base"]], "center_of_mass() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.center_of_mass"]], "cf1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.cf1"]], "cf2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.cf2"]], "com_dot() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.com_dot"]], "coriolis_matrix() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.coriolis_matrix"]], "coriolis_matrix() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.coriolis_matrix"]], "coulomb_vector() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.coulomb_vector"]], "coulomb_vector() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.coulomb_vector"]], "diff_to_matrix() (in module double_pendulum.model.symbolic_plant)": [[36, "double_pendulum.model.symbolic_plant.diff_to_matrix"]], "dof (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.dof"]], "double_pendulum.model": [[36, "module-double_pendulum.model"]], "double_pendulum.model.friction_matrix": [[36, "module-double_pendulum.model.friction_matrix"]], "double_pendulum.model.model_parameters": [[36, "module-double_pendulum.model.model_parameters"]], "double_pendulum.model.plant": [[36, "module-double_pendulum.model.plant"]], "double_pendulum.model.symbolic_plant": [[36, "module-double_pendulum.model.symbolic_plant"]], "equation_of_motion() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.equation_of_motion"]], "forward_dynamics() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.forward_dynamics"]], "forward_dynamics() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.forward_dynamics"]], "forward_kinematics() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.forward_kinematics"]], "forward_kinematics() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.forward_kinematics"]], "g_sym (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.g_sym"]], "get_alin() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Alin"]], "get_blin() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Blin"]], "get_cx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Cx"]], "get_fx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Fx"]], "get_gx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Gx"]], "get_minvx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Minvx"]], "get_mx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Mx"]], "get_dict() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.get_dict"]], "gr_sym (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.gr_sym"]], "gravity_vector() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.gravity_vector"]], "gravity_vector() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.gravity_vector"]], "inverse_dynamics() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.inverse_dynamics"]], "kinetic_energy() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.kinetic_energy"]], "kinetic_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.kinetic_energy"]], "l1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.l1"]], "l2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.l2"]], "lambdify_matrices() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.lambdify_matrices"]], "linear_matrices() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.linear_matrices"]], "linear_matrices() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.linear_matrices"]], "linear_matrices_discrete() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.linear_matrices_discrete"]], "load_dict() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.load_dict"]], "load_model() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.load_model"]], "load_yaml() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.load_yaml"]], "m1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.m1"]], "m2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.m2"]], "mass_matrix() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.mass_matrix"]], "mass_matrix() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.mass_matrix"]], "model_parameters (class in double_pendulum.model.model_parameters)": [[36, "double_pendulum.model.model_parameters.model_parameters"]], "n_actuators (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.n_actuators"]], "n_links (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.n_links"]], "potential_energy() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.potential_energy"]], "potential_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.potential_energy"]], "q (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q"]], "q01 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q01"]], "q02 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q02"]], "q0d1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q0d1"]], "q0d2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q0d2"]], "q1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q1"]], "q2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q2"]], "qd (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qd"]], "qd1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qd1"]], "qd2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qd2"]], "qdd (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qdd"]], "qdd1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qdd1"]], "qdd2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qdd2"]], "r1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.r1"]], "r2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.r2"]], "replace_parameters() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.replace_parameters"]], "rhs() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.rhs"]], "rhs() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.rhs"]], "save_dict() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.save_dict"]], "set_cfric() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_cfric"]], "set_com() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_com"]], "set_damping() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_damping"]], "set_dof() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_dof"]], "set_gear_ratio() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_gear_ratio"]], "set_gravity() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_gravity"]], "set_inertia() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_inertia"]], "set_length() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_length"]], "set_mass() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_mass"]], "set_motor_inertia() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_motor_inertia"]], "set_torque_limit() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_torque_limit"]], "sub_symbols() (in module double_pendulum.model.symbolic_plant)": [[36, "double_pendulum.model.symbolic_plant.sub_symbols"]], "symbolic_coriolis_matrix() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_coriolis_matrix"]], "symbolic_coulomb_vector() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_coulomb_vector"]], "symbolic_gravity_vector() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_gravity_vector"]], "symbolic_kinetic_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_kinetic_energy"]], "symbolic_linear_matrices() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_linear_matrices"]], "symbolic_mass_matrix() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_mass_matrix"]], "symbolic_potential_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_potential_energy"]], "symbolic_total_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_total_energy"]], "tl1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.tl1"]], "tl2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.tl2"]], "total_energy() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.total_energy"]], "total_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.total_energy"]], "u (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u"]], "u0 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u0"]], "u01 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u01"]], "u02 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u02"]], "u1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u1"]], "u2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u2"]], "vector_mult() (in module double_pendulum.model.symbolic_plant)": [[36, "double_pendulum.model.symbolic_plant.vector_mult"]], "x (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.x"]], "x0 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.x0"]], "xd (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.xd"]], "yb_friction_matrix() (in module double_pendulum.model.friction_matrix)": [[36, "double_pendulum.model.friction_matrix.yb_friction_matrix"]], "customenv (class in double_pendulum.simulation.gym_env)": [[37, "double_pendulum.simulation.gym_env.CustomEnv"]], "simulator (class in double_pendulum.simulation.simulation)": [[37, "double_pendulum.simulation.simulation.Simulator"]], "action_space (double_pendulum.simulation.gym_env.customenv attribute)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.action_space"]], "controller_step() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.controller_step"]], "double_pendulum.simulation": [[37, "module-double_pendulum.simulation"]], "double_pendulum.simulation.gym_env": [[37, "module-double_pendulum.simulation.gym_env"]], "double_pendulum.simulation.perturbations": [[37, "module-double_pendulum.simulation.perturbations"]], "double_pendulum.simulation.simulation": [[37, "module-double_pendulum.simulation.simulation"]], "double_pendulum.simulation.visualization": [[37, "module-double_pendulum.simulation.visualization"]], "double_pendulum_dynamics_func (class in double_pendulum.simulation.gym_env)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func"]], "euler_integrator() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.euler_integrator"]], "get_arrow() (in module double_pendulum.simulation.visualization)": [[37, "double_pendulum.simulation.visualization.get_arrow"]], "get_control_u() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_control_u"]], "get_gaussian_perturbation_array() (in module double_pendulum.simulation.perturbations)": [[37, "double_pendulum.simulation.perturbations.get_gaussian_perturbation_array"]], "get_measurement() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_measurement"]], "get_random_gauss_perturbation_array() (in module double_pendulum.simulation.perturbations)": [[37, "double_pendulum.simulation.perturbations.get_random_gauss_perturbation_array"]], "get_real_applied_u() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_real_applied_u"]], "get_state() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_state"]], "get_trajectory_data() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_trajectory_data"]], "integration() (double_pendulum.simulation.gym_env.double_pendulum_dynamics_func method)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func.integration"]], "normalize_state() (double_pendulum.simulation.gym_env.double_pendulum_dynamics_func method)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func.normalize_state"]], "observation_space (double_pendulum.simulation.gym_env.customenv attribute)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.observation_space"]], "plot_perturbation_array() (in module double_pendulum.simulation.perturbations)": [[37, "double_pendulum.simulation.perturbations.plot_perturbation_array"]], "record_data() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.record_data"]], "render() (double_pendulum.simulation.gym_env.customenv method)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.render"]], "reset() (double_pendulum.simulation.gym_env.customenv method)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.reset"]], "reset() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.reset"]], "reset_data_recorder() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.reset_data_recorder"]], "runge_integrator() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.runge_integrator"]], "set_arrow_properties() (in module double_pendulum.simulation.visualization)": [[37, "double_pendulum.simulation.visualization.set_arrow_properties"]], "set_disturbances() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_disturbances"]], "set_measurement_parameters() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_measurement_parameters"]], "set_motor_parameters() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_motor_parameters"]], "set_process_noise() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_process_noise"]], "set_state() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_state"]], "simulate() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.simulate"]], "simulate_and_animate() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.simulate_and_animate"]], "step() (double_pendulum.simulation.gym_env.customenv method)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.step"]], "step() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.step"]], "unscale_action() (double_pendulum.simulation.gym_env.double_pendulum_dynamics_func method)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func.unscale_action"]], "unscale_state() (double_pendulum.simulation.gym_env.double_pendulum_dynamics_func method)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func.unscale_state"]], "double_pendulum.system_identification": [[38, "module-double_pendulum.system_identification"]], "double_pendulum.system_identification.loss": [[38, "module-double_pendulum.system_identification.loss"]], "double_pendulum.system_identification.plotting": [[38, "module-double_pendulum.system_identification.plotting"]], "errfunc (class in double_pendulum.system_identification.loss)": [[38, "double_pendulum.system_identification.loss.errfunc"]], "errfunc_nl (class in double_pendulum.system_identification.loss)": [[38, "double_pendulum.system_identification.loss.errfunc_nl"]], "plot_torques() (in module double_pendulum.system_identification.plotting)": [[38, "double_pendulum.system_identification.plotting.plot_torques"]], "rescale_pars() (double_pendulum.system_identification.loss.errfunc method)": [[38, "double_pendulum.system_identification.loss.errfunc.rescale_pars"]], "rescale_pars() (double_pendulum.system_identification.loss.errfunc_nl method)": [[38, "double_pendulum.system_identification.loss.errfunc_nl.rescale_pars"]], "unscale_pars() (double_pendulum.system_identification.loss.errfunc method)": [[38, "double_pendulum.system_identification.loss.errfunc.unscale_pars"]], "unscale_pars() (double_pendulum.system_identification.loss.errfunc_nl method)": [[38, "double_pendulum.system_identification.loss.errfunc_nl.unscale_pars"]], "double_pendulum.trajectory_optimization": [[39, "module-double_pendulum.trajectory_optimization"]], "collocationconstraint() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.CollocationConstraint"]], "computetrajectory() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.ComputeTrajectory"]], "dircol (class in double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol"]], "equationofmotion() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.EquationOfMotion"]], "interpolationconstraint() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.InterpolationConstraint"]], "mathematicalprogram() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.MathematicalProgram"]], "animate_trajectory() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator.animate_trajectory"]], "animation() (in module double_pendulum.trajectory_optimization.direct_collocation.dircol_utils)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils.animation"]], "compute_trajectory() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator.compute_trajectory"]], "construct_trajectories() (in module double_pendulum.trajectory_optimization.direct_collocation.dircol_utils)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils.construct_trajectories"]], "create_plant_from_urdf() (in module double_pendulum.trajectory_optimization.direct_collocation.dircol_utils)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils.create_plant_from_urdf"]], "dircol_calculator (class in double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator"]], "double_pendulum.trajectory_optimization.direct_collocation": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation"]], "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.dircol_utils"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2"]], "extract_data_from_polynomial() (in module double_pendulum.trajectory_optimization.direct_collocation.dircol_utils)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils.extract_data_from_polynomial"]], "get_trajectory() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator.get_trajectory"]], "compute_trajectory() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.compute_trajectory"]], "double_pendulum.trajectory_optimization.ilqr": [[41, "module-double_pendulum.trajectory_optimization.ilqr"]], "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp": [[41, "module-double_pendulum.trajectory_optimization.ilqr.ilqr_cpp"]], "double_pendulum.trajectory_optimization.ilqr.paropt": [[41, "module-double_pendulum.trajectory_optimization.ilqr.paropt"]], "ilqr_calculator (class in double_pendulum.trajectory_optimization.ilqr.ilqr_cpp)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator"]], "ilqr_trajopt_loss (class in double_pendulum.trajectory_optimization.ilqr.paropt)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss"]], "rescale_pars() (double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss method)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss.rescale_pars"]], "save_trajectory_csv() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.save_trajectory_csv"]], "set_cost_parameters() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_cost_parameters"]], "set_cost_parameters_() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_cost_parameters_"]], "set_goal() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_goal"]], "set_model_parameters() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_model_parameters"]], "set_model_parameters() (double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss method)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss.set_model_parameters"]], "set_parameters() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_parameters"]], "set_parameters() (double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss method)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss.set_parameters"]], "set_start() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_start"]], "unscale_pars() (double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss method)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss.unscale_pars"]], "fitpiecewisepolynomial (class in double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial"]], "interpolatematrix (class in double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.InterpolateMatrix"]], "interpolatevector (class in double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.InterpolateVector"]], "resampletrajectory() (in module double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.ResampleTrajectory"]], "cma_optimization() (in module double_pendulum.utils.optimization)": [[42, "double_pendulum.utils.optimization.cma_optimization"]], "concatenate_trajectories() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.concatenate_trajectories"]], "create_section_poly() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.create_section_poly"]], "determin_poly() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.determin_poly"]], "double_pendulum.utils": [[42, "module-double_pendulum.utils"]], "double_pendulum.utils.cmaes_controller_par_optimizer": [[42, "module-double_pendulum.utils.cmaes_controller_par_optimizer"]], "double_pendulum.utils.csv_trajectory": [[42, "module-double_pendulum.utils.csv_trajectory"]], "double_pendulum.utils.lists": [[42, "module-double_pendulum.utils.lists"]], "double_pendulum.utils.optimization": [[42, "module-double_pendulum.utils.optimization"]], "double_pendulum.utils.pcw_polynomial": [[42, "module-double_pendulum.utils.pcw_polynomial"]], "double_pendulum.utils.plotting": [[42, "module-double_pendulum.utils.plotting"]], "double_pendulum.utils.urdfs": [[42, "module-double_pendulum.utils.urdfs"]], "double_pendulum.utils.wrap_angles": [[42, "module-double_pendulum.utils.wrap_angles"]], "end_time() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.end_time"]], "generate_urdf() (in module double_pendulum.utils.urdfs)": [[42, "double_pendulum.utils.urdfs.generate_urdf"]], "get_value() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.get_value"]], "get_value() (double_pendulum.utils.pcw_polynomial.interpolatematrix method)": [[42, "double_pendulum.utils.pcw_polynomial.InterpolateMatrix.get_value"]], "get_value() (double_pendulum.utils.pcw_polynomial.interpolatevector method)": [[42, "double_pendulum.utils.pcw_polynomial.InterpolateVector.get_value"]], "load_kk_values() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.load_Kk_values"]], "load_trajectory() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.load_trajectory"]], "load_trajectory_full() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.load_trajectory_full"]], "obj_to_list() (in module double_pendulum.utils.lists)": [[42, "double_pendulum.utils.lists.obj_to_list"]], "plot_figures() (in module double_pendulum.utils.plotting)": [[42, "double_pendulum.utils.plotting.plot_figures"]], "plot_timeseries() (in module double_pendulum.utils.plotting)": [[42, "double_pendulum.utils.plotting.plot_timeseries"]], "poly1() (in module double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.poly1"]], "poly2() (in module double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.poly2"]], "poly3() (in module double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.poly3"]], "remove_namespaces() (in module double_pendulum.utils.urdfs)": [[42, "double_pendulum.utils.urdfs.remove_namespaces"]], "rescale_pars() (double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss method)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss.rescale_pars"]], "rescale_pars() (double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss method)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss.rescale_pars"]], "save_trajectory() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.save_trajectory"]], "scipy_par_optimization() (in module double_pendulum.utils.optimization)": [[42, "double_pendulum.utils.optimization.scipy_par_optimization"]], "solve_least_squares() (in module double_pendulum.utils.optimization)": [[42, "double_pendulum.utils.optimization.solve_least_squares"]], "split_data() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.split_data"]], "start_time() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.start_time"]], "swingup_loss (class in double_pendulum.utils.cmaes_controller_par_optimizer)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss"]], "traj_opt_loss (class in double_pendulum.utils.cmaes_controller_par_optimizer)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss"]], "trajectory_properties() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.trajectory_properties"]], "unscale_pars() (double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss method)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss.unscale_pars"]], "unscale_pars() (double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss method)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss.unscale_pars"]], "wrap_angles() (in module double_pendulum.utils.wrap_angles)": [[42, "double_pendulum.utils.wrap_angles.wrap_angles"]], "wrap_angles_diff() (in module double_pendulum.utils.wrap_angles)": [[42, "double_pendulum.utils.wrap_angles.wrap_angles_diff"]], "wrap_angles_top() (in module double_pendulum.utils.wrap_angles)": [[42, "double_pendulum.utils.wrap_angles.wrap_angles_top"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["control", "control.mpc", "control.mpc.ilqr", "control.policy", "control.policy.dqn", "control.policy.lqr", "control.policy.pfl", "control.policy.sac", "control.trajopt", "control.trajopt.dircol", "control.trajopt.ilqr", "control.trajstab", "control.trajstab.riccati", "control.trajstab.tvlqr", "dynamics", "generated/double_pendulum", "generated/double_pendulum.analysis", "generated/double_pendulum.controller", "generated/double_pendulum.controller.DQN", "generated/double_pendulum.controller.SAC", "generated/double_pendulum.controller.energy", "generated/double_pendulum.controller.friction_compensation", "generated/double_pendulum.controller.gamepad", "generated/double_pendulum.controller.gravity_compensation", "generated/double_pendulum.controller.ilqr", "generated/double_pendulum.controller.inverse_dynamics", "generated/double_pendulum.controller.lqr", "generated/double_pendulum.controller.lqr.roa", "generated/double_pendulum.controller.mcpilco", "generated/double_pendulum.controller.partial_feedback_linearization", "generated/double_pendulum.controller.pid", "generated/double_pendulum.controller.random_exploration", "generated/double_pendulum.controller.trajectory_following", "generated/double_pendulum.controller.tvlqr", "generated/double_pendulum.experiments", "generated/double_pendulum.filter", "generated/double_pendulum.model", "generated/double_pendulum.simulation", "generated/double_pendulum.system_identification", "generated/double_pendulum.trajectory_optimization", "generated/double_pendulum.trajectory_optimization.direct_collocation", "generated/double_pendulum.trajectory_optimization.ilqr", "generated/double_pendulum.utils", "hardware", "hardware.assembly", "hardware.bom", "hardware.electrical", "hardware.experiments", "hardware.motors", "hardware.motors.mjbots", "hardware.motors.tmotors", "hardware.testbench", "index", "installation", "leaderboard", "leaderboard.hardware", "leaderboard.robustness", "leaderboard.robustness.criteria", "leaderboard.simulation", "modules", "software_structure", "software_structure.controller", "software_structure.modelparameters", "software_structure.trajectorydata"], "filenames": ["control.rst", "control.mpc.rst", "control.mpc.ilqr.rst", "control.policy.rst", "control.policy.dqn.rst", "control.policy.lqr.rst", "control.policy.pfl.rst", "control.policy.sac.rst", "control.trajopt.rst", "control.trajopt.dircol.rst", "control.trajopt.ilqr.rst", "control.trajstab.rst", "control.trajstab.riccati.rst", "control.trajstab.tvlqr.rst", "dynamics.rst", "generated/double_pendulum.rst", "generated/double_pendulum.analysis.rst", "generated/double_pendulum.controller.rst", "generated/double_pendulum.controller.DQN.rst", "generated/double_pendulum.controller.SAC.rst", "generated/double_pendulum.controller.energy.rst", "generated/double_pendulum.controller.friction_compensation.rst", "generated/double_pendulum.controller.gamepad.rst", "generated/double_pendulum.controller.gravity_compensation.rst", "generated/double_pendulum.controller.ilqr.rst", "generated/double_pendulum.controller.inverse_dynamics.rst", "generated/double_pendulum.controller.lqr.rst", "generated/double_pendulum.controller.lqr.roa.rst", "generated/double_pendulum.controller.mcpilco.rst", "generated/double_pendulum.controller.partial_feedback_linearization.rst", "generated/double_pendulum.controller.pid.rst", "generated/double_pendulum.controller.random_exploration.rst", "generated/double_pendulum.controller.trajectory_following.rst", "generated/double_pendulum.controller.tvlqr.rst", "generated/double_pendulum.experiments.rst", "generated/double_pendulum.filter.rst", "generated/double_pendulum.model.rst", "generated/double_pendulum.simulation.rst", "generated/double_pendulum.system_identification.rst", "generated/double_pendulum.trajectory_optimization.rst", "generated/double_pendulum.trajectory_optimization.direct_collocation.rst", "generated/double_pendulum.trajectory_optimization.ilqr.rst", "generated/double_pendulum.utils.rst", "hardware.rst", "hardware.assembly.rst", "hardware.bom.rst", "hardware.electrical.rst", "hardware.experiments.rst", "hardware.motors.rst", "hardware.motors.mjbots.rst", "hardware.motors.tmotors.rst", "hardware.testbench.rst", "index.rst", "installation.rst", "leaderboard.rst", "leaderboard.hardware.rst", "leaderboard.robustness.rst", "leaderboard.robustness.criteria.rst", "leaderboard.simulation.rst", "modules.rst", "software_structure.rst", "software_structure.controller.rst", "software_structure.modelparameters.rst", "software_structure.trajectorydata.rst"], "titles": ["Control Methods", "Model Predictive Control (MPC)", "Iterative Linear Quadratic Regulator (iLQR) MPC", "Policy-based Control", "Deep-Q Learning (DQN)", "Linear Quadratic Regulator (LQR)", "Partial Feedback Linearization (PFL)", "Soft Actor Critic (SAC)", "Trajectory Optimization", "Direct Collocation", "Iterative Linear Quadratic Regulator (iLQR)", "Trajectory Stabilization", "Riccati Gains Stabilization", "Time Varying Linear Quadrativ Regulator (TVLQR)", "The Double Pendulum System", "double_pendulum", "double_pendulum.analysis", "double_pendulum.controller", "double_pendulum.controller.DQN", "double_pendulum.controller.SAC", "double_pendulum.controller.energy", "double_pendulum.controller.friction_compensation", "double_pendulum.controller.gamepad", "double_pendulum.controller.gravity_compensation", "double_pendulum.controller.ilqr", "double_pendulum.controller.inverse_dynamics", "double_pendulum.controller.lqr", "double_pendulum.controller.lqr.roa", "double_pendulum.controller.mcpilco", "double_pendulum.controller.partial_feedback_linearization", "double_pendulum.controller.pid", "double_pendulum.controller.random_exploration", "double_pendulum.controller.trajectory_following", "double_pendulum.controller.tvlqr", "double_pendulum.experiments", "double_pendulum.filter", "double_pendulum.model", "double_pendulum.simulation", "double_pendulum.system_identification", "double_pendulum.trajectory_optimization", "double_pendulum.trajectory_optimization.direct_collocation", "double_pendulum.trajectory_optimization.ilqr", "double_pendulum.utils", "Hardware", "Hardware Assembly", "Bill of Materials", "Electrical Setup", "Safety Notes", "Motors", "MJBots", "T-Motor (AK-80-6)", "Testbench Description", "Welcome to Double Pendulum\u2019s documentation!", "Installation", "Leaderboards", "Real System Leaderboard", "Robustness Leaderboard", "Controller Robustness", "Simulation Leaderboard", "<no title>", "Repository Structure", "Controller Class", "Model Parameters", "Trajectory data"], "terms": {"There": [0, 60, 63], "ar": [0, 1, 2, 7, 8, 10, 11, 14, 24, 26, 30, 32, 33, 36, 37, 41, 45, 46, 50, 51, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "mani": [0, 46, 57, 61], "doubl": [0, 4, 5, 6, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 43, 44, 45, 46, 47, 48, 50, 51, 53, 56, 58, 59, 61, 62], "pendulum": [0, 4, 5, 6, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 43, 44, 45, 46, 47, 48, 50, 51, 53, 56, 58, 59, 61, 62], "acrobot": [0, 4, 6, 14, 20, 26, 29, 33, 36, 40, 41, 52, 55, 56, 58], "pendubot": [0, 4, 6, 14, 26, 29, 33, 36, 40, 41, 52, 55, 56, 58], "system": [0, 3, 5, 6, 7, 8, 10, 11, 29, 34, 36, 40, 43, 46, 47, 50, 52, 54, 57], "here": [0, 46, 48, 50, 51, 55, 56, 57, 58], "we": [0, 5, 13, 14, 42, 46, 53, 55, 57], "categoris": 0, "them": [0, 17, 36, 56, 58], "trajectori": [0, 1, 2, 3, 9, 10, 12, 13, 14, 16, 17, 24, 25, 26, 30, 32, 33, 37, 40, 41, 55, 60, 61], "optim": [0, 1, 2, 4, 5, 7, 9, 10, 13, 14, 24, 26, 29, 40, 41, 53, 63], "stabil": [0, 1, 2, 4, 5, 7, 13, 24, 26, 32, 33, 45, 61, 63], "polici": [0, 4, 5, 7, 13, 37], "base": [0, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 50], "model": [0, 2, 12, 14, 15, 20, 21, 23, 24, 25, 26, 29, 33, 41, 51, 52, 56, 57, 58, 60, 63], "predict": [0, 2, 12, 61, 63], "even": [0, 2, 6, 11, 37], "though": 0, "can": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "build": [0, 45, 48, 52, 53], "upon": 0, "each": [0, 1, 7, 10, 17, 37, 42], "other": [0, 7, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 50, 56, 58, 60, 61], "e": [0, 3, 4, 5, 6, 7, 10, 14, 26, 27, 37, 44, 46, 56, 58, 61, 62], "g": [0, 3, 5, 14, 36, 37, 44, 46, 50, 56, 61, 62], "comput": [0, 1, 5, 8, 9, 12, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37, 40, 55, 56, 58, 61, 63], "algorithm": [0, 7, 13, 27, 37, 52], "iter": [0, 1, 4, 8, 24, 26, 41, 63], "linear": [0, 1, 3, 8, 11, 14, 29, 32, 36, 52], "quadrat": [0, 1, 3, 8, 9, 26, 27, 33], "regul": [0, 1, 3, 8, 11, 46], "ilqr": [0, 1, 8, 12, 17, 39, 53, 60], "direct": [0, 5, 8, 40, 44, 50, 51, 52, 63], "colloc": [0, 6, 8, 29, 40, 63], "time": [0, 2, 7, 10, 11, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 50, 57, 61, 62, 63], "vari": [0, 2, 11, 57, 63], "quadrativ": [0, 11], "tvlqr": [0, 11, 17, 26], "riccati": [0, 5, 11], "gain": [0, 6, 11, 20, 23, 25, 29, 30, 32], "lqr": [0, 3, 10, 13, 17, 29, 41, 63], "partial": [0, 3, 5, 29], "feedback": [0, 3, 26, 29, 32], "pfl": [0, 3], "soft": [0, 3], "actor": [0, 3], "critic": [0, 3, 37], "sac": [0, 3, 17], "deep": [0, 3, 7], "q": [0, 3, 5, 6, 7, 10, 14, 16, 26, 33, 36, 38, 40, 46], "learn": [0, 3, 7, 37], "dqn": [0, 3, 17], "mpc": [0, 24], "The": [1, 2, 4, 5, 6, 7, 8, 9, 10, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 44, 45, 46, 48, 50, 51, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "idea": [1, 4], "i": [1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 20, 21, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "solv": [1, 2, 6, 10, 26, 37, 40], "problem": [1, 2, 4, 6, 7, 9, 10, 40], "everi": [1, 2, 10, 37, 50, 61], "timestep": [1, 16, 17, 23, 24, 25, 26, 30, 34, 37, 40, 41], "again": [1, 37], "At": [1, 50], "step": [1, 2, 10, 13, 14, 24, 37, 40, 41, 44, 50, 51, 57], "warm": [1, 2, 24], "start": [1, 2, 10, 17, 24, 34, 37, 41, 44, 50, 56, 58], "solut": [1, 2, 5, 7, 9, 40], "previou": [1, 2], "updat": [1, 7, 34, 37, 54], "first": [1, 2, 17, 36, 37, 44, 50, 51, 55, 62, 63], "command": [1, 37, 50], "from": [1, 4, 5, 6, 7, 9, 11, 14, 16, 17, 24, 25, 26, 33, 34, 35, 36, 37, 40, 44, 45, 46, 47, 48, 50, 52, 55, 56, 57, 58, 61], "execut": [1, 2, 11, 14, 16, 32, 41, 57, 61, 63], "either": [1, 3, 5, 16, 48, 50, 51], "us": [1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 45, 46, 47, 50, 51, 52, 53, 56, 57, 58, 60, 61, 62, 63], "refer": [1, 17, 22, 24, 25, 29, 30, 32, 33, 37, 41, 50, 56, 57, 58, 61, 62], "cost": [1, 5, 8, 10, 16, 24, 26, 33, 40, 41, 46, 52], "refernc": 1, "free": [1, 2, 14, 16, 44, 56, 58], "method": [1, 2, 4, 5, 6, 8, 9, 10, 16, 17, 19, 22, 24, 28, 29, 31, 35, 37, 40, 41, 42, 46, 50, 52, 54, 55, 56, 58, 59, 63], "where": [1, 5, 7, 10, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 45, 46, 56, 58, 61, 62], "full": [1, 2, 14, 37, 46, 48, 62], "onlin": [1, 2, 5, 13, 52, 57], "newcommand": [2, 3, 5, 6, 9, 10, 13, 14, 46], "vect": [2, 3, 5, 6, 9, 10, 13, 14, 46], "1": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 20, 21, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 41, 42, 44, 45, 46, 50, 51, 55, 57, 62], "boldsymbol": [2, 3, 5, 6, 9, 10, 13, 14, 46], "dvect": [2, 3, 5, 6, 9, 10, 13, 14, 46], "dot": [2, 3, 5, 6, 9, 10, 13, 14, 36, 46], "ddvect": [2, 3, 5, 6, 9, 10, 13, 14, 46], "ddot": [2, 3, 5, 6, 9, 10, 13, 14, 36, 46], "mat": [2, 3, 5, 6, 9, 10, 13, 14, 36, 46], "shoot": 2, "ha": [2, 7, 16, 35, 37, 45, 46, 50, 60, 61, 62], "properti": [2, 20, 29, 37, 61], "all": [2, 13, 17, 20, 21, 23, 24, 25, 26, 29, 33, 35, 36, 41, 46, 50, 51, 56, 58, 61, 62, 63], "dure": [2, 7, 11, 12, 16, 37, 45, 46, 50, 53, 56, 57, 61], "process": [2, 7, 37], "physic": [2, 27, 37, 43, 44, 46, 52], "feasibl": [2, 29], "so": [2, 16, 45, 46, 60, 62], "when": [2, 4, 5, 11, 12, 29, 36, 37, 46, 47, 50, 52, 53, 56, 57, 58], "stop": [2, 24, 41, 46, 47, 50], "befor": [2, 17, 35, 37, 50, 61], "converg": [2, 7, 20], "inconsist": 2, "thi": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 17, 19, 20, 24, 26, 28, 30, 31, 32, 33, 35, 36, 37, 40, 41, 42, 43, 46, 50, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63], "advantag": 2, "control": [2, 4, 5, 6, 7, 9, 10, 12, 15, 16, 34, 35, 37, 40, 41, 42, 46, 47, 52, 54, 59, 60, 63], "ansatz": 2, "For": [2, 5, 6, 9, 13, 14, 26, 29, 37, 44, 46, 53, 54, 55, 56, 58, 60, 63], "perform": [2, 8, 14, 37, 41, 50, 55, 56, 57, 58], "input": [2, 6, 7, 9, 10, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 46, 61], "u": [2, 3, 5, 9, 10, 13, 14, 16, 26, 30, 32, 33, 35, 36, 37, 38, 40, 42, 44, 45, 61], "_0": [2, 9, 10], "next": [2, 24, 37, 50], "nomin": [2, 11, 13], "desir": [2, 6, 17, 23, 37, 50, 57, 61], "state": [2, 3, 5, 7, 9, 10, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 57, 61], "x": [2, 3, 5, 6, 7, 9, 10, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 61], "d": [2, 4, 5, 6, 7, 13, 14, 27, 37, 42], "t": [2, 5, 7, 10, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 42, 45, 46, 48, 57, 61], "goal": [2, 9, 14, 16, 17, 20, 24, 26, 27, 29, 30, 33, 37, 41, 42, 61], "kept": [2, 51, 52], "fix": [2, 4, 5, 10, 14, 30, 36, 44, 50, 56, 58], "do": [3, 44, 46, 47, 50, 51, 53, 56, 58, 61], "aim": [3, 50], "follow": [3, 7, 10, 30, 44, 45, 46, 47, 50, 53, 55, 57, 60, 62], "singular": 3, "instead": [3, 6, 9, 34, 46, 50, 57], "thei": [3, 30, 32, 33, 45, 46, 56, 57, 58, 61, 62], "defin": [3, 7, 27, 37, 56, 63], "funtion": 3, "pi": [3, 5, 7, 24, 26, 29, 33, 41], "over": [3, 7, 10, 14, 16, 37, 40, 57], "entir": [3, 10], "space": [3, 4, 7, 10, 37, 63], "return": [3, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 50, 61], "signal": [3, 16, 17, 34, 35, 37, 46, 50], "accord": [3, 27], "analyt": 3, "reason": [3, 37], "about": [3, 37, 51], "": [3, 5, 7, 12, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 50, 61], "energi": [3, 6, 16, 17, 24, 25, 26, 29, 30, 33, 36, 41, 42, 46], "reinforc": [3, 4, 7, 37], "strategi": [4, 7], "particularli": [4, 7], "well": [4, 5, 7, 9, 40, 50, 51, 57, 60], "suit": [4, 7], "scenario": [4, 7], "discret": [4, 9, 10, 14, 16, 26, 36], "action": [4, 7, 18, 37], "howev": [4, 5, 37, 46, 57], "an": [4, 5, 6, 7, 9, 10, 11, 14, 17, 24, 37, 44, 46, 50, 52, 55, 56, 58, 60, 61, 62], "option": [4, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 46, 50, 61], "its": [4, 6, 7, 52], "dimension": 4, "small": [4, 10, 11, 46, 50], "onli": [4, 10, 11, 16, 17, 25, 37, 46, 50, 53, 57, 61, 62], "compos": 4, "one": [4, 14, 16, 17, 37, 44, 46, 50, 52, 55, 57, 61], "dimens": [4, 50], "In": [4, 5, 7, 9, 10, 17, 35, 37, 45, 46, 50, 56, 57, 58, 61, 62], "context": [4, 7, 40], "swing": [4, 6, 7, 44, 47], "up": [4, 6, 7, 11, 16, 51], "task": [4, 7, 37, 55, 56, 58], "actuat": [4, 5, 7, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 46, 52, 61], "adjust": [4, 7], "ani": [4, 7, 46, 50], "valu": [4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 50, 57, 61], "within": [4, 7, 40, 50], "specifi": [4, 5, 7, 36, 37], "torqu": [4, 7, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 47, 50, 57, 61], "limit": [4, 7, 9, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 36, 37, 40, 41, 46, 47], "rang": [4, 7, 16, 46, 47], "addition": [4, 7, 55, 56, 58], "measur": [4, 7, 14, 37, 46, 47, 50, 57, 61], "posit": [4, 5, 7, 14, 16, 20, 23, 24, 25, 29, 30, 34, 36, 37, 40, 41, 44, 50], "veloc": [4, 7, 16, 20, 24, 29, 34, 36, 37, 40, 41, 46, 50, 57], "obtain": [4, 5, 7, 9], "motor": [4, 7, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 43, 44, 45, 46, 47, 51, 52, 57, 61, 62], "also": [4, 6, 7, 10, 14, 37, 40, 44, 46, 56, 57, 58, 60], "repres": [4, 7, 37, 61], "continu": [4, 7, 26, 37, 50], "setup": [4, 7, 43, 45, 48, 51, 52, 53, 55], "make": [4, 7, 14, 36, 37, 44, 46, 47, 50, 53], "suitabl": [4, 7], "implement": [4, 7, 27, 37, 40, 41, 50, 52, 55, 56, 58, 61], "function": [4, 5, 6, 7, 8, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 42, 50, 61, 62, 63], "which": [4, 5, 6, 7, 8, 9, 13, 14, 16, 17, 25, 26, 29, 32, 33, 34, 35, 36, 37, 40, 46, 47, 50, 51, 52, 56, 57, 58, 60, 61, 62], "greedi": 4, "would": [4, 44, 46], "yield": 4, "highest": 4, "possibl": [4, 5, 6, 37, 50, 53], "sum": [4, 11, 16, 17, 26], "discount": 4, "reward": [4, 7, 18, 37], "To": [4, 50, 57, 58, 61], "bellman": [4, 5], "oper": [4, 6, 22, 43, 45, 46, 47, 50, 53, 57], "contract": 4, "map": [4, 7], "mean": [4, 57], "success": [4, 40], "lead": [4, 7, 50], "point": [4, 5, 9, 10, 16, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 36, 37, 40, 41, 42, 50, 53], "theori": [4, 6], "guarante": 4, "cor": 4, "respond": 4, "max": [4, 9, 46, 50, 56, 58], "imum": 4, "v": [4, 5, 7, 46, 50], "mnih": 4, "k": [4, 5, 13, 26, 32, 42], "kavukcuoglu": 4, "silver": 4, "et": [4, 7], "al": [4, 7], "human": [4, 37], "level": 4, "through": [4, 7, 37], "na": 4, "ture": 4, "vol": [4, 5, 6], "518": 4, "7540": 4, "pp": [4, 5, 6, 10, 12], "529": 4, "533": 4, "2015": 4, "establish": [5, 50], "widespread": 5, "act": [5, 7], "A": [5, 12, 13, 17, 26, 35, 36, 37, 42, 46, 50], "b": [5, 13, 26, 35, 36, 42], "object": [5, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 61, 62], "instantan": 5, "j": [5, 7, 36], "r": [5, 7, 9, 10, 12, 13, 16, 26, 33, 40, 46], "symmetr": 5, "definit": 5, "matric": [5, 10, 12, 14, 26, 33, 36, 40], "succeq": 5, "0": [5, 6, 7, 10, 14, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 45, 50, 53, 61, 62], "succ": 5, "allow": [5, 9, 44, 62], "reduc": 5, "hamilton": 5, "jacobi": 5, "hjb": 5, "equat": [5, 6, 16, 26, 36], "whose": [5, 34, 37], "go": [5, 26, 37, 46], "infer": 5, "algebra": 5, "good": [5, 50], "numer": [5, 9], "solver": [5, 60], "exist": [5, 37, 56, 58], "find": [5, 14], "matrix": [5, 14, 16, 26, 32, 33, 36, 37, 40, 46], "order": [5, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 50, 57, 61], "top": [5, 23], "dynam": [5, 9, 10, 11, 12, 13, 14, 17, 25, 26, 36, 37, 40, 50, 52, 59], "have": [5, 36, 37, 46, 47, 50, 53, 56, 57, 58, 61, 62, 63], "linearis": [5, 10, 13], "around": [5, 13], "left": [5, 6, 14, 50], "frac": [5, 46, 50], "f": [5, 10, 14, 36, 44, 46, 55, 56, 58], "right": [5, 6, 14, 37], "_": [5, 7, 9, 10, 14], "express": [5, 10], "rel": [5, 10, 50], "coordin": [5, 10, 14, 36, 37], "tild": [5, 7, 10], "mathcal": 5, "star": 5, "describ": [5, 6, 26, 33, 36, 37, 40, 50, 52, 56, 58], "set": [5, 10, 16, 17, 19, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 33, 34, 36, 37, 41, 51, 61, 62], "initi": [5, 9, 17, 20, 23, 24, 25, 29, 30, 32, 33, 34, 35, 37, 40, 61, 62], "rightarrow": 5, "infti": [5, 7], "often": [5, 37, 53, 57], "estim": [5, 7, 27, 46, 62], "consid": [5, 6, 7, 14], "sublevel": 5, "lyapunov": 5, "serv": [5, 7, 46, 52], "2": [5, 6, 7, 9, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 44, 45, 46, 50, 55, 61, 62], "case": [5, 6, 37, 46, 47, 57], "written": [5, 14, 60], "text": [5, 9, 10, 14, 37], "est": 5, "vert": 5, "leq": [5, 9], "rho": [5, 27], "scalar": [5, 36, 38], "probabilist": 5, "3": [5, 6, 7, 9, 16, 23, 24, 25, 26, 27, 29, 33, 35, 36, 37, 41, 42, 44, 46, 53], "4": [5, 7, 9, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 44, 53, 61], "further": [5, 13, 37, 54], "read": [5, 6, 13, 22, 34, 37, 62], "lectur": [5, 13, 26], "note": [5, 13, 43, 53, 61], "h": [5, 7, 50, 62], "khalil": 5, "nonlinear": [5, 9, 10, 12], "3rd": 5, "ed": 5, "upper": [5, 6, 40], "saddl": 5, "river": 5, "n": [5, 9, 10, 12, 16, 24, 25, 26, 27, 30, 32, 33, 34, 37, 40, 41, 50], "prentic": 5, "hall": 5, "2002": 5, "tedrak": [5, 13], "underactu": [5, 6, 13, 52, 53], "robot": [5, 10, 12, 13, 26, 29, 33, 36, 37, 40, 41, 52], "2022": [5, 13, 26], "url": [5, 6, 7, 9, 10, 13], "http": [5, 6, 7, 9, 10, 13, 20, 26, 27, 29, 41, 50, 52, 53], "mit": [5, 13, 50], "edu": [5, 13, 27], "najafi": 5, "babu\u0161ka": 5, "lope": 5, "fast": 5, "sampl": [5, 40], "domain": 5, "86": 5, "823": 5, "834": 5, "oct": 5, "2016": 5, "link": [5, 6, 10, 14, 16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 44, 46, 51, 52, 54], "springer": 5, "com": [5, 6, 7, 16, 20, 21, 23, 24, 25, 26, 27, 29, 33, 36, 41, 42, 50, 52, 53], "articl": [5, 6, 29], "10": [5, 6, 9, 10, 16, 20, 24, 27, 31, 34, 35, 36, 40, 41, 55], "1007": 5, "s11071": 5, "016": 5, "2926": 5, "7": [5, 6], "p": [5, 7, 27, 46], "parrilo": 5, "structur": [5, 7, 52, 55, 59], "semidefinit": 5, "program": [5, 9, 12, 40], "semialgebra": 5, "ge": 5, "ometri": 5, "robust": [5, 44, 54, 55], "ph": 5, "dissert": 5, "california": 5, "institut": 5, "technologi": 5, "pasadena": 5, "2000": 5, "www": [5, 6, 10, 29, 41, 50], "proquest": 5, "openview": 5, "ff5fe1a4311720ae2dad28ddc1d22cf8": 5, "cbl": 5, "18750": 5, "diss": 5, "y": [5, 7, 37, 42], "pq": 5, "origsit": 5, "gscholar": 5, "parentsessionid": 5, "mjxeze6vrvd": 5, "2besjkr1uey6zldtg74txylcbk173fana": 5, "3d": [5, 45, 51], "classic": [6, 46], "With": [6, 53], "provok": 6, "respons": [6, 7, 35, 57], "both": [6, 7, 17, 45, 46, 50, 61], "joint": [6, 14, 36, 37, 46], "intuit": [6, 27], "manipul": [6, 12, 14], "u_1": [6, 14], "equiv": 6, "begin": [6, 7, 14, 45, 50], "arrai": [6, 14, 16, 17, 18, 26, 27, 33, 35, 36, 37, 40, 41, 42, 61], "cc": [6, 14], "m_": [6, 14], "11": [6, 42], "12": [6, 7, 45, 50], "21": [6, 50], "22": 6, "end": [6, 7, 14, 16, 34, 36, 37, 44, 50, 51, 55, 58], "c": [6, 14, 27, 36, 37, 41, 42, 46, 53, 60], "_1": [6, 10, 14, 36], "_2": [6, 14, 36], "c_": [6, 14], "g_1": 6, "g_2": 6, "f_1": 6, "f_2": 6, "u_2": [6, 14], "unactu": 6, "part": [6, 7, 47], "vector": [6, 14, 32, 36, 40], "acceler": [6, 7, 20, 21, 23, 24, 25, 26, 29, 33, 36, 40, 41, 50], "plug": 6, "lower": [6, 40], "now": [6, 37, 56, 58], "design": [6, 10, 36, 47, 50, 51, 62], "pd": 6, "term": [6, 17, 37], "k_p": 6, "q_2": [6, 14], "k_d": 6, "k_e": [6, 50], "label": [6, 10, 14, 16, 50, 63], "eq": [6, 10, 13, 14], "pfl_acro_col": 6, "configur": [6, 46, 47, 50], "second": [6, 17, 36, 37, 44, 51, 62], "total": [6, 14, 36, 37, 46, 61], "paramet": [6, 7, 9, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 47, 57, 60, 61], "abov": [6, 20, 21, 23, 24, 25, 26, 29, 33, 36, 37, 41, 55, 58], "call": [6, 17, 35, 37, 40, 41, 46, 53, 56, 58, 61, 62], "similarli": 6, "elimin": 6, "than": [6, 16, 44, 46], "non": [6, 10, 29, 52], "done": [6, 37, 40, 50, 53], "same": [6, 45, 50, 60], "wai": [6, 37, 63], "law": 6, "q_1": [6, 14], "_pfl_pendu_col": 6, "m": [6, 14, 17, 20, 21, 23, 24, 25, 26, 27, 29, 33, 36, 37, 41, 46, 50], "w": [6, 9, 50], "spong": [6, 29], "ifac": 6, "proceed": 6, "volum": [6, 27], "27": [6, 46], "14": [6, 36], "833": 6, "838": 6, "sep": 6, "1994": 6, "doi": [6, 9, 10, 20, 40, 41], "1016": 6, "s1474": 6, "6670": 6, "17": 6, "47404": 6, "sciencedirect": [6, 29], "scienc": [6, 29], "pii": [6, 29], "s1474667017474040": [6, 29], "via": [6, 29, 37, 40, 46, 50, 61], "3dihub": [6, 29], "ieee": [6, 12, 29], "magazin": 6, "15": [6, 14, 26, 50, 51], "49": 6, "55": 6, "feb": 6, "1995": 6, "1109": 6, "37": 6, "341864": [6, 29], "ieeexplor": [6, 29], "org": [6, 9, 10, 27, 29, 41], "document": [6, 29, 48, 50, 51, 56, 59], "class": [6, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 60, 62], "mechan": [6, 16, 27, 46, 47, 51, 52], "29": 6, "2828": 6, "2832": 6, "jun": 6, "1996": 6, "58105": 6, "s1474667017581057": [6, 29], "environ": [7, 37, 53], "agent": [7, 37], "infinit": [7, 35], "choos": [7, 50], "real": [7, 11, 14, 17, 35, 37, 47, 52, 54, 57, 62], "prove": 7, "effect": [7, 57], "maxim": 7, "expect": [7, 37], "cumul": 7, "achiev": [7, 16, 37, 57], "select": [7, 14, 50], "current": [7, 22, 37, 40, 46, 47, 50], "observ": [7, 37], "It": [7, 29, 37, 40, 46, 47, 50, 52], "typic": [7, 37, 46], "shallow": 7, "neural": 7, "network": 7, "approxim": [7, 11, 14], "between": [7, 9, 17, 44, 46, 50, 51, 60], "output": [7, 17, 19, 28, 30, 31, 37, 46, 50, 57, 61], "probabl": 7, "distribut": 7, "incorpor": 7, "stochast": 7, "encourag": 7, "explor": [7, 37], "help": [7, 37, 50], "improv": [7, 50], "hand": 7, "evalu": [7, 54], "pair": [7, 50], "certain": [7, 37], "take": [7, 37, 42, 46, 56], "addit": [7, 17, 32, 35, 37, 46, 50, 61], "central": [7, 61], "featur": [7, 46, 50, 54], "entropi": [7, 37], "regular": [7, 13, 24, 41, 50], "train": 7, "trade": 7, "off": [7, 50], "random": [7, 37], "If": [7, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 36, 37, 40, 41, 44, 46, 50, 53, 55, 56, 58, 60, 61], "variabl": [7, 9, 36, 37, 40], "densiti": 7, "displaystyl": 7, "mathop": 7, "mathbb": 7, "sim": 7, "log": [7, 17, 26, 33, 34, 35, 37, 40], "By": [7, 14, 37, 51, 61], "prevent": [7, 44, 46, 50, 51], "prematur": [7, 37], "suboptim": 7, "alpha": [7, 35], "balanc": [7, 55, 56, 58], "import": [7, 46, 50, 56, 57, 58, 61], "exploit": 7, "arg": 7, "max_": 7, "tau": [7, 36, 37, 50, 57], "bigg": 7, "sum_": [7, 10], "gamma": 7, "big": 7, "s_t": 7, "a_t": 7, "s_": [7, 14], "cdot": [7, 46], "mid": 7, "pi_": 7, "theta": 7, "two": [7, 14, 17, 37, 44, 46, 51, 52, 53, 61, 62], "q_": 7, "phi_1": 7, "phi_2": 7, "concurr": 7, "loss": [7, 9], "l": [7, 9, 10, 12], "phi_i": 7, "tempor": 7, "differ": [7, 16, 37, 45, 46, 54, 55, 56, 58, 62], "target": 7, "given": [7, 10, 62], "align": 7, "nonumb": 7, "min": [7, 46], "phi_": 7, "targ": 7, "should": [7, 16, 17, 19, 24, 28, 30, 31, 32, 33, 34, 35, 37, 46, 50, 55, 56, 58, 61, 63], "futur": [7, 62], "while": [7, 9, 47, 56, 57, 62], "word": 7, "emploi": 7, "gradient": 7, "techniqu": 7, "undergo": 7, "subsequ": 7, "adapt": [7, 46], "themselv": 7, "conclus": 7, "combin": [7, 17, 37, 46, 50], "address": 7, "challeng": 7, "pose": 7, "haarnoja": 7, "tuoma": 7, "maximum": [7, 16, 24, 40, 41, 46], "intern": [7, 10, 12, 17, 35, 37, 40, 61], "confer": [7, 10, 12], "machin": 7, "pmlr": 7, "2018": 7, "applic": [7, 12, 46, 50, 56, 58], "arxiv": 7, "preprint": 7, "1812": 7, "05905": 7, "konda": 7, "vijai": 7, "john": 7, "tsitsikli": 7, "advanc": 7, "inform": [7, 26, 37, 43, 51, 53, 54], "1999": 7, "achiam": 7, "spin": 7, "spinningup": 7, "openai": [7, 37], "en": [7, 27, 50], "latest": 7, "html": [7, 27], "respect": [8, 10], "fucntion": 8, "encod": [8, 50, 52], "motion": [8, 36, 37, 46, 47, 54], "suppos": [8, 17, 19, 28, 31, 37, 61], "swingup": [8, 16, 20, 55, 56, 58], "belong": 9, "transform": 9, "mathemat": [9, 11, 14, 40], "transcrib": 9, "knot": [9, 40], "_i": [9, 10, 14], "minim": [9, 37], "decis": 9, "formul": [9, 40], "x_": 9, "init": [9, 17, 23, 24, 26, 33, 35, 41, 61], "obei": 9, "u_": 9, "min_": [9, 10], "ldot": [9, 10, 14], "subject": [9, 10], "hspace": [9, 10], "1cm": [9, 10], "f_": [9, 10], "quad": [9, 14], "foral": 9, "x_0": 9, "x_n": 9, "sequenti": 9, "sqp": 9, "practic": [9, 52], "interpol": [9, 24, 30, 32, 33, 40], "polynomi": [9, 24, 32, 35, 40, 42], "piecewis": 9, "fewer": 9, "still": 9, "consist": [9, 51, 62, 63], "hargrav": 9, "charl": 9, "stephen": 9, "pari": 9, "journal": 9, "guidanc": [9, 46], "1987": 9, "338": 9, "342": 9, "arc": [9, 37], "aiaa": 9, "ab": [9, 20], "2514": 9, "20223": 9, "extens": [10, 13], "henc": [10, 46, 50, 57], "long": 10, "error": [10, 11, 20, 23, 24, 25, 29, 30, 41, 42, 50, 53], "contrast": 10, "deal": 10, "being": [10, 34, 50, 61], "abl": [10, 46, 50, 57, 61], "finit": [10, 26], "horizon": [10, 24, 26, 41], "As": [10, 37, 54], "sequenc": [10, 37], "_n": 10, "ilqr_opt": 10, "beforehand": 10, "_f": 10, "penal": 10, "final": [10, 16, 24, 26, 33, 37, 40, 41], "intermedi": 10, "weiwei": 10, "todorov": 10, "biolog": 10, "movement": [10, 50], "informat": 10, "autom": [10, 12], "222": 10, "229": 10, "2004": 10, "scitepress": [10, 41], "aspx": [10, 41], "5220": [10, 41], "0001143902220229": [10, 41], "transfer": [11, 57], "precomput": 11, "simul": [11, 15, 16, 17, 27, 35, 42, 52, 54, 55, 56, 57, 60, 61], "realiti": [11, 57], "anoth": [11, 13, 46], "need": [11, 16, 17, 37, 44, 46, 50, 53, 56, 58], "alwai": [11, 17, 35, 47, 57, 61], "becaus": [11, 44, 46, 50], "eventu": 11, "deviat": [11, 16, 37], "differenti": [12, 30, 50], "ddp": 12, "alter": [12, 37], "discuss": [12, 52], "kleff": 12, "meduri": 12, "budhiraja": 12, "mansard": 12, "righetti": 12, "high": [12, 46, 50, 52, 57], "frequenc": [12, 35, 40, 46, 50], "2021": 12, "icra": 12, "7330": 12, "7336": 12, "formal": 13, "requir": [13, 46, 50, 52], "ref": 13, "dyn": [13, 14], "result": [13, 16, 36, 37, 40, 46, 52, 57], "page": [14, 27, 43, 50, 52], "give": [14, 34, 43, 46], "overview": 14, "descript": [14, 36, 43, 54, 55, 56, 58], "includ": [14, 37, 46, 51, 53], "8": [14, 34, 45, 53], "name": [14, 16, 55, 56, 58, 60, 62], "mass": [14, 16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 37, 41, 42, 46, 62], "m_1": 14, "m_2": 14, "length": [14, 16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 40, 41, 42, 62], "l_1": 14, "l_2": 14, "center": [14, 20, 21, 23, 24, 25, 26, 29, 33, 36, 37, 41], "r_1": 14, "r_2": 14, "inertia": [14, 16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 42, 50, 62], "i_1": 14, "i_2": 14, "6": [14, 16, 20, 23, 24, 25, 26, 28, 31, 33, 34, 36, 41, 42, 44, 45, 46, 48, 53], "i_r": 14, "gear": [14, 20, 36, 50], "ratio": [14, 20, 36, 50], "g_r": 14, "coulomb": [14, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "friction": [14, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 50, 52, 61, 62], "f1": 14, "f2": 14, "viscou": 14, "b_1": 14, "b_2": 14, "graviti": [14, 16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 61], "gener": [14, 26, 33, 37, 40, 46, 56, 57, 58], "angl": [14, 34, 37], "hang": [14, 46], "contain": [14, 16, 17, 25, 26, 29, 36, 37, 51, 55, 56, 58], "deriv": [14, 23, 25, 36, 50], "appli": [14, 23, 37, 50, 56, 57], "dyn2": 14, "bottom": 14, "half": 14, "known": [14, 37], "entiti": 14, "s_1": 14, "sin": 14, "c_1": 14, "co": 14, "2m_2": 14, "2l_1m_2r_2c_2": 14, "2i_r": 14, "l_1m_2r_2c_2": 14, "g_ri_r": 14, "corioli": [14, 36], "l_": 14, "r_": 14, "s_2": 14, "coriolis_matrix": [14, 36], "gravity_matrix": 14, "sign": 14, "arctan": 14, "100": [14, 24, 33, 41, 42, 50, 56, 58], "friction_matrix": 14, "pendu": 14, "acro": 14, "fulli": [14, 25, 46, 61], "kinet": [14, 36, 46], "e_": [14, 46], "kin": [14, 46], "potenti": [14, 36, 46, 62], "pot": 14, "natur": 14, "provid": [14, 17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 36, 37, 41, 46, 51, 52], "easili": 14, "independ": [14, 57], "identifi": [14, 62], "parmat": 14, "excit": 14, "hardwar": [14, 34, 45, 51, 52, 53, 54, 55, 57, 59, 61, 62], "data": [14, 16, 26, 33, 34, 37, 40, 42, 50, 55, 56, 57, 58, 60], "tupl": 14, "form": [14, 16, 24, 27, 41, 50], "record": [14, 37, 50, 55], "best": [14, 52], "fact": 14, "least": [14, 57], "squar": 14, "analysi": 15, "experi": [15, 16, 17, 35, 46, 47, 52, 55, 57, 61], "filter": [15, 17, 37, 46, 57], "system_identif": 15, "trajectory_optim": 15, "util": [15, 34, 63], "x0": [16, 17, 27, 35, 36, 37, 40, 42], "dt": [16, 19, 23, 24, 25, 26, 27, 30, 34, 35, 36, 37, 41, 42], "t_final": [16, 27, 34, 42], "epsilon": 16, "check_only_final_st": 16, "fals": [16, 17, 18, 28, 29, 32, 34, 37, 38, 42], "goal_check_method": 16, "goal_check_method_height": 16, "9": [16, 20, 21, 23, 24, 25, 26, 29, 33, 34, 36, 41], "integr": [16, 23, 24, 25, 26, 27, 30, 37, 41, 42], "runge_kutta": [16, 24, 27, 37, 41], "compute_model_robust": 16, "true": [16, 19, 24, 27, 30, 31, 37, 38, 42], "compute_noise_robust": 16, "compute_unoise_robust": 16, "compute_uresponsiveness_robust": 16, "compute_delay_robust": 16, "compute_perturbation_robust": 16, "mpar_var": 16, "ir": [16, 36, 50, 62], "m1r1": 16, "i1": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "b1": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "cf1": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "m2r2": 16, "m2": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "i2": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "b2": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "cf2": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "modelpar_var_list": 16, "repetit": [16, 42], "meas_noise_mod": 16, "vel": [16, 37, 50], "meas_noise_sigma_list": 16, "5": [16, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 33, 35, 36, 37, 42, 44, 45, 50, 62], "u_noise_sigma_list": 16, "u_respons": [16, 37], "delay_mod": [16, 37], "delai": [16, 37, 56, 57], "01": [16, 23, 24, 25, 26, 27, 30, 34, 35, 37, 41], "02": [16, 37], "05": [16, 27, 37], "perturbation_repetit": 16, "50": 16, "perturbations_per_joint": 16, "perturbation_min_t_dist": 16, "perturbation_sigma_minmax": 16, "perturbation_amp_minmax": 16, "check_delay_robust": 16, "posvel": [16, 37], "check_goal_success": 16, "x_traj": [16, 26], "check_meas_noise_robust": 16, "check_modelpar_robust": 16, "var_list": 16, "check_perturbation_robust": 16, "20": [16, 37, 45], "n_pert_per_joint": 16, "min_t_dist": [16, 37], "sigma_minmax": [16, 37], "amplitude_min_max": [16, 37], "check_unoise_robust": 16, "check_uresponsiveness_robust": 16, "compute_cost": 16, "u_traj": [16, 26], "mode": [16, 37, 50], "compute_ref_cost": 16, "compute_success_measur": 16, "save": [16, 17, 18, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 41, 55, 56, 58, 61, 63], "save_dir": [16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 40, 42, 61], "set_cost_par": 16, "qf": [16, 26, 33], "set_init_traj": 16, "trajectory_csv": 16, "set_model_paramet": [16, 24, 41], "608": [16, 24, 36, 41], "63": [16, 24, 36, 41], "275": [16, 24, 36, 41], "166": [16, 24, 41], "damp": [16, 17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 42, 62], "081": [16, 24, 41], "cfric": [16, 36], "093": [16, 24, 36, 41], "186": [16, 24, 41], "81": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "05472": [16, 24, 41], "02522": [16, 24, 41], "motor_inertia": [16, 20, 36], "torque_limit": [16, 20, 21, 22, 23, 24, 25, 26, 29, 30, 32, 33, 36, 37, 40, 41, 42], "model_par": [16, 20, 21, 23, 24, 25, 26, 29, 33, 36, 40, 41, 42], "none": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 41, 42, 61], "simulate_and_get_cost": 16, "plot_benchmark_result": 16, "results_dir": 16, "filenam": 16, "pkl": 16, "costlim": 16, "1000000": [16, 50], "show": [16, 27, 38, 42, 45, 46, 50], "file_format": 16, "pdf": 16, "scale": [16, 19, 37, 42, 57], "plot_model_robustness_multi": 16, "get_delay_scor": 16, "res_dict": 16, "get_measurement_noise_scor": 16, "get_model_scor": 16, "get_perturbation_scor": 16, "get_scor": 16, "get_unoise_scor": 16, "get_uresponsiveness_scor": 16, "get_energi": 16, "get": [16, 17, 24, 25, 30, 32, 33, 35, 36, 37, 40, 42, 46, 47, 53, 61], "like": [16, 17, 36, 37, 46, 61], "shape": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 44, 45, 61], "unit": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 50, 61, 62], "rad": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 50, 61], "angle1": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "angle2": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "velocity1": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "velocity2": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "u1": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "u2": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 61], "nm": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 50, 61], "float": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 61], "get_integrated_torqu": 16, "get_max_tau": 16, "get_swingup_tim": 16, "ep": [16, 27], "has_to_stai": 16, "mpar": 16, "height": 16, "data_dict": [16, 34], "list": [16, 17, 18, 24, 26, 29, 34, 36, 37, 40, 41, 52, 55, 56, 58, 61], "len": 16, "threshold": 16, "successful": 16, "default": [16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 40, 41, 61], "1e": [16, 24, 41, 42], "bool": [16, 17, 18, 24, 29, 30, 32, 37], "whether": [16, 17, 24, 29, 30, 32, 37], "stai": [16, 47, 63], "upright": 16, "until": [16, 50], "get_tau_smooth": 16, "standard": [16, 37, 60], "chang": [16, 17, 19, 28, 31, 36, 37, 46, 50, 57, 61, 62], "smooth": 16, "std": 16, "get_torque_cost": 16, "run": [16, 37, 46, 50, 55, 56, 58], "normal": [16, 46], "numpi": [16, 36, 37, 42], "weight": [16, 24, 40, 41, 44, 45, 50, 51], "2x2": 16, "get_velocity_cost": 16, "leaderboard_scor": 16, "data_path": 16, "save_to": [16, 27, 38, 42, 55], "integ_tau": 16, "max_tau": 16, "swingup_tim": 16, "tau_cost": 16, "tau_smooth": 16, "velocity_cost": 16, "1000": [16, 24, 27, 34, 37, 41, 50], "link_bas": 16, "score_vers": 16, "v1": [16, 37], "score": [16, 55, 56, 58], "data_dictionari": 16, "load": [16, 18, 24, 36, 46, 63], "compar": [16, 54, 55, 56, 58], "dict": [16, 18, 36, 37], "path": [16, 17, 18, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 40, 46, 55, 61], "controller1_nam": 16, "csv_path": [16, 24, 25, 30, 32, 33, 42, 56, 58], "data_path1": 16, "usernam": [16, 55, 56, 58], "username1": 16, "controller2_nam": 16, "data_path2": 16, "username2": 16, "string": [16, 17, 20, 21, 22, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 61], "csv": [16, 24, 25, 30, 32, 33, 34, 41, 55, 56, 58, 63], "file": [16, 24, 25, 26, 30, 32, 33, 34, 36, 40, 41, 50, 51, 55, 56, 58, 60, 62, 63], "dictionari": [16, 36, 37, 56, 58], "criteria": [16, 56], "weight1": 16, "weight2": 16, "weight3": 16, "weight4": 16, "weight5": 16, "weight6": 16, "weight7": 16, "constant": [16, 50, 57], "norm1": 16, "norm2": 16, "norm3": 16, "norm4": 16, "norm5": 16, "norm6": 16, "norm7": 16, "after": [16, 37, 50, 61, 63], "divid": 16, "norm": 16, "simulait": 16, "host": 16, "Not": [16, 37, 57, 63], "local": [16, 53, 55, 56, 58], "calcul": [16, 27, 36, 37, 40, 41, 46, 55, 56, 58], "someth": [16, 60], "els": 16, "v2": 16, "get_par_list": 16, "min_rel": 16, "max_rel": 16, "friction_compens": 17, "gamepad": 17, "gravity_compens": 17, "inverse_dynam": [17, 36], "mcpilco": 17, "partial_feedback_linear": 17, "pid": [17, 23, 25, 50], "random_explor": 17, "trajectory_follow": 17, "abstractcontrol": [17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 61], "abc": [17, 35], "abstract": [17, 35, 61], "inherit": [17, 35, 61], "get_control_output": [17, 61], "loop": [17, 34, 35, 47, 50, 61], "doe": [17, 25, 26, 36, 37, 44, 50, 56, 58], "get_control_output_": [17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 61], "compens": [17, 21, 23], "activ": [17, 29, 50, 52, 61], "array_lik": [17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 61], "dtype": [17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 41, 61], "overwritten": [17, 19, 28, 31, 35, 61], "actual": [17, 19, 28, 31, 35, 36, 37, 50, 61], "api": [17, 19, 28, 31, 37, 61], "unus": [17, 19, 28, 31, 61], "get_forecast": [17, 24, 61], "forecast": [17, 24, 61], "plan": [17, 24, 61], "placehold": 17, "get_friction_torqu": 17, "numpy_arrai": [17, 24, 25, 26, 30, 32, 33, 35, 37, 40, 41], "get_gravity_torqu": 17, "get_init_trajectori": [17, 24, 25, 30, 32, 33, 61], "specif": [17, 35, 36, 37, 46, 61, 62], "init_": [17, 20, 23, 24, 25, 26, 29, 30, 33, 35, 61], "reset": [17, 37, 61], "reset_": [17, 61], "insid": [17, 50, 61], "directori": [17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 40, 51, 60, 61], "save_": [17, 20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 35, 61], "set_filt": 17, "set_friction_compens": [17, 61], "coulomb_fr": [17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 42], "coeffici": [17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "kg": [17, 20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 45, 50], "set_goal": [17, 20, 23, 24, 26, 29, 30, 33, 41, 61], "set_gravity_compens": [17, 61], "plant": [17, 26, 37, 40, 60, 61], "symbolicdoublependulum": [17, 26, 36, 37], "doublependulumpl": [17, 26, 36, 37], "kinemat": [17, 26, 36, 37], "set_paramet": [17, 20, 23, 24, 25, 26, 30, 41, 61], "set_start": [17, 24, 41], "combinedcontrol": 17, "controller1": 17, "controller2": 17, "condition1": 17, "condition2": 17, "compute_both": 17, "verbos": [17, 29], "switch": [17, 29, 45, 46], "condit": [17, 20, 37, 57], "must": [17, 50], "functin": 17, "flag": [17, 37], "Will": [17, 37], "check": [17, 20, 54, 56, 58], "potetntiolli": 17, "controller1_par": 17, "controller2_par": 17, "parametr": 17, "pars": [17, 40, 61, 62], "simultaneouscontrol": 17, "forecast_con": 17, "multipl": [17, 50], "add": [17, 18, 37, 40, 46, 56, 58], "containint": 17, "int": [17, 18, 20, 24, 30, 32, 33, 34, 36, 37, 40, 41], "integ": [17, 37, 62], "indic": [17, 27, 37, 50, 62], "self": [17, 61], "fc_ind": 17, "intit": 17, "controller_par": 17, "replaybuff": 18, "max_siz": 18, "batch_siz": 18, "state_shap": 18, "state_dtyp": 18, "type": [18, 22, 34, 37, 40, 45, 50, 63], "clip": 18, "ndarrai": [18, 37], "next_stat": 18, "absorb": [18, 46, 50], "static": 18, "create_batch": 18, "str": [18, 37], "get_sample_index": 18, "kei": [18, 36, 37, 62], "prngkeyarrai": 18, "maxval": 18, "sample_random_batch": 18, "sample_kei": 18, "load_pickled_data": 18, "device_put": 18, "save_pickled_data": 18, "saccontrol": 19, "model_path": 19, "dynamics_func": [19, 37], "energycontrol": 20, "gear_ratio": [20, 36], "inf": [20, 22, 29, 36], "paper": [20, 29, 40, 41], "onlinelibrari": 20, "wilei": 20, "1002": 20, "rnc": 20, "1184": 20, "m1": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "l1": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "l2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "r1": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "r2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41, 62], "downward": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "s\u00b2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "m\u00b2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "entri": [20, 21, 23, 24, 25, 26, 29, 33, 36, 37, 41], "l\u00b2": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "ir1": [20, 36], "ir2": [20, 36], "np": [20, 22, 24, 26, 29, 33, 36, 37, 41], "tl1": [20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 36, 41, 62], "tl2": [20, 21, 23, 24, 25, 26, 29, 30, 32, 33, 34, 36, 41, 62], "model_paramet": [20, 21, 23, 24, 25, 26, 29, 33, 40, 41, 62], "overwrit": [20, 21, 23, 24, 25, 26, 29, 33, 36, 41], "check_paramet": 20, "fulfil": 20, "present": [20, 52, 57], "kp": [20, 23, 25, 30, 50], "kd": [20, 23, 25, 30, 50], "kv": 20, "kd_func": 20, "q2": [20, 36], "a1": 20, "a2": 20, "a3": 20, "er": 20, "frictioncompensationcontrol": 21, "gamepad_nam": 22, "logitech": 22, "rumblepad": 22, "usb": [22, 45, 46, 50], "support": [22, 37, 40], "gamepadcontrol": 22, "pidgravitycompensationcontrol": 23, "gravit": 23, "forc": [23, 46, 47], "ki": [23, 25, 30], "proport": [23, 25, 50], "gravitycompensationcontrol": 23, "ilqrmpccppcontrol": 24, "python": [24, 41, 53, 55, 56, 58, 60], "bind": [24, 41, 53, 60], "cpp": [24, 53], "630": [24, 36, 41], "compute_init_traj": 24, "005": [24, 29, 36, 41], "max_it": [24, 41], "regu_init": [24, 41], "max_regu": [24, 41], "10000": [24, 41, 42], "min_regu": [24, 41], "break_cost_redu": [24, 41], "06": [24, 41], "scu": [24, 41], "scp": [24, 41], "scv": [24, 41], "scen": [24, 41], "fcp": [24, 41], "fcv": [24, 41], "fcen": [24, 41], "number": [24, 30, 32, 33, 37, 40, 41, 42, 50, 62], "per": [24, 41], "minimum": [24, 40, 41], "reduct": [24, 41], "stage": [24, 41], "determin": [24, 27, 37, 41, 57], "euler": [24, 37, 41], "rung": [24, 37, 41], "kutta": [24, 37, 41], "load_init_traj": 24, "num_break": [24, 30, 32, 33, 42], "40": [24, 30, 32, 33, 42, 46], "poly_degre": [24, 42], "store": [24, 26, 30, 32, 33, 34, 36, 37, 40, 46, 50, 55, 61, 62, 63], "standarf": [24, 30, 32, 33], "format": [24, 30, 32, 33, 60, 62, 63], "repo": [24, 30, 32, 33], "break": [24, 30, 32, 33, 42, 46], "degre": [24, 36, 50], "set_cost_paramet": [24, 26, 29, 33, 41], "set_cost_parameters_": [24, 26, 29, 41], "par": [24, 26, 27, 29, 38, 41, 42], "scu1": [24, 41], "scp1": [24, 41], "scp2": [24, 41], "scv1": [24, 41], "scv2": [24, 41], "fcp1": [24, 41], "fcp2": [24, 41], "fcv1": [24, 41], "fcv2": [24, 41], "set_final_cost_paramet": 24, "141592653589793": [24, 26, 29, 33], "trajectory_stabil": 24, "shift": 24, "freeli": 24, "ilqrmpc_swingup_loss": 24, "bound": [24, 27, 37, 38, 40, 41, 42], "loss_weight": [24, 41, 42], "rescale_par": [24, 27, 38, 41, 42], "unscale_par": [24, 27, 38, 41, 42], "computedtorquecontrol": 25, "invers": [25, 36, 46], "obj": [25, 42], "inversedynamicscontrol": 25, "roa": 26, "dlqr": 26, "iterative_riccati": 26, "ricatti": 26, "intend": 26, "more": [26, 27, 45, 46, 53, 60, 61, 62], "see": [26, 37, 54, 55, 56, 58, 60], "exampl": [26, 37, 50, 55], "github": [26, 52, 53, 55, 56, 58], "16": 26, "745": 26, "notebook": 26, "tree": [26, 42], "main": [26, 46, 50, 56, 58, 60], "207": 26, "lagrang": 26, "multipli": [26, 36], "constraint": [26, 40], "dx": 26, "lqrcontrol": 26, "unstabl": 26, "fixpoint": 26, "set_cost_matric": 26, "directli": [26, 37, 62], "p1p1_cost": 26, "p2p2_cost": 26, "v1v1_cost": 26, "v2v2_cost": 26, "p1p2_cost": 26, "v1v2_cost": 26, "p1v1_cost": 26, "p1v2_cost": 26, "p2v1_cost": 26, "p2v2_cost": 26, "u1u1_cost": 26, "u2u2_cost": 26, "u1u2_cost": 26, "p1p1": 26, "p1p2": 26, "p1v1": 26, "p1v2": 26, "p2p2": 26, "p2v1": 26, "p2v2": 26, "v1v1": 26, "v1v2": 26, "v2v2": 26, "u1u1": 26, "u1u2": 26, "u2u2": 26, "diagon": 26, "failure_valu": 26, "nan": 26, "cost_to_go_cut": 26, "exce": 26, "retur": 26, "lqrcontroller_nonsymbol": 26, "version": [26, 37, 46, 53], "symbol": [26, 36], "thu": 26, "compat": [26, 61], "cma": 26, "urdf_path": [26, 33, 40], "drake": [26, 33, 40], "urdf": [26, 33, 40, 52], "necessari": [26, 33, 37, 40, 46, 61], "temporari": [26, 33, 40], "lqr_check_ctg": 27, "tf": [27, 37], "sim_callback": 27, "callback": 27, "pass": [27, 37, 57, 61], "probabilit": 27, "lqr_check_ctg_verif": 27, "dpar": 27, "cpar": 27, "grid": 27, "idx1": 27, "idx2": 27, "lqr_check_epsilon": 27, "14159265": 27, "eps_p": 27, "eps_v": 27, "lqr_check_epsilon_verif": 27, "directspher": 27, "r_i": 27, "r_o": 27, "krauth": 27, "werner": 27, "statist": 27, "oxford": 27, "master": 27, "seri": [27, 46, 50], "13": 27, "univers": [27, 50], "press": [27, 50], "2006": 27, "42": 27, "getellipseparamsfromquad": 27, "s0idx": 27, "s1idx": 27, "ellips": 27, "plane": [27, 44, 47], "match": 27, "funnel": 27, "plot": [27, 37, 50, 55, 61], "getellipsepatch": 27, "x1": [27, 36], "just": 27, "patch": [27, 37], "involv": 27, "centerpoint": 27, "rhohist": 27, "plotellips": 27, "quadform": 27, "helper": [27, 40], "tmx": 27, "samplefromellipsoid": 27, "rinner": 27, "router": 27, "volellipsoid": 27, "hyperellipsoid": 27, "hyperllipsoid": 27, "math": 27, "stackexchang": 27, "question": 27, "332391": 27, "332434": 27, "textbook": 27, "gatech": 27, "ila": 27, "ball": 27, "wikipedia": 27, "wiki": 27, "volume_of_an_n": 27, "check_x0": 27, "compute_roa_prob": 27, "n_iter": 27, "n_check_sim": 27, "xbar_max": 27, "roa_prob_loss": 27, "controller_muli_out_sum_of_gaussians_with_angles_numpi": 28, "ctrl_rate": [28, 31], "u_max": [28, 31], "num_dof": [28, 31], "controlled_dof": [28, 31], "wait_step": [28, 31], "get_np_polici": 28, "ret_dict": 28, "controller_multi_policy_sum_of_gaussians_with_angles_numpi": 28, "parameters_list": 28, "active_pos_list": 28, "active_vel_list": 28, "controller_sum_of_gaussians_with_angles_numpi": 28, "energyshapingpflandlqrcontrol": 29, "nergi": 29, "print": [29, 45, 50, 51], "kpo": 29, "kvel": 29, "ken": 29, "energyshapingpflcontrol": 29, "symbolicpflcontrol": 29, "symbolicpflandlqrcontrol": 29, "pfl_method": 29, "noncolloc": 29, "energysat": 29, "q1sat": 29, "q1": [29, 36], "pointpidcontrol": 30, "trajpidcontrol": 30, "use_feed_forward_torqu": 30, "prefer": [30, 32, 33, 45], "feed": [30, 50], "forward": [30, 36, 50], "controller_random_explor": 31, "filt_freq": 31, "seed": [31, 37], "type_random": 31, "wgn": 31, "random_par": 31, "expl_tim": 31, "system_freq": 31, "500": 31, "plot_profil": 31, "init_profil": 31, "feedforwardcontrol": 32, "feedforward": 32, "trajectorycontrol": 32, "kk_stabil": 32, "trajectoryinterpcontrol": 32, "tvlqrcontrol": 33, "diag": 33, "ey": [33, 37], "zero": [33, 34, 37, 50], "rad2rev": 34, "angle_in_radian": 34, "convert": [34, 36, 46], "radian": [34, 50], "revolut": [34, 50], "rev2rad": 34, "angle_in_revolut": 34, "rev": 34, "save_data": 34, "date": 34, "shoulder_meas_po": [34, 42], "shoulder_meas_vel": [34, 42], "shoulder_meas_tau": [34, 38, 42], "elbow_meas_po": [34, 42], "elbow_meas_vel": [34, 42], "elbow_meas_tau": [34, 38, 42], "meas_tim": [34, 42], "deprec": [34, 37], "One": [34, 46], "save_trajectori": [34, 42, 63], "setzeroposit": 34, "initpo": 34, "initvel": 34, "inittau": 34, "tmotor": [34, 50], "motor_driv": 34, "canmotorlib": 34, "canmotorcontrol": [34, 50], "sensor": 34, "run_experi": 34, "can_port": 34, "can0": [34, 50], "motor_id": [34, 50], "motor_typ": 34, "ak80_6_v1p1": 34, "tau_limit": [34, 40], "record_video": 34, "durat": 34, "port": [34, 50], "id": [34, 50, 62], "motor_send_n_command": 34, "numtim": 34, "motor_send_n_commands2": 34, "motor_speed_test": 34, "motor_speed_test2": 34, "profil": [34, 50], "meas_dt": 34, "valid": 34, "avg": 34, "numstep": 34, "videowriterwidget": 34, "video_file_nam": 34, "src": [34, 53, 60], "save_fram": 34, "show_fram": 34, "start_record": 34, "abstractfilt": 35, "get_filtered_st": 35, "get_filtered_state_": 35, "butterworth_filt": 35, "cutoff": 35, "002": 35, "filt_velocity_cut": 35, "creat": [35, 40, 60], "nyquist": 35, "200": 35, "hz": 35, "enumer": 35, "denomin": 35, "impuls": 35, "iir": 35, "identity_filt": 35, "kalman_filt": 35, "process_nois": 35, "measurement_nois": 35, "001": 35, "covariance_matrix": 35, "lowpass_filt": 35, "runningmean_filt": 35, "window": [35, 40, 46, 50], "iden": 35, "unscentedkalman_filt": 35, "fx": [35, 36], "yb_friction_matrix": 36, "dq_vec": 36, "contribut": [36, 60], "dq1": 36, "dq2": 36, "415": 36, "0475": 36, "0798": 36, "dof": 36, "filepath": [36, 37], "model_design": 36, "model_id": [36, 62], "freedom": 36, "sens": 36, "yaml": 36, "togeth": 36, "hd": 36, "get_dict": 36, "load_dict": 36, "mpar_dict": 36, "look": 36, "gr": [36, 62], "load_model": 36, "load_yaml": 36, "file_path": 36, "save_dict": 36, "save_path": 36, "set_cfric": 36, "setter": 36, "set_com": 36, "set_damp": 36, "set_dof": 36, "set_gear_ratio": 36, "set_grav": 36, "set_inertia": 36, "set_length": 36, "set_mass": 36, "set_motor_inertia": 36, "set_torque_limit": 36, "coulomb_vector": 36, "forward_dynam": 36, "acc1": [36, 63], "acc2": [36, 63], "forward_kinemat": 36, "po": [36, 50], "origin": [36, 42, 57], "y1": 36, "x2": 36, "y2": 36, "cartesian": 36, "get_alin": 36, "xd": 36, "ax": 36, "bu": [36, 46, 51], "get_blin": 36, "get_cx": 36, "cx": 36, "del": 36, "x_i": 36, "get_fx": 36, "get_gx": 36, "gx": 36, "get_minvx": 36, "minvx": 36, "minv": 36, "get_mx": 36, "mx": 36, "gravity_vector": 36, "kinetic_energi": 36, "linear_matric": 36, "u0": 36, "mass_matrix": 36, "potential_energi": 36, "rh": 36, "integrand": 36, "vel1": [36, 63], "vel2": [36, 63], "total_energi": 36, "ir_sym": 36, "angular_momentum_bas": 36, "angular": [36, 46], "momentum": 36, "angular_momentum_ddot_bas": 36, "s\u00b3": 36, "angular_momentum_dot_bas": 36, "center_of_mass": 36, "whole": 36, "com_dot": 36, "equation_of_mot": 36, "2nd": 36, "eom": [36, 37], "1st": [36, 40], "sympi": 36, "qd": [36, 40], "qdd": [36, 40, 52, 57], "g_sym": 36, "gr_sym": 36, "acc": [36, 38, 42], "lambdify_matric": 36, "lambdifi": 36, "linear_matrices_discret": 36, "n_actuat": 36, "n_link": 36, "q01": 36, "hat": 36, "q02": 36, "q0d1": 36, "q0d2": 36, "qd1": 36, "qd2": 36, "qdd1": 36, "qdd2": 36, "replace_paramet": 36, "replac": 36, "shall": 36, "symbolic_coriolis_matrix": 36, "symbolic_coulomb_vector": 36, "symbolic_gravity_vector": 36, "symbolic_kinetic_energi": 36, "symbolic_linear_matric": 36, "symbolic_mass_matrix": 36, "symbolic_potential_energi": 36, "symbolic_total_energi": 36, "u01": 36, "u02": 36, "diff_to_matrix": 36, "diff": 36, "sub_symbol": 36, "new_symbol": 36, "substitut": 36, "new": [36, 37, 50, 54], "vector_mult": 36, "vec1": 36, "vec2": 36, "product": 36, "customenv": 37, "reward_func": 37, "terminated_func": 37, "reset_func": 37, "obs_spac": 37, "box": [37, 50], "float32": 37, "act_spac": 37, "max_episode_step": 37, "env": 37, "action_spac": 37, "acttyp": 37, "observation_spac": 37, "obstyp": 37, "render": 37, "frame": 37, "render_mod": 37, "metadata": 37, "most": [37, 62], "gymnasium": 37, "automat": 37, "wrapper": 37, "collect": 37, "__init__": [37, 61], "initialis": 37, "convent": [37, 62], "displai": [37, 50, 56, 58], "termin": [37, 50], "usual": [37, 42, 50], "consumpt": 37, "occur": 37, "doesn": [37, 46], "rgb_arrai": 37, "singl": [37, 46], "rgb": 37, "pixel": 37, "imag": 37, "ansi": 37, "stringio": 37, "style": 37, "represent": 37, "newlin": 37, "escap": 37, "color": [37, 50], "rgb_array_list": 37, "ansi_list": 37, "except": [37, 50], "rendercollect": 37, "pop": 37, "sure": [37, 44, 46, 47, 50], "your": [37, 46, 50, 54], "25": 37, "wa": [37, 50, 53], "longer": [37, 44, 55], "accept": [37, 46], "rather": 37, "cartpol": 37, "info": 37, "some": [37, 46, 62], "ensur": [37, 46, 61], "generalis": 37, "otherwis": 37, "alreadi": [37, 56, 58], "rng": 37, "therefor": [37, 46, 50], "never": [37, 46, 57], "custom": 37, "line": [37, 50, 55, 58, 63], "super": [37, 61], "correctli": [37, 53], "v0": 37, "return_info": 37, "remov": 37, "prng": 37, "np_random": 37, "attribut": 37, "np_random_se": 37, "chosen": 37, "sourc": [37, 46, 52], "timestamp": 37, "dev": [37, 53], "urandom": 37, "you": [37, 46, 47, 50, 53, 55, 56, 58, 60, 61], "want": [37, 42, 46, 53, 55, 56, 58, 60, 61], "been": [37, 45, 57, 62], "pleas": [37, 55, 56, 58, 60], "paradigm": 37, "how": [37, 43, 46, 50, 54, 57], "depend": [37, 46, 50, 53, 56, 57, 61], "element": 37, "analog": 37, "auxiliari": 37, "complement": 37, "episod": 37, "reach": 37, "truncat": 37, "26": 37, "favor": 37, "clearer": 37, "user": [37, 50], "had": 37, "bootstrap": 37, "due": [37, 50, 52, 57], "pole": [37, 50], "supportsfloat": 37, "under": [37, 46, 50, 56, 57, 58], "mdp": 37, "neg": [37, 50], "move": [37, 47], "lava": 37, "sutton": 37, "barto": 37, "gridworld": 37, "outsid": [37, 44], "scope": 37, "satisfi": 37, "timelimit": 37, "could": [37, 50], "out": 37, "diagnost": 37, "debug": 37, "might": 37, "instanc": [37, 56, 58], "metric": 37, "hidden": 37, "individu": [37, 55], "produc": 37, "gym": 37, "v26": 37, "distinguish": 37, "favour": 37, "boolean": 37, "undefin": 37, "mai": [37, 46, 53, 56, 57, 61, 62], "emit": 37, "mayb": [37, 61], "underli": 37, "successfulli": 37, "exceed": 37, "enter": [37, 50], "invalid": 37, "double_pendulum_dynamics_func": 37, "state_represent": 37, "max_veloc": 37, "normalize_st": 37, "rescal": [37, 38], "unscale_act": 37, "unscale_st": 37, "get_gaussian_perturbation_arrai": 37, "tmax": 37, "mu": [37, 50], "sigma": 37, "amplitud": 37, "get_random_gauss_perturbation_arrai": 37, "n_per_joint": 37, "plot_perturbation_arrai": 37, "perturbation_arrai": 37, "anim": [37, 40, 61], "matplotlib": 37, "funcanim": 37, "controller_step": 37, "motir": 37, "euler_integr": 37, "get_control_u": 37, "get_measur": 37, "x_mea": [37, 42], "set_measurement_paramet": 37, "get_real_applied_u": 37, "u_out": 37, "relat": [37, 51], "last": [37, 57], "u_last": 37, "set_motor_paramet": 37, "get_stat": 37, "get_trajectory_data": 37, "rocrd": 37, "record_data": 37, "argument": 37, "nois": [37, 56, 57], "reset_data_record": 37, "runge_integr": 37, "set_disturb": 37, "disturb": 37, "hit": 37, "happen": 37, "yet": 37, "pertub": 37, "meas_noise_sigma": 37, "measuremt": 37, "gaussian": 37, "what": [37, 53], "u_noise_sigma": 37, "resons": 37, "set_process_nois": 37, "process_noise_sigma": 37, "correspond": [37, 50, 63], "set_stat": 37, "t0": 37, "period": [37, 54], "simulate_and_anim": 37, "plot_inittraj": 37, "plot_forecast": 37, "plot_trail": 37, "phase_plot": 37, "save_video": 37, "video_nam": 37, "pendulum_swingup": 37, "mp4": 37, "anim_dt": 37, "plot_horizontal_lin": 37, "horizontal_line_height": 37, "2d": 37, "serial": [37, 50], "chain": [37, 50], "forcast": 37, "trail": 37, "video": [37, 55], "get_arrow": 37, "radiu": 37, "centx": 37, "centi": 37, "angle_": 37, "theta2_": 37, "color_": 37, "black": 37, "circular": 37, "arrow": 37, "coordint": 37, "orient": 37, "extend": [37, 44, 51], "regularpolygon": 37, "head": 37, "set_arrow_properti": 37, "made": [37, 45, 46], "errfunc": 38, "phi": 38, "errfunc_nl": 38, "dyn_fun": 38, "plot_torqu": 38, "shoulder_fit_tau": 38, "elbow_fit_tau": 38, "direct_colloc": 39, "scene_graph": 40, "x_trajectori": 40, "browser": 40, "pydrak": 40, "multibodi": 40, "multibodypl": 40, "geometri": 40, "scenegraph": 40, "scene": 40, "graph": 40, "piecewisepolynomial_": 40, "construct_trajectori": 40, "dircol": 40, "construct": [40, 43], "directcolloc": 40, "jerk": 40, "create_plant_from_urdf": 40, "froma": 40, "extract_data_from_polynomi": 40, "extract": 40, "polnomi": 40, "dircol_calcul": 40, "animate_trajectori": 40, "found": [40, 50, 54, 55, 56, 58], "meshcat": 40, "viewer": 40, "compute_trajectori": [40, 41], "initial_st": 40, "final_st": 40, "theta_limit": 40, "speed_limit": 40, "time_pen": 40, "init_traj_time_interv": 40, "minimum_timestep": 40, "maximum_timestep": 40, "interv": 40, "size": [40, 46], "rais": 40, "assertionerror": 40, "optmiz": 40, "get_trajectori": 40, "freq": 40, "urdfpath": 40, "robottyp": 40, "modelpar": 40, "savedir": 40, "nx": 40, "nu": 40, "avoid": 40, "better": [40, 54], "resampl": 40, "collocationconstraint": 40, "var": 40, "computetrajectori": 40, "scipi": 40, "cubichermitesplin": 40, "hold": 40, "float64": 40, "equationofmot": 40, "xdot": 40, "interpolationconstraint": 40, "mathematicalprogram": 40, "wh": 40, "h_min": 40, "h_max": 40, "xf": 40, "x_initi": 40, "u_initi": 40, "h_initi": 40, "snopt": 40, "matthew": 40, "kelli": 40, "2017": 40, "1137": 40, "16m1062569": 40, "_type_": 40, "factor": [40, 46, 57], "guess": 40, "ilqr_calcul": 41, "save_trajectory_csv": 41, "place": [41, 46], "folder": [41, 55, 60], "script": [41, 50, 55, 56, 58], "ilqr_trajopt_loss": 41, "goal_weight": 41, "swingup_loss": 42, "goal_accuraci": 42, "traj_opt_loss": 42, "traj_opt": 42, "concatenate_trajectori": 42, "with_tau": 42, "load_kk_valu": 42, "load_trajectori": [42, 63], "load_trajectory_ful": [42, 63], "x_filt": 42, "x_de": 42, "u_con": 42, "u_fric": 42, "u_mea": 42, "u_d": 42, "trajectory_properti": 42, "obj_to_list": 42, "cma_optim": 42, "loss_func": 42, "init_par": 42, "outcma": 42, "sigma0": 42, "popsize_factor": 42, "maxfev": 42, "tolfun": 42, "tolx": 42, "tolstagn": 42, "num_proc": 42, "scipy_par_optim": 42, "nelder": 42, "mead": 42, "solve_least_squar": 42, "xb0": 42, "fitpiecewisepolynomi": 42, "data_x": 42, "data_i": 42, "fit": 42, "cubic": 42, "segment": 42, "section": [42, 43], "create_section_poli": 42, "split": 42, "setion": 42, "determin_poli": 42, "end_tim": 42, "get_valu": 42, "split_data": 42, "start_tim": 42, "interpolatematrix": 42, "interpolatevector": 42, "resampletrajectori": 42, "poly1": 42, "poly2": 42, "poly3": 42, "plot_figur": 42, "index": [42, 52], "shoulder_tau_control": 42, "elbow_tau_control": 42, "shoulder_filtered_vel": 42, "elbow_filtered_vel": 42, "shoulder_des_tim": 42, "shoulder_des_po": 42, "shoulder_des_vel": 42, "shoulder_des_tau": 42, "elbow_des_tim": 42, "elbow_des_po": 42, "elbow_des_vel": 42, "elbow_des_tau": 42, "shoulder_fric_tau": 42, "elbow_fric_tau": 42, "plot_timeseri": 42, "plot_po": 42, "plot_vel": 42, "plot_acc": 42, "plot_tau": 42, "plot_energi": 42, "pos_x_lin": 42, "pos_y_lin": 42, "vel_x_lin": 42, "vel_y_lin": 42, "acc_x_lin": 42, "acc_y_lin": 42, "tau_x_lin": 42, "tau_y_lin": 42, "energy_x_lin": 42, "energy_y_lin": 42, "t_de": 42, "u_friccomp": 42, "acc_d": 42, "generate_urdf": 42, "urdf_in": 42, "urdf_out": 42, "054": 42, "025": 42, "remove_namespac": 42, "wrap_angles_diff": 42, "wrap_angles_top": 42, "instruct": [43, 51, 54], "testbench": [43, 46, 48], "bill": [43, 51, 52], "materi": [43, 51, 52, 62], "assembli": [43, 45, 51], "electr": [43, 50, 51], "safeti": [43, 46], "assembl": [44, 45], "mount": [44, 45, 46, 51], "horizont": 44, "surfac": 44, "tabl": [44, 56, 58], "suffic": 44, "screw": [44, 45], "clamp": 44, "attach": [44, 50], "shaft": [44, 50, 51], "fixat": [44, 45], "sinc": [44, 51], "offer": [44, 50, 52, 55], "hollow": [44, 51], "cabl": [44, 45, 46, 50, 51], "power": [44, 45, 46, 47, 50], "come": [44, 46], "front": [44, 62], "opposit": [44, 51], "aluminium": 44, "piec": 44, "windup": [44, 51], "width": 44, "inward": 44, "face": 44, "figur": [44, 50, 60], "collid": 44, "compon": [45, 52, 60, 61], "quantiti": 45, "ak80": [45, 46, 50], "fold": [45, 51], "aluminum": [45, 51], "sheet": [45, 50], "metal": 45, "cm": 45, "30": 45, "airex": [45, 51], "carbon": [45, 51], "lath": 45, "pom": 45, "suppli": [45, 46, 47, 50], "capacitor": [45, 46], "emerg": [45, 46, 47], "interfac": [45, 46, 60], "m10x45": 45, "hexagon": 45, "nut": 45, "m10": 45, "m5x40": 45, "m4x20": 45, "m3x20": 45, "m3x6": 45, "past": 45, "pvc": [45, 51], "rigid": [45, 51], "foam": [45, 51], "later": [45, 63], "fiber": [45, 51], "stabl": [45, 46], "less": 45, "vibrat": 45, "warranti": 46, "reproduct": 46, "our": 46, "own": [46, 54], "risk": 46, "diagram": [46, 50, 51], "below": [46, 50, 60, 61], "pc": [46, 50, 56], "connect": [46, 61], "board": [46, 50, 51], "cubemars_ak_v1": 46, "commun": [46, 57, 60], "1mbit": 46, "sec": 46, "protocol": [46, 50], "furthermor": 46, "pci": 46, "card": 46, "devic": [46, 50], "modul": [46, 50, 52, 60], "pcan": 46, "peak": [46, 50], "former": 46, "uart": 46, "connector": [46, 50], "work": [46, 47, 50, 53], "latter": [46, 61], "linux": [46, 50], "calibr": [46, 50], "voltag": [46, 50], "24": [46, 50], "consum": 46, "deliv": 46, "test": [46, 51, 52, 53, 57], "ea": 46, "9032": 46, "elektro": 46, "automatik": 46, "protect": 46, "wouldn": 46, "batteri": 46, "pack": 46, "simpli": 46, "recharg": 46, "10x": 46, "7v": 46, "400": 46, "cell": 46, "capac": 46, "parallel": 46, "button": [46, 50], "disconnect": 46, "keep": [46, 55, 58], "fig": [46, 50], "400f": 46, "revers": 46, "speed": [46, 47, 50, 56], "low": [46, 50, 51, 52, 57], "electro": 46, "magnet": 46, "decreas": [46, 50], "flow": 46, "recycl": 46, "back": [46, 50], "caus": 46, "spike": 46, "enough": 46, "capacit": 46, "suffici": 46, "larg": [46, 57], "desgin": 46, "curcuit": 46, "benefici": 46, "bulk": 46, "disadvantag": 46, "increas": 46, "were": 46, "perfect": [46, 57], "dc": 46, "especi": [46, 50], "polar": 46, "diod": 46, "cannot": 46, "sink": 46, "amount": [46, 57], "v_": 46, "nom": 46, "simpl": [46, 56, 58], "across": 46, "accordingli": 46, "nevertheless": 46, "tune": [46, 57], "tricki": 46, "extern": 46, "brake": 46, "short": [46, 55, 56, 58], "parasit": 46, "induct": [46, 50], "rate": [46, 50, 54], "larger": 46, "higher": 46, "quickli": 46, "rippl": 46, "too": 46, "apllic": 46, "introduc": 46, "burn": 46, "safti": 46, "margin": 46, "wherea": 46, "buffer": 46, "charg": 46, "don": 46, "bui": 46, "huge": 46, "expens": 46, "resistor": [46, 50], "cheaper": 46, "purchas": 46, "topic": 46, "drawback": 46, "heat": 46, "frequent": [46, 62], "regener": 46, "resist": [46, 50], "shunt": 46, "polulu": 46, "dissip": 46, "much": 46, "care": [47, 50], "mind": 47, "brushless": 47, "veri": [47, 50, 51, 54], "tremend": 47, "awai": 47, "recommend": [47, 53, 55], "cage": 47, "surround": 47, "loos": 47, "fly": 47, "access": [47, 61], "Be": 47, "extra": 47, "pure": [47, 50], "mjbot": [48, 53], "usag": [48, 50], "ak": 48, "80": 48, "ad": [48, 56, 58, 61], "soon": 48, "driver": 50, "manual": 50, "quasi": [50, 52], "drive": [50, 51, 52], "equip": 50, "absolut": 50, "bit": 50, "rotari": 50, "basic": 50, "mini": 50, "cheetah": 50, "ben": 50, "katz": 50, "transmiss": 50, "485": 50, "98": 50, "mm": [50, 51], "38": 50, "365": 50, "rpm": 50, "backlash": 50, "accuraci": 50, "k_m": 50, "2206": 50, "sqrt": 50, "009524": 50, "k_t": 50, "091": 50, "092": 50, "184": 50, "emf": 50, "k_v": 50, "251": 50, "2400": 50, "nabla": 50, "phase": 50, "170": 50, "pm5": 50, "omega": 50, "57": 50, "pm10": 50, "rotor": 50, "000060719": 50, "download": 50, "cp210x": 50, "silab": 50, "isn": 50, "properli": 50, "sparkfun": 50, "instal": [50, 52, 59], "ch340": 50, "ch": 50, "341ser": 50, "ex": 50, "webpag": 50, "notic": 50, "uninstal": 50, "ch341": 50, "menu": 50, "old": 50, "softwar": [50, 52, 59], "websit": 50, "youtub": 50, "watch": 50, "hbqqcgebaf8": 50, "skyentif": 50, "hzy9vzgpzka": 50, "special": 50, "cubemar": 50, "modular": 50, "shown": 50, "micro": 50, "5pin": 50, "goe": 50, "24v": 50, "12a": 50, "cut": [50, 51], "complet": [50, 51], "serial_ch340": 50, "wch": 50, "cp": 50, "along": [50, 51], "appropri": 50, "baud": 50, "921600": 50, "115200": 50, "bd": 50, "remain": 50, "issu": 50, "side": 50, "gui": 50, "correct": [50, 62], "motorselectent": 50, "slow": 50, "commonli": [50, 57], "tick": 50, "m_mode": 50, "red": 50, "green": 50, "push": 50, "send": 50, "onc": 50, "reliabl": 50, "sever": 50, "exit": 50, "restart": 50, "exact": 50, "danger": 50, "deactiv": 50, "messag": 50, "procedur": 50, "uvlo": 50, "vm": 50, "lockout": 50, "otw": 50, "thermal": 50, "warn": 50, "shutdown": 50, "interpret": 50, "drv8353m": 50, "three": [50, 54], "smart": 50, "gate": 50, "texa": 50, "instrument": 50, "datasheet": 50, "proper": 50, "ground": 50, "ideal": 50, "isol": 50, "qualiti": [50, 57], "common": 50, "share": 50, "great": 50, "daisi": 50, "pin": 50, "120": 50, "These": [50, 63], "reflect": 50, "cpu": 50, "transceiv": 50, "xcvr": 50, "ac": 50, "ip": 50, "mbaud": 50, "sudo": [50, 53], "bitrat": 50, "bring": 50, "altern": 50, "shell": 50, "setup_caninterfac": 50, "sh": 50, "job": 50, "purpos": [50, 52], "cutecom": 50, "receiv": 50, "can_socket": 50, "socket_timeout": 50, "avail": 50, "enable_motor": 50, "disable_motor": 50, "set_zero_posit": 50, "send_deg_command": 50, "position_in_degre": 50, "velocity_in_degre": 50, "tau_ff": 50, "send_rad_command": 50, "position_in_radian": 50, "velocity_in_radian": 50, "si": 50, "block": 50, "close": 50, "bee": 50, "seen": 50, "flexibl": 50, "those": [50, 62], "pde": 50, "pvel": 50, "tff": 50, "let": 50, "built": [51, 52], "pednulum": 51, "bench": 51, "cad": [51, 52], "wire": 51, "cover": [51, 60], "shoulder": [51, 52], "bracket": 51, "light": 51, "laser": 51, "thick": 51, "sandwich": 51, "plate": 51, "lamin": 51, "arm": 51, "effector": [51, 55, 58], "elbow": [51, 52], "hous": 51, "project": 52, "open": 52, "kit": 52, "strongli": 52, "platform": 52, "transpar": 52, "passiv": 52, "offlin": 52, "studi": [52, 57], "dual": 52, "repositori": [52, 53, 54, 56, 58, 59, 62], "Of": 52, "bom": 52, "etc": 52, "dfki": [52, 53, 55], "ric": [52, 53], "lab": [52, 53], "double_pendulum": [52, 53, 61, 63], "leaderboard": [52, 59], "search": 52, "code": [53, 60], "mostli": 53, "moment": [53, 62], "moteu": 53, "packag": 53, "comment": 53, "py": [53, 55, 56, 58], "virtual": 53, "neccessari": 53, "ubuntu20": 53, "apt": 53, "libyaml": 53, "libeigen3": 53, "libpython3": 53, "libx11": 53, "libsm6": 53, "libxt6": 53, "libglib2": 53, "python3": 53, "sphinx": 53, "numpydoc": 53, "rtd": 53, "theme": 53, "ubuntu22": 53, "clone": 53, "git": 53, "cd": 53, "bullet": 53, "recompil": 53, "appear": [53, 56, 58], "pip": 53, "eigen": 53, "librari": [53, 60, 61, 62, 63], "header": [53, 63], "wget": 53, "o": 53, "zip": 53, "gitlab": 53, "libeigen": 53, "archiv": 53, "unzip": 53, "mv": 53, "usr": 53, "visit": 53, "wildli": 54, "interest": 54, "understand": 54, "behavior": [54, 57], "offici": [54, 56, 58], "threshhold": [55, 58], "real_hardwar": 55, "create_leaderboard": [55, 56, 58], "dir": 55, "controller_1": 55, "experiment01": 55, "timeseri": 55, "png": 55, "experiment02": 55, "experiment10": 55, "txt": 55, "short_descript": [55, 56, 58], "readm": [55, 56, 58], "md": [55, 56, 58], "gif": 55, "controller_2": 55, "creator": 55, "sentenc": 55, "remot": 55, "contact": 55, "shivesh": 55, "kumar": 55, "de": [55, 57], "felix": 55, "wieb": 55, "shubham": 55, "vya": 55, "detail": [55, 60], "schedul": 55, "submit": 55, "perturb": 56, "con_": [56, 58], "sim_paramet": [56, 58], "benchmark": 56, "con_controllernam": [56, 58], "controllernam": [56, 58], "yout": [56, 58], "leaderboard_config": [56, 58], "sim_swingup": [56, 58], "simple_nam": [56, 58], "charact": [56, 58], "readme_path": [56, 58], "comma": [56, 58, 63], "separ": [56, 58, 63], "particip": [56, 58], "pull": [56, 58], "request": [56, 57, 58], "markdown": [56, 58], "feel": [56, 58], "instanti": [56, 58], "benchmark_control": 56, "relev": [56, 58], "1h": 56, "6h": 56, "influenc": 57, "capabl": 57, "fail": 57, "phenomenon": 57, "gap": 57, "conduct": 57, "quantifi": 57, "inaccuraci": 57, "identif": 57, "perfectli": 57, "accur": 57, "ass": 57, "noisi": 57, "handl": 57, "without": [57, 61], "exactli": 57, "sometim": 57, "react": 57, "immedi": 57, "overshoot": 57, "undershoot": 57, "tau_": 57, "k_": 57, "resp": 57, "neq": 57, "reaction": 57, "sim_control": 58, "calculate_leaderboard_scor": 58, "welcom": 60, "besid": 60, "ecosystem": 60, "organ": 60, "interplai": 60, "visual": 60, "explain": 60, "abstract_control": 61, "sent": 61, "precis": [61, 62], "underscor": 61, "retrac": 61, "initiali": 61, "ba": 61, "funciton": 61, "set_filter_arg": 61, "incom": 61, "turn": 61, "u_hist": 61, "friciton": 61, "u_fric_hist": 61, "u_grav_hist": 61, "histori": 61, "x_hist": 61, "xfilt_hist": 61, "templat": 61, "strictli": 61, "controllertempl": 61, "def": 61, "yml": 62, "conveni": 62, "write": 62, "design_a": 62, "design_b": 62, "design_c": 62, "design_hd": 62, "design_": 62, "capit": 62, "letter": 62, "minor": 62, "hypothet": 62, "realiz": 62, "model_1": 62, "model_2": 62, "model_3": 62, "model_": 62, "folow": 62, "simplifi": 62, "zhe": 63, "reserv": 63, "column": 63, "pos1": 63, "pos2": 63, "pos_meas1": 63, "pos_meas2": 63, "vel_meas1": 63, "vel_meas2": 63, "pos_filt1": 63, "pos_filt2": 63, "vel_filt1": 63, "vel_filt2": 63, "pos_des1": 63, "pos_des2": 63, "vel_des1": 63, "vel_des2": 63, "tau_con1": 63, "tau_con2": 63, "tau_fric1": 63, "tau_fric2": 63, "tau_meas1": 63, "tau_meas2": 63, "tau_des1": 63, "tau_des2": 63, "k11": 63, "k12": 63, "k13": 63, "k14": 63, "k21": 63, "k22": 63, "k23": 63, "k24": 63, "k1": 63, "k2": 63, "easiest": 63, "csv_trajectori": 63, "panda": 63, "miss": 63, "skip": 63}, "objects": {"": [[15, 0, 0, "-", "double_pendulum"]], "double_pendulum": [[16, 0, 0, "-", "analysis"], [17, 0, 0, "-", "controller"], [34, 0, 0, "-", "experiments"], [35, 0, 0, "-", "filter"], [36, 0, 0, "-", "model"], [37, 0, 0, "-", "simulation"], [38, 0, 0, "-", "system_identification"], [39, 0, 0, "-", "trajectory_optimization"], [42, 0, 0, "-", "utils"]], "double_pendulum.analysis": [[16, 0, 0, "-", "benchmark"], [16, 0, 0, "-", "benchmark_plot"], [16, 0, 0, "-", "benchmark_scores"], [16, 0, 0, "-", "leaderboard"], [16, 0, 0, "-", "utils"]], "double_pendulum.analysis.benchmark": [[16, 1, 1, "", "benchmarker"]], "double_pendulum.analysis.benchmark.benchmarker": [[16, 2, 1, "", "benchmark"], [16, 2, 1, "", "check_delay_robustness"], [16, 2, 1, "", "check_goal_success"], [16, 2, 1, "", "check_meas_noise_robustness"], [16, 2, 1, "", "check_modelpar_robustness"], [16, 2, 1, "", "check_perturbation_robustness"], [16, 2, 1, "", "check_unoise_robustness"], [16, 2, 1, "", "check_uresponsiveness_robustness"], [16, 2, 1, "", "compute_cost"], [16, 2, 1, "", "compute_ref_cost"], [16, 2, 1, "", "compute_success_measure"], [16, 2, 1, "", "save"], [16, 2, 1, "", "set_cost_par"], [16, 2, 1, "", "set_init_traj"], [16, 2, 1, "", "set_model_parameter"], [16, 2, 1, "", "simulate_and_get_cost"]], "double_pendulum.analysis.benchmark_plot": [[16, 3, 1, "", "plot_benchmark_results"], [16, 3, 1, "", "plot_model_robustness_multi"]], "double_pendulum.analysis.benchmark_scores": [[16, 3, 1, "", "get_delay_score"], [16, 3, 1, "", "get_measurement_noise_score"], [16, 3, 1, "", "get_model_score"], [16, 3, 1, "", "get_perturbation_score"], [16, 3, 1, "", "get_scores"], [16, 3, 1, "", "get_unoise_score"], [16, 3, 1, "", "get_uresponsiveness_score"]], "double_pendulum.analysis.leaderboard": [[16, 3, 1, "", "get_energy"], [16, 3, 1, "", "get_integrated_torque"], [16, 3, 1, "", "get_max_tau"], [16, 3, 1, "", "get_swingup_time"], [16, 3, 1, "", "get_tau_smoothness"], [16, 3, 1, "", "get_torque_cost"], [16, 3, 1, "", "get_velocity_cost"], [16, 3, 1, "", "leaderboard_scores"]], "double_pendulum.analysis.utils": [[16, 3, 1, "", "get_par_list"]], "double_pendulum.controller": [[18, 0, 0, "-", "DQN"], [19, 0, 0, "-", "SAC"], [17, 0, 0, "-", "abstract_controller"], [17, 0, 0, "-", "combined_controller"], [20, 0, 0, "-", "energy"], [21, 0, 0, "-", "friction_compensation"], [22, 0, 0, "-", "gamepad"], [23, 0, 0, "-", "gravity_compensation"], [24, 0, 0, "-", "ilqr"], [25, 0, 0, "-", "inverse_dynamics"], [26, 0, 0, "-", "lqr"], [28, 0, 0, "-", "mcpilco"], [29, 0, 0, "-", "partial_feedback_linearization"], [30, 0, 0, "-", "pid"], [31, 0, 0, "-", "random_exploration"], [32, 0, 0, "-", "trajectory_following"], [33, 0, 0, "-", "tvlqr"]], "double_pendulum.controller.DQN": [[18, 0, 0, "-", "replay_buffer"], [18, 0, 0, "-", "utils"]], "double_pendulum.controller.DQN.replay_buffer": [[18, 1, 1, "", "ReplayBuffer"]], "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer": [[18, 2, 1, "", "add"], [18, 2, 1, "", "create_batch"], [18, 2, 1, "", "get_sample_indexes"], [18, 2, 1, "", "load"], [18, 2, 1, "", "sample_random_batch"], [18, 2, 1, "", "save"]], "double_pendulum.controller.DQN.utils": [[18, 3, 1, "", "load_pickled_data"], [18, 3, 1, "", "save_pickled_data"]], "double_pendulum.controller.SAC": [[19, 0, 0, "-", "SAC_controller"]], "double_pendulum.controller.SAC.SAC_controller": [[19, 1, 1, "", "SACController"]], "double_pendulum.controller.SAC.SAC_controller.SACController": [[19, 2, 1, "", "get_control_output_"]], "double_pendulum.controller.abstract_controller": [[17, 1, 1, "", "AbstractController"]], "double_pendulum.controller.abstract_controller.AbstractController": [[17, 2, 1, "", "get_control_output"], [17, 2, 1, "", "get_control_output_"], [17, 2, 1, "", "get_forecast"], [17, 2, 1, "", "get_friction_torque"], [17, 2, 1, "", "get_gravity_torque"], [17, 2, 1, "", "get_init_trajectory"], [17, 2, 1, "", "init"], [17, 2, 1, "", "init_"], [17, 2, 1, "", "reset"], [17, 2, 1, "", "reset_"], [17, 2, 1, "", "save"], [17, 2, 1, "", "save_"], [17, 2, 1, "", "set_filter"], [17, 2, 1, "", "set_friction_compensation"], [17, 2, 1, "", "set_goal"], [17, 2, 1, "", "set_gravity_compensation"], [17, 2, 1, "", "set_parameters"], [17, 2, 1, "", "set_start"]], "double_pendulum.controller.combined_controller": [[17, 1, 1, "", "CombinedController"], [17, 1, 1, "", "SimultaneousControllers"]], "double_pendulum.controller.combined_controller.CombinedController": [[17, 2, 1, "", "get_control_output_"], [17, 2, 1, "", "get_forecast"], [17, 2, 1, "", "get_init_trajectory"], [17, 2, 1, "", "init_"], [17, 2, 1, "", "reset_"], [17, 2, 1, "", "save_"], [17, 2, 1, "", "set_goal"], [17, 2, 1, "", "set_parameters"], [17, 2, 1, "", "set_start"]], "double_pendulum.controller.combined_controller.SimultaneousControllers": [[17, 2, 1, "", "get_control_output_"], [17, 2, 1, "", "get_forecast"], [17, 2, 1, "", "get_init_trajectory"], [17, 2, 1, "", "init_"], [17, 2, 1, "", "set_goal"], [17, 2, 1, "", "set_parameters"], [17, 2, 1, "", "set_start"]], "double_pendulum.controller.energy": [[20, 0, 0, "-", "energy_Xin"]], "double_pendulum.controller.energy.energy_Xin": [[20, 1, 1, "", "EnergyController"], [20, 3, 1, "", "kd_func"]], "double_pendulum.controller.energy.energy_Xin.EnergyController": [[20, 2, 1, "", "check_parameters"], [20, 2, 1, "", "get_control_output_"], [20, 2, 1, "", "init_"], [20, 2, 1, "", "save_"], [20, 2, 1, "", "set_goal"], [20, 2, 1, "", "set_parameters"]], "double_pendulum.controller.friction_compensation": [[21, 0, 0, "-", "friction_compensation_controller"]], "double_pendulum.controller.friction_compensation.friction_compensation_controller": [[21, 1, 1, "", "FrictionCompensationController"]], "double_pendulum.controller.friction_compensation.friction_compensation_controller.FrictionCompensationController": [[21, 2, 1, "", "get_control_output_"], [21, 2, 1, "", "save_"]], "double_pendulum.controller.gamepad": [[22, 0, 0, "-", "gamepad"], [22, 0, 0, "-", "gamepad_controller"]], "double_pendulum.controller.gamepad.gamepad": [[22, 1, 1, "", "GamePad"]], "double_pendulum.controller.gamepad.gamepad.GamePad": [[22, 2, 1, "", "read"]], "double_pendulum.controller.gamepad.gamepad_controller": [[22, 1, 1, "", "GamepadController"]], "double_pendulum.controller.gamepad.gamepad_controller.GamepadController": [[22, 2, 1, "", "get_control_output_"]], "double_pendulum.controller.gravity_compensation": [[23, 0, 0, "-", "PID_gravity_compensation_controller"], [23, 0, 0, "-", "gravity_compensation_controller"]], "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller": [[23, 1, 1, "", "PIDGravityCompensationController"]], "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController": [[23, 2, 1, "", "get_control_output_"], [23, 2, 1, "", "init_"], [23, 2, 1, "", "save_"], [23, 2, 1, "", "set_goal"], [23, 2, 1, "", "set_parameters"]], "double_pendulum.controller.gravity_compensation.gravity_compensation_controller": [[23, 1, 1, "", "GravityCompensationController"]], "double_pendulum.controller.gravity_compensation.gravity_compensation_controller.GravityCompensationController": [[23, 2, 1, "", "get_control_output_"], [23, 2, 1, "", "save_"]], "double_pendulum.controller.ilqr": [[24, 0, 0, "-", "ilqr_mpc_cpp"], [24, 0, 0, "-", "paropt"]], "double_pendulum.controller.ilqr.ilqr_mpc_cpp": [[24, 1, 1, "", "ILQRMPCCPPController"]], "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController": [[24, 2, 1, "", "compute_init_traj"], [24, 2, 1, "", "get_control_output_"], [24, 2, 1, "", "get_forecast"], [24, 2, 1, "", "get_init_trajectory"], [24, 2, 1, "", "init_"], [24, 2, 1, "", "load_init_traj"], [24, 2, 1, "", "save_"], [24, 2, 1, "", "set_cost_parameters"], [24, 2, 1, "", "set_cost_parameters_"], [24, 2, 1, "", "set_final_cost_parameters"], [24, 2, 1, "", "set_goal"], [24, 2, 1, "", "set_parameters"], [24, 2, 1, "", "set_start"]], "double_pendulum.controller.ilqr.paropt": [[24, 1, 1, "", "ilqrmpc_swingup_loss"]], "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss": [[24, 2, 1, "", "init"], [24, 2, 1, "", "rescale_pars"], [24, 2, 1, "", "set_model_parameters"], [24, 2, 1, "", "set_parameters"], [24, 2, 1, "", "unscale_pars"]], "double_pendulum.controller.inverse_dynamics": [[25, 0, 0, "-", "computed_torque_controller"], [25, 0, 0, "-", "inverse_dynamics_ff_controller"]], "double_pendulum.controller.inverse_dynamics.computed_torque_controller": [[25, 1, 1, "", "ComputedTorqueController"]], "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController": [[25, 2, 1, "", "get_control_output_"], [25, 2, 1, "", "get_init_trajectory"], [25, 2, 1, "", "init_"], [25, 2, 1, "", "save_"], [25, 2, 1, "", "set_parameters"]], "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller": [[25, 1, 1, "", "InverseDynamicsController"]], "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController": [[25, 2, 1, "", "get_control_output_"], [25, 2, 1, "", "get_init_trajectory"], [25, 2, 1, "", "init_"], [25, 2, 1, "", "save_"]], "double_pendulum.controller.lqr": [[26, 0, 0, "-", "lqr"], [26, 0, 0, "-", "lqr_controller"], [26, 0, 0, "-", "lqr_controller_drake"], [27, 0, 0, "-", "roa"]], "double_pendulum.controller.lqr.lqr": [[26, 3, 1, "", "dlqr"], [26, 3, 1, "", "iterative_riccati"], [26, 3, 1, "", "lqr"]], "double_pendulum.controller.lqr.lqr_controller": [[26, 1, 1, "", "LQRController"], [26, 1, 1, "", "LQRController_nonsymbolic"]], "double_pendulum.controller.lqr.lqr_controller.LQRController": [[26, 2, 1, "", "get_control_output_"], [26, 2, 1, "", "init_"], [26, 2, 1, "", "save_"], [26, 2, 1, "", "set_cost_matrices"], [26, 2, 1, "", "set_cost_parameters"], [26, 2, 1, "", "set_cost_parameters_"], [26, 2, 1, "", "set_goal"], [26, 2, 1, "", "set_parameters"]], "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic": [[26, 2, 1, "", "get_control_output_"], [26, 2, 1, "", "init_"], [26, 2, 1, "", "save_"], [26, 2, 1, "", "set_cost_matrices"], [26, 2, 1, "", "set_cost_parameters"], [26, 2, 1, "", "set_cost_parameters_"], [26, 2, 1, "", "set_goal"], [26, 2, 1, "", "set_parameters"]], "double_pendulum.controller.lqr.lqr_controller_drake": [[26, 1, 1, "", "LQRController"]], "double_pendulum.controller.lqr.lqr_controller_drake.LQRController": [[26, 2, 1, "", "get_control_output_"], [26, 2, 1, "", "init_"], [26, 2, 1, "", "save_"], [26, 2, 1, "", "set_cost_matrices"], [26, 2, 1, "", "set_cost_parameters"], [26, 2, 1, "", "set_cost_parameters_"], [26, 2, 1, "", "set_goal"]], "double_pendulum.controller.lqr.roa": [[27, 0, 0, "-", "check"], [27, 0, 0, "-", "ellipsoid"], [27, 0, 0, "-", "prob_roa"]], "double_pendulum.controller.lqr.roa.check": [[27, 1, 1, "", "lqr_check_ctg"], [27, 3, 1, "", "lqr_check_ctg_verification"], [27, 1, 1, "", "lqr_check_epsilon"], [27, 3, 1, "", "lqr_check_epsilon_verification"]], "double_pendulum.controller.lqr.roa.check.lqr_check_ctg": [[27, 2, 1, "", "sim_callback"]], "double_pendulum.controller.lqr.roa.check.lqr_check_epsilon": [[27, 2, 1, "", "sim_callback"]], "double_pendulum.controller.lqr.roa.ellipsoid": [[27, 3, 1, "", "directSphere"], [27, 3, 1, "", "getEllipseParamsFromQuad"], [27, 3, 1, "", "getEllipsePatch"], [27, 3, 1, "", "getEllipsePatches"], [27, 3, 1, "", "plotEllipse"], [27, 3, 1, "", "quadForm"], [27, 3, 1, "", "sampleFromEllipsoid"], [27, 3, 1, "", "volEllipsoid"]], "double_pendulum.controller.lqr.roa.prob_roa": [[27, 3, 1, "", "check_x0"], [27, 3, 1, "", "compute_roa_prob"], [27, 1, 1, "", "roa_prob_loss"]], "double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss": [[27, 2, 1, "", "rescale_pars"], [27, 2, 1, "", "unscale_pars"]], "double_pendulum.controller.mcpilco": [[28, 0, 0, "-", "mcpilco_controller"]], "double_pendulum.controller.mcpilco.mcpilco_controller": [[28, 1, 1, "", "Controller_muli_out_sum_of_Gaussians_with_angles_numpy"], [28, 1, 1, "", "Controller_multi_policy_sum_of_gaussians_with_angles_numpy"], [28, 1, 1, "", "Controller_sum_of_Gaussians_with_angles_numpy"]], "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_muli_out_sum_of_Gaussians_with_angles_numpy": [[28, 2, 1, "", "get_control_output_"], [28, 2, 1, "", "get_np_policy"]], "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_multi_policy_sum_of_gaussians_with_angles_numpy": [[28, 2, 1, "", "get_control_output_"], [28, 2, 1, "", "get_np_policy"]], "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_sum_of_Gaussians_with_angles_numpy": [[28, 2, 1, "", "get_control_output_"]], "double_pendulum.controller.partial_feedback_linearization": [[29, 0, 0, "-", "pfl"], [29, 0, 0, "-", "symbolic_pfl"]], "double_pendulum.controller.partial_feedback_linearization.pfl": [[29, 1, 1, "", "EnergyShapingPFLAndLQRController"], [29, 1, 1, "", "EnergyShapingPFLController"]], "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController": [[29, 2, 1, "", "get_control_output_"], [29, 2, 1, "", "init_"], [29, 2, 1, "", "set_cost_parameters_"], [29, 2, 1, "", "set_goal"]], "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController": [[29, 2, 1, "", "get_control_output_"], [29, 2, 1, "", "save_"], [29, 2, 1, "", "set_cost_parameters"], [29, 2, 1, "", "set_cost_parameters_"], [29, 2, 1, "", "set_goal"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl": [[29, 1, 1, "", "SymbolicPFLAndLQRController"], [29, 1, 1, "", "SymbolicPFLController"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController": [[29, 2, 1, "", "get_control_output_"], [29, 2, 1, "", "init_"], [29, 2, 1, "", "save_"], [29, 2, 1, "", "set_cost_parameters_"], [29, 2, 1, "", "set_goal"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController": [[29, 2, 1, "", "get_control_output_"], [29, 2, 1, "", "init_"], [29, 2, 1, "", "save_"], [29, 2, 1, "", "set_cost_parameters"], [29, 2, 1, "", "set_cost_parameters_"], [29, 2, 1, "", "set_goal"]], "double_pendulum.controller.pid": [[30, 0, 0, "-", "point_pid_controller"], [30, 0, 0, "-", "trajectory_pid_controller"]], "double_pendulum.controller.pid.point_pid_controller": [[30, 1, 1, "", "PointPIDController"]], "double_pendulum.controller.pid.point_pid_controller.PointPIDController": [[30, 2, 1, "", "get_control_output_"], [30, 2, 1, "", "init_"], [30, 2, 1, "", "save_"], [30, 2, 1, "", "set_goal"], [30, 2, 1, "", "set_parameters"]], "double_pendulum.controller.pid.trajectory_pid_controller": [[30, 1, 1, "", "TrajPIDController"]], "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController": [[30, 2, 1, "", "get_control_output_"], [30, 2, 1, "", "get_init_trajectory"], [30, 2, 1, "", "init_"], [30, 2, 1, "", "save_"], [30, 2, 1, "", "set_parameters"]], "double_pendulum.controller.random_exploration": [[31, 0, 0, "-", "random_exploration_controller"]], "double_pendulum.controller.random_exploration.random_exploration_controller": [[31, 1, 1, "", "Controller_Random_exploration"]], "double_pendulum.controller.random_exploration.random_exploration_controller.Controller_Random_exploration": [[31, 2, 1, "", "get_control_output_"], [31, 2, 1, "", "init_profile"]], "double_pendulum.controller.trajectory_following": [[32, 0, 0, "-", "feed_forward"], [32, 0, 0, "-", "trajectory_controller"]], "double_pendulum.controller.trajectory_following.feed_forward": [[32, 1, 1, "", "FeedForwardController"]], "double_pendulum.controller.trajectory_following.feed_forward.FeedForwardController": [[32, 2, 1, "", "get_control_output_"], [32, 2, 1, "", "save_"]], "double_pendulum.controller.trajectory_following.trajectory_controller": [[32, 1, 1, "", "TrajectoryController"], [32, 1, 1, "", "TrajectoryInterpController"]], "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryController": [[32, 2, 1, "", "get_control_output_"], [32, 2, 1, "", "get_init_trajectory"]], "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController": [[32, 2, 1, "", "get_control_output_"], [32, 2, 1, "", "get_init_trajectory"], [32, 2, 1, "", "save_"]], "double_pendulum.controller.tvlqr": [[33, 0, 0, "-", "tvlqr_controller"], [33, 0, 0, "-", "tvlqr_controller_drake"]], "double_pendulum.controller.tvlqr.tvlqr_controller": [[33, 1, 1, "", "TVLQRController"]], "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController": [[33, 2, 1, "", "get_control_output_"], [33, 2, 1, "", "get_init_trajectory"], [33, 2, 1, "", "init_"], [33, 2, 1, "", "save_"], [33, 2, 1, "", "set_cost_parameters"], [33, 2, 1, "", "set_goal"]], "double_pendulum.controller.tvlqr.tvlqr_controller_drake": [[33, 1, 1, "", "TVLQRController"]], "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController": [[33, 2, 1, "", "get_control_output_"], [33, 2, 1, "", "get_init_trajectory"], [33, 2, 1, "", "init_"], [33, 2, 1, "", "save_"], [33, 2, 1, "", "set_cost_parameters"]], "double_pendulum.experiments": [[34, 0, 0, "-", "experimental_utils"], [34, 0, 0, "-", "hardware_control_loop_mjbots"], [34, 0, 0, "-", "hardware_control_loop_tmotors"], [34, 0, 0, "-", "performance_profiler"], [34, 0, 0, "-", "video_recording"]], "double_pendulum.experiments.experimental_utils": [[34, 3, 1, "", "rad2rev"], [34, 3, 1, "", "rev2rad"], [34, 3, 1, "", "save_data"], [34, 3, 1, "", "setZeroPosition"]], "double_pendulum.experiments.hardware_control_loop_tmotors": [[34, 3, 1, "", "run_experiment"]], "double_pendulum.experiments.performance_profiler": [[34, 3, 1, "", "motor_send_n_commands"], [34, 3, 1, "", "motor_send_n_commands2"], [34, 3, 1, "", "motor_speed_test"], [34, 3, 1, "", "motor_speed_test2"], [34, 3, 1, "", "profiler"]], "double_pendulum.experiments.video_recording": [[34, 1, 1, "", "VideoWriterWidget"]], "double_pendulum.experiments.video_recording.VideoWriterWidget": [[34, 2, 1, "", "save_frame"], [34, 2, 1, "", "show_frame"], [34, 2, 1, "", "start_recording"], [34, 2, 1, "", "update"]], "double_pendulum.filter": [[35, 0, 0, "-", "abstract_filter"], [35, 0, 0, "-", "butterworth"], [35, 0, 0, "-", "identity"], [35, 0, 0, "-", "kalman"], [35, 0, 0, "-", "lowpass"], [35, 0, 0, "-", "running_mean"], [35, 0, 0, "-", "unscented_kalman"]], "double_pendulum.filter.abstract_filter": [[35, 1, 1, "", "AbstractFilter"]], "double_pendulum.filter.abstract_filter.AbstractFilter": [[35, 2, 1, "", "get_filtered_state"], [35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.butterworth": [[35, 1, 1, "", "butterworth_filter"]], "double_pendulum.filter.butterworth.butterworth_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.identity": [[35, 1, 1, "", "identity_filter"]], "double_pendulum.filter.identity.identity_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.kalman": [[35, 1, 1, "", "kalman_filter"]], "double_pendulum.filter.kalman.kalman_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.lowpass": [[35, 1, 1, "", "lowpass_filter"]], "double_pendulum.filter.lowpass.lowpass_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.running_mean": [[35, 1, 1, "", "runningmean_filter"]], "double_pendulum.filter.running_mean.runningmean_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.filter.unscented_kalman": [[35, 3, 1, "", "iden"], [35, 1, 1, "", "unscentedkalman_filter"]], "double_pendulum.filter.unscented_kalman.unscentedkalman_filter": [[35, 2, 1, "", "get_filtered_state_"], [35, 2, 1, "", "init_"], [35, 2, 1, "", "save_"]], "double_pendulum.model": [[36, 0, 0, "-", "friction_matrix"], [36, 0, 0, "-", "model_parameters"], [36, 0, 0, "-", "plant"], [36, 0, 0, "-", "symbolic_plant"]], "double_pendulum.model.friction_matrix": [[36, 3, 1, "", "yb_friction_matrix"]], "double_pendulum.model.model_parameters": [[36, 1, 1, "", "model_parameters"]], "double_pendulum.model.model_parameters.model_parameters": [[36, 2, 1, "", "get_dict"], [36, 2, 1, "", "load_dict"], [36, 2, 1, "", "load_model"], [36, 2, 1, "", "load_yaml"], [36, 2, 1, "", "save_dict"], [36, 2, 1, "", "set_cfric"], [36, 2, 1, "", "set_com"], [36, 2, 1, "", "set_damping"], [36, 2, 1, "", "set_dof"], [36, 2, 1, "", "set_gear_ratio"], [36, 2, 1, "", "set_gravity"], [36, 2, 1, "", "set_inertia"], [36, 2, 1, "", "set_length"], [36, 2, 1, "", "set_mass"], [36, 2, 1, "", "set_motor_inertia"], [36, 2, 1, "", "set_torque_limit"]], "double_pendulum.model.plant": [[36, 1, 1, "", "DoublePendulumPlant"]], "double_pendulum.model.plant.DoublePendulumPlant": [[36, 2, 1, "", "coriolis_matrix"], [36, 2, 1, "", "coulomb_vector"], [36, 2, 1, "", "forward_dynamics"], [36, 2, 1, "", "forward_kinematics"], [36, 2, 1, "", "get_Alin"], [36, 2, 1, "", "get_Blin"], [36, 2, 1, "", "get_Cx"], [36, 2, 1, "", "get_Fx"], [36, 2, 1, "", "get_Gx"], [36, 2, 1, "", "get_Minvx"], [36, 2, 1, "", "get_Mx"], [36, 2, 1, "", "gravity_vector"], [36, 2, 1, "", "kinetic_energy"], [36, 2, 1, "", "linear_matrices"], [36, 2, 1, "", "mass_matrix"], [36, 2, 1, "", "potential_energy"], [36, 2, 1, "", "rhs"], [36, 2, 1, "", "total_energy"]], "double_pendulum.model.symbolic_plant": [[36, 1, 1, "", "SymbolicDoublePendulum"], [36, 3, 1, "", "diff_to_matrix"], [36, 3, 1, "", "sub_symbols"], [36, 3, 1, "", "vector_mult"]], "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum": [[36, 4, 1, "", "I1"], [36, 4, 1, "", "I2"], [36, 4, 1, "", "Ir_sym"], [36, 2, 1, "", "angular_momentum_base"], [36, 2, 1, "", "angular_momentum_ddot_base"], [36, 2, 1, "", "angular_momentum_dot_base"], [36, 4, 1, "", "b1"], [36, 4, 1, "", "b2"], [36, 4, 1, "", "base"], [36, 2, 1, "", "center_of_mass"], [36, 4, 1, "", "cf1"], [36, 4, 1, "", "cf2"], [36, 2, 1, "", "com_dot"], [36, 2, 1, "", "coriolis_matrix"], [36, 2, 1, "", "coulomb_vector"], [36, 4, 1, "", "dof"], [36, 2, 1, "", "equation_of_motion"], [36, 2, 1, "", "forward_dynamics"], [36, 2, 1, "", "forward_kinematics"], [36, 4, 1, "", "g_sym"], [36, 4, 1, "", "gr_sym"], [36, 2, 1, "", "gravity_vector"], [36, 2, 1, "", "inverse_dynamics"], [36, 2, 1, "", "kinetic_energy"], [36, 4, 1, "", "l1"], [36, 4, 1, "", "l2"], [36, 2, 1, "", "lambdify_matrices"], [36, 2, 1, "", "linear_matrices"], [36, 2, 1, "", "linear_matrices_discrete"], [36, 4, 1, "", "m1"], [36, 4, 1, "", "m2"], [36, 2, 1, "", "mass_matrix"], [36, 4, 1, "", "n_actuators"], [36, 4, 1, "", "n_links"], [36, 2, 1, "", "potential_energy"], [36, 4, 1, "", "q"], [36, 4, 1, "", "q01"], [36, 4, 1, "", "q02"], [36, 4, 1, "", "q0d1"], [36, 4, 1, "", "q0d2"], [36, 4, 1, "", "q1"], [36, 4, 1, "", "q2"], [36, 4, 1, "", "qd"], [36, 4, 1, "", "qd1"], [36, 4, 1, "", "qd2"], [36, 4, 1, "", "qdd"], [36, 4, 1, "", "qdd1"], [36, 4, 1, "", "qdd2"], [36, 4, 1, "", "r1"], [36, 4, 1, "", "r2"], [36, 2, 1, "", "replace_parameters"], [36, 2, 1, "", "rhs"], [36, 2, 1, "", "symbolic_coriolis_matrix"], [36, 2, 1, "", "symbolic_coulomb_vector"], [36, 2, 1, "", "symbolic_gravity_vector"], [36, 2, 1, "", "symbolic_kinetic_energy"], [36, 2, 1, "", "symbolic_linear_matrices"], [36, 2, 1, "", "symbolic_mass_matrix"], [36, 2, 1, "", "symbolic_potential_energy"], [36, 2, 1, "", "symbolic_total_energy"], [36, 4, 1, "", "tl1"], [36, 4, 1, "", "tl2"], [36, 2, 1, "", "total_energy"], [36, 4, 1, "", "u"], [36, 4, 1, "", "u0"], [36, 4, 1, "", "u01"], [36, 4, 1, "", "u02"], [36, 4, 1, "", "u1"], [36, 4, 1, "", "u2"], [36, 4, 1, "", "x"], [36, 4, 1, "", "x0"], [36, 4, 1, "", "xd"]], "double_pendulum.simulation": [[37, 0, 0, "-", "gym_env"], [37, 0, 0, "-", "perturbations"], [37, 0, 0, "-", "simulation"], [37, 0, 0, "-", "visualization"]], "double_pendulum.simulation.gym_env": [[37, 1, 1, "", "CustomEnv"], [37, 1, 1, "", "double_pendulum_dynamics_func"]], "double_pendulum.simulation.gym_env.CustomEnv": [[37, 4, 1, "", "action_space"], [37, 4, 1, "", "observation_space"], [37, 2, 1, "", "render"], [37, 2, 1, "", "reset"], [37, 2, 1, "", "step"]], "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func": [[37, 2, 1, "", "integration"], [37, 2, 1, "", "normalize_state"], [37, 2, 1, "", "unscale_action"], [37, 2, 1, "", "unscale_state"]], "double_pendulum.simulation.perturbations": [[37, 3, 1, "", "get_gaussian_perturbation_array"], [37, 3, 1, "", "get_random_gauss_perturbation_array"], [37, 3, 1, "", "plot_perturbation_array"]], "double_pendulum.simulation.simulation": [[37, 1, 1, "", "Simulator"]], "double_pendulum.simulation.simulation.Simulator": [[37, 2, 1, "", "controller_step"], [37, 2, 1, "", "euler_integrator"], [37, 2, 1, "", "get_control_u"], [37, 2, 1, "", "get_measurement"], [37, 2, 1, "", "get_real_applied_u"], [37, 2, 1, "", "get_state"], [37, 2, 1, "", "get_trajectory_data"], [37, 2, 1, "", "record_data"], [37, 2, 1, "", "reset"], [37, 2, 1, "", "reset_data_recorder"], [37, 2, 1, "", "runge_integrator"], [37, 2, 1, "", "set_disturbances"], [37, 2, 1, "", "set_measurement_parameters"], [37, 2, 1, "", "set_motor_parameters"], [37, 2, 1, "", "set_process_noise"], [37, 2, 1, "", "set_state"], [37, 2, 1, "", "simulate"], [37, 2, 1, "", "simulate_and_animate"], [37, 2, 1, "", "step"]], "double_pendulum.simulation.visualization": [[37, 3, 1, "", "get_arrow"], [37, 3, 1, "", "set_arrow_properties"]], "double_pendulum.system_identification": [[38, 0, 0, "-", "loss"], [38, 0, 0, "-", "plotting"]], "double_pendulum.system_identification.loss": [[38, 1, 1, "", "errfunc"], [38, 1, 1, "", "errfunc_nl"]], "double_pendulum.system_identification.loss.errfunc": [[38, 2, 1, "", "rescale_pars"], [38, 2, 1, "", "unscale_pars"]], "double_pendulum.system_identification.loss.errfunc_nl": [[38, 2, 1, "", "rescale_pars"], [38, 2, 1, "", "unscale_pars"]], "double_pendulum.system_identification.plotting": [[38, 3, 1, "", "plot_torques"]], "double_pendulum.trajectory_optimization": [[40, 0, 0, "-", "direct_collocation"], [41, 0, 0, "-", "ilqr"]], "double_pendulum.trajectory_optimization.direct_collocation": [[40, 0, 0, "-", "dircol_utils"], [40, 0, 0, "-", "direct_collocation_drake"], [40, 0, 0, "-", "direct_collocation_drake2"]], "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils": [[40, 3, 1, "", "animation"], [40, 3, 1, "", "construct_trajectories"], [40, 3, 1, "", "create_plant_from_urdf"], [40, 3, 1, "", "extract_data_from_polynomial"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake": [[40, 1, 1, "", "dircol_calculator"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator": [[40, 2, 1, "", "animate_trajectory"], [40, 2, 1, "", "compute_trajectory"], [40, 2, 1, "", "get_trajectory"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2": [[40, 1, 1, "", "DirCol"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol": [[40, 2, 1, "", "CollocationConstraint"], [40, 2, 1, "", "ComputeTrajectory"], [40, 2, 1, "", "EquationOfMotion"], [40, 2, 1, "", "InterpolationConstraint"], [40, 2, 1, "", "MathematicalProgram"]], "double_pendulum.trajectory_optimization.ilqr": [[41, 0, 0, "-", "ilqr_cpp"], [41, 0, 0, "-", "paropt"]], "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp": [[41, 1, 1, "", "ilqr_calculator"]], "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator": [[41, 2, 1, "", "compute_trajectory"], [41, 2, 1, "", "save_trajectory_csv"], [41, 2, 1, "", "set_cost_parameters"], [41, 2, 1, "", "set_cost_parameters_"], [41, 2, 1, "", "set_goal"], [41, 2, 1, "", "set_model_parameters"], [41, 2, 1, "", "set_parameters"], [41, 2, 1, "", "set_start"]], "double_pendulum.trajectory_optimization.ilqr.paropt": [[41, 1, 1, "", "ilqr_trajopt_loss"]], "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss": [[41, 2, 1, "", "rescale_pars"], [41, 2, 1, "", "set_model_parameters"], [41, 2, 1, "", "set_parameters"], [41, 2, 1, "", "unscale_pars"]], "double_pendulum.utils": [[42, 0, 0, "-", "cmaes_controller_par_optimizer"], [42, 0, 0, "-", "csv_trajectory"], [42, 0, 0, "-", "lists"], [42, 0, 0, "-", "optimization"], [42, 0, 0, "-", "pcw_polynomial"], [42, 0, 0, "-", "plotting"], [42, 0, 0, "-", "urdfs"], [42, 0, 0, "-", "wrap_angles"]], "double_pendulum.utils.cmaes_controller_par_optimizer": [[42, 1, 1, "", "swingup_loss"], [42, 1, 1, "", "traj_opt_loss"]], "double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss": [[42, 2, 1, "", "rescale_pars"], [42, 2, 1, "", "unscale_pars"]], "double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss": [[42, 2, 1, "", "rescale_pars"], [42, 2, 1, "", "unscale_pars"]], "double_pendulum.utils.csv_trajectory": [[42, 3, 1, "", "concatenate_trajectories"], [42, 3, 1, "", "load_Kk_values"], [42, 3, 1, "", "load_trajectory"], [42, 3, 1, "", "load_trajectory_full"], [42, 3, 1, "", "save_trajectory"], [42, 3, 1, "", "trajectory_properties"]], "double_pendulum.utils.lists": [[42, 3, 1, "", "obj_to_list"]], "double_pendulum.utils.optimization": [[42, 3, 1, "", "cma_optimization"], [42, 3, 1, "", "scipy_par_optimization"], [42, 3, 1, "", "solve_least_squares"]], "double_pendulum.utils.pcw_polynomial": [[42, 1, 1, "", "FitPiecewisePolynomial"], [42, 1, 1, "", "InterpolateMatrix"], [42, 1, 1, "", "InterpolateVector"], [42, 3, 1, "", "ResampleTrajectory"], [42, 3, 1, "", "poly1"], [42, 3, 1, "", "poly2"], [42, 3, 1, "", "poly3"]], "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial": [[42, 2, 1, "", "create_section_poly"], [42, 2, 1, "", "determin_poly"], [42, 2, 1, "", "end_time"], [42, 2, 1, "", "get_value"], [42, 2, 1, "", "split_data"], [42, 2, 1, "", "start_time"]], "double_pendulum.utils.pcw_polynomial.InterpolateMatrix": [[42, 2, 1, "", "get_value"]], "double_pendulum.utils.pcw_polynomial.InterpolateVector": [[42, 2, 1, "", "get_value"]], "double_pendulum.utils.plotting": [[42, 3, 1, "", "plot_figures"], [42, 3, 1, "", "plot_timeseries"]], "double_pendulum.utils.urdfs": [[42, 3, 1, "", "generate_urdf"], [42, 3, 1, "", "remove_namespaces"]], "double_pendulum.utils.wrap_angles": [[42, 3, 1, "", "wrap_angles"], [42, 3, 1, "", "wrap_angles_diff"], [42, 3, 1, "", "wrap_angles_top"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "attribute", "Python attribute"]}, "titleterms": {"control": [0, 1, 3, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 50, 55, 56, 57, 58, 61], "method": [0, 61], "model": [1, 36, 62], "predict": 1, "mpc": [1, 2], "iter": [2, 10], "linear": [2, 5, 6, 10, 13], "quadrat": [2, 5, 10], "regul": [2, 5, 10, 13], "ilqr": [2, 10, 24, 41], "polici": 3, "base": 3, "deep": 4, "q": 4, "learn": 4, "dqn": [4, 18], "refer": [4, 5, 6, 7, 9, 10, 12, 13], "lqr": [5, 26, 27], "region": 5, "attract": 5, "roa": [5, 27], "partial": 6, "feedback": 6, "pfl": [6, 29], "soft": 7, "actor": 7, "critic": 7, "sac": [7, 19], "trajectori": [8, 11, 63], "optim": [8, 42], "direct": 9, "colloc": 9, "stabil": [11, 12], "riccati": 12, "gain": 12, "time": 13, "vari": 13, "quadrativ": 13, "tvlqr": [13, 33], "The": 14, "doubl": [14, 52], "pendulum": [14, 52], "system": [14, 55], "equat": 14, "motion": 14, "energi": [14, 20], "identif": 14, "double_pendulum": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42], "subpackag": [15, 17, 26, 39], "analysi": 16, "submodul": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42], "benchmark": 16, "benchmark_plot": 16, "benchmark_scor": 16, "leaderboard": [16, 54, 55, 56, 58], "util": [16, 18, 42], "abstract_control": 17, "combined_control": 17, "dqn_control": 18, "environ": 18, "explor": 18, "network": 18, "replay_buff": 18, "simul": [18, 37, 58], "sac_control": 19, "energy_xin": 20, "friction_compens": 21, "friction_compensation_control": 21, "gamepad": 22, "gamepad_control": 22, "gravity_compens": 23, "pid_gravity_compensation_control": 23, "gravity_compensation_control": 23, "ilqr_mpc_cpp": 24, "paropt": [24, 41], "inverse_dynam": 25, "computed_torque_control": 25, "inverse_dynamics_ff_control": 25, "lqr_control": 26, "lqr_controller_drak": 26, "check": 27, "coopt_interfac": 27, "ellipsoid": 27, "prob_roa": 27, "roa_estim": 27, "roa_paropt": 27, "mcpilco": 28, "mcpilco_control": 28, "partial_feedback_linear": 29, "symbolic_pfl": 29, "pid": 30, "point_pid_control": 30, "trajectory_pid_control": 30, "random_explor": 31, "random_exploration_control": 31, "trajectory_follow": 32, "feed_forward": 32, "trajectory_control": 32, "tvlqr_control": 33, "tvlqr_controller_drak": 33, "experi": 34, "experimental_util": 34, "hardware_control_loop_mjbot": 34, "hardware_control_loop_tmotor": 34, "performance_profil": 34, "video_record": 34, "filter": [35, 61], "abstract_filt": 35, "butterworth": 35, "ident": 35, "kalman": 35, "lowpass": 35, "running_mean": 35, "unscented_kalman": 35, "friction_matrix": 36, "model_paramet": 36, "plant": 36, "symbolic_pl": 36, "gym_env": 37, "perturb": 37, "visual": 37, "system_identif": 38, "data_prep": 38, "dynam": 38, "loss": 38, "plot": [38, 42], "sys_id": 38, "trajectory_optim": [39, 40, 41], "direct_colloc": 40, "dircol_util": 40, "direct_collocation_drak": 40, "direct_collocation_drake2": 40, "ilqr_cpp": 41, "cmaes_controller_par_optim": 42, "csv_trajectori": 42, "list": 42, "pcw_polynomi": 42, "urdf": 42, "wrap_angl": 42, "hardwar": [43, 44], "assembli": 44, "bill": 45, "materi": 45, "link": [45, 50], "electr": 46, "setup": [46, 49, 50], "wire": [46, 50], "step": 46, "set": [46, 50], "up": [46, 50], "backemf": 46, "safeti": 47, "note": 47, "motor": [48, 50], "mjbot": 49, "initi": [49, 50], "commun": [49, 50], "t": 50, "ak": 50, "80": 50, "6": 50, "physic": 50, "paramet": [50, 56, 58, 62], "actuat": 50, "tutori": 50, "instruct": 50, "r": 50, "config": 50, "tool": 50, "debug": 50, "can": 50, "bu": 50, "interfac": 50, "test": 50, "connect": 50, "python": 50, "intern": 50, "pd": 50, "testbench": 51, "descript": 51, "welcom": 52, "": 52, "document": 52, "tabl": 52, "content": 52, "indic": 52, "instal": 53, "potenti": 53, "issu": 53, "real": 55, "creat": [55, 56, 58], "evalu": [55, 56, 58], "your": [55, 56, 58, 61], "own": [55, 56, 58, 61], "robust": [56, 57], "repositori": 60, "structur": 60, "program": 60, "languag": 60, "overview": 60, "class": 61, "log": 61, "compens": 61, "write": 61, "data": 63}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Control Methods": [[0, "control-methods"]], "Model Predictive Control (MPC)": [[1, "model-predictive-control-mpc"]], "Iterative Linear Quadratic Regulator (iLQR) MPC": [[2, "iterative-linear-quadratic-regulator-ilqr-mpc"]], "Policy-based Control": [[3, "policy-based-control"]], "Deep-Q Learning (DQN)": [[4, "deep-q-learning-dqn"]], "References": [[4, "references"], [5, "references"], [6, "references"], [7, "references"], [9, "references"], [10, "references"], [12, "references"], [13, "references"]], "Linear Quadratic Regulator (LQR)": [[5, "linear-quadratic-regulator-lqr"]], "Region of Attraction (RoA)": [[5, "region-of-attraction-roa"]], "Partial Feedback Linearization (PFL)": [[6, "partial-feedback-linearization-pfl"]], "Soft Actor Critic (SAC)": [[7, "soft-actor-critic-sac"]], "Trajectory Optimization": [[8, "trajectory-optimization"]], "Direct Collocation": [[9, "direct-collocation"]], "Iterative Linear Quadratic Regulator (iLQR)": [[10, "iterative-linear-quadratic-regulator-ilqr"]], "Trajectory Stabilization": [[11, "trajectory-stabilization"]], "Riccati Gains Stabilization": [[12, "riccati-gains-stabilization"]], "Time Varying Linear Quadrativ Regulator (TVLQR)": [[13, "time-varying-linear-quadrativ-regulator-tvlqr"]], "The Double Pendulum System": [[14, "the-double-pendulum-system"]], "Equation of Motion": [[14, "equation-of-motion"]], "Energy": [[14, "energy"]], "System Identification": [[14, "system-identification"]], "double_pendulum": [[15, "module-double_pendulum"]], "Subpackages": [[15, "subpackages"], [17, "subpackages"], [26, "subpackages"], [39, "subpackages"]], "double_pendulum.analysis": [[16, "module-double_pendulum.analysis"]], "Submodules": [[16, "submodules"], [17, "submodules"], [18, "submodules"], [19, "submodules"], [20, "submodules"], [21, "submodules"], [22, "submodules"], [23, "submodules"], [24, "submodules"], [25, "submodules"], [26, "submodules"], [27, "submodules"], [28, "submodules"], [29, "submodules"], [30, "submodules"], [31, "submodules"], [32, "submodules"], [33, "submodules"], [34, "submodules"], [35, "submodules"], [36, "submodules"], [37, "submodules"], [38, "submodules"], [40, "submodules"], [41, "submodules"], [42, "submodules"]], "double_pendulum.analysis.benchmark": [[16, "module-double_pendulum.analysis.benchmark"]], "double_pendulum.analysis.benchmark_plot": [[16, "module-double_pendulum.analysis.benchmark_plot"]], "double_pendulum.analysis.benchmark_scores": [[16, "module-double_pendulum.analysis.benchmark_scores"]], "double_pendulum.analysis.leaderboard": [[16, "module-double_pendulum.analysis.leaderboard"]], "double_pendulum.analysis.utils": [[16, "module-double_pendulum.analysis.utils"]], "double_pendulum.controller": [[17, "module-double_pendulum.controller"]], "double_pendulum.controller.abstract_controller": [[17, "module-double_pendulum.controller.abstract_controller"]], "double_pendulum.controller.combined_controller": [[17, "module-double_pendulum.controller.combined_controller"]], "double_pendulum.controller.DQN": [[18, "module-double_pendulum.controller.DQN"]], "double_pendulum.controller.DQN.DQN_controller": [[18, "double-pendulum-controller-dqn-dqn-controller"]], "double_pendulum.controller.DQN.environment": [[18, "double-pendulum-controller-dqn-environment"]], "double_pendulum.controller.DQN.exploration": [[18, "double-pendulum-controller-dqn-exploration"]], "double_pendulum.controller.DQN.networks": [[18, "double-pendulum-controller-dqn-networks"]], "double_pendulum.controller.DQN.replay_buffer": [[18, "module-double_pendulum.controller.DQN.replay_buffer"]], "double_pendulum.controller.DQN.simulate": [[18, "double-pendulum-controller-dqn-simulate"]], "double_pendulum.controller.DQN.utils": [[18, "module-double_pendulum.controller.DQN.utils"]], "double_pendulum.controller.SAC": [[19, "module-double_pendulum.controller.SAC"]], "double_pendulum.controller.SAC.SAC_controller": [[19, "module-double_pendulum.controller.SAC.SAC_controller"]], "double_pendulum.controller.energy": [[20, "module-double_pendulum.controller.energy"]], "double_pendulum.controller.energy.energy_Xin": [[20, "module-double_pendulum.controller.energy.energy_Xin"]], "double_pendulum.controller.friction_compensation": [[21, "module-double_pendulum.controller.friction_compensation"]], "double_pendulum.controller.friction_compensation.friction_compensation_controller": [[21, "module-double_pendulum.controller.friction_compensation.friction_compensation_controller"]], "double_pendulum.controller.gamepad": [[22, "module-double_pendulum.controller.gamepad"]], "Controllers": [[22, "controllers"]], "double_pendulum.controller.gamepad.gamepad": [[22, "module-double_pendulum.controller.gamepad.gamepad"]], "double_pendulum.controller.gamepad.gamepad_controller": [[22, "module-double_pendulum.controller.gamepad.gamepad_controller"]], "Gamepad Controller": [[22, "gamepad-controller"]], "double_pendulum.controller.gravity_compensation": [[23, "module-double_pendulum.controller.gravity_compensation"]], "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller": [[23, "module-double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller"]], "double_pendulum.controller.gravity_compensation.gravity_compensation_controller": [[23, "module-double_pendulum.controller.gravity_compensation.gravity_compensation_controller"]], "double_pendulum.controller.ilqr": [[24, "module-double_pendulum.controller.ilqr"]], "double_pendulum.controller.ilqr.ilqr_mpc_cpp": [[24, "module-double_pendulum.controller.ilqr.ilqr_mpc_cpp"]], "double_pendulum.controller.ilqr.paropt": [[24, "module-double_pendulum.controller.ilqr.paropt"]], "double_pendulum.controller.inverse_dynamics": [[25, "module-double_pendulum.controller.inverse_dynamics"]], "double_pendulum.controller.inverse_dynamics.computed_torque_controller": [[25, "module-double_pendulum.controller.inverse_dynamics.computed_torque_controller"]], "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller": [[25, "module-double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller"]], "double_pendulum.controller.lqr": [[26, "module-double_pendulum.controller.lqr"]], "double_pendulum.controller.lqr.lqr": [[26, "module-double_pendulum.controller.lqr.lqr"]], "double_pendulum.controller.lqr.lqr_controller": [[26, "module-double_pendulum.controller.lqr.lqr_controller"]], "double_pendulum.controller.lqr.lqr_controller_drake": [[26, "module-double_pendulum.controller.lqr.lqr_controller_drake"]], "double_pendulum.controller.lqr.roa": [[27, "module-double_pendulum.controller.lqr.roa"]], "double_pendulum.controller.lqr.roa.check": [[27, "module-double_pendulum.controller.lqr.roa.check"]], "double_pendulum.controller.lqr.roa.coopt_interface": [[27, "double-pendulum-controller-lqr-roa-coopt-interface"]], "double_pendulum.controller.lqr.roa.ellipsoid": [[27, "module-double_pendulum.controller.lqr.roa.ellipsoid"]], "double_pendulum.controller.lqr.roa.prob_roa": [[27, "module-double_pendulum.controller.lqr.roa.prob_roa"]], "double_pendulum.controller.lqr.roa.roa_estimation": [[27, "double-pendulum-controller-lqr-roa-roa-estimation"]], "double_pendulum.controller.lqr.roa.roa_paropt": [[27, "double-pendulum-controller-lqr-roa-roa-paropt"]], "double_pendulum.controller.mcpilco": [[28, "module-double_pendulum.controller.mcpilco"]], "double_pendulum.controller.mcpilco.mcpilco_controller": [[28, "module-double_pendulum.controller.mcpilco.mcpilco_controller"]], "double_pendulum.controller.partial_feedback_linearization": [[29, "module-double_pendulum.controller.partial_feedback_linearization"]], "double_pendulum.controller.partial_feedback_linearization.pfl": [[29, "module-double_pendulum.controller.partial_feedback_linearization.pfl"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl": [[29, "module-double_pendulum.controller.partial_feedback_linearization.symbolic_pfl"]], "double_pendulum.controller.pid": [[30, "module-double_pendulum.controller.pid"]], "double_pendulum.controller.pid.point_pid_controller": [[30, "module-double_pendulum.controller.pid.point_pid_controller"]], "double_pendulum.controller.pid.trajectory_pid_controller": [[30, "module-double_pendulum.controller.pid.trajectory_pid_controller"]], "double_pendulum.controller.random_exploration": [[31, "module-double_pendulum.controller.random_exploration"]], "double_pendulum.controller.random_exploration.random_exploration_controller": [[31, "module-double_pendulum.controller.random_exploration.random_exploration_controller"]], "double_pendulum.controller.trajectory_following": [[32, "module-double_pendulum.controller.trajectory_following"]], "double_pendulum.controller.trajectory_following.feed_forward": [[32, "module-double_pendulum.controller.trajectory_following.feed_forward"]], "double_pendulum.controller.trajectory_following.trajectory_controller": [[32, "module-double_pendulum.controller.trajectory_following.trajectory_controller"]], "double_pendulum.controller.tvlqr": [[33, "module-double_pendulum.controller.tvlqr"]], "double_pendulum.controller.tvlqr.tvlqr_controller": [[33, "module-double_pendulum.controller.tvlqr.tvlqr_controller"]], "double_pendulum.controller.tvlqr.tvlqr_controller_drake": [[33, "module-double_pendulum.controller.tvlqr.tvlqr_controller_drake"]], "double_pendulum.experiments": [[34, "module-double_pendulum.experiments"]], "double_pendulum.experiments.experimental_utils": [[34, "module-double_pendulum.experiments.experimental_utils"]], "double_pendulum.experiments.hardware_control_loop_mjbots": [[34, "module-double_pendulum.experiments.hardware_control_loop_mjbots"]], "double_pendulum.experiments.hardware_control_loop_tmotors": [[34, "module-double_pendulum.experiments.hardware_control_loop_tmotors"]], "double_pendulum.experiments.performance_profiler": [[34, "module-double_pendulum.experiments.performance_profiler"]], "double_pendulum.experiments.video_recording": [[34, "module-double_pendulum.experiments.video_recording"]], "double_pendulum.filter": [[35, "module-double_pendulum.filter"]], "double_pendulum.filter.abstract_filter": [[35, "module-double_pendulum.filter.abstract_filter"]], "double_pendulum.filter.butterworth": [[35, "module-double_pendulum.filter.butterworth"]], "double_pendulum.filter.identity": [[35, "module-double_pendulum.filter.identity"]], "double_pendulum.filter.kalman": [[35, "module-double_pendulum.filter.kalman"]], "double_pendulum.filter.lowpass": [[35, "module-double_pendulum.filter.lowpass"]], "double_pendulum.filter.running_mean": [[35, "module-double_pendulum.filter.running_mean"]], "double_pendulum.filter.unscented_kalman": [[35, "module-double_pendulum.filter.unscented_kalman"]], "double_pendulum.model": [[36, "module-double_pendulum.model"]], "double_pendulum.model.friction_matrix": [[36, "module-double_pendulum.model.friction_matrix"]], "double_pendulum.model.model_parameters": [[36, "module-double_pendulum.model.model_parameters"]], "double_pendulum.model.plant": [[36, "module-double_pendulum.model.plant"]], "double_pendulum.model.symbolic_plant": [[36, "module-double_pendulum.model.symbolic_plant"]], "double_pendulum.simulation": [[37, "module-double_pendulum.simulation"]], "double_pendulum.simulation.gym_env": [[37, "module-double_pendulum.simulation.gym_env"]], "double_pendulum.simulation.perturbations": [[37, "module-double_pendulum.simulation.perturbations"]], "double_pendulum.simulation.simulation": [[37, "module-double_pendulum.simulation.simulation"]], "double_pendulum.simulation.visualization": [[37, "module-double_pendulum.simulation.visualization"]], "double_pendulum.system_identification": [[38, "module-double_pendulum.system_identification"]], "double_pendulum.system_identification.data_prep": [[38, "double-pendulum-system-identification-data-prep"]], "double_pendulum.system_identification.dynamics": [[38, "double-pendulum-system-identification-dynamics"]], "double_pendulum.system_identification.loss": [[38, "module-double_pendulum.system_identification.loss"]], "double_pendulum.system_identification.plotting": [[38, "module-double_pendulum.system_identification.plotting"]], "double_pendulum.system_identification.sys_id": [[38, "double-pendulum-system-identification-sys-id"]], "double_pendulum.trajectory_optimization": [[39, "module-double_pendulum.trajectory_optimization"]], "double_pendulum.trajectory_optimization.direct_collocation": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation"]], "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.dircol_utils"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2"]], "double_pendulum.trajectory_optimization.ilqr": [[41, "module-double_pendulum.trajectory_optimization.ilqr"]], "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp": [[41, "module-double_pendulum.trajectory_optimization.ilqr.ilqr_cpp"]], "double_pendulum.trajectory_optimization.ilqr.paropt": [[41, "module-double_pendulum.trajectory_optimization.ilqr.paropt"]], "double_pendulum.utils": [[42, "module-double_pendulum.utils"]], "double_pendulum.utils.cmaes_controller_par_optimizer": [[42, "module-double_pendulum.utils.cmaes_controller_par_optimizer"]], "double_pendulum.utils.csv_trajectory": [[42, "module-double_pendulum.utils.csv_trajectory"]], "double_pendulum.utils.lists": [[42, "module-double_pendulum.utils.lists"]], "double_pendulum.utils.optimization": [[42, "module-double_pendulum.utils.optimization"]], "double_pendulum.utils.pcw_polynomial": [[42, "module-double_pendulum.utils.pcw_polynomial"]], "double_pendulum.utils.plotting": [[42, "module-double_pendulum.utils.plotting"]], "double_pendulum.utils.urdfs": [[42, "module-double_pendulum.utils.urdfs"]], "double_pendulum.utils.wrap_angles": [[42, "module-double_pendulum.utils.wrap_angles"]], "Hardware": [[43, "hardware"]], "Hardware Assembly": [[44, "hardware-assembly"]], "Bill of Materials": [[45, "bill-of-materials"]], "Links": [[45, "links"]], "Electrical Setup": [[46, "electrical-setup"]], "Wiring": [[46, "wiring"]], "Steps for setting up the wiring": [[46, "steps-for-setting-up-the-wiring"]], "backEMF": [[46, "backemf"]], "Safety Notes": [[47, "safety-notes"]], "Motors": [[48, "motors"]], "MJBots": [[49, "mjbots"]], "Initial Setup": [[49, "initial-setup"]], "Communication": [[49, "communication"], [50, "communication"]], "T-Motor (AK-80-6)": [[50, "t-motor-ak-80-6"]], "Physical Parameters of the Actuator": [[50, "physical-parameters-of-the-actuator"]], "Initial Motor Setup": [[50, "initial-motor-setup"]], "Tutorials": [[50, "tutorials"]], "Instructions: R-Link Config Tool": [[50, "instructions-r-link-config-tool"]], "Debugging": [[50, "debugging"]], "CAN Bus wiring": [[50, "can-bus-wiring"]], "Setting up the CAN interface": [[50, "setting-up-the-can-interface"]], "Testing Motor Connection": [[50, "testing-motor-connection"]], "Python Interface": [[50, "python-interface"]], "Internal PD-Controller": [[50, "internal-pd-controller"]], "Testbench Description": [[51, "testbench-description"], [51, "id1"]], "Welcome to Double Pendulum\u2019s documentation!": [[52, "welcome-to-double-pendulum-s-documentation"]], "Table of Contents": [[52, null]], "Indices and tables": [[52, "indices-and-tables"]], "Installation": [[53, "installation"]], "Potential Issues": [[53, "potential-issues"]], "Leaderboards": [[54, "leaderboards"]], "Real System Leaderboard": [[55, "real-system-leaderboard"]], "Creating the Leaderboard": [[55, "creating-the-leaderboard"], [56, "creating-the-leaderboard"], [58, "creating-the-leaderboard"]], "Evaluating your own controller": [[55, "evaluating-your-own-controller"], [56, "evaluating-your-own-controller"], [58, "evaluating-your-own-controller"]], "Robustness Leaderboard": [[56, "robustness-leaderboard"]], "Leaderboard Parameters": [[56, "leaderboard-parameters"], [58, "leaderboard-parameters"]], "Controller Robustness": [[57, "controller-robustness"]], "Simulation Leaderboard": [[58, "simulation-leaderboard"]], "Repository Structure": [[60, "repository-structure"]], "Programming Language": [[60, "programming-language"]], "Repository Overview": [[60, "repository-overview"]], "Controller Class": [[61, "controller-class"]], "Class Methods": [[61, "class-methods"]], "Logging, Filtering and Compensation": [[61, "logging-filtering-and-compensation"]], "Writing your own controller": [[61, "writing-your-own-controller"]], "Model Parameters": [[62, "model-parameters"]], "Trajectory data": [[63, "trajectory-data"]]}, "indexentries": {"double_pendulum": [[15, "module-double_pendulum"]], "module": [[15, "module-double_pendulum"], [16, "module-double_pendulum.analysis"], [16, "module-double_pendulum.analysis.benchmark"], [16, "module-double_pendulum.analysis.benchmark_plot"], [16, "module-double_pendulum.analysis.benchmark_scores"], [16, "module-double_pendulum.analysis.leaderboard"], [16, "module-double_pendulum.analysis.utils"], [17, "module-double_pendulum.controller"], [17, "module-double_pendulum.controller.abstract_controller"], [17, "module-double_pendulum.controller.combined_controller"], [18, "module-double_pendulum.controller.DQN"], [18, "module-double_pendulum.controller.DQN.replay_buffer"], [18, "module-double_pendulum.controller.DQN.utils"], [19, "module-double_pendulum.controller.SAC"], [19, "module-double_pendulum.controller.SAC.SAC_controller"], [20, "module-double_pendulum.controller.energy"], [20, "module-double_pendulum.controller.energy.energy_Xin"], [21, "module-double_pendulum.controller.friction_compensation"], [21, "module-double_pendulum.controller.friction_compensation.friction_compensation_controller"], [22, "module-double_pendulum.controller.gamepad"], [22, "module-double_pendulum.controller.gamepad.gamepad"], [22, "module-double_pendulum.controller.gamepad.gamepad_controller"], [23, "module-double_pendulum.controller.gravity_compensation"], [23, "module-double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller"], [23, "module-double_pendulum.controller.gravity_compensation.gravity_compensation_controller"], [24, "module-double_pendulum.controller.ilqr"], [24, "module-double_pendulum.controller.ilqr.ilqr_mpc_cpp"], [24, "module-double_pendulum.controller.ilqr.paropt"], [25, "module-double_pendulum.controller.inverse_dynamics"], [25, "module-double_pendulum.controller.inverse_dynamics.computed_torque_controller"], [25, "module-double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller"], [26, "module-double_pendulum.controller.lqr"], [26, "module-double_pendulum.controller.lqr.lqr"], [26, "module-double_pendulum.controller.lqr.lqr_controller"], [26, "module-double_pendulum.controller.lqr.lqr_controller_drake"], [27, "module-double_pendulum.controller.lqr.roa"], [27, "module-double_pendulum.controller.lqr.roa.check"], [27, "module-double_pendulum.controller.lqr.roa.ellipsoid"], [27, "module-double_pendulum.controller.lqr.roa.prob_roa"], [28, "module-double_pendulum.controller.mcpilco"], [28, "module-double_pendulum.controller.mcpilco.mcpilco_controller"], [29, "module-double_pendulum.controller.partial_feedback_linearization"], [29, "module-double_pendulum.controller.partial_feedback_linearization.pfl"], [29, "module-double_pendulum.controller.partial_feedback_linearization.symbolic_pfl"], [30, "module-double_pendulum.controller.pid"], [30, "module-double_pendulum.controller.pid.point_pid_controller"], [30, "module-double_pendulum.controller.pid.trajectory_pid_controller"], [31, "module-double_pendulum.controller.random_exploration"], [31, "module-double_pendulum.controller.random_exploration.random_exploration_controller"], [32, "module-double_pendulum.controller.trajectory_following"], [32, "module-double_pendulum.controller.trajectory_following.feed_forward"], [32, "module-double_pendulum.controller.trajectory_following.trajectory_controller"], [33, "module-double_pendulum.controller.tvlqr"], [33, "module-double_pendulum.controller.tvlqr.tvlqr_controller"], [33, "module-double_pendulum.controller.tvlqr.tvlqr_controller_drake"], [34, "module-double_pendulum.experiments"], [34, "module-double_pendulum.experiments.experimental_utils"], [34, "module-double_pendulum.experiments.hardware_control_loop_mjbots"], [34, "module-double_pendulum.experiments.hardware_control_loop_tmotors"], [34, "module-double_pendulum.experiments.performance_profiler"], [34, "module-double_pendulum.experiments.video_recording"], [35, "module-double_pendulum.filter"], [35, "module-double_pendulum.filter.abstract_filter"], [35, "module-double_pendulum.filter.butterworth"], [35, "module-double_pendulum.filter.identity"], [35, "module-double_pendulum.filter.kalman"], [35, "module-double_pendulum.filter.lowpass"], [35, "module-double_pendulum.filter.running_mean"], [35, "module-double_pendulum.filter.unscented_kalman"], [36, "module-double_pendulum.model"], [36, "module-double_pendulum.model.friction_matrix"], [36, "module-double_pendulum.model.model_parameters"], [36, "module-double_pendulum.model.plant"], [36, "module-double_pendulum.model.symbolic_plant"], [37, "module-double_pendulum.simulation"], [37, "module-double_pendulum.simulation.gym_env"], [37, "module-double_pendulum.simulation.perturbations"], [37, "module-double_pendulum.simulation.simulation"], [37, "module-double_pendulum.simulation.visualization"], [38, "module-double_pendulum.system_identification"], [38, "module-double_pendulum.system_identification.loss"], [38, "module-double_pendulum.system_identification.plotting"], [39, "module-double_pendulum.trajectory_optimization"], [40, "module-double_pendulum.trajectory_optimization.direct_collocation"], [40, "module-double_pendulum.trajectory_optimization.direct_collocation.dircol_utils"], [40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake"], [40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2"], [41, "module-double_pendulum.trajectory_optimization.ilqr"], [41, "module-double_pendulum.trajectory_optimization.ilqr.ilqr_cpp"], [41, "module-double_pendulum.trajectory_optimization.ilqr.paropt"], [42, "module-double_pendulum.utils"], [42, "module-double_pendulum.utils.cmaes_controller_par_optimizer"], [42, "module-double_pendulum.utils.csv_trajectory"], [42, "module-double_pendulum.utils.lists"], [42, "module-double_pendulum.utils.optimization"], [42, "module-double_pendulum.utils.pcw_polynomial"], [42, "module-double_pendulum.utils.plotting"], [42, "module-double_pendulum.utils.urdfs"], [42, "module-double_pendulum.utils.wrap_angles"]], "benchmark() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.benchmark"]], "benchmarker (class in double_pendulum.analysis.benchmark)": [[16, "double_pendulum.analysis.benchmark.benchmarker"]], "check_delay_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_delay_robustness"]], "check_goal_success() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_goal_success"]], "check_meas_noise_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_meas_noise_robustness"]], "check_modelpar_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_modelpar_robustness"]], "check_perturbation_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_perturbation_robustness"]], "check_unoise_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_unoise_robustness"]], "check_uresponsiveness_robustness() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.check_uresponsiveness_robustness"]], "compute_cost() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.compute_cost"]], "compute_ref_cost() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.compute_ref_cost"]], "compute_success_measure() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.compute_success_measure"]], "double_pendulum.analysis": [[16, "module-double_pendulum.analysis"]], "double_pendulum.analysis.benchmark": [[16, "module-double_pendulum.analysis.benchmark"]], "double_pendulum.analysis.benchmark_plot": [[16, "module-double_pendulum.analysis.benchmark_plot"]], "double_pendulum.analysis.benchmark_scores": [[16, "module-double_pendulum.analysis.benchmark_scores"]], "double_pendulum.analysis.leaderboard": [[16, "module-double_pendulum.analysis.leaderboard"]], "double_pendulum.analysis.utils": [[16, "module-double_pendulum.analysis.utils"]], "get_delay_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_delay_score"]], "get_energy() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_energy"]], "get_integrated_torque() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_integrated_torque"]], "get_max_tau() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_max_tau"]], "get_measurement_noise_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_measurement_noise_score"]], "get_model_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_model_score"]], "get_par_list() (in module double_pendulum.analysis.utils)": [[16, "double_pendulum.analysis.utils.get_par_list"]], "get_perturbation_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_perturbation_score"]], "get_scores() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_scores"]], "get_swingup_time() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_swingup_time"]], "get_tau_smoothness() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_tau_smoothness"]], "get_torque_cost() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_torque_cost"]], "get_unoise_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_unoise_score"]], "get_uresponsiveness_score() (in module double_pendulum.analysis.benchmark_scores)": [[16, "double_pendulum.analysis.benchmark_scores.get_uresponsiveness_score"]], "get_velocity_cost() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.get_velocity_cost"]], "leaderboard_scores() (in module double_pendulum.analysis.leaderboard)": [[16, "double_pendulum.analysis.leaderboard.leaderboard_scores"]], "plot_benchmark_results() (in module double_pendulum.analysis.benchmark_plot)": [[16, "double_pendulum.analysis.benchmark_plot.plot_benchmark_results"]], "plot_model_robustness_multi() (in module double_pendulum.analysis.benchmark_plot)": [[16, "double_pendulum.analysis.benchmark_plot.plot_model_robustness_multi"]], "save() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.save"]], "set_cost_par() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.set_cost_par"]], "set_init_traj() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.set_init_traj"]], "set_model_parameter() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.set_model_parameter"]], "simulate_and_get_cost() (double_pendulum.analysis.benchmark.benchmarker method)": [[16, "double_pendulum.analysis.benchmark.benchmarker.simulate_and_get_cost"]], "abstractcontroller (class in double_pendulum.controller.abstract_controller)": [[17, "double_pendulum.controller.abstract_controller.AbstractController"]], "combinedcontroller (class in double_pendulum.controller.combined_controller)": [[17, "double_pendulum.controller.combined_controller.CombinedController"]], "simultaneouscontrollers (class in double_pendulum.controller.combined_controller)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers"]], "double_pendulum.controller": [[17, "module-double_pendulum.controller"]], "double_pendulum.controller.abstract_controller": [[17, "module-double_pendulum.controller.abstract_controller"]], "double_pendulum.controller.combined_controller": [[17, "module-double_pendulum.controller.combined_controller"]], "get_control_output() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_control_output"]], "get_control_output_() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.get_control_output_"]], "get_forecast() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_forecast"]], "get_forecast() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.get_forecast"]], "get_forecast() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.get_forecast"]], "get_friction_torque() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_friction_torque"]], "get_gravity_torque() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_gravity_torque"]], "get_init_trajectory() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.get_init_trajectory"]], "init() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.init"]], "init_() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.init_"]], "init_() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.init_"]], "init_() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.init_"]], "reset() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.reset"]], "reset_() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.reset_"]], "reset_() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.reset_"]], "save() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.save"]], "save_() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.save_"]], "save_() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.save_"]], "set_filter() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_filter"]], "set_friction_compensation() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_friction_compensation"]], "set_goal() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_goal"]], "set_goal() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.set_goal"]], "set_goal() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.set_goal"]], "set_gravity_compensation() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_gravity_compensation"]], "set_parameters() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_parameters"]], "set_parameters() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.set_parameters"]], "set_parameters() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.set_parameters"]], "set_start() (double_pendulum.controller.abstract_controller.abstractcontroller method)": [[17, "double_pendulum.controller.abstract_controller.AbstractController.set_start"]], "set_start() (double_pendulum.controller.combined_controller.combinedcontroller method)": [[17, "double_pendulum.controller.combined_controller.CombinedController.set_start"]], "set_start() (double_pendulum.controller.combined_controller.simultaneouscontrollers method)": [[17, "double_pendulum.controller.combined_controller.SimultaneousControllers.set_start"]], "replaybuffer (class in double_pendulum.controller.dqn.replay_buffer)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer"]], "add() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.add"]], "create_batch() (double_pendulum.controller.dqn.replay_buffer.replaybuffer static method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.create_batch"]], "double_pendulum.controller.dqn": [[18, "module-double_pendulum.controller.DQN"]], "double_pendulum.controller.dqn.replay_buffer": [[18, "module-double_pendulum.controller.DQN.replay_buffer"]], "double_pendulum.controller.dqn.utils": [[18, "module-double_pendulum.controller.DQN.utils"]], "get_sample_indexes() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.get_sample_indexes"]], "load() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.load"]], "load_pickled_data() (in module double_pendulum.controller.dqn.utils)": [[18, "double_pendulum.controller.DQN.utils.load_pickled_data"]], "sample_random_batch() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.sample_random_batch"]], "save() (double_pendulum.controller.dqn.replay_buffer.replaybuffer method)": [[18, "double_pendulum.controller.DQN.replay_buffer.ReplayBuffer.save"]], "save_pickled_data() (in module double_pendulum.controller.dqn.utils)": [[18, "double_pendulum.controller.DQN.utils.save_pickled_data"]], "saccontroller (class in double_pendulum.controller.sac.sac_controller)": [[19, "double_pendulum.controller.SAC.SAC_controller.SACController"]], "double_pendulum.controller.sac": [[19, "module-double_pendulum.controller.SAC"]], "double_pendulum.controller.sac.sac_controller": [[19, "module-double_pendulum.controller.SAC.SAC_controller"]], "get_control_output_() (double_pendulum.controller.sac.sac_controller.saccontroller method)": [[19, "double_pendulum.controller.SAC.SAC_controller.SACController.get_control_output_"]], "energycontroller (class in double_pendulum.controller.energy.energy_xin)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController"]], "check_parameters() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.check_parameters"]], "double_pendulum.controller.energy": [[20, "module-double_pendulum.controller.energy"]], "double_pendulum.controller.energy.energy_xin": [[20, "module-double_pendulum.controller.energy.energy_Xin"]], "get_control_output_() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.get_control_output_"]], "init_() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.init_"]], "kd_func() (in module double_pendulum.controller.energy.energy_xin)": [[20, "double_pendulum.controller.energy.energy_Xin.kd_func"]], "save_() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.save_"]], "set_goal() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.set_goal"]], "set_parameters() (double_pendulum.controller.energy.energy_xin.energycontroller method)": [[20, "double_pendulum.controller.energy.energy_Xin.EnergyController.set_parameters"]], "frictioncompensationcontroller (class in double_pendulum.controller.friction_compensation.friction_compensation_controller)": [[21, "double_pendulum.controller.friction_compensation.friction_compensation_controller.FrictionCompensationController"]], "double_pendulum.controller.friction_compensation": [[21, "module-double_pendulum.controller.friction_compensation"]], "double_pendulum.controller.friction_compensation.friction_compensation_controller": [[21, "module-double_pendulum.controller.friction_compensation.friction_compensation_controller"]], "get_control_output_() (double_pendulum.controller.friction_compensation.friction_compensation_controller.frictioncompensationcontroller method)": [[21, "double_pendulum.controller.friction_compensation.friction_compensation_controller.FrictionCompensationController.get_control_output_"]], "save_() (double_pendulum.controller.friction_compensation.friction_compensation_controller.frictioncompensationcontroller method)": [[21, "double_pendulum.controller.friction_compensation.friction_compensation_controller.FrictionCompensationController.save_"]], "gamepad (class in double_pendulum.controller.gamepad.gamepad)": [[22, "double_pendulum.controller.gamepad.gamepad.GamePad"]], "gamepadcontroller (class in double_pendulum.controller.gamepad.gamepad_controller)": [[22, "double_pendulum.controller.gamepad.gamepad_controller.GamepadController"]], "double_pendulum.controller.gamepad": [[22, "module-double_pendulum.controller.gamepad"]], "double_pendulum.controller.gamepad.gamepad": [[22, "module-double_pendulum.controller.gamepad.gamepad"]], "double_pendulum.controller.gamepad.gamepad_controller": [[22, "module-double_pendulum.controller.gamepad.gamepad_controller"]], "get_control_output_() (double_pendulum.controller.gamepad.gamepad_controller.gamepadcontroller method)": [[22, "double_pendulum.controller.gamepad.gamepad_controller.GamepadController.get_control_output_"]], "read() (double_pendulum.controller.gamepad.gamepad.gamepad method)": [[22, "double_pendulum.controller.gamepad.gamepad.GamePad.read"]], "gravitycompensationcontroller (class in double_pendulum.controller.gravity_compensation.gravity_compensation_controller)": [[23, "double_pendulum.controller.gravity_compensation.gravity_compensation_controller.GravityCompensationController"]], "pidgravitycompensationcontroller (class in double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController"]], "double_pendulum.controller.gravity_compensation": [[23, "module-double_pendulum.controller.gravity_compensation"]], "double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller": [[23, "module-double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller"]], "double_pendulum.controller.gravity_compensation.gravity_compensation_controller": [[23, "module-double_pendulum.controller.gravity_compensation.gravity_compensation_controller"]], "get_control_output_() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.gravity_compensation.gravity_compensation_controller.gravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.gravity_compensation_controller.GravityCompensationController.get_control_output_"]], "init_() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.init_"]], "save_() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.save_"]], "save_() (double_pendulum.controller.gravity_compensation.gravity_compensation_controller.gravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.gravity_compensation_controller.GravityCompensationController.save_"]], "set_goal() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.set_goal"]], "set_parameters() (double_pendulum.controller.gravity_compensation.pid_gravity_compensation_controller.pidgravitycompensationcontroller method)": [[23, "double_pendulum.controller.gravity_compensation.PID_gravity_compensation_controller.PIDGravityCompensationController.set_parameters"]], "ilqrmpccppcontroller (class in double_pendulum.controller.ilqr.ilqr_mpc_cpp)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController"]], "compute_init_traj() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.compute_init_traj"]], "double_pendulum.controller.ilqr": [[24, "module-double_pendulum.controller.ilqr"]], "double_pendulum.controller.ilqr.ilqr_mpc_cpp": [[24, "module-double_pendulum.controller.ilqr.ilqr_mpc_cpp"]], "double_pendulum.controller.ilqr.paropt": [[24, "module-double_pendulum.controller.ilqr.paropt"]], "get_control_output_() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.get_control_output_"]], "get_forecast() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.get_forecast"]], "get_init_trajectory() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.get_init_trajectory"]], "ilqrmpc_swingup_loss (class in double_pendulum.controller.ilqr.paropt)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss"]], "init() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.init"]], "init_() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.init_"]], "load_init_traj() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.load_init_traj"]], "rescale_pars() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.rescale_pars"]], "save_() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.save_"]], "set_cost_parameters() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_cost_parameters"]], "set_cost_parameters_() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_cost_parameters_"]], "set_final_cost_parameters() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_final_cost_parameters"]], "set_goal() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_goal"]], "set_model_parameters() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.set_model_parameters"]], "set_parameters() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_parameters"]], "set_parameters() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.set_parameters"]], "set_start() (double_pendulum.controller.ilqr.ilqr_mpc_cpp.ilqrmpccppcontroller method)": [[24, "double_pendulum.controller.ilqr.ilqr_mpc_cpp.ILQRMPCCPPController.set_start"]], "unscale_pars() (double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss method)": [[24, "double_pendulum.controller.ilqr.paropt.ilqrmpc_swingup_loss.unscale_pars"]], "computedtorquecontroller (class in double_pendulum.controller.inverse_dynamics.computed_torque_controller)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController"]], "inversedynamicscontroller (class in double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController"]], "double_pendulum.controller.inverse_dynamics": [[25, "module-double_pendulum.controller.inverse_dynamics"]], "double_pendulum.controller.inverse_dynamics.computed_torque_controller": [[25, "module-double_pendulum.controller.inverse_dynamics.computed_torque_controller"]], "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller": [[25, "module-double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller"]], "get_control_output_() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.inversedynamicscontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController.get_control_output_"]], "get_init_trajectory() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.inversedynamicscontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController.get_init_trajectory"]], "init_() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.init_"]], "init_() (double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.inversedynamicscontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController.init_"]], "save_() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.save_"]], "save_() (double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.inversedynamicscontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.inverse_dynamics_ff_controller.InverseDynamicsController.save_"]], "set_parameters() (double_pendulum.controller.inverse_dynamics.computed_torque_controller.computedtorquecontroller method)": [[25, "double_pendulum.controller.inverse_dynamics.computed_torque_controller.ComputedTorqueController.set_parameters"]], "lqrcontroller (class in double_pendulum.controller.lqr.lqr_controller)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController"]], "lqrcontroller (class in double_pendulum.controller.lqr.lqr_controller_drake)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController"]], "lqrcontroller_nonsymbolic (class in double_pendulum.controller.lqr.lqr_controller)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic"]], "dlqr() (in module double_pendulum.controller.lqr.lqr)": [[26, "double_pendulum.controller.lqr.lqr.dlqr"]], "double_pendulum.controller.lqr": [[26, "module-double_pendulum.controller.lqr"]], "double_pendulum.controller.lqr.lqr": [[26, "module-double_pendulum.controller.lqr.lqr"]], "double_pendulum.controller.lqr.lqr_controller": [[26, "module-double_pendulum.controller.lqr.lqr_controller"]], "double_pendulum.controller.lqr.lqr_controller_drake": [[26, "module-double_pendulum.controller.lqr.lqr_controller_drake"]], "get_control_output_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.get_control_output_"]], "get_control_output_() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.get_control_output_"]], "init_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.init_"]], "init_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.init_"]], "init_() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.init_"]], "iterative_riccati() (in module double_pendulum.controller.lqr.lqr)": [[26, "double_pendulum.controller.lqr.lqr.iterative_riccati"]], "lqr() (in module double_pendulum.controller.lqr.lqr)": [[26, "double_pendulum.controller.lqr.lqr.lqr"]], "save_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.save_"]], "save_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.save_"]], "save_() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.save_"]], "set_cost_matrices() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_cost_matrices"]], "set_cost_matrices() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_cost_matrices"]], "set_cost_matrices() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.set_cost_matrices"]], "set_cost_parameters() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_cost_parameters"]], "set_cost_parameters() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_cost_parameters"]], "set_cost_parameters() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.set_cost_parameters"]], "set_cost_parameters_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.set_cost_parameters_"]], "set_goal() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_goal"]], "set_goal() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_goal"]], "set_goal() (double_pendulum.controller.lqr.lqr_controller_drake.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller_drake.LQRController.set_goal"]], "set_parameters() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController.set_parameters"]], "set_parameters() (double_pendulum.controller.lqr.lqr_controller.lqrcontroller_nonsymbolic method)": [[26, "double_pendulum.controller.lqr.lqr_controller.LQRController_nonsymbolic.set_parameters"]], "check_x0() (in module double_pendulum.controller.lqr.roa.prob_roa)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.check_x0"]], "compute_roa_prob() (in module double_pendulum.controller.lqr.roa.prob_roa)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.compute_roa_prob"]], "directsphere() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.directSphere"]], "double_pendulum.controller.lqr.roa": [[27, "module-double_pendulum.controller.lqr.roa"]], "double_pendulum.controller.lqr.roa.check": [[27, "module-double_pendulum.controller.lqr.roa.check"]], "double_pendulum.controller.lqr.roa.ellipsoid": [[27, "module-double_pendulum.controller.lqr.roa.ellipsoid"]], "double_pendulum.controller.lqr.roa.prob_roa": [[27, "module-double_pendulum.controller.lqr.roa.prob_roa"]], "getellipseparamsfromquad() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.getEllipseParamsFromQuad"]], "getellipsepatch() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.getEllipsePatch"]], "getellipsepatches() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.getEllipsePatches"]], "lqr_check_ctg (class in double_pendulum.controller.lqr.roa.check)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_ctg"]], "lqr_check_ctg_verification() (in module double_pendulum.controller.lqr.roa.check)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_ctg_verification"]], "lqr_check_epsilon (class in double_pendulum.controller.lqr.roa.check)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_epsilon"]], "lqr_check_epsilon_verification() (in module double_pendulum.controller.lqr.roa.check)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_epsilon_verification"]], "plotellipse() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.plotEllipse"]], "quadform() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.quadForm"]], "rescale_pars() (double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss method)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss.rescale_pars"]], "roa_prob_loss (class in double_pendulum.controller.lqr.roa.prob_roa)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss"]], "samplefromellipsoid() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.sampleFromEllipsoid"]], "sim_callback() (double_pendulum.controller.lqr.roa.check.lqr_check_ctg method)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_ctg.sim_callback"]], "sim_callback() (double_pendulum.controller.lqr.roa.check.lqr_check_epsilon method)": [[27, "double_pendulum.controller.lqr.roa.check.lqr_check_epsilon.sim_callback"]], "unscale_pars() (double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss method)": [[27, "double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss.unscale_pars"]], "volellipsoid() (in module double_pendulum.controller.lqr.roa.ellipsoid)": [[27, "double_pendulum.controller.lqr.roa.ellipsoid.volEllipsoid"]], "controller_muli_out_sum_of_gaussians_with_angles_numpy (class in double_pendulum.controller.mcpilco.mcpilco_controller)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_muli_out_sum_of_Gaussians_with_angles_numpy"]], "controller_multi_policy_sum_of_gaussians_with_angles_numpy (class in double_pendulum.controller.mcpilco.mcpilco_controller)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_multi_policy_sum_of_gaussians_with_angles_numpy"]], "controller_sum_of_gaussians_with_angles_numpy (class in double_pendulum.controller.mcpilco.mcpilco_controller)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_sum_of_Gaussians_with_angles_numpy"]], "double_pendulum.controller.mcpilco": [[28, "module-double_pendulum.controller.mcpilco"]], "double_pendulum.controller.mcpilco.mcpilco_controller": [[28, "module-double_pendulum.controller.mcpilco.mcpilco_controller"]], "get_control_output_() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_muli_out_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_muli_out_sum_of_Gaussians_with_angles_numpy.get_control_output_"]], "get_control_output_() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_multi_policy_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_multi_policy_sum_of_gaussians_with_angles_numpy.get_control_output_"]], "get_control_output_() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_sum_of_Gaussians_with_angles_numpy.get_control_output_"]], "get_np_policy() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_muli_out_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_muli_out_sum_of_Gaussians_with_angles_numpy.get_np_policy"]], "get_np_policy() (double_pendulum.controller.mcpilco.mcpilco_controller.controller_multi_policy_sum_of_gaussians_with_angles_numpy method)": [[28, "double_pendulum.controller.mcpilco.mcpilco_controller.Controller_multi_policy_sum_of_gaussians_with_angles_numpy.get_np_policy"]], "energyshapingpflandlqrcontroller (class in double_pendulum.controller.partial_feedback_linearization.pfl)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController"]], "energyshapingpflcontroller (class in double_pendulum.controller.partial_feedback_linearization.pfl)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController"]], "symbolicpflandlqrcontroller (class in double_pendulum.controller.partial_feedback_linearization.symbolic_pfl)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController"]], "symbolicpflcontroller (class in double_pendulum.controller.partial_feedback_linearization.symbolic_pfl)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController"]], "double_pendulum.controller.partial_feedback_linearization": [[29, "module-double_pendulum.controller.partial_feedback_linearization"]], "double_pendulum.controller.partial_feedback_linearization.pfl": [[29, "module-double_pendulum.controller.partial_feedback_linearization.pfl"]], "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl": [[29, "module-double_pendulum.controller.partial_feedback_linearization.symbolic_pfl"]], "get_control_output_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.get_control_output_"]], "init_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController.init_"]], "init_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.init_"]], "init_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.init_"]], "save_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.save_"]], "save_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.save_"]], "save_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.save_"]], "set_cost_parameters() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.set_cost_parameters"]], "set_cost_parameters() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.set_cost_parameters"]], "set_cost_parameters_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.set_cost_parameters_"]], "set_cost_parameters_() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.set_cost_parameters_"]], "set_goal() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLAndLQRController.set_goal"]], "set_goal() (double_pendulum.controller.partial_feedback_linearization.pfl.energyshapingpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.pfl.EnergyShapingPFLController.set_goal"]], "set_goal() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflandlqrcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLAndLQRController.set_goal"]], "set_goal() (double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.symbolicpflcontroller method)": [[29, "double_pendulum.controller.partial_feedback_linearization.symbolic_pfl.SymbolicPFLController.set_goal"]], "pointpidcontroller (class in double_pendulum.controller.pid.point_pid_controller)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController"]], "trajpidcontroller (class in double_pendulum.controller.pid.trajectory_pid_controller)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController"]], "double_pendulum.controller.pid": [[30, "module-double_pendulum.controller.pid"]], "double_pendulum.controller.pid.point_pid_controller": [[30, "module-double_pendulum.controller.pid.point_pid_controller"]], "double_pendulum.controller.pid.trajectory_pid_controller": [[30, "module-double_pendulum.controller.pid.trajectory_pid_controller"]], "get_control_output_() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.get_control_output_"]], "get_init_trajectory() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.get_init_trajectory"]], "init_() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.init_"]], "init_() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.init_"]], "save_() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.save_"]], "save_() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.save_"]], "set_goal() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.set_goal"]], "set_parameters() (double_pendulum.controller.pid.point_pid_controller.pointpidcontroller method)": [[30, "double_pendulum.controller.pid.point_pid_controller.PointPIDController.set_parameters"]], "set_parameters() (double_pendulum.controller.pid.trajectory_pid_controller.trajpidcontroller method)": [[30, "double_pendulum.controller.pid.trajectory_pid_controller.TrajPIDController.set_parameters"]], "controller_random_exploration (class in double_pendulum.controller.random_exploration.random_exploration_controller)": [[31, "double_pendulum.controller.random_exploration.random_exploration_controller.Controller_Random_exploration"]], "double_pendulum.controller.random_exploration": [[31, "module-double_pendulum.controller.random_exploration"]], "double_pendulum.controller.random_exploration.random_exploration_controller": [[31, "module-double_pendulum.controller.random_exploration.random_exploration_controller"]], "get_control_output_() (double_pendulum.controller.random_exploration.random_exploration_controller.controller_random_exploration method)": [[31, "double_pendulum.controller.random_exploration.random_exploration_controller.Controller_Random_exploration.get_control_output_"]], "init_profile() (double_pendulum.controller.random_exploration.random_exploration_controller.controller_random_exploration method)": [[31, "double_pendulum.controller.random_exploration.random_exploration_controller.Controller_Random_exploration.init_profile"]], "feedforwardcontroller (class in double_pendulum.controller.trajectory_following.feed_forward)": [[32, "double_pendulum.controller.trajectory_following.feed_forward.FeedForwardController"]], "trajectorycontroller (class in double_pendulum.controller.trajectory_following.trajectory_controller)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryController"]], "trajectoryinterpcontroller (class in double_pendulum.controller.trajectory_following.trajectory_controller)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController"]], "double_pendulum.controller.trajectory_following": [[32, "module-double_pendulum.controller.trajectory_following"]], "double_pendulum.controller.trajectory_following.feed_forward": [[32, "module-double_pendulum.controller.trajectory_following.feed_forward"]], "double_pendulum.controller.trajectory_following.trajectory_controller": [[32, "module-double_pendulum.controller.trajectory_following.trajectory_controller"]], "get_control_output_() (double_pendulum.controller.trajectory_following.feed_forward.feedforwardcontroller method)": [[32, "double_pendulum.controller.trajectory_following.feed_forward.FeedForwardController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectorycontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectoryinterpcontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController.get_control_output_"]], "get_init_trajectory() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectorycontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectoryinterpcontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController.get_init_trajectory"]], "save_() (double_pendulum.controller.trajectory_following.feed_forward.feedforwardcontroller method)": [[32, "double_pendulum.controller.trajectory_following.feed_forward.FeedForwardController.save_"]], "save_() (double_pendulum.controller.trajectory_following.trajectory_controller.trajectoryinterpcontroller method)": [[32, "double_pendulum.controller.trajectory_following.trajectory_controller.TrajectoryInterpController.save_"]], "tvlqrcontroller (class in double_pendulum.controller.tvlqr.tvlqr_controller)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController"]], "tvlqrcontroller (class in double_pendulum.controller.tvlqr.tvlqr_controller_drake)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController"]], "double_pendulum.controller.tvlqr": [[33, "module-double_pendulum.controller.tvlqr"]], "double_pendulum.controller.tvlqr.tvlqr_controller": [[33, "module-double_pendulum.controller.tvlqr.tvlqr_controller"]], "double_pendulum.controller.tvlqr.tvlqr_controller_drake": [[33, "module-double_pendulum.controller.tvlqr.tvlqr_controller_drake"]], "get_control_output_() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.get_control_output_"]], "get_control_output_() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.get_control_output_"]], "get_init_trajectory() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.get_init_trajectory"]], "get_init_trajectory() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.get_init_trajectory"]], "init_() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.init_"]], "init_() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.init_"]], "save_() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.save_"]], "save_() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.save_"]], "set_cost_parameters() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.set_cost_parameters"]], "set_cost_parameters() (double_pendulum.controller.tvlqr.tvlqr_controller_drake.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller_drake.TVLQRController.set_cost_parameters"]], "set_goal() (double_pendulum.controller.tvlqr.tvlqr_controller.tvlqrcontroller method)": [[33, "double_pendulum.controller.tvlqr.tvlqr_controller.TVLQRController.set_goal"]], "videowriterwidget (class in double_pendulum.experiments.video_recording)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget"]], "double_pendulum.experiments": [[34, "module-double_pendulum.experiments"]], "double_pendulum.experiments.experimental_utils": [[34, "module-double_pendulum.experiments.experimental_utils"]], "double_pendulum.experiments.hardware_control_loop_mjbots": [[34, "module-double_pendulum.experiments.hardware_control_loop_mjbots"]], "double_pendulum.experiments.hardware_control_loop_tmotors": [[34, "module-double_pendulum.experiments.hardware_control_loop_tmotors"]], "double_pendulum.experiments.performance_profiler": [[34, "module-double_pendulum.experiments.performance_profiler"]], "double_pendulum.experiments.video_recording": [[34, "module-double_pendulum.experiments.video_recording"]], "motor_send_n_commands() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.motor_send_n_commands"]], "motor_send_n_commands2() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.motor_send_n_commands2"]], "motor_speed_test() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.motor_speed_test"]], "motor_speed_test2() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.motor_speed_test2"]], "profiler() (in module double_pendulum.experiments.performance_profiler)": [[34, "double_pendulum.experiments.performance_profiler.profiler"]], "rad2rev() (in module double_pendulum.experiments.experimental_utils)": [[34, "double_pendulum.experiments.experimental_utils.rad2rev"]], "rev2rad() (in module double_pendulum.experiments.experimental_utils)": [[34, "double_pendulum.experiments.experimental_utils.rev2rad"]], "run_experiment() (in module double_pendulum.experiments.hardware_control_loop_tmotors)": [[34, "double_pendulum.experiments.hardware_control_loop_tmotors.run_experiment"]], "save_data() (in module double_pendulum.experiments.experimental_utils)": [[34, "double_pendulum.experiments.experimental_utils.save_data"]], "save_frame() (double_pendulum.experiments.video_recording.videowriterwidget method)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget.save_frame"]], "setzeroposition() (in module double_pendulum.experiments.experimental_utils)": [[34, "double_pendulum.experiments.experimental_utils.setZeroPosition"]], "show_frame() (double_pendulum.experiments.video_recording.videowriterwidget method)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget.show_frame"]], "start_recording() (double_pendulum.experiments.video_recording.videowriterwidget method)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget.start_recording"]], "update() (double_pendulum.experiments.video_recording.videowriterwidget method)": [[34, "double_pendulum.experiments.video_recording.VideoWriterWidget.update"]], "abstractfilter (class in double_pendulum.filter.abstract_filter)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter"]], "butterworth_filter (class in double_pendulum.filter.butterworth)": [[35, "double_pendulum.filter.butterworth.butterworth_filter"]], "double_pendulum.filter": [[35, "module-double_pendulum.filter"]], "double_pendulum.filter.abstract_filter": [[35, "module-double_pendulum.filter.abstract_filter"]], "double_pendulum.filter.butterworth": [[35, "module-double_pendulum.filter.butterworth"]], "double_pendulum.filter.identity": [[35, "module-double_pendulum.filter.identity"]], "double_pendulum.filter.kalman": [[35, "module-double_pendulum.filter.kalman"]], "double_pendulum.filter.lowpass": [[35, "module-double_pendulum.filter.lowpass"]], "double_pendulum.filter.running_mean": [[35, "module-double_pendulum.filter.running_mean"]], "double_pendulum.filter.unscented_kalman": [[35, "module-double_pendulum.filter.unscented_kalman"]], "get_filtered_state() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.get_filtered_state"]], "get_filtered_state_() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.butterworth.butterworth_filter method)": [[35, "double_pendulum.filter.butterworth.butterworth_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.identity.identity_filter method)": [[35, "double_pendulum.filter.identity.identity_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.kalman.kalman_filter method)": [[35, "double_pendulum.filter.kalman.kalman_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.lowpass.lowpass_filter method)": [[35, "double_pendulum.filter.lowpass.lowpass_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.running_mean.runningmean_filter method)": [[35, "double_pendulum.filter.running_mean.runningmean_filter.get_filtered_state_"]], "get_filtered_state_() (double_pendulum.filter.unscented_kalman.unscentedkalman_filter method)": [[35, "double_pendulum.filter.unscented_kalman.unscentedkalman_filter.get_filtered_state_"]], "iden() (in module double_pendulum.filter.unscented_kalman)": [[35, "double_pendulum.filter.unscented_kalman.iden"]], "identity_filter (class in double_pendulum.filter.identity)": [[35, "double_pendulum.filter.identity.identity_filter"]], "init() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.init"]], "init_() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.init_"]], "init_() (double_pendulum.filter.butterworth.butterworth_filter method)": [[35, "double_pendulum.filter.butterworth.butterworth_filter.init_"]], "init_() (double_pendulum.filter.identity.identity_filter method)": [[35, "double_pendulum.filter.identity.identity_filter.init_"]], "init_() (double_pendulum.filter.kalman.kalman_filter method)": [[35, "double_pendulum.filter.kalman.kalman_filter.init_"]], "init_() (double_pendulum.filter.lowpass.lowpass_filter method)": [[35, "double_pendulum.filter.lowpass.lowpass_filter.init_"]], "init_() (double_pendulum.filter.running_mean.runningmean_filter method)": [[35, "double_pendulum.filter.running_mean.runningmean_filter.init_"]], "init_() (double_pendulum.filter.unscented_kalman.unscentedkalman_filter method)": [[35, "double_pendulum.filter.unscented_kalman.unscentedkalman_filter.init_"]], "kalman_filter (class in double_pendulum.filter.kalman)": [[35, "double_pendulum.filter.kalman.kalman_filter"]], "lowpass_filter (class in double_pendulum.filter.lowpass)": [[35, "double_pendulum.filter.lowpass.lowpass_filter"]], "runningmean_filter (class in double_pendulum.filter.running_mean)": [[35, "double_pendulum.filter.running_mean.runningmean_filter"]], "save() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.save"]], "save_() (double_pendulum.filter.abstract_filter.abstractfilter method)": [[35, "double_pendulum.filter.abstract_filter.AbstractFilter.save_"]], "save_() (double_pendulum.filter.butterworth.butterworth_filter method)": [[35, "double_pendulum.filter.butterworth.butterworth_filter.save_"]], "save_() (double_pendulum.filter.identity.identity_filter method)": [[35, "double_pendulum.filter.identity.identity_filter.save_"]], "save_() (double_pendulum.filter.kalman.kalman_filter method)": [[35, "double_pendulum.filter.kalman.kalman_filter.save_"]], "save_() (double_pendulum.filter.lowpass.lowpass_filter method)": [[35, "double_pendulum.filter.lowpass.lowpass_filter.save_"]], "save_() (double_pendulum.filter.running_mean.runningmean_filter method)": [[35, "double_pendulum.filter.running_mean.runningmean_filter.save_"]], "save_() (double_pendulum.filter.unscented_kalman.unscentedkalman_filter method)": [[35, "double_pendulum.filter.unscented_kalman.unscentedkalman_filter.save_"]], "unscentedkalman_filter (class in double_pendulum.filter.unscented_kalman)": [[35, "double_pendulum.filter.unscented_kalman.unscentedkalman_filter"]], "doublependulumplant (class in double_pendulum.model.plant)": [[36, "double_pendulum.model.plant.DoublePendulumPlant"]], "i1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.I1"]], "i2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.I2"]], "ir_sym (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.Ir_sym"]], "symbolicdoublependulum (class in double_pendulum.model.symbolic_plant)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum"]], "angular_momentum_base() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.angular_momentum_base"]], "angular_momentum_ddot_base() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.angular_momentum_ddot_base"]], "angular_momentum_dot_base() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.angular_momentum_dot_base"]], "b1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.b1"]], "b2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.b2"]], "base (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.base"]], "center_of_mass() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.center_of_mass"]], "cf1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.cf1"]], "cf2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.cf2"]], "com_dot() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.com_dot"]], "coriolis_matrix() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.coriolis_matrix"]], "coriolis_matrix() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.coriolis_matrix"]], "coulomb_vector() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.coulomb_vector"]], "coulomb_vector() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.coulomb_vector"]], "diff_to_matrix() (in module double_pendulum.model.symbolic_plant)": [[36, "double_pendulum.model.symbolic_plant.diff_to_matrix"]], "dof (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.dof"]], "double_pendulum.model": [[36, "module-double_pendulum.model"]], "double_pendulum.model.friction_matrix": [[36, "module-double_pendulum.model.friction_matrix"]], "double_pendulum.model.model_parameters": [[36, "module-double_pendulum.model.model_parameters"]], "double_pendulum.model.plant": [[36, "module-double_pendulum.model.plant"]], "double_pendulum.model.symbolic_plant": [[36, "module-double_pendulum.model.symbolic_plant"]], "equation_of_motion() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.equation_of_motion"]], "forward_dynamics() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.forward_dynamics"]], "forward_dynamics() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.forward_dynamics"]], "forward_kinematics() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.forward_kinematics"]], "forward_kinematics() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.forward_kinematics"]], "g_sym (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.g_sym"]], "get_alin() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Alin"]], "get_blin() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Blin"]], "get_cx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Cx"]], "get_fx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Fx"]], "get_gx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Gx"]], "get_minvx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Minvx"]], "get_mx() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.get_Mx"]], "get_dict() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.get_dict"]], "gr_sym (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.gr_sym"]], "gravity_vector() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.gravity_vector"]], "gravity_vector() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.gravity_vector"]], "inverse_dynamics() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.inverse_dynamics"]], "kinetic_energy() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.kinetic_energy"]], "kinetic_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.kinetic_energy"]], "l1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.l1"]], "l2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.l2"]], "lambdify_matrices() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.lambdify_matrices"]], "linear_matrices() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.linear_matrices"]], "linear_matrices() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.linear_matrices"]], "linear_matrices_discrete() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.linear_matrices_discrete"]], "load_dict() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.load_dict"]], "load_model() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.load_model"]], "load_yaml() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.load_yaml"]], "m1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.m1"]], "m2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.m2"]], "mass_matrix() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.mass_matrix"]], "mass_matrix() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.mass_matrix"]], "model_parameters (class in double_pendulum.model.model_parameters)": [[36, "double_pendulum.model.model_parameters.model_parameters"]], "n_actuators (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.n_actuators"]], "n_links (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.n_links"]], "potential_energy() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.potential_energy"]], "potential_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.potential_energy"]], "q (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q"]], "q01 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q01"]], "q02 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q02"]], "q0d1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q0d1"]], "q0d2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q0d2"]], "q1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q1"]], "q2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.q2"]], "qd (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qd"]], "qd1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qd1"]], "qd2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qd2"]], "qdd (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qdd"]], "qdd1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qdd1"]], "qdd2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.qdd2"]], "r1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.r1"]], "r2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.r2"]], "replace_parameters() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.replace_parameters"]], "rhs() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.rhs"]], "rhs() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.rhs"]], "save_dict() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.save_dict"]], "set_cfric() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_cfric"]], "set_com() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_com"]], "set_damping() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_damping"]], "set_dof() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_dof"]], "set_gear_ratio() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_gear_ratio"]], "set_gravity() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_gravity"]], "set_inertia() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_inertia"]], "set_length() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_length"]], "set_mass() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_mass"]], "set_motor_inertia() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_motor_inertia"]], "set_torque_limit() (double_pendulum.model.model_parameters.model_parameters method)": [[36, "double_pendulum.model.model_parameters.model_parameters.set_torque_limit"]], "sub_symbols() (in module double_pendulum.model.symbolic_plant)": [[36, "double_pendulum.model.symbolic_plant.sub_symbols"]], "symbolic_coriolis_matrix() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_coriolis_matrix"]], "symbolic_coulomb_vector() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_coulomb_vector"]], "symbolic_gravity_vector() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_gravity_vector"]], "symbolic_kinetic_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_kinetic_energy"]], "symbolic_linear_matrices() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_linear_matrices"]], "symbolic_mass_matrix() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_mass_matrix"]], "symbolic_potential_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_potential_energy"]], "symbolic_total_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.symbolic_total_energy"]], "tl1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.tl1"]], "tl2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.tl2"]], "total_energy() (double_pendulum.model.plant.doublependulumplant method)": [[36, "double_pendulum.model.plant.DoublePendulumPlant.total_energy"]], "total_energy() (double_pendulum.model.symbolic_plant.symbolicdoublependulum method)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.total_energy"]], "u (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u"]], "u0 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u0"]], "u01 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u01"]], "u02 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u02"]], "u1 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u1"]], "u2 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.u2"]], "vector_mult() (in module double_pendulum.model.symbolic_plant)": [[36, "double_pendulum.model.symbolic_plant.vector_mult"]], "x (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.x"]], "x0 (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.x0"]], "xd (double_pendulum.model.symbolic_plant.symbolicdoublependulum attribute)": [[36, "double_pendulum.model.symbolic_plant.SymbolicDoublePendulum.xd"]], "yb_friction_matrix() (in module double_pendulum.model.friction_matrix)": [[36, "double_pendulum.model.friction_matrix.yb_friction_matrix"]], "customenv (class in double_pendulum.simulation.gym_env)": [[37, "double_pendulum.simulation.gym_env.CustomEnv"]], "simulator (class in double_pendulum.simulation.simulation)": [[37, "double_pendulum.simulation.simulation.Simulator"]], "action_space (double_pendulum.simulation.gym_env.customenv attribute)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.action_space"]], "controller_step() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.controller_step"]], "double_pendulum.simulation": [[37, "module-double_pendulum.simulation"]], "double_pendulum.simulation.gym_env": [[37, "module-double_pendulum.simulation.gym_env"]], "double_pendulum.simulation.perturbations": [[37, "module-double_pendulum.simulation.perturbations"]], "double_pendulum.simulation.simulation": [[37, "module-double_pendulum.simulation.simulation"]], "double_pendulum.simulation.visualization": [[37, "module-double_pendulum.simulation.visualization"]], "double_pendulum_dynamics_func (class in double_pendulum.simulation.gym_env)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func"]], "euler_integrator() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.euler_integrator"]], "get_arrow() (in module double_pendulum.simulation.visualization)": [[37, "double_pendulum.simulation.visualization.get_arrow"]], "get_control_u() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_control_u"]], "get_gaussian_perturbation_array() (in module double_pendulum.simulation.perturbations)": [[37, "double_pendulum.simulation.perturbations.get_gaussian_perturbation_array"]], "get_measurement() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_measurement"]], "get_random_gauss_perturbation_array() (in module double_pendulum.simulation.perturbations)": [[37, "double_pendulum.simulation.perturbations.get_random_gauss_perturbation_array"]], "get_real_applied_u() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_real_applied_u"]], "get_state() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_state"]], "get_trajectory_data() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.get_trajectory_data"]], "integration() (double_pendulum.simulation.gym_env.double_pendulum_dynamics_func method)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func.integration"]], "normalize_state() (double_pendulum.simulation.gym_env.double_pendulum_dynamics_func method)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func.normalize_state"]], "observation_space (double_pendulum.simulation.gym_env.customenv attribute)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.observation_space"]], "plot_perturbation_array() (in module double_pendulum.simulation.perturbations)": [[37, "double_pendulum.simulation.perturbations.plot_perturbation_array"]], "record_data() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.record_data"]], "render() (double_pendulum.simulation.gym_env.customenv method)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.render"]], "reset() (double_pendulum.simulation.gym_env.customenv method)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.reset"]], "reset() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.reset"]], "reset_data_recorder() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.reset_data_recorder"]], "runge_integrator() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.runge_integrator"]], "set_arrow_properties() (in module double_pendulum.simulation.visualization)": [[37, "double_pendulum.simulation.visualization.set_arrow_properties"]], "set_disturbances() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_disturbances"]], "set_measurement_parameters() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_measurement_parameters"]], "set_motor_parameters() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_motor_parameters"]], "set_process_noise() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_process_noise"]], "set_state() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.set_state"]], "simulate() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.simulate"]], "simulate_and_animate() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.simulate_and_animate"]], "step() (double_pendulum.simulation.gym_env.customenv method)": [[37, "double_pendulum.simulation.gym_env.CustomEnv.step"]], "step() (double_pendulum.simulation.simulation.simulator method)": [[37, "double_pendulum.simulation.simulation.Simulator.step"]], "unscale_action() (double_pendulum.simulation.gym_env.double_pendulum_dynamics_func method)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func.unscale_action"]], "unscale_state() (double_pendulum.simulation.gym_env.double_pendulum_dynamics_func method)": [[37, "double_pendulum.simulation.gym_env.double_pendulum_dynamics_func.unscale_state"]], "double_pendulum.system_identification": [[38, "module-double_pendulum.system_identification"]], "double_pendulum.system_identification.loss": [[38, "module-double_pendulum.system_identification.loss"]], "double_pendulum.system_identification.plotting": [[38, "module-double_pendulum.system_identification.plotting"]], "errfunc (class in double_pendulum.system_identification.loss)": [[38, "double_pendulum.system_identification.loss.errfunc"]], "errfunc_nl (class in double_pendulum.system_identification.loss)": [[38, "double_pendulum.system_identification.loss.errfunc_nl"]], "plot_torques() (in module double_pendulum.system_identification.plotting)": [[38, "double_pendulum.system_identification.plotting.plot_torques"]], "rescale_pars() (double_pendulum.system_identification.loss.errfunc method)": [[38, "double_pendulum.system_identification.loss.errfunc.rescale_pars"]], "rescale_pars() (double_pendulum.system_identification.loss.errfunc_nl method)": [[38, "double_pendulum.system_identification.loss.errfunc_nl.rescale_pars"]], "unscale_pars() (double_pendulum.system_identification.loss.errfunc method)": [[38, "double_pendulum.system_identification.loss.errfunc.unscale_pars"]], "unscale_pars() (double_pendulum.system_identification.loss.errfunc_nl method)": [[38, "double_pendulum.system_identification.loss.errfunc_nl.unscale_pars"]], "double_pendulum.trajectory_optimization": [[39, "module-double_pendulum.trajectory_optimization"]], "collocationconstraint() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.CollocationConstraint"]], "computetrajectory() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.ComputeTrajectory"]], "dircol (class in double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol"]], "equationofmotion() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.EquationOfMotion"]], "interpolationconstraint() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.InterpolationConstraint"]], "mathematicalprogram() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.dircol method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2.DirCol.MathematicalProgram"]], "animate_trajectory() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator.animate_trajectory"]], "animation() (in module double_pendulum.trajectory_optimization.direct_collocation.dircol_utils)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils.animation"]], "compute_trajectory() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator.compute_trajectory"]], "construct_trajectories() (in module double_pendulum.trajectory_optimization.direct_collocation.dircol_utils)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils.construct_trajectories"]], "create_plant_from_urdf() (in module double_pendulum.trajectory_optimization.direct_collocation.dircol_utils)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils.create_plant_from_urdf"]], "dircol_calculator (class in double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator"]], "double_pendulum.trajectory_optimization.direct_collocation": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation"]], "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.dircol_utils"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake"]], "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2": [[40, "module-double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake2"]], "extract_data_from_polynomial() (in module double_pendulum.trajectory_optimization.direct_collocation.dircol_utils)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.dircol_utils.extract_data_from_polynomial"]], "get_trajectory() (double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator method)": [[40, "double_pendulum.trajectory_optimization.direct_collocation.direct_collocation_drake.dircol_calculator.get_trajectory"]], "compute_trajectory() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.compute_trajectory"]], "double_pendulum.trajectory_optimization.ilqr": [[41, "module-double_pendulum.trajectory_optimization.ilqr"]], "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp": [[41, "module-double_pendulum.trajectory_optimization.ilqr.ilqr_cpp"]], "double_pendulum.trajectory_optimization.ilqr.paropt": [[41, "module-double_pendulum.trajectory_optimization.ilqr.paropt"]], "ilqr_calculator (class in double_pendulum.trajectory_optimization.ilqr.ilqr_cpp)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator"]], "ilqr_trajopt_loss (class in double_pendulum.trajectory_optimization.ilqr.paropt)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss"]], "rescale_pars() (double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss method)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss.rescale_pars"]], "save_trajectory_csv() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.save_trajectory_csv"]], "set_cost_parameters() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_cost_parameters"]], "set_cost_parameters_() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_cost_parameters_"]], "set_goal() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_goal"]], "set_model_parameters() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_model_parameters"]], "set_model_parameters() (double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss method)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss.set_model_parameters"]], "set_parameters() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_parameters"]], "set_parameters() (double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss method)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss.set_parameters"]], "set_start() (double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator method)": [[41, "double_pendulum.trajectory_optimization.ilqr.ilqr_cpp.ilqr_calculator.set_start"]], "unscale_pars() (double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss method)": [[41, "double_pendulum.trajectory_optimization.ilqr.paropt.ilqr_trajopt_loss.unscale_pars"]], "fitpiecewisepolynomial (class in double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial"]], "interpolatematrix (class in double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.InterpolateMatrix"]], "interpolatevector (class in double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.InterpolateVector"]], "resampletrajectory() (in module double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.ResampleTrajectory"]], "cma_optimization() (in module double_pendulum.utils.optimization)": [[42, "double_pendulum.utils.optimization.cma_optimization"]], "concatenate_trajectories() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.concatenate_trajectories"]], "create_section_poly() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.create_section_poly"]], "determin_poly() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.determin_poly"]], "double_pendulum.utils": [[42, "module-double_pendulum.utils"]], "double_pendulum.utils.cmaes_controller_par_optimizer": [[42, "module-double_pendulum.utils.cmaes_controller_par_optimizer"]], "double_pendulum.utils.csv_trajectory": [[42, "module-double_pendulum.utils.csv_trajectory"]], "double_pendulum.utils.lists": [[42, "module-double_pendulum.utils.lists"]], "double_pendulum.utils.optimization": [[42, "module-double_pendulum.utils.optimization"]], "double_pendulum.utils.pcw_polynomial": [[42, "module-double_pendulum.utils.pcw_polynomial"]], "double_pendulum.utils.plotting": [[42, "module-double_pendulum.utils.plotting"]], "double_pendulum.utils.urdfs": [[42, "module-double_pendulum.utils.urdfs"]], "double_pendulum.utils.wrap_angles": [[42, "module-double_pendulum.utils.wrap_angles"]], "end_time() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.end_time"]], "generate_urdf() (in module double_pendulum.utils.urdfs)": [[42, "double_pendulum.utils.urdfs.generate_urdf"]], "get_value() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.get_value"]], "get_value() (double_pendulum.utils.pcw_polynomial.interpolatematrix method)": [[42, "double_pendulum.utils.pcw_polynomial.InterpolateMatrix.get_value"]], "get_value() (double_pendulum.utils.pcw_polynomial.interpolatevector method)": [[42, "double_pendulum.utils.pcw_polynomial.InterpolateVector.get_value"]], "load_kk_values() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.load_Kk_values"]], "load_trajectory() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.load_trajectory"]], "load_trajectory_full() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.load_trajectory_full"]], "obj_to_list() (in module double_pendulum.utils.lists)": [[42, "double_pendulum.utils.lists.obj_to_list"]], "plot_figures() (in module double_pendulum.utils.plotting)": [[42, "double_pendulum.utils.plotting.plot_figures"]], "plot_timeseries() (in module double_pendulum.utils.plotting)": [[42, "double_pendulum.utils.plotting.plot_timeseries"]], "poly1() (in module double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.poly1"]], "poly2() (in module double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.poly2"]], "poly3() (in module double_pendulum.utils.pcw_polynomial)": [[42, "double_pendulum.utils.pcw_polynomial.poly3"]], "remove_namespaces() (in module double_pendulum.utils.urdfs)": [[42, "double_pendulum.utils.urdfs.remove_namespaces"]], "rescale_pars() (double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss method)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss.rescale_pars"]], "rescale_pars() (double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss method)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss.rescale_pars"]], "save_trajectory() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.save_trajectory"]], "scipy_par_optimization() (in module double_pendulum.utils.optimization)": [[42, "double_pendulum.utils.optimization.scipy_par_optimization"]], "solve_least_squares() (in module double_pendulum.utils.optimization)": [[42, "double_pendulum.utils.optimization.solve_least_squares"]], "split_data() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.split_data"]], "start_time() (double_pendulum.utils.pcw_polynomial.fitpiecewisepolynomial method)": [[42, "double_pendulum.utils.pcw_polynomial.FitPiecewisePolynomial.start_time"]], "swingup_loss (class in double_pendulum.utils.cmaes_controller_par_optimizer)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss"]], "traj_opt_loss (class in double_pendulum.utils.cmaes_controller_par_optimizer)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss"]], "trajectory_properties() (in module double_pendulum.utils.csv_trajectory)": [[42, "double_pendulum.utils.csv_trajectory.trajectory_properties"]], "unscale_pars() (double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss method)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.swingup_loss.unscale_pars"]], "unscale_pars() (double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss method)": [[42, "double_pendulum.utils.cmaes_controller_par_optimizer.traj_opt_loss.unscale_pars"]], "wrap_angles() (in module double_pendulum.utils.wrap_angles)": [[42, "double_pendulum.utils.wrap_angles.wrap_angles"]], "wrap_angles_diff() (in module double_pendulum.utils.wrap_angles)": [[42, "double_pendulum.utils.wrap_angles.wrap_angles_diff"]], "wrap_angles_top() (in module double_pendulum.utils.wrap_angles)": [[42, "double_pendulum.utils.wrap_angles.wrap_angles_top"]]}}) \ No newline at end of file