当前位置: 首页> 游戏> 游戏 > 设计网站公司 昂 睁湖南岚鸿_快递b2c是什么意思_线上销售平台如何推广_互联网销售模式

设计网站公司 昂 睁湖南岚鸿_快递b2c是什么意思_线上销售平台如何推广_互联网销售模式

时间:2025/7/9 19:56:30来源:https://blog.csdn.net/suoxd123/article/details/145817709 浏览次数:0次
设计网站公司 昂 睁湖南岚鸿_快递b2c是什么意思_线上销售平台如何推广_互联网销售模式

1. 依赖安装

pip install ai2thor
pip install numpy pillow opencv-python

在这里插入图片描述

2. 验证安装

# 运行测试脚本验证安装 test_thor.py
from ai2thor.controller import Controller
controller = Controller(scene="FloorPlan1")
controller.step(action="MoveAhead")
print("Success!")
## 

3.手动键盘控制

# 创建文件 manual_control.py
from ai2thor.controller import Controller
import keyboardcontroller = Controller(scene="FloorPlan1", gridSize=0.25,  # 移动步长0.25米rotateStepDegrees=45  # 旋转步长45度
)print("WASD控制移动,QE旋转,F抓取,ESC退出")while True:event = controller.step(action="Pass")  # 保持场景更新if keyboard.is_pressed('esc'):breakelif keyboard.is_pressed('w'):event = controller.step(action="MoveAhead")elif keyboard.is_pressed('s'):event = controller.step(action="MoveBack")elif keyboard.is_pressed('a'):event = controller.step(action="MoveLeft")elif keyboard.is_pressed('d'):event = controller.step(action="MoveRight")elif keyboard.is_pressed('q'):event = controller.step(action="RotateLeft")elif keyboard.is_pressed('e'):event = controller.step(action="RotateRight")elif keyboard.is_pressed('f'):# 抓取最近的可交互物体objects = [obj for obj in event.metadata["objects"] if obj["visible"]]if objects:event = controller.step(action="PickupObject",objectId=objects[0]["objectId"],forceAction=True)controller.stop()

4. 定位目标物体(以微波炉为例)

# 创建文件 auto_grab.py
from ai2thor.controller import Controllercontroller = Controller(scene="FloorPlan1",visibilityDistance=1.5,  # 可见距离1.5米renderInstanceSegmentation=True  # 启用实例分割
)# 查找所有微波炉
microwaves = [obj for obj in controller.last_event.metadata["objects"]if obj["objectType"] == "Microwave"]if microwaves:target_id = microwaves[0]["objectId"]# 导航到目标附近controller.step(action="MoveToObject",objectId=target_id,moveMagnitude=0.5)# 抓取动作event = controller.step(action="PickupObject",objectId=target_id)if event.metadata["lastActionSuccess"]:print("抓取成功!")else:print("抓取失败:", event.metadata["errorMessage"])
else:print("场景中没有微波炉")controller.stop()

5. 多房间导航

# 切换到多楼层场景(如FloorPlan201为厨房+客厅)
controller.reset(scene="FloorPlan201")# 获取场景拓扑图
event = controller.step(action="GetReachablePositions")
reachable_positions = event.metadata["actionReturn"]# 随机导航到可达点
import random
target_pos = random.choice(reachable_positions)
controller.step(action="MoveTo",position=target_pos,forceAction=True
)

6. 视觉辅助抓取

# 使用实例分割定位物体
event = controller.step(action="Pass")
for obj in event.instance_segmentation_frame:if obj["objectType"] == "Mug":# 计算物体中心坐标center_x = obj["axisAlignedBoundingBox"]["center"]["x"]center_z = obj["axisAlignedBoundingBox"]["center"]["z"]controller.step(action="MoveTo",position=dict(x=center_x, y=0, z=center_z),forceAction=True)controller.step(action="PickupObject", objectId=obj["objectId"])break

7. 语音控制

import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:print("请说指令:")audio = r.listen(source)command = r.recognize_google(audio, language='zh-CN')
关键字:设计网站公司 昂 睁湖南岚鸿_快递b2c是什么意思_线上销售平台如何推广_互联网销售模式

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: