事情的起因是这样的,在测试Dstar算法的时候,需要将激光雷达的点云图中的障碍物坐标输出出来,我使用如下命令输出:
for i in range(0,map_len):
obstacle_point.append((i, np.where(map[i] == 255)))
这串命令简单易懂,但是输出的结果却有一个缺点:
[(0, (array([], dtype=int64),)), (1, (array([], dtype=int64),)), (2, (array([], dtype=int64),)), (3, (array([], dtype=int64),)), (4, (array([], dtype=int64),)), (5, (array([], dtype=int64),)), (6, (array([], dtype=int64),)), (7, (array([], dtype=int64),)), (8, (array([], dtype=int64),)), (9, (array([], dtype=int64),)), (10, (array([], dtype=int64),)), (11, (array([], dtype=int64),)), (12, (array([], dtype=int64),)), (13, (array([], dtype=int64),)), (14, (array([], dtype=int64),)), (15, (array([], dtype=int64),)), (16, (array([], dtype=int64),)), (17, (array([], dtype=int64),)), (18, (array([42, 43, 44, 45, 46, 47, 48, 49, 50]),)), (19, (array([42, 43, 44, 45, 46, 47, 48, 49, 50]),)), (20, (array([34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]),)), (21, (array([34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]),)), (22, (array([34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]),))
i是固定的,为了将数据转变成好看舒服且适合下一步调用的形式:
[(18, 42), (18, 43), (18, 44), (18, 45), (18, 46), (18, 47), (18, 48), (18, 49), (18, 50), (19, 42), (19, 43), (19, 44), (19, 45), (19, 46), (19, 47), (19, 48), (19, 49), (19, 50), (20, 34), (20, 35), (20, 36), (20, 37), (20, 38), (20, 39), (20, 40), (20, 41), (20, 42), (20, 43), (20, 44), (20, 45), (20, 46), (20, 47), (20, 48), (20, 49), (20, 50), (21, 34), (21, 35), (21, 36), (21, 37), (21, 38), (21, 39), (21, 40), (21, 41), (21, 42), (21, 43), (21, 44), (21, 45), (21, 46), (21, 47), (21, 48), (21, 49), (21, 50), (22, 34), (22, 35), (22, 36), (22, 37), (22, 38), (22, 39), (22, 40),.......
可以做处理,就可以将数据变成我想要的格式:
obstacle_result = []
for itemmm in obstacle_point:
row_number = itemmm[0]
row_indices = itemmm[1][0]
for col_index in row_indices:
obstacle_result.append((row_number, col_index))