Consistent spacing in python/tutorial.ipynb
This commit is contained in:
+29
-15
@@ -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)"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user