From 8aee653664ff1bbd9ad695beb11740fb4aded4a2 Mon Sep 17 00:00:00 2001 From: Netceor <45135347+Netceor@users.noreply.github.com> Date: Wed, 8 Nov 2023 17:13:25 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 7个动画操作 op_type 1-7 代表 "制作咖啡","倒水","夹点心","拖地","擦桌子","关闭窗帘","关筒灯","开大厅灯","搬椅子","打开窗帘","关大厅灯","开筒灯" --- robowaiter/scene/tasks/VLM.py | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/robowaiter/scene/tasks/VLM.py b/robowaiter/scene/tasks/VLM.py index bdb4871..62fb836 100644 --- a/robowaiter/scene/tasks/VLM.py +++ b/robowaiter/scene/tasks/VLM.py @@ -6,34 +6,17 @@ import time from robowaiter.scene.scene import Scene - class SceneVLM(Scene): def __init__(self, robot): super().__init__(robot) def _reset(self): - self.reset_sim() + pass - self.add_walker(1085, 2630, 220) - self.control_walker([self.walker_control_generator(0, False, 100, 755, 1900, 180)]) + def _run(self, op_type=1): - def _run(self): - # 空调操作 - self.walk_to(950, 1260, 90) # 没法转向? - # todo: 手臂操作 - time.sleep(5) - self.walk_to(947, 1900, 0) - - # 物品挪动 - # todo: 视觉导航至目标点,操作手臂至可抓位置 - """ - scene.grasp(1, your_objectID) - """ - - # todo: 视觉导航至目标点,找准释放位置 - """ - scene.release(1) - """ + self.move_task_area(op_type) + self.op_task_execute(op_type) def _step(self): pass \ No newline at end of file From 0aa34fef61f7840ae1ee47b5cd75d404dc1ee757 Mon Sep 17 00:00:00 2001 From: Netceor <45135347+Netceor@users.noreply.github.com> Date: Wed, 8 Nov 2023 17:14:51 +0800 Subject: [PATCH 2/3] Update scene.py --- robowaiter/scene/scene.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/robowaiter/scene/scene.py b/robowaiter/scene/scene.py index 3464bd6..c9d7c91 100644 --- a/robowaiter/scene/scene.py +++ b/robowaiter/scene/scene.py @@ -69,6 +69,11 @@ class Scene: self.robot = robot self.sub_task_seq = None + # myx op + self.op_dialog = ["","制作咖啡","倒水","夹点心","拖地","擦桌子","关闭窗帘","关筒灯","开大厅灯","搬椅子","打开窗帘","关大厅灯","开筒灯"] + self.op_act_num = [0,3,4,6,3,2,0,0,0,1,0,0,0] + self.op_v_list = [[[0.0,0.0]],[[250.0, 310.0]],[[-70.0, 480.0]],[[250.0, 630.0]],[[260.0, 1120.0]],[[300.0, -220.0]],[[0.0, -70.0]]] + def _reset(self): # 场景自定义的reset From e1d53edde8fad974d6b5be219882c2e543e08a20 Mon Sep 17 00:00:00 2001 From: Netceor <45135347+Netceor@users.noreply.github.com> Date: Wed, 8 Nov 2023 17:15:23 +0800 Subject: [PATCH 3/3] Update scene.py --- robowaiter/scene/scene.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/robowaiter/scene/scene.py b/robowaiter/scene/scene.py index c9d7c91..4ada706 100644 --- a/robowaiter/scene/scene.py +++ b/robowaiter/scene/scene.py @@ -308,3 +308,42 @@ class Scene: def animation_reset(self): stub.ControlRobot(GrabSim_pb2.ControlInfo(scene=self.sceneID, type=0, action=0)) + def control_robot_action(self, type=0, action=0, message="你好"): + scene = stub.ControlRobot( + GrabSim_pb2.ControlInfo( + scene=self.sceneID, type=type, action=action, content=message + ) + ) + if str(scene.info).find("Action Success") > -1: + print(scene.info) + return True + else: + print(scene.info) + return False + + def op_task_execute(self,task_type): + self.control_robot_action(0, 1, "开始"+self.op_dialog[task_type]) # 开始制作咖啡 + result = self.control_robot_action(task_type, 1) # + self.control_robot_action(0, 2) + if result: + if self.op_act_num[task_type]>0: + for i in range(2,2+self.op_act_num[task_type]): + self.control_robot_action(task_type,i) + self.control_robot_action(0, 2) + self.control_robot_action(0, 1, "成功"+self.op_dialog[task_type]) + else: + self.control_robot_action(0, 1, self.op_dialog[task_type]+"失败") + + def move_task_area(self,op_type=0): + scene = stub.Observe(GrabSim_pb2.SceneID(value=self.sceneID)) + + walk_value = [scene.location.X, scene.location.Y, scene.rotation.Yaw] + print("------------------move_task_area----------------------") + print("position:", walk_value,"开始任务:",self.op_dialog[op_type]) + for walk_v in self.op_v_list[op_type]: + walk_v = walk_v + [scene.rotation.Yaw, 60, 0] + action = GrabSim_pb2.Action( + scene=self.sceneID, action=GrabSim_pb2.Action.ActionType.WalkTo, values=walk_v + ) + scene = stub.Do(action) +