Consistent spacing in python/tutorial.ipynb

This commit is contained in:
fanmin shi
2024-06-03 17:53:29 +02:00
committed by fanmin shi
parent 5ed464b489
commit a660051a4c
+29 -15
View File
@@ -479,8 +479,8 @@
"\"\"\"\n",
"model = mujoco.MjModel.from_xml_string(xml)\n",
"data = mujoco.MjData(model)\n",
"renderer = mujoco.Renderer(model)\n",
"\n",
"renderer = mujoco.Renderer(model)\n",
"mujoco.mj_forward(model, data)\n",
"renderer.update_scene(data)\n",
"\n",
@@ -509,6 +509,7 @@
"# Run this cell multiple times for different colors\n",
"model.geom('red_box').rgba[:3] = np.random.rand(3)\n",
"renderer.update_scene(data)\n",
"\n",
"media.show_image(renderer.render())"
]
},
@@ -545,6 +546,7 @@
" renderer.update_scene(data)\n",
" pixels = renderer.render()\n",
" frames.append(pixels)\n",
"\n",
"media.show_video(frames, fps=framerate)"
]
},
@@ -590,6 +592,7 @@
"duration = 3.8 # (seconds)\n",
"framerate = 60 # (Hz)\n",
"\n",
"# Simulate and display video.\n",
"frames = []\n",
"mujoco.mj_resetData(model, data)\n",
"while data.time < duration:\n",
@@ -599,7 +602,6 @@
" pixels = renderer.render()\n",
" frames.append(pixels)\n",
"\n",
"# Simulate and display video.\n",
"media.show_video(frames, fps=framerate)"
]
},
@@ -646,6 +648,7 @@
"model.opt.gravity = (0, 0, 10)\n",
"print('flipped gravity', model.opt.gravity)\n",
"\n",
"# Simulate and display video.\n",
"frames = []\n",
"mujoco.mj_resetData(model, data)\n",
"while data.time < duration:\n",
@@ -756,10 +759,12 @@
"</mujoco>\n",
"\"\"\"\n",
"model = mujoco.MjModel.from_xml_string(tippe_top)\n",
"renderer = mujoco.Renderer(model)\n",
"data = mujoco.MjData(model)\n",
"renderer = mujoco.Renderer(model)\n",
"\n",
"mujoco.mj_forward(model, data)\n",
"renderer.update_scene(data, camera=\"closeup\")\n",
"\n",
"media.show_image(renderer.render())"
]
},
@@ -933,10 +938,12 @@
"</mujoco>\n",
"\"\"\"\n",
"model = mujoco.MjModel.from_xml_string(chaotic_pendulum)\n",
"renderer = mujoco.Renderer(model, 480, 640)\n",
"data = mujoco.MjData(model)\n",
"renderer = mujoco.Renderer(model, 480, 640)\n",
"\n",
"mujoco.mj_forward(model, data)\n",
"renderer.update_scene(data, camera=\"fixed\")\n",
"\n",
"media.show_image(renderer.render())"
]
},
@@ -965,12 +972,10 @@
"frames = []\n",
"renderer = mujoco.Renderer(model, 240, 320)\n",
"\n",
"\n",
"# set initial state\n",
"mujoco.mj_resetData(model, data)\n",
"data.joint('root').qvel = 10\n",
"\n",
"\n",
"# simulate and record frames\n",
"frame = 0\n",
"sim_time = 0\n",
@@ -1176,14 +1181,13 @@
" ax.plot(sim_time, energy, label='timestep = {:2.2g}ms'.format(1000*dt))\n",
" ax.set_yscale('log')\n",
"\n",
"\n",
"# finalize plot\n",
"ax.set_ybound(1, 1e3)\n",
"ax.set_title('energy')\n",
"ax.set_ylabel('Joule')\n",
"ax.set_xlabel('second')\n",
"ax.legend(frameon=True, loc='lower right');\n",
"plt.tight_layout()\n"
"plt.tight_layout()"
]
},
{
@@ -1228,10 +1232,12 @@
"</mujoco>\n",
"\"\"\"\n",
"model = mujoco.MjModel.from_xml_string(free_body_MJCF)\n",
"renderer = mujoco.Renderer(model, 400, 600)\n",
"data = mujoco.MjData(model)\n",
"renderer = mujoco.Renderer(model, 400, 600)\n",
"\n",
"mujoco.mj_forward(model, data)\n",
"renderer.update_scene(data, \"fixed\")\n",
"\n",
"media.show_image(renderer.render())"
]
},
@@ -1275,7 +1281,7 @@
"mujoco.mj_resetData(model, data)\n",
"data.qvel[3:6] = 5*np.random.randn(3)\n",
"\n",
"# simulate and render\n",
"# Simulate and display video.\n",
"for i in range(n_frames):\n",
" while data.time < i/120.0: #1/4x real time\n",
" mujoco.mj_step(model, data)\n",
@@ -1283,7 +1289,6 @@
" frame = renderer.render()\n",
" frames.append(frame)\n",
"\n",
"# show video\n",
"media.show_video(frames, fps=30)"
]
},
@@ -1437,7 +1442,7 @@
"data = mujoco.MjData(model)\n",
"renderer = mujoco.Renderer(model, height, width)\n",
"\n",
"# simulate and render\n",
"# Simulate and display video.\n",
"mujoco.mj_resetData(model, data)\n",
"for i in range(n_frames):\n",
" while data.time < i/30.0:\n",
@@ -1445,6 +1450,7 @@
" renderer.update_scene(data, \"y\")\n",
" frame = renderer.render()\n",
" frames.append(frame)\n",
"\n",
"media.show_video(frames, fps=30)"
]
},
@@ -1513,10 +1519,12 @@
"</mujoco>\n",
"\"\"\"\n",
"model = mujoco.MjModel.from_xml_string(MJCF)\n",
"renderer = mujoco.Renderer(model, 480, 480)\n",
"data = mujoco.MjData(model)\n",
"renderer = mujoco.Renderer(model, 480, 480)\n",
"\n",
"mujoco.mj_forward(model, data)\n",
"renderer.update_scene(data, \"fixed\")\n",
"\n",
"media.show_image(renderer.render())\n"
]
},
@@ -1551,7 +1559,7 @@
"mujoco.mj_resetData(model, data)\n",
"data.ctrl = 20\n",
"\n",
"# simulate and render\n",
"# Simulate and display video.\n",
"for i in range(n_frames):\n",
" while data.time < i/fps:\n",
" mujoco.mj_step(model, data)\n",
@@ -1783,10 +1791,10 @@
"outputs": [],
"source": [
"#@title Project from world to camera coordinates {vertical-output: true}\n",
"\n",
"# reset the scene\n",
"renderer.update_scene(data)\n",
"\n",
"\n",
"# Get the world coordinates of the box corners\n",
"box_pos = data.geom_xpos[model.geom('red_box').id]\n",
"box_mat = data.geom_xmat[model.geom('red_box').id].reshape(3, 3)\n",
@@ -1897,6 +1905,7 @@
" modify_scene(renderer.scene)\n",
" pixels = renderer.render()\n",
" frames.append(pixels)\n",
"\n",
"media.show_video(frames, fps=framerate)"
]
},
@@ -1923,6 +1932,7 @@
"outputs": [],
"source": [
"#@title Load the \"dominos\" model\n",
"\n",
"dominos_xml = \"\"\"\n",
"<mujoco>\n",
" <asset>\n",
@@ -2022,6 +2032,7 @@
"outputs": [],
"source": [
"#@title Render from fixed camera\n",
"\n",
"duration = 2.5 # (seconds)\n",
"framerate = 60 # (Hz)\n",
"\n",
@@ -2034,6 +2045,7 @@
" renderer.update_scene(data, camera='top')\n",
" pixels = renderer.render()\n",
" frames.append(pixels)\n",
"\n",
"media.show_video(frames, fps=framerate)"
]
},
@@ -2047,6 +2059,7 @@
"outputs": [],
"source": [
"#@title Render from moving camera\n",
"\n",
"duration = 3 # (seconds)\n",
"\n",
"# find time when box is thrown (speed > 2cm/s)\n",
@@ -2109,6 +2122,7 @@
" renderer.update_scene(data, cam)\n",
" pixels = renderer.render()\n",
" frames.append(pixels)\n",
"\n",
"media.show_video(frames, fps=framerate)"
]
}