(self)
| 469 | self._counter = int(np.floor(absolute_elapsed / self.dt)) |
| 470 | |
| 471 | def _gen_motion(self): |
| 472 | t0 = time.time() |
| 473 | |
| 474 | future_motion, gen_motion_dict, abs_pose = self.dar_gen_fn( |
| 475 | text_embedding=self._text_embedding, |
| 476 | history_motion=self.history_motion, |
| 477 | abs_pose=self.history_abs_pose) |
| 478 | |
| 479 | t02 = time.time() |
| 480 | self.get_logger().debug( |
| 481 | f"dar_gen_fn: generate motion in {(t02 - t0) * 1000:.2f} ms") |
| 482 | |
| 483 | self.history_motion = future_motion[:, -self.history_len:, :] |
| 484 | self.history_abs_pose = abs_pose |
| 485 | for k in self._ref_motion_dict: |
| 486 | if isinstance(self._ref_motion_dict[k], torch.Tensor): |
| 487 | self._ref_motion_dict[k] = gen_motion_dict[k][:, -self. |
| 488 | future_len:] |
| 489 | # self.get_logger().debug(f"{k}: {self._ref_motion_dict[k].shape}") |
| 490 | # (Pdb) gen_motion_dict['root_trans_offset'].shape |
| 491 | # torch.Size([1, 10, 3]) |
| 492 | |
| 493 | self._current_block_size = self.future_len |
| 494 | self._block_index = self._gen_counter |
| 495 | self._gen_counter += self._current_block_size |
| 496 | t1 = time.time() |
| 497 | self.get_logger().debug( |
| 498 | f"Current | self._counter: {self._counter} | self._gen_counter: {self._gen_counter} | self._block_index: {self._block_index}" |
| 499 | ) |
| 500 | |
| 501 | self.get_logger().debug( |
| 502 | f"Generate motion in {(t1 - t0) * 1000:.2f} ms") |
| 503 | # Convert motion to message instance immediately after generation |
| 504 | self._convert_motion_to_msg_instance() |
| 505 | t2 = time.time() |
| 506 | self.get_logger().debug( |
| 507 | f"Convert motion to message instance in {(t2 - t1) * 1000:.2f} ms") |
| 508 | |
| 509 | def _reset_motion_buffer(self): |
| 510 | _reset_block_size = self.gen_len + self.future_len # 18 |
no test coverage detected