๐ก๏ธ Temperature Grid#
The TemperatureGrid sensor discretizes the bounding box of a rigid link into a 3D voxel grid and returns the temperature of each cell in Celsius. Heat transfer is driven by contact, conduction, radiation, convection, and optional per-cell heat generation.
Provide a properties_dict describing the thermal material properties of the links that may participate in heat exchange. Key -1 can be used as a default entry for links that are not listed explicitly.
temperature_sensor = scene.add_sensor(
gs.sensors.TemperatureGrid(
entity_idx=entity.idx,
link_idx_local=0,
grid_size=(10, 10, 1),
properties_dict={
-1: gs.sensors.TemperatureProperties(
base_temperature=22.0,
conductivity=100.0,
density=1000.0,
specific_heat=1.0,
emissivity=0.8,
),
entity.base_link_idx: gs.sensors.TemperatureProperties(
base_temperature=200.0,
conductivity=1000.0,
density=2000.0,
specific_heat=1.0,
emissivity=0.8,
),
},
ambient_temperature=22.0,
convection_coefficient=0.0,
draw_debug=True,
)
)
scene.build()
grid = temperature_sensor.read()
print(grid) # shape ([n_envs,] nx, ny, nz)
Set simulate_all_link_temperatures=True if you want Genesis to evolve temperatures for every link with thermal properties, not just the sensor-attached link.
The example examples/sensors/temperature_grid.py visualizes a hot pusher heating a platform while objects are dropped onto the sensorized surface.