как показать маркер рос в питоне? - PullRequest
1 голос
/ 23 марта 2019

Я хочу показать 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])

это

(x,y,z)

1 Ответ

0 голосов
/ 06 апреля 2019

Когда вы говорите

но я не видел bbox

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

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

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

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

...