Нерест и Despawning объекты в Drake - PullRequest
0 голосов
/ 06 марта 2020

У меня в симуляции есть робот, который переносит объекты в разные места. Я хотел бы породить объект в определенной позиции с начальной скоростью, равной 0. Скорее всего, триггером будет обнаружение столкновения или когда предыдущий объект достигнет определенного места. Я также хотел бы удалять объекты после использования или, если они падают с конечного эффектора робота (для предотвращения сброса ядра после падения объекта)

Есть ли в Drake метод для непрерывного появления и исчезновения объектов?

Спасибо

1 Ответ

0 голосов
/ 09 марта 2020

У Дрейка нет способа автоматически создавать / убирать объекты. Несколько возможностей:

  • (Самый простой) Обнаружение запускающих событий во время симуляции (для этого может пригодиться функция «монитор»). Верните управление, восстановите модель с новыми или удаленными объектами, перенесите состояние из старого контекста в новый и перезапустите.
  • Предоставьте все необходимые объекты в исходной модели, но сделайте ненужные объекты неактивными (позиция их далеко, установить их скорости на ноль, и сделать их ускорения ноль *). Обнаружение инициирующих событий с помощью функций monitor () или свидетеля, активация / деактивация объектов для эмуляции spawn / despawn.

* Приведение неактивных объектов в неподвижное состояние может потребовать некоторых усилий. Это можно сделать с помощью контроллера или путем создания ForceElement, который действует как пружина / демпфер, пока не будет отключен с помощью логической переменной состояния. У других могут быть лучшие идеи для этого.

...