Trajectory optimizer

Control optimizer

class rostok.trajectory_optimizer.control_optimizer.BasePrepareOptiVar(each_control_params: Any, control_class: Type[RobotControllerChrono], rewarder: SimulationReward | None, params_start_pos=None)

Base class for link optimise parametrs / control_class / reward

bound_parameters(graph: GraphGrammar, bound_1d: tuple[float, float])

A method for determining the relationship between boundaries and mechanism. Default implementation. Uses for calculate dimension. Args:

graph (GraphGrammar):

Returns:

list[tuple[float, float]]: list consists of bound_1d

build_starting_positions(graph: GraphGrammar)

Deafault method for generate start position

Args:

graph (GraphGrammar):

Returns:

_type_: _description_

is_vis_decision(graph: GraphGrammar)

If self.is_vis = True, can visualise experemnt. It’s default method. You can redefine this in child class. For example you can show only 1% of all graphs. Args:

graph (GraphGrammar): _description_

Returns:

_type_: _description_

reward_one_sim_scenario(x: list, graph: GraphGrammar, sim: ParametrizedSimulation)

Calculate one reward. Main function for GraphRewardCalculator clases.

Args:

x (list): optimise vector graph (GraphGrammar): _description_ sim (ParametrizedSimulation): _description_

Returns:

_type_: reward, vector, simulator

set_reward_fun(rewarder: SimulationReward)

Set reward function.

Args:

rewarder (SimulationReward): _description_

abstract x_to_control_params(graph: GraphGrammar, x: list)

Convert vector values to control params

Args:

graph (GraphGrammar): x (list): vector

class rostok.trajectory_optimizer.control_optimizer.BruteForceOptimisation1D(variants: list, simulation_scenario: list[ParametrizedSimulation], prepare_reward: BasePrepareOptiVar, weights: None | list[float] = None, num_cpu_workers=1, chunksize=1, timeout_parallel=300)

Find best reward by brute force all combinations of control

calculate_reward(graph: GraphGrammar)

Calc reward by sum from best reword from each simulation scenario. For each simulation scenario try all combination from self.variants. Combination calculates by generate_all_combine method.

Args:

graph (GraphGrammar): _description_

Returns:

_type_: _description_

generate_all_combine(graph: GraphGrammar)
prepare_weight_dict()
class rostok.trajectory_optimizer.control_optimizer.ConstTorqueOptiVar(rewarder: SimulationReward, params_start_pos=None)
bound_parameters(graph: GraphGrammar, bounds: tuple[float, float])

A method for determining the relationship between boundaries and mechanism. Default implementation. Uses for calculate dimension. Args:

graph (GraphGrammar):

Returns:

list[tuple[float, float]]: list consists of bound_1d

build_starting_positions(graph: GraphGrammar)

Deafault method for generate start position

Args:

graph (GraphGrammar):

Returns:

_type_: _description_

x_to_control_params(graph: GraphGrammar, x: list)

Convert vector values to control params

Args:

graph (GraphGrammar): x (list): vector

class rostok.trajectory_optimizer.control_optimizer.FromGraphOptimizer(params_dict: dict, simulation_scenario: list[ParametrizedSimulation], prepare_reward: BasePrepareOptiVar)
calculate_reward(graph: GraphGrammar)
create_vector_from_graph(graph: GraphGrammar)
class rostok.trajectory_optimizer.control_optimizer.GlobalOptimisationEachSim(simulation_scenario: list[~rostok.simulation_chrono.simulation_scenario.ParametrizedSimulation], prepare_reward: ~rostok.trajectory_optimizer.control_optimizer.BasePrepareOptiVar, bound: tuple[float, float], args_for_optimiser=None, optimisation_tool=<function direct>)

Class helps use global optimisation for find best control. Use BasePrepareOptiVar.

Args:

GraphRewardCalculator (_type_): _description_

calculate_reward(graph: GraphGrammar)
class rostok.trajectory_optimizer.control_optimizer.GraphRewardCalculator

Base class for calculate reward from graph

abstract calculate_reward(graph: GraphGrammar)
print_log()
class rostok.trajectory_optimizer.control_optimizer.TendonForceOptiVar(each_control_params: TendonControllerParameters, rewarder: SimulationReward | None = None, params_start_pos=None)
bound_parameters(graph: GraphGrammar, bounds: tuple[float, float])

Bounded by number of finger

Args:

graph (GraphGrammar): _description_ bounds (tuple[float, float]): _description_

Returns:

_type_: _description_

build_starting_positions(graph: GraphGrammar)

Deafault method for generate start position

Args:

graph (GraphGrammar):

Returns:

_type_: _description_

x_to_control_params(graph: GraphGrammar, x: list)

Convert vector values to control params

Args:

graph (GraphGrammar): x (list): vector