更改地图接口
This commit is contained in:
parent
14fde64ce3
commit
2098b14e51
|
@ -15,7 +15,7 @@ class NewCustomer(Cond):
|
||||||
def _update(self) -> ptree.common.Status:
|
def _update(self) -> ptree.common.Status:
|
||||||
|
|
||||||
if self.scene.take_picture:
|
if self.scene.take_picture:
|
||||||
self.scene.get_obstacle_point(self.scene.db, self.status, map_ratio=self.scene.map_ratio)
|
self.scene.get_walker_point(self.scene.db, self.status, map_ratio=self.scene.map_ratio)
|
||||||
# 获取customer的位置
|
# 获取customer的位置
|
||||||
# bar (247.0, 520.0, 100.0)
|
# bar (247.0, 520.0, 100.0)
|
||||||
close_to_bar = False
|
close_to_bar = False
|
||||||
|
|
|
@ -341,31 +341,6 @@ def save_obj_info(img_data, objs_name):
|
||||||
objs_name.add(dictionary[id])
|
objs_name.add(dictionary[id])
|
||||||
return objs_name
|
return objs_name
|
||||||
|
|
||||||
def get_id_object_pixels(id, scene):
|
|
||||||
pixels = []
|
|
||||||
world_points = []
|
|
||||||
img_data_segment = get_camera([GrabSim_pb2.CameraName.Head_Segment])
|
|
||||||
im_segment = img_data_segment.images[0]
|
|
||||||
|
|
||||||
img_data_depth = get_camera([GrabSim_pb2.CameraName.Head_Depth])
|
|
||||||
im_depth = img_data_depth.images[0]
|
|
||||||
|
|
||||||
|
|
||||||
d_segment = np.frombuffer(im_segment.data, dtype=im_segment.dtype).reshape(
|
|
||||||
(im_segment.height, im_segment.width, im_segment.channels))
|
|
||||||
d_depth = np.frombuffer(im_depth.data, dtype=im_depth.dtype).reshape(
|
|
||||||
(im_depth.height, im_depth.width, im_depth.channels))
|
|
||||||
|
|
||||||
d_segment = np.transpose(d_segment, (1, 0, 2))
|
|
||||||
d_depth = np.transpose(d_depth, (1, 0, 2))
|
|
||||||
|
|
||||||
for i in range(0, d_segment.shape[0],5):
|
|
||||||
for j in range(0, d_segment.shape[1], 5):
|
|
||||||
if d_segment[i][j][0] == id:
|
|
||||||
pixels.append([i, j])
|
|
||||||
for pixel in pixels:
|
|
||||||
world_points.append(transform_co(img_data_depth, pixel[0], pixel[1], d_depth[pixel[0]][pixel[1]][0], scene))
|
|
||||||
return world_points
|
|
||||||
|
|
||||||
def get_obstacle_point(plt, db, scene, cur_obstacle_world_points, map_ratio):
|
def get_obstacle_point(plt, db, scene, cur_obstacle_world_points, map_ratio):
|
||||||
cur_obstacle_pixel_points = []
|
cur_obstacle_pixel_points = []
|
||||||
|
|
|
@ -1006,7 +1006,7 @@ class Scene:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def transform_co(self,img_data, pixel_x_, pixel_y_, depth_, scene, id=0, label=0):
|
def transform_co(self,img_data, pixel_x_, pixel_y_, depth_, id=0, label=0):
|
||||||
im = img_data.images[0]
|
im = img_data.images[0]
|
||||||
|
|
||||||
# 相机外参矩阵
|
# 相机外参矩阵
|
||||||
|
@ -1096,7 +1096,7 @@ class Scene:
|
||||||
# print("物体世界偏移的坐标: ", world_offest_coordinates)
|
# print("物体世界偏移的坐标: ", world_offest_coordinates)
|
||||||
return world_coordinates
|
return world_coordinates
|
||||||
|
|
||||||
def get_obstacle_point(self, db, scene, map_ratio, update_info_count=0):
|
def get_walker_point(self, db, scene, map_ratio, update_info_count=0):
|
||||||
# db = DBSCAN(eps=4, min_samples=2)
|
# db = DBSCAN(eps=4, min_samples=2)
|
||||||
cur_obstacle_pixel_points = []
|
cur_obstacle_pixel_points = []
|
||||||
cur_obstacle_world_points = []
|
cur_obstacle_world_points = []
|
||||||
|
@ -1151,7 +1151,7 @@ class Scene:
|
||||||
# print(f"kettle的像素坐标:({i},{j})")
|
# print(f"kettle的像素坐标:({i},{j})")
|
||||||
# print(f"kettle的深度:{d_depth[i][j][0]}")
|
# print(f"kettle的深度:{d_depth[i][j][0]}")
|
||||||
# print(f"kettle的世界坐标: {transform_co(img_data_depth, i, j, d_depth[i][j][0], scene)}")
|
# print(f"kettle的世界坐标: {transform_co(img_data_depth, i, j, d_depth[i][j][0], scene)}")
|
||||||
if d_segment[i][j][0] in self.obstacle_objs_id:
|
if d_segment[i][j][0] in [251]:
|
||||||
cur_obstacle_pixel_points.append([i, j])
|
cur_obstacle_pixel_points.append([i, j])
|
||||||
if d_segment[i][j][0] not in not_key_objs_id:
|
if d_segment[i][j][0] not in not_key_objs_id:
|
||||||
# 首先检查键是否存在
|
# 首先检查键是否存在
|
||||||
|
@ -1249,3 +1249,28 @@ class Scene:
|
||||||
plt.imshow(map, cmap='binary', alpha=0.5, origin='lower',
|
plt.imshow(map, cmap='binary', alpha=0.5, origin='lower',
|
||||||
extent=(-400 / self.map_ratio, 1450 / self.map_ratio,
|
extent=(-400 / self.map_ratio, 1450 / self.map_ratio,
|
||||||
-350 / self.map_ratio, 600 / self.map_ratio))
|
-350 / self.map_ratio, 600 / self.map_ratio))
|
||||||
|
|
||||||
|
def get_id_object_world(self, id, scene):
|
||||||
|
pixels = []
|
||||||
|
world_points = []
|
||||||
|
img_data_segment = get_camera([GrabSim_pb2.CameraName.Head_Segment])
|
||||||
|
im_segment = img_data_segment.images[0]
|
||||||
|
|
||||||
|
img_data_depth = get_camera([GrabSim_pb2.CameraName.Head_Depth])
|
||||||
|
im_depth = img_data_depth.images[0]
|
||||||
|
|
||||||
|
d_segment = np.frombuffer(im_segment.data, dtype=im_segment.dtype).reshape(
|
||||||
|
(im_segment.height, im_segment.width, im_segment.channels))
|
||||||
|
d_depth = np.frombuffer(im_depth.data, dtype=im_depth.dtype).reshape(
|
||||||
|
(im_depth.height, im_depth.width, im_depth.channels))
|
||||||
|
|
||||||
|
d_segment = np.transpose(d_segment, (1, 0, 2))
|
||||||
|
d_depth = np.transpose(d_depth, (1, 0, 2))
|
||||||
|
|
||||||
|
for i in range(0, d_segment.shape[0], 5):
|
||||||
|
for j in range(0, d_segment.shape[1], 5):
|
||||||
|
if d_segment[i][j][0] == id:
|
||||||
|
pixels.append([i, j])
|
||||||
|
for pixel in pixels:
|
||||||
|
world_points.append(self.transform_co(img_data_depth, pixel[0], pixel[1], d_depth[pixel[0]][pixel[1]][0]))
|
||||||
|
return world_points
|
||||||
|
|
Loading…
Reference in New Issue