diff --git a/app/handle_one_graph.py b/app/handle_one_graph.py index bb58d1515b6e272f23a4dd8445c601b4063103cb..b2521a8a4c01567d89deffd0b3a813457a7790ec 100644 --- a/app/handle_one_graph.py +++ b/app/handle_one_graph.py @@ -13,7 +13,7 @@ from rostok.library.rule_sets.simple_designs import ( from rostok.simulation_chrono.basic_simulation import SimulationResult # create blueprint for object to grasp -grasp_object_blueprint = get_object_sphere(0.05) +grasp_object_blueprint = get_object_sphere(0.014) # grasp_object_blueprint = get_object_ellipsoid(0.14, 0.14, 0.22, 0, mass = 0.188) # grasp_object_blueprint = get_object_box(0.155, 0.127, 0.088*2, 0, mass = 0.176) # grasp_object_blueprint = get_object_box(0.146, 0.147,0.25, 0, mass=0.164) @@ -42,15 +42,16 @@ graph = get_two_link_three_finger() graph = get_three_same_link_one_finger() # graph = get_two_link_three_finger_rotated() # graph = get_three_link_three_finger() -control = [15, 15, 15] +control = [32, 15, 15] data = control_optimizer.optim_parameters2data_control(control, graph) control_optimizer.data.create_pulley_data_file = True -vis = True +vis = False #simulation_output: SimulationResult = simulation_manager.run_simulation(graph, data, [[-45.0, 0.0],[-45,0],[-45,0]], vis, True) simulation_output: SimulationResult = simulation_manager.run_simulation( - graph, data, [[-25.0, 0, 0, 0], [-45, 0, 0], [-45, 0, 0]], vis, True) + graph, data, [[30.0, 55, 60, 0], [-45, 0, 0], [-45, 0, 0]], vis, True) + #graph, data, [[-25.0, 0, 0, 0], [-45, 0, 0], [-45, 0, 0]], vis, True) if not vis: fig = plt.figure(figsize=(12, 5)) time_vector = simulation_output.time_vector @@ -62,7 +63,8 @@ if not vis: force_data = simulation_output.environment_final_ds.get_data("forces")[0] force_data = [np.linalg.norm(x[0][1]) for x in force_data if len(x)!=0] - force_data = [x for x in force_data if x<20] + #force_data = [x for x in force_data if x<20] + force_data = force_data[200::] print(np.mean(force_data)) #plt.plot(time_vector, velocity_data) plt.plot(force_data) diff --git a/app/hyperparameters.py b/app/hyperparameters.py index f8a8f43e062322cea66e50e0d7633f87937424b2..56beae1f01fbd072d170867663ac8d2bd6bda5b6 100644 --- a/app/hyperparameters.py +++ b/app/hyperparameters.py @@ -25,7 +25,7 @@ TENDON_CONST = -5 TENDON_DISCRETE_FORCES = [10, 15, 20] #[10, 15, 20] TIME_STEP_SIMULATION = 0.0005 -GRASP_TIME = 1.5 +GRASP_TIME = 0.7 FORCE_TEST_TIME = 3 TIME_SIMULATION = 4.5 diff --git a/rostok/library/rule_sets/simple_designs.py b/rostok/library/rule_sets/simple_designs.py index 69e830cd4396cf3e2b63ccd25a5377576ccc419d..7ae8eeabd31aab672ea517bb4b651394060e0ba8 100644 --- a/rostok/library/rule_sets/simple_designs.py +++ b/rostok/library/rule_sets/simple_designs.py @@ -118,7 +118,7 @@ def get_three_link_one_finger(smc = False): graph = GraphGrammar() rules = ["Init", "AddFinger", "Terminal_Radial_Translate3", "Phalanx", "Phalanx", "Remove_FG", - "Terminal_Link3", "Terminal_Link2", "Terminal_Link1","Terminal_Base_Joint_2", "Terminal_Joint_1", "Terminal_Joint_2", + "Terminal_Link3", "Terminal_Link2", "Terminal_Link1","Terminal_Base_Joint_2", "Terminal_Joint_1", "Terminal_Joint_1", "RemoveFinger_N", "RemoveFinger_R", "RemoveFinger_RN", @@ -135,7 +135,7 @@ def get_three_same_link_one_finger(smc = False): graph = GraphGrammar() rules = ["Init", "AddFinger", "Terminal_Radial_Translate1", "Phalanx", "Phalanx", "Remove_FG", - "Terminal_Link1", "Terminal_Link1", "Terminal_Link1", "Terminal_Base_Joint_1", "Terminal_Joint_1", "Terminal_Joint_1", + "Terminal_Link1", "Terminal_Link1", "Terminal_Link1", "Terminal_Base_Joint_1", "Terminal_Joint_1", "Terminal_Joint_2", "RemoveFinger_N", "RemoveFinger_R", "RemoveFinger_RN", diff --git a/rostok/simulation_chrono/simulation_SMC.py b/rostok/simulation_chrono/simulation_SMC.py index cf268e55e6d8b794087b9dfbf591754d3a32416c..a99d866bc6e62006bca6564f43aa810f2220a0c9 100644 --- a/rostok/simulation_chrono/simulation_SMC.py +++ b/rostok/simulation_chrono/simulation_SMC.py @@ -116,7 +116,7 @@ class ChronoVisManager(): self.vis.SetWindowTitle('Grab demo') self.vis.Initialize() self.vis.AddSkyBox() - self.vis.AddCamera(chrono.ChVectorD(0.15, 0.30, -0.40)) + self.vis.AddCamera(chrono.ChVectorD(-0.15, 0.30, 0.40)) self.vis.AddTypicalLights() #self.vis.EnableCollisionShapeDrawing(True) diff --git a/rostok/simulation_chrono/simulation_scenario.py b/rostok/simulation_chrono/simulation_scenario.py index 2aa49307f6a8e432e956fb6f320e8d7105766791..dfc2af405ef194b5380b9bc5f58d8684664c720a 100644 --- a/rostok/simulation_chrono/simulation_scenario.py +++ b/rostok/simulation_chrono/simulation_scenario.py @@ -107,17 +107,21 @@ class SMCGrasp(ParametrizedSimulation): # grasp_object = self.grasp_object_callback() grasp_object = creator.create_environment_body(self.grasp_object_callback) grasp_object.body.SetNameString("Grasp_object") + #grasp_object.body.GetVisualShape(0).SetTexture("./YOBA.png") mass_object = grasp_object.body.GetMass() gravity = simulation.chrono_system.Get_G_acc().y # shake = YaxisShaker(1, 3, 0.5, float("inf")) grav_n_shake = ShakeAndNullGravity(mass_object*gravity, 3, 5, 3, 2, start_time=float("inf")) # the object positioning based on the AABB - set_covering_ellipsoid_based_position(grasp_object, - reference_point=chrono.ChVectorD(0, 0.1, 0)) + # set_covering_ellipsoid_based_position(grasp_object, + # reference_point=chrono.ChVectorD(-0.0, 0.06, 0)) + # set_covering_ellipsoid_based_position(grasp_object, + # reference_point=chrono.ChVectorD(-0.05, 0.06, 0.00)) simulation.env_creator.add_object(grasp_object, read_data=True, + is_fixed = True, force_torque_controller=grav_n_shake) # add design and determine the outer force if self.tendon: