Ejemplo n.º 1
0
Archivo: orbit.py Proyecto: suseme/xviz
    def get_message(self, time_offset):
        timestamp = self._timestamp + time_offset

        builder = xviz.XVIZBuilder(metadata=self._metadata)

        if self._first:
            self._first = False
            return self._get_first_message(builder, time_offset)
        return self._get_message(builder, time_offset)
Ejemplo n.º 2
0
    def get_message_sp(self, time_offset):
        timestamp = self._timestamp + time_offset
        # timestamp = time.time()

        t_start = time.perf_counter()
        t_elapsed = {}

        builder = xviz.XVIZBuilder(metadata=self._metadata)

        t_elapsed['builder'] = time.perf_counter() - t_start
        t_start = time.perf_counter()

        #######################################################################
        self._draw_pose(builder, timestamp)

        t_elapsed['pose'] = time.perf_counter() - t_start
        t_start = time.perf_counter()

        self._update_vehicle_info(builder, timestamp)

        t_elapsed['vehinfo'] = time.perf_counter() - t_start
        t_start = time.perf_counter()

        self._update_lane(builder, timestamp)

        t_elapsed['lane'] = time.perf_counter() - t_start
        t_start = time.perf_counter()

        self._update_obstacle(builder, timestamp)

        t_elapsed['obstacle'] = time.perf_counter() - t_start
        t_start = time.perf_counter()

        # self._updata_camera(builder, timestamp)

        # self._update_point_cloud(builder, timestamp)

        #######################################################################

        data = builder.get_message()
        t_elapsed['get_msg'] = time.perf_counter() - t_start
        t_start = time.perf_counter()

        message = {'type': 'xviz/state_update', 'data': data.to_object()}

        t_elapsed['protocl'] = time.perf_counter() - t_start
        t_start = time.perf_counter()

        # print('message', message)

        # for k in t_elapsed.keys():
        #     print('{}={: ^8,.6f}, '.format(k, t_elapsed[k]), end='')
        # print('')

        return json.dumps(message)
Ejemplo n.º 3
0
    def get_message_inner(self, time_offset) -> xviz.message.XVIZMessage:
        timestamp = self._timestamp + time_offset

        builder = xviz.XVIZBuilder(metadata=self._metadata)
        self._draw_pose(builder, timestamp)
        #self._draw_grid(builder)

        #image = Image.open('cat.jpg')
        #self._put_image(builder, np.asarray(image))

        return builder.get_message()
Ejemplo n.º 4
0
    def get_message(self, time_offset):
        timestamp = self._timestamp + time_offset

        builder = xviz_avs.XVIZBuilder(metadata=self._metadata)
        self._draw_pose(builder, timestamp)
        self._draw_grid(builder)
        data = builder.get_message()

        if self._live:
            return {
                'type': 'xviz/state_update',
                'data': data.to_object()
            }
        else:
            return data
Ejemplo n.º 5
0
    def get_message_part(self, part):
        timestamp = time.time()  # self._timestamp + time_offset
        builder = xviz.XVIZBuilder(metadata=self._metadata)
        self._draw_pose(builder, timestamp)
        if part == 'vehinfo':
            self._update_vehicle_info(builder, timestamp)
        elif part == 'lane':
            self._update_lane(builder, timestamp)
        elif part == 'obstacle':
            self._update_obstacle(builder, timestamp)

        data = builder.get_message()
        message = {'type': 'xviz/state_update', 'data': data.to_object()}

        # print('message', message)

        return message
Ejemplo n.º 6
0
def get_message(metadata, frame, vehicle):
    timestamp = frame / 30.0

    location = vehicle.get_transform().location
    rotation = vehicle.get_transform().rotation

    builder = xviz.XVIZBuilder(metadata=metadata)
    builder.pose() \
        .timestamp(timestamp) \
        .orientation(rotation.roll, rotation.pitch, rotation.yaw) \
        .position(location.x, location.y, location.z)

    builder.primitive('/points') \
        .points([3, 0, 0, 0, 3, 0, 0, 0, 3]) \
        .colors([200, 40, 80, 80, 40, 200, 80, 200, 40]) \
        .id("indicator")
    return builder.get_message()
Ejemplo n.º 7
0
 async def get_message(self, t, runtime):
     world = runtime._world
     timestamp = world.time
     builder = xviz_avs.XVIZBuilder(metadata=self._metadata)
     for type_name, primitives in world.renderer.primitives.items():
         if type_name == "EGO_AGENT_STATE":
             await self.ProcessEgoState(builder, primitives, timestamp)
         elif type_name == "MAP_LINE":
             await self.DrawLines(builder,
                                  primitives,
                                  timestamp,
                                  channel="/map")
         elif type_name == "EGO_AGENT":
             await self.DrawPolygons(builder,
                                     primitives,
                                     timestamp,
                                     channel="/ego_vehicle/bounding_box")
         elif type_name == "OTHER_AGENT":
             await self.DrawPolygons(builder,
                                     primitives,
                                     timestamp,
                                     channel="/other_vehicles")
         elif type_name == "LINES":
             await self.DrawLines(builder,
                                  primitives,
                                  timestamp,
                                  channel="/other/lines")
         elif type_name == "POINTS":
             await self.DrawPoints(builder,
                                   primitives,
                                   timestamp,
                                   channel="/other/points")
         elif type_name == "POLYGONS":
             await self.DrawPolygons(builder,
                                     primitives,
                                     timestamp,
                                     channel="/other/polygons")
     data = builder.get_message()
     return {'type': 'xviz/state_update', 'data': data.to_object()}
Ejemplo n.º 8
0
    def get_message(self, time_offset):
        timestamp = self._timestamp + time_offset

        builder = xviz.XVIZBuilder(metadata=self._metadata)

        return self._get_message(builder, timestamp)