как показать маркер ros в python?

Я хочу показать 3D bbox в ROS с помощью Python. У меня есть 3D-координаты bbox, и я хочу использовать маркер для отображения. Тем не менее, я добавил некоторые точки, которые были угловой координатой, к маркеру и опубликовал их, но я не увидел bbox, что не так с моим кодом?

Вот мой код:

markers = MarkerArray()        
for i in range(len(self.bbox_data)):
     marker = Marker(type=Marker.LINE_LIST,ns='velodyne', action=Marker.ADD)
     marker.header.frame_id = "velodyne"
     marker.header.stamp = rospy.Time.now()
     if self.bbox_data[i][0][0] == frame:

     for n in range(8):
         point = geom_msg.Point(self.bbox_data[i][n+1][0],self.bbox_data[i][n+1][1],self.bbox_data[i][n+1][1])
         marker.points.append(point)

     marker.scale.x = 0.02
     marker.lifetime = rospy.Duration.from_sec(0.1)
     marker.color.a = 1.0
     marker.color.r = 0.5
     marker.color.g = 0.5 
     marker.color.b = 0.5    
     markers.markers.append(marker)

self.bbox.publish(markers)

куда

(self.bbox_data[i][n+1][0],self.bbox_data[i][n+1][1],self.bbox_data[i][n+1][2])

is

(x,y,z)

person evbo    schedule 23.03.2019    source источник


Ответы (1)


Когда ты сказал

но я не видел бокса

что именно ты имеешь ввиду? Вы вообще ничего не видите или просто пару параллельных линий или что-то еще?

В вашем коде есть одна небольшая ошибка, создающая точечное сообщение. Вы добавляете значения x, y, y вместо x, y, z.

Однако вы также не создаете набор строк, правильно описывающих ограничивающую рамку. В bbox_data перечислены 8 угловых точек ограничивающей рамки, вам нужно определить 12 краевых линий, соединяющих эти точки, чтобы они были нарисованы в RVIZ. маркер line_list требует двух точек для определения каждой линии , поскольку не существует простого алгоритма для сопоставления 8 точек с 24 начальной и конечной точками, которые необходимо добавить в сообщение маркера, поэтому вам, возможно, придется жестко закодировать эту часть.

Эти две ошибки вполне могут сочетаться таким образом, что вы ничего не видите на экране, но, надеюсь, это поможет вам это исправить.

person PeteBlackerThe3rd    schedule 06.04.2019