78 lines
2.1 KiB
Python
78 lines
2.1 KiB
Python
# Copyright (c) 2024-2025 Ziqi Fan
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# Copyright (c) 2024-2025, The Isaac Lab Project Developers.
|
|
# All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
"""
|
|
Script to print all the available environments in Isaac Lab.
|
|
|
|
The script iterates over all registered environments and stores the details in a table.
|
|
It prints the name of the environment, the entry point and the config file.
|
|
|
|
All the environments are registered in the `isaaclab_tasks` extension. They start
|
|
with `Isaac` in their name.
|
|
"""
|
|
|
|
"""Launch Isaac Sim Simulator first."""
|
|
|
|
from isaaclab.app import AppLauncher
|
|
|
|
# launch omniverse app
|
|
app_launcher = AppLauncher(headless=True)
|
|
simulation_app = app_launcher.app
|
|
|
|
|
|
"""Rest everything follows."""
|
|
|
|
import gymnasium as gym
|
|
import textwrap
|
|
from prettytable import PrettyTable
|
|
|
|
import robot_lab.tasks # noqa: F401
|
|
|
|
|
|
def main():
|
|
"""Print all environments registered in `isaaclab_tasks` extension."""
|
|
# print all the available environments
|
|
table = PrettyTable(["S. No.", "Task Name", "Entry Point", "Config"])
|
|
table.title = "Available Environments in Isaac Lab"
|
|
# set alignment of table columns
|
|
table.align["Task Name"] = "l"
|
|
table.align["Entry Point"] = "l"
|
|
table.align["Config"] = "l"
|
|
table.hrules = 1
|
|
|
|
# set max width for text wrapping
|
|
max_width = 50
|
|
|
|
# count of environments
|
|
index = 0
|
|
# acquire all Isaac environments names
|
|
for task_spec in gym.registry.values():
|
|
if "RobotLab" in task_spec.id:
|
|
# wrap long text in each column before adding it to the table
|
|
task_name = textwrap.fill(task_spec.id, max_width)
|
|
entry_point = textwrap.fill(task_spec.entry_point, max_width)
|
|
config = textwrap.fill(task_spec.kwargs["env_cfg_entry_point"], max_width)
|
|
|
|
# add details to table
|
|
table.add_row([index + 1, task_name, entry_point, config])
|
|
# increment count
|
|
index += 1
|
|
|
|
print(table)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
# run the main function
|
|
main()
|
|
except Exception as e:
|
|
raise e
|
|
finally:
|
|
# close the app
|
|
simulation_app.close()
|