

🌈个人首页: 神马都会亿点点的毛毛张

本篇文章毛毛张想分享的是搭建
VitrualHome
环境的教程,这个内容在国内很少有人在做,或者做的时候分享的教程比较少,毛毛张在此记录一下
文章目录
- 1.前言
- 2.搭建教程
- 2.1 下载代码
- 2.2 配置虚拟环境
- 2.3 毛毛张遇到的问题
- 2.3.1 将numpy的版本降低为1.x
- 2.3.2 导入函数问题
- 2.3.3 No module named 'unity_simulator'
- 2.3.4 Exception: Error, environment was found but could not be launched
- 3.代码测试
- 3.1 检验环境是否配置成功
- 3.2 仿真动画
- 3.3 官网教程
- 4.其它问题
- 参考文献
1.前言
- 最近毛毛张在做智能体任务规划,看到了几篇文章,他们都是基于
VirtualHome
这个虚拟环境来做的- 相关文章:https://progprompt.github.io/
- 相关文章:https://tannl.github.io/FLTRNN.github.io/
- VirtualHome官网介绍:VirtualHome 是一个交互式平台,可通过程序模拟复杂的家庭活动。VirtualHome 的关键之处在于,它支持与环境进行复杂交互,例如拿起物品、打开 / 关闭电器、打开家电设备等等。我们的模拟器可通过 Python API 轻松调用:将活动编写为简单的指令序列,随后便能在 VirtualHome 中呈现出来。用户可以在不同的智能体和环境之间进行选择,还能随时修改环境。此外,该平台还能输出各类真实数据,比如带时间戳的动作、实例 / 语义分割数据,以及光流和深度数据。这个平台能够模拟多智能体活动,可用作训练具身人工智能任务智能体的环境。
- VirtualHome官网链接:https://github.com/xavierpuigf/virtualhome
- VirtualHome官网教程:http://virtual-home.org/documentation/master/
话不多说,下面开始VirtualHome的搭建教程
2.搭建教程
- 本搭建教程使用的版本为:
- python:3.9.20
- virtualhome:2.3.0 (目前最新版本)
- windows系统
- 说明:尽量不要改动版本,免得容易报错
2.1 下载代码
- 下载官网代码:https://github.com/xavierpuigf/virtualhome,下图是毛毛张下载官网代码之后使用vscode打开的文件目录结构
2.2 配置虚拟环境
虚拟环境配置不熟悉的可以参看毛毛张的这篇文章:【万字长文】【超详尽的配置教程】Anaconda配置深度学习环境教程 | Pytorch | Tensorflow | conda | pip | cuda | cudnn | torch
1.首先创建一个虚拟环境:
conda create -n virtualhome python=3.9
2.激活创建好的虚拟环境:
conda activate virtualhome
3.安装virtualhome
库
pip install virtualhome
4.下图则表明virtualhome
库安装完成,可以留意一下,当前命令安装的opencv-python
版本为4.5.1.48
5.切换到官网下载的代码目录virtuahome
下,注意virtualhome
目录下还有一个virtualhome
目录,是切换到最外层目录下,然后执行pip install -e .
代码,该命令的本质就是运行该目录下的setup.py
代码
cd virtualhome
pip install -e .
报错:但是根据官网的代码执行pip install -e .
会报错,如下图所示,报错信息显示他需要有一个src文件夹,但下载下来的文件里并没有
解决方案:修改virtualhome
目录下的setup.py
的第42行的python_requires=">=3.10"
,将python
版本限制改为3.9
,然后可以成功安装。最后setup.py
的文件修改为如下情况
python">import setuptools
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setuptools.setup(
name="virtualhome",
version="2.3.0",
author="Xavier Puig",
author_email="xavierpuig@csail.mit.edu",
description="Python API to communicate with the VirtualHome environment",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/xavierpuigf/virtualhome",
project_urls={
"Documentation": "http://virtual-home.org/docs/",
"Bug Tracker": "https://github.com/xavierpuigf/virtualhome/issues"
},
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
install_requires=[
'certifi==2024.7.4',
'chardet==3.0.4',
'idna==2.8',
'matplotlib>=3.4.2',
'networkx==2.3',
'numpy>=1.19.3',
'opencv-python==4.8.1.78',
'pillow>=8.3.1',
'plotly==3.10.0',
'requests>=1.21.0',
'ipdb==0.13.9',
'termcolor==1.1.0',
'tqdm==4.66.3',
'urllib3>=1.24.3'
],
package_dir={"": "."},
packages=setuptools.find_packages(where="."),
python_requires=">=3.9",
)
6.修改完python
版本的限制之后,再执行命令即可安装成功!
pip install -e .
7.接着在官网下载VirtualHome
仿真器,并将解压之后的文件放在virtualhome/virtualhome/simulation/unity_simulator
目录下
- 官网下载页面:http://virtual-home.org/documentation/master/downloads/downloads.html
8.下载仿真器解压之后的存放的文件目录结构如下图所示,这个比较重要,后面需要用到这个目录
2.3 毛毛张遇到的问题
2.3.1 将numpy的版本降低为1.x
- 在上面的安装过程中如果不限制会默认安装最新版本的
numpy
,已经是2.x
版本了,但是毛毛张在运行代码的时候会出现如下图所示报错,因此我们需要重新降低为1.x
版本,通过如下命令:pip install "numpy<2.0"
- 安装成功如下图所示:
2.3.2 导入函数问题
- 官网代码存在导入一个函数有问题,做出如下更改:
2.3.3 No module named ‘unity_simulator’
报错代码:
解决方案: 找到virtualhome/virtualhome/__init__.py
文件,将仿真器的目录添加到系统路径下,如下图所示:
python">import glob
import sys
from sys import platform
# Needs to be fixed!
original_path = sys.path[5]
new_path = "E:/Agent/text/virtualhome/virtualhome/simulation"
sys.path.append(new_path)
from unity_simulator.comm_unity import UnityCommunication
from unity_simulator import utils_viz
2.3.4 Exception: Error, environment was found but could not be launched
报错: 在运行下面的测试代码的时候可能会遇到下面的报错
解决方案: 在virtualhome\virtualhome\simulation\unity_simulator\communication.py
文件的第180行左右添加下面的代码
python">if not env:
env = None
3.代码测试
- 下面毛毛张将通过官网的案例来教大家检验环境是否配置成功,前提需要大家把上面毛毛张遇到的问题都统一修改过来,再执行下面的代码,才能测试成功
3.1 检验环境是否配置成功
1.在virtualhome
目录下创建代码test1.py
,该测试的执行的任务是:把三文鱼放进微波炉
python">from virtualhome.simulation.unity_simulator.comm_unity import UnityCommunication
import matplotlib.pyplot as plt
# 定义 Unity 可执行文件的路径
YOUR_FILE_NAME = "E:/Agent/text/virtualhome/virtualhome/simulation/unity_simulator/windows_exec.v2.3.0/VirtualHome.exe"
port = "8080" # 选择一个端口号
# 初始化 UnityCommunication 对象
comm = UnityCommunication(file_name=YOUR_FILE_NAME, port=port)
try:
# 重置环境
env_id = 0 # env_id 范围为 0 到 6
res = comm.reset(env_id)
comm.add_character('Chars/Female2')
# Get graph
s, g = comm.environment_graph()
if not res:
raise ValueError("环境重置失败!")
print("环境重置成功:", res)
# Get nodes for salmon and microwave
salmon_id = [node['id'] for node in g['nodes'] if node['class_name'] == 'salmon'][0]
microwave_id = [node['id'] for node in g['nodes'] if node['class_name'] == 'microwave'][0]
# Put salmon in microwave
script = [
'<char0> [walk] <salmon> ({})'.format(salmon_id),
'<char0> [grab] <salmon> ({})'.format(salmon_id),
'<char0> [open] <microwave> ({})'.format(microwave_id),
'<char0> [putin] <salmon> ({}) <microwave> ({})'.format(salmon_id, microwave_id),
'<char0> [close] <microwave> ({})'.format(microwave_id)
]
comm.render_script(script, recording=True, frame_rate=30)
except Exception as e:
print(f"发生错误:{e}")
finally:
# 关闭通信
comm.close()
print("Unity 通信已关闭")
2.稍等一会之后,出现下面结果表示运行成果:
3.同时还会在当前工作目录下生成一个Output
目录,这个目录下存放的时执行的动作生成的视频的每一帧的图像,在上面的测试代码中可以参见毛毛张把帧率设置为30
3.2 仿真动画
- 上面的代码运行的时候只能在控制台输出结果,想要看见实际的效果图,可以双击仿真器目录下的
VirtualHome.exe
文件- 注意事项:刚打开的时候是黑的是正常的
- 注意事项:上面的代码中
comm.render_script(script, recording=True, frame_rate=60)
,这一行代码中的recording
设置为true
是能看见动画的关键
- 毛毛张已经将输出的动画结果上传到B站:VirtualHome智能体交互Demo:将三文鱼放进冰箱
3.3 官网教程
- 更多的测试代码,可以查看官网教程进行学习,如果能够把环境配置成功,剩下的就可以通过官方文档自学了:http://virtual-home.org/documentation/master/
4.其它问题
- 如果还有其它问题可以在评论区和毛毛张交流,或者在官网上面去提交问题!
参考文献
- https://blog.csdn.net/rabbit9798/article/details/135635313

🌈欢迎和毛毛张一起探讨和交流!
联系方式点击下方个人名片