Skip to content

Commit

Permalink
tutorial update
Browse files Browse the repository at this point in the history
  • Loading branch information
MikhailChaikovskii committed Aug 5, 2024
1 parent 9fcdf31 commit 424caee
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 29 deletions.
4 changes: 2 additions & 2 deletions rostok/block_builder_chrono/block_classes.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,8 +300,8 @@ def _add_limiting_link(self, in_block: BuildingBody, out_block: BuildingBody,
p = joint_limiting_link.GetLimit_Rz()
#joint_limiting_link.
p.SetActive(True)
p.SetMax(0.01)
p.SetMin(-0.01)
p.SetMax(1)
p.SetMin(-1)
system.AddLink(joint_limiting_link)
system.Update()

Expand Down
99 changes: 72 additions & 27 deletions tests_jupyter/robotic_rules_tutorial.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -38,7 +38,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -64,7 +64,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -93,7 +93,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -129,7 +129,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -152,7 +152,7 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -180,7 +180,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -207,7 +207,7 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -225,7 +225,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -242,7 +242,7 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -276,7 +276,7 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 11,
"metadata": {},
"outputs": [
{
Expand Down Expand Up @@ -310,16 +310,25 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Jupyter environment detected. Enabling Open3D WebVisualizer.\n",
"[Open3D INFO] WebRTC GUI backend enabled.\n",
"[Open3D INFO] WebRTCWindowSystem: HTTP handshake server disabled.\n"
]
},
{
"data": {
"text/plain": [
"[[22], [6, 10, 13]]"
]
},
"execution_count": 13,
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
Expand All @@ -329,32 +338,68 @@
"from rostok.simulation_chrono.simulation_scenario import GraspScenario\n",
"from rostok.graph_grammar.node_block_typing import get_joint_matrix_from_graph, get_joint_vector_from_graph\n",
"\n",
"scenario = GraspScenario(10000, 1e-3)\n",
"\n",
"get_joint_matrix_from_graph(graph)\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 18,
"metadata": {},
"outputs": [
{
"ename": "AttributeError",
"evalue": "'NoneType' object has no attribute 'material'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[15], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m control \u001b[38;5;241m=\u001b[39m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124minitial_value\u001b[39m\u001b[38;5;124m\"\u001b[39m: [\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m4\u001b[39m}\n\u001b[1;32m----> 2\u001b[0m \u001b[43mscenario\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun_simulation\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgraph\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcontrol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstarting_positions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m7\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m7\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m5\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m5\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m30\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m60\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m30\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m60\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m30\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m60\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m30\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m60\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvis\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdelay\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32md:\\work\\projects\\rostok\\rostok\\simulation_chrono\\simulation_scenario.py:91\u001b[0m, in \u001b[0;36mGraspScenario.run_simulation\u001b[1;34m(self, graph, controller_data, starting_positions, vis, delay)\u001b[0m\n\u001b[0;32m 88\u001b[0m vis_manager \u001b[38;5;241m=\u001b[39m ChronoVisManager(delay)\n\u001b[0;32m 89\u001b[0m simulation \u001b[38;5;241m=\u001b[39m SingleRobotSimulation(system, env_creator, vis_manager)\n\u001b[1;32m---> 91\u001b[0m grasp_object \u001b[38;5;241m=\u001b[39m \u001b[43mcreator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate_environment_body\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgrasp_object_callback\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 92\u001b[0m grasp_object\u001b[38;5;241m.\u001b[39mbody\u001b[38;5;241m.\u001b[39mSetNameString(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mGrasp_object\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 93\u001b[0m set_covering_ellipsoid_based_position(grasp_object,\n\u001b[0;32m 94\u001b[0m reference_point\u001b[38;5;241m=\u001b[39mchrono\u001b[38;5;241m.\u001b[39mChVectorD(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0.1\u001b[39m, \u001b[38;5;241m0\u001b[39m))\n",
"File \u001b[1;32md:\\work\\projects\\rostok\\rostok\\block_builder_chrono\\block_builder_chrono_api.py:42\u001b[0m, in \u001b[0;36mChronoBlockCreatorInterface.create_environment_body\u001b[1;34m(cls, blueprint)\u001b[0m\n\u001b[0;32m 39\u001b[0m \u001b[38;5;129m@classmethod\u001b[39m\n\u001b[0;32m 40\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcreate_environment_body\u001b[39m(\u001b[38;5;28mcls\u001b[39m, blueprint: EnvironmentBodyBlueprint) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m ChronoEasyShapeObject:\n\u001b[0;32m 41\u001b[0m blueprint_chrono \u001b[38;5;241m=\u001b[39m deepcopy(blueprint)\n\u001b[1;32m---> 42\u001b[0m material_blue \u001b[38;5;241m=\u001b[39m \u001b[43mblueprint_chrono\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmaterial\u001b[49m\n\u001b[0;32m 43\u001b[0m \u001b[38;5;66;03m# This works because the name of initialization arguments is equal to Blueprint\u001b[39;00m\n\u001b[0;32m 44\u001b[0m blueprint_chrono\u001b[38;5;241m.\u001b[39mmaterial \u001b[38;5;241m=\u001b[39m material_blue \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n",
"\u001b[1;31mAttributeError\u001b[0m: 'NoneType' object has no attribute 'material'"
"name": "stdout",
"output_type": "stream",
"text": [
"Irrlicht Engine version 1.8.5\n",
"Linux 6.5.0-45-generic #45~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Jul 15 16:40:02 UTC 2 x86_64\n",
"Using plain X visual\n",
"This driver is not available in Linux. Try OpenGL or Software renderer.\n",
"Irrlicht Engine version 1.8.5\n",
"Linux 6.5.0-45-generic #45~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Jul 15 16:40:02 UTC 2 x86_64\n",
"Using renderer: OpenGL 4.6\n",
"Mesa Intel(R) UHD Graphics 630 (CFL GT2): Intel\n",
"OpenGL driver version is 1.2 or better.\n",
"GLSL version: 4.6\n",
"Loaded texture: /home/be2r-lab-210134/Python/anaconda3/envs/rostok/share/chrono/data/fonts/arial80.bmp\n",
"Loaded texture: /home/be2r-lab-210134/Python/anaconda3/envs/rostok/share/chrono/data/skybox/sky_lf.jpg\n",
"Loaded texture: /home/be2r-lab-210134/Python/anaconda3/envs/rostok/share/chrono/data/skybox/sky_up.jpg\n",
"Loaded texture: /home/be2r-lab-210134/Python/anaconda3/envs/rostok/share/chrono/data/skybox/sky_dn.jpg\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Cannot use default video driver - fall back to OpenGL\n"
]
}
],
"source": [
"control = {\"initial_value\": [1]*4}\n",
"scenario.run_simulation(graph, control, starting_positions=[[0,0,-7,7], [0,0,-5,5], [0, 30, -60, -30, 60], [0, 30, -60, -30, 60]], vis = True, delay=True)\n"
"from rostok.simulation_chrono.simulation import (ChronoSystems, EnvCreator, SingleRobotSimulation,\n",
" ChronoVisManager)\n",
"from rostok.control_chrono.controller import (ConstController, SinControllerChrono)\n",
"env_creator = EnvCreator([])\n",
"system = ChronoSystems.chrono_NSC_system(gravity_list=[0, 0, 0])\n",
"vis_manager = ChronoVisManager(delay=False)\n",
"\n",
"control = {\"initial_value\": [2,1,1,1]}\n",
"\n",
"simulation = SingleRobotSimulation(system, env_creator, vis_manager)\n",
"\n",
"simulation.add_design(graph, control,\n",
" ConstController)\n",
" \n",
"# setup parameters for the data store\n",
"\n",
"n_steps = 1000\n",
"\n",
"\n",
"robot_data_dict = {}\n",
"simulation.add_robot_data_type_dict(robot_data_dict)\n",
"simulation.simulate(n_steps, 1e-3, 10000, [], vis_manager)\n",
"\n",
"#scenario.run_simulation(graph, control, starting_positions=[[0,0,-7,7], [0,0,-5,5], [0, 30, -60, -30, 60], [0, 30, -60, -30, 60]], vis = True, delay=True)\n"
]
}
],
Expand Down

0 comments on commit 424caee

Please sign in to comment.