From 01c111db42b03cf13b2bb49c0d7011896a5e21e7 Mon Sep 17 00:00:00 2001 From: Netceor <45135347+Netceor@users.noreply.github.com> Date: Tue, 14 Nov 2023 14:41:02 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8A=B9=E5=B8=83?= =?UTF-8?q?=E6=A1=8C=E7=9A=84=E7=89=A9=E5=93=81=E6=8A=93=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- robowaiter/scene/tasks/VLM.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/robowaiter/scene/tasks/VLM.py b/robowaiter/scene/tasks/VLM.py index a7acf23..fec3af5 100644 --- a/robowaiter/scene/tasks/VLM.py +++ b/robowaiter/scene/tasks/VLM.py @@ -30,11 +30,12 @@ class SceneVLM(Scene): # 16: 抓操作需要传入物品id,17: 放操作需要传入放置位置周围的空地区域(桌边而不是桌上) # if op_type == 16: # self.gen_obj() - # self.op_task_execute(op_type, obj_id=0) + # self.op_task_execute(op_type, obj_id=1) + # op_type = 17 # # 原始吧台处:[247.0, 520.0, 100.0], 空调开关旁吧台:[240.0, 40.0, 70.0], 水杯桌:[-70.0, 500.0, 107] - # # 桌子1:[-55.0, 0.0, 107],桌子2:[-55.0, 150.0, 107] - # elif op_type == 17: self.op_task_execute(op_type, release_pos=[247.0, 520.0, 100.0])#[-55.0, 150.0, 107] - # else: + # # 桌子1:[-55.0, 0.0, 107],桌子2:[-55.0, 150.0, 107], 抹布桌:[300.0, 935.0, 98.0] + # if op_type == 17: self.op_task_execute(op_type, release_pos=[300.0, 935.0, 98.0]) #[325.0, 860.0, 100] + # if op_type not in [16,17]: # self.move_task_area(op_type) # self.op_task_execute(op_type) pass From e6cd1e337b1c2e71ace5cf64057bb4e9bab6a60e Mon Sep 17 00:00:00 2001 From: Netceor <45135347+Netceor@users.noreply.github.com> Date: Tue, 14 Nov 2023 14:42:03 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8A=B9=E5=B8=83?= =?UTF-8?q?=E6=A1=8C=E7=9A=84=E7=89=A9=E5=93=81=E6=8A=93=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- robowaiter/scene/scene.py | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/robowaiter/scene/scene.py b/robowaiter/scene/scene.py index 00887c8..a1018a5 100644 --- a/robowaiter/scene/scene.py +++ b/robowaiter/scene/scene.py @@ -418,10 +418,12 @@ class Scene: def gen_obj(self,h=100): # 4;冰红(盒) 5;酸奶 7:保温杯 9;冰红(瓶) 13:代语词典 14:cake 61:甜牛奶 - type= 9 #9 scene = stub.Observe(GrabSim_pb2.SceneID(value=self.sceneID)) ginger_loc = [scene.location.X, scene.location.Y, scene.location.Z] - obj_list = [GrabSim_pb2.ObjectList.Object(x=ginger_loc[0] - 50, y=ginger_loc[1] - 40, z = h, roll=0, pitch=0, yaw=0, type=type)] + obj_list = [GrabSim_pb2.ObjectList.Object(x=ginger_loc[0] - 55, y=ginger_loc[1] - 40, z = 95, roll=0, pitch=0, yaw=0, type=9), + # GrabSim_pb2.ObjectList.Object(x=ginger_loc[0] - 50, y=ginger_loc[1] - 40, z=h, roll=0, pitch=0, yaw=0, type=9), + GrabSim_pb2.ObjectList.Object(x=300, y=935, z = 88, roll=0, pitch=0, yaw=0, type=7), + ] scene = stub.AddObjects(GrabSim_pb2.ObjectList(objects=obj_list, scene=self.sceneID)) time.sleep(1.0) @@ -434,11 +436,17 @@ class Scene: # Robot obj_x, obj_y, obj_z = obj_info.location.X, obj_info.location.Y, obj_info.location.Z walk_v = [obj_x+50, obj_y] + [180, 180, 0] + if obj_y>=820 and obj_y<= 1200 and obj_x>=240 and obj_x<= 500: # 物品位于斜的抹布桌上 ([240,500],[820,1200]) + walk_v = [obj_x+40, obj_y-35, 130, 180, 0] + obj_x += 3 + obj_y += 2.5 + # walk_v = [obj_x,obj_y-30,130, 180, 0] action = GrabSim_pb2.Action(scene=self.sceneID, action=GrabSim_pb2.Action.ActionType.WalkTo, values=walk_v) scene = stub.Do(action) time.sleep(1.0) + # Finger - self.ik_control_joints(2, obj_x-9, obj_y+0.5, obj_z) # -10, 0, 0 + self.ik_control_joints(2, obj_x-9, obj_y, obj_z) # -10, 0, 0 time.sleep(3.0) # Grasp Obj print('------------------grasp_obj----------------------') @@ -461,9 +469,6 @@ class Scene: angle[0] = 15 angle[19] = -15 angle[20] = -30 - for i in range(18,21): - print("name:",scene.joints[i].name,"angle:",scene.joints[i].angle) - # print("angle:",angle) action = GrabSim_pb2.Action(scene=self.sceneID,action=GrabSim_pb2.Action.ActionType.RotateJoints, # 弯腰 values=angle) scene = stub.Do(action) @@ -471,13 +476,20 @@ class Scene: def release_obj(self,release_pos): print("------------------Move to Realese Position----------------------") - walk_v = [release_pos[i] for i in range(2)] - action = GrabSim_pb2.Action(scene=self.sceneID, action=GrabSim_pb2.Action.ActionType.WalkTo, values=walk_v + [180,180,0]) + walk_v = [release_pos[i] for i in range(2)] + [180,180,0] + if release_pos==[300.0, 935.0, 98.0]: + walk_v[2] = 130 + + action = GrabSim_pb2.Action(scene=self.sceneID, action=GrabSim_pb2.Action.ActionType.WalkTo, values=walk_v) scene = stub.Do(action) print("------------------release_obj----------------------") - self.ik_control_joints(2, release_pos[0] - 80, release_pos[1], release_pos[2]) - time.sleep(2.0) - self.robo_stoop_parallel() + if release_pos==[300.0, 935.0, 98.0]: + self.ik_control_joints(2, release_pos[0], release_pos[1], release_pos[2]) + time.sleep(2.0) + else: + self.ik_control_joints(2, release_pos[0] - 80, release_pos[1], release_pos[2]) + time.sleep(2.0) + self.robo_stoop_parallel() action = GrabSim_pb2.Action(scene=self.sceneID, action=GrabSim_pb2.Action.ActionType.Release, values=[1]) scene = stub.Do(action) @@ -487,7 +499,7 @@ class Scene: return True # 执行过程:输出"开始(任务名)" -> 按步骤数执行任务 -> Robot输出成功或失败的对话 - def op_task_execute(self,op_type,obj_id=0,yaw=180,release_pos=[240,-140]): + def op_task_execute(self,op_type,obj_id=0,release_pos=[240,-140]): self.control_robot_action(0, 1, "开始"+self.op_dialog[op_type]) # 开始制作咖啡 if op_type in [13,14,15]: # 调整空调:13代表按开关,14升温,15降温 result = self.adjust_kongtiao(op_type) From 71f758e9df09999f96736cc23a6e4aa4b793f7ab Mon Sep 17 00:00:00 2001 From: Netceor <45135347+Netceor@users.noreply.github.com> Date: Tue, 14 Nov 2023 14:55:07 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8A=B9=E5=B8=83?= =?UTF-8?q?=E6=A1=8C=E7=9A=84=E6=8A=93=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- robowaiter/scene/tasks/VLM.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/robowaiter/scene/tasks/VLM.py b/robowaiter/scene/tasks/VLM.py index fec3af5..85052d5 100644 --- a/robowaiter/scene/tasks/VLM.py +++ b/robowaiter/scene/tasks/VLM.py @@ -30,11 +30,10 @@ class SceneVLM(Scene): # 16: 抓操作需要传入物品id,17: 放操作需要传入放置位置周围的空地区域(桌边而不是桌上) # if op_type == 16: # self.gen_obj() - # self.op_task_execute(op_type, obj_id=1) - # op_type = 17 + # self.op_task_execute(op_type, obj_id=0) # # 原始吧台处:[247.0, 520.0, 100.0], 空调开关旁吧台:[240.0, 40.0, 70.0], 水杯桌:[-70.0, 500.0, 107] - # # 桌子1:[-55.0, 0.0, 107],桌子2:[-55.0, 150.0, 107], 抹布桌:[300.0, 935.0, 98.0] - # if op_type == 17: self.op_task_execute(op_type, release_pos=[300.0, 935.0, 98.0]) #[325.0, 860.0, 100] + # # 桌子1:[-55.0, 0.0, 107],桌子2:[-55.0, 150.0, 107], 抹布桌:[340.0, 900.0, 98.0] + # if op_type == 17: self.op_task_execute(op_type, release_pos=[340.0, 900.0, 99.0]) #[325.0, 860.0, 100] # if op_type not in [16,17]: # self.move_task_area(op_type) # self.op_task_execute(op_type) From 257cc0297cc4d15a16d9b3055ef7a63ba4bcbabc Mon Sep 17 00:00:00 2001 From: Netceor <45135347+Netceor@users.noreply.github.com> Date: Tue, 14 Nov 2023 14:55:46 +0800 Subject: [PATCH 4/4] Update scene.py --- robowaiter/scene/scene.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/robowaiter/scene/scene.py b/robowaiter/scene/scene.py index a1018a5..17a0ccd 100644 --- a/robowaiter/scene/scene.py +++ b/robowaiter/scene/scene.py @@ -422,7 +422,7 @@ class Scene: ginger_loc = [scene.location.X, scene.location.Y, scene.location.Z] obj_list = [GrabSim_pb2.ObjectList.Object(x=ginger_loc[0] - 55, y=ginger_loc[1] - 40, z = 95, roll=0, pitch=0, yaw=0, type=9), # GrabSim_pb2.ObjectList.Object(x=ginger_loc[0] - 50, y=ginger_loc[1] - 40, z=h, roll=0, pitch=0, yaw=0, type=9), - GrabSim_pb2.ObjectList.Object(x=300, y=935, z = 88, roll=0, pitch=0, yaw=0, type=7), + GrabSim_pb2.ObjectList.Object(x=340, y=960, z = 88, roll=0, pitch=0, yaw=0, type=7), ] scene = stub.AddObjects(GrabSim_pb2.ObjectList(objects=obj_list, scene=self.sceneID)) time.sleep(1.0) @@ -477,14 +477,13 @@ class Scene: def release_obj(self,release_pos): print("------------------Move to Realese Position----------------------") walk_v = [release_pos[i] for i in range(2)] + [180,180,0] - if release_pos==[300.0, 935.0, 98.0]: + if release_pos==[340.0, 900.0, 99.0]: walk_v[2] = 130 - action = GrabSim_pb2.Action(scene=self.sceneID, action=GrabSim_pb2.Action.ActionType.WalkTo, values=walk_v) scene = stub.Do(action) print("------------------release_obj----------------------") - if release_pos==[300.0, 935.0, 98.0]: - self.ik_control_joints(2, release_pos[0], release_pos[1], release_pos[2]) + if release_pos==[340.0, 900.0, 99.0]: + self.ik_control_joints(2, 300.0, 935, release_pos[2]) time.sleep(2.0) else: self.ik_control_joints(2, release_pos[0] - 80, release_pos[1], release_pos[2])