详解Virtualhome环境搭建教程|智能体
- 开源代码
- 2025-08-27 21:51:01

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张
本篇文章毛毛张想分享的是搭建VitrualHome环境的教程,这个内容在国内很少有人在做,或者做的时候分享的教程比较少,毛毛张在此记录一下
文章目录 1.前言2.搭建教程2.1 下载代码2.2 配置虚拟环境2.3 毛毛张遇到的问题2.3.1 将numpy的版本降低为1.x2.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这个虚拟环境来做的 相关文章: progprompt.github.io/相关文章: tannl.github.io/FLTRNN.github.io/ VirtualHome官网介绍:VirtualHome 是一个交互式平台,可通过程序模拟复杂的家庭活动。VirtualHome 的关键之处在于,它支持与环境进行复杂交互,例如拿起物品、打开 / 关闭电器、打开家电设备等等。我们的模拟器可通过 Python API 轻松调用:将活动编写为简单的指令序列,随后便能在 VirtualHome 中呈现出来。用户可以在不同的智能体和环境之间进行选择,还能随时修改环境。此外,该平台还能输出各类真实数据,比如带时间戳的动作、实例 / 语义分割数据,以及光流和深度数据。这个平台能够模拟多智能体活动,可用作训练具身人工智能任务智能体的环境。VirtualHome官网链接: github /xavierpuigf/virtualhomeVirtualHome官网教程:http://virtual-home.org/documentation/master/话不多说,下面开始VirtualHome的搭建教程
2.搭建教程 本搭建教程使用的版本为: python:3.9.20virtualhome:2.3.0 (目前最新版本)windows系统 说明:尽量不要改动版本,免得容易报错 2.1 下载代码 下载官网代码: github /xavierpuigf/virtualhome,下图是毛毛张下载官网代码之后使用vscode打开的文件目录结构 2.2 配置虚拟环境虚拟环境配置不熟悉的可以参看毛毛张的这篇文章:【万字长文】【超详尽的配置教程】Anaconda配置深度学习环境教程 | Pytorch | Tensorflow | conda | pip | cuda | cudnn | torch
1.首先创建一个虚拟环境:
conda create -n virtualhome python=3.92.激活创建好的虚拟环境:
conda activate virtualhome3.安装virtualhome库
pip install virtualhome4.下图则表明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的文件修改为如下情况
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=" github /xavierpuigf/virtualhome", project_urls={ "Documentation": "http://virtual-home.org/docs/", "Bug Tracker": " github /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.html8.下载仿真器解压之后的存放的文件目录结构如下图所示,这个比较重要,后面需要用到这个目录
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文件,将仿真器的目录添加到系统路径下,如下图所示:
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 m_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行左右添加下面的代码
if not env: env = None 3.代码测试 下面毛毛张将通过官网的案例来教大家检验环境是否配置成功,前提需要大家把上面毛毛张遇到的问题都统一修改过来,再执行下面的代码,才能测试成功 3.1 检验环境是否配置成功1.在virtualhome目录下创建代码test1.py,该测试的执行的任务是:把三文鱼放进微波炉
from virtualhome.simulation.unity_simulator m_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.其它问题 如果还有其它问题可以在评论区和毛毛张交流,或者在官网上面去提交问题! 参考文献 blog.csdn.net/rabbit9798/article/details/135635313都看到这了,不妨一键三连再走吧! 🌈欢迎和毛毛张一起探讨和交流! 联系方式点击下方个人名片
详解Virtualhome环境搭建教程|智能体由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“详解Virtualhome环境搭建教程|智能体”
上一篇
Python自动化测试
下一篇
正式页面开发-登录注册页面