maniskill2环境配置

本文最后更新于:2025年5月27日 下午

maniskill2环境配置

官方文档:https://maniskill.readthedocs.io/en/latest/user_guide/getting_started/installation.html

流程

安装mani-skill2

pip install mani-skill2

安装必要的assets

python -m mani_skill2.utils.download_asset all

非常耗时,180+压缩包

安装Vulkan driver

  1. 安装Vulkansudo apt-get install libvulkan1

  2. 测试Vulkan是否安装成功,依次运行sudo apt-get install vulkan-toolsvulkaninfo

    这个测试方法,可能会失败,但并不意味着Vulkan驱动安装失败,也可以采用下一节的测试方法。

测试Vulkan是否安装成功

配置Ubuntu18.04+NVIDIA 3090+无图形界面

  1. pip install vulkan

  2. 运行下面脚本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    from vulkan import *

    def main():
    app_info = VkApplicationInfo(
    sType = VK_STRUCTURE_TYPE_APPLICATION_INFO,
    pApplicationName = b"VulkanTest",
    applicationVersion = VK_MAKE_VERSION(1, 0, 0),
    pEngineName = b"NoEngine",
    engineVersion = VK_MAKE_VERSION(1, 0, 0),
    apiVersion = VK_API_VERSION_1_0
    )

    create_info = VkInstanceCreateInfo(
    sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
    pApplicationInfo = app_info
    )

    try:
    instance = vkCreateInstance(create_info, None)
    print("✅ Vulkan instance created successfully.")
    except VkError as e:
    print(f"❌ Failed to create Vulkan instance: {e}")
    return

    devices = vkEnumeratePhysicalDevices(instance)
    print(f"🖥️ Found {len(devices)} physical device(s).")

    for i, device in enumerate(devices):
    props = vkGetPhysicalDeviceProperties(device)
    name = props.deviceName
    version = props.apiVersion
    major = VK_VERSION_MAJOR(version)
    minor = VK_VERSION_MINOR(version)
    patch = VK_VERSION_PATCH(version)
    print(f" GPU {i}: {name} (API Version: {major}.{minor}.{patch})")

    # Clean up
    vkDestroyInstance(instance, None)

    if __name__ == "__main__":
    main()

  3. 如果Vulkan安装成功,会返回类似如下输出

    1
    2
    3
    ✅ Vulkan instance created successfully.
    🖥️ Found 1 physical device(s).
    GPU 0: NVIDIA GeForce RTX 3090 (API Version: 1.3.277)

测试maniskill是否安装成功

  1. 运行下面脚本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    import gymnasium as gym
    import mani_skill2.envs # register env

    env = gym.make(
    "PickCube-v0",
    obs_mode="state",
    control_mode="pd_ee_delta_pos",
    render_mode=None
    )

    obs, _ = env.reset()

    for i in range(100):
    action = env.action_space.sample()
    obs, reward, terminated, truncated, info = env.step(action)
    if terminated or truncated:
    obs, _ = env.reset()

    print(f"obs {obs}")
    print(f"reward {reward}")
    print(f"terminated {terminated}")
    print(f"truncated {truncated}")
    print(f"info {info}")

    env.close()
  2. 顺利返回obs、reward、terminated、truncated、info等信息,说明maniskill安装成功

  3. 可能遇到如下警告,不影响程序运行

    1
    2
    [2025-05-27 15:56:06.699] [svulkan2] [error] GLFW error: X11: The DISPLAY environment variable is missing
    [2025-05-27 15:56:06.699] [svulkan2] [warning] Continue without GLFW.

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!