Uuv_simulator: В: моделирование водной поверхности?

Созданный на 15 сент. 2017  ·  17Комментарии  ·  Источник: uuvsimulator/uuv_simulator

Вопрос, есть ли в симуляторе НПА что-нибудь, что моделирует водную поверхность, например волны? (А если нет, то как получить красивую анимацию поверхности в видео о ветряной электростанции?)

question

Самый полезный комментарий

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

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

Первый пример показывает серию коробок, соединенных универсальными шарнирами, только с плавучестью (без демпфирования или сил сопротивления).

buoyancy example 1

Во втором примере показано несколько объектов в волнах, подверженных плавучести и некоторым силам сопротивления. Лодки поступают из онлайн-3D-склада, и я использовал Blender для уничтожения сетки, используемой для столкновений, чтобы уменьшить количество вершин, используемое при расчете плавучести.

buoyancy example

Все 17 Комментарий

Привет, в настоящее время нет физического моделирования поверхности воды или волн. Было бы здорово добавить эту функцию, но в настоящее время у нас нет возможности над этим работать. Если есть желающие потратить на это время, дайте нам знать.

Волны, которые вы могли видеть на видео или снимках экрана, являются чисто визуальными эффектами и реализованы с помощью этих шейдеров в свойствах материала.

Ах, спасибо за ответ. Я работаю над внедрением https://www.gamasutra.com/view/news/237528/Water_interaction_model_for_boats_in_video_games.php в качестве мирового плагина (беседка). Одна проблема, с которой я столкнусь (я еще не совсем так далеко ...), - это как представить движущиеся волны. Сейчас я использую карту высот, которая дает мне неподвижные волны. Это нормально для множества симуляций (хотя это и странно), но не для всего. Учитывая разделение сервера и клиента, я пытаюсь понять, что делать. Похоже, мне нужно запустить тот же алгоритм, который создает волны с обеих сторон. Один раз для физики и один раз для рендеринга.

Да, это можно сделать. Один из способов - иметь шейдер, реализующий модель JONSWAP или Пирсона-Московица и генерирующий волны для визуализации, и один плагин Gazebo, который делает то же самое для моделей.
Проблема, которую я вижу, заключается в том, что эти два модуля разделены в Gazebo (если вы запустите симуляцию с шейдером, который сказал
Что касается взаимодействия с моделями, я нашел один очень простой метод, реализованный в симуляторе Kelpie:

https://www.researchgate.net/publication/259741742_Kelpie_A_ROS-Based_Multi-robot_Simulator_for_Water_Surface_and_Aerial_Vehicles

Это кажется очень простым в реализации, но я не знаю, насколько это хорошо. Я никогда не пробовал.
Самая большая проблема, которую я вижу, - это синхронизация визуального и физического плагина.
Если у вас есть идеи, как это реализовать, дайте нам знать. Мне было бы очень интересно что-нибудь подобное.

Кстати, чтобы запустить пустой сценарий с волнами, нужно запустить

roslaunch uuv_descriptions ocean_waves.launch

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

У меня есть плагин мира, который ссылается на модель водной поверхности и модели лодок. Например:

    <plugin name="floating" filename="libfloating.so">
      <water_model>ocean</water_model>
      <boat_models>
        <boat>box</boat>
      </boat_models>
    </plugin>

Предполагается, что модель воды - это карта высот (я хочу перейти на сетку), а модели лодок - это треугольные сетки с единственной связью (на данный момент), представляющей корпус. Затем он вычисляет плавучесть, вязкое трение, сопротивление давлению и силы удара по всем затопленным треугольникам сетки и применяет их к каждому треугольнику.

Есть ли смысл попробовать интегрировать этот плагин в uuv-simulator? На этом этапе я пытаюсь избегать ros, и кажется, что uuv-simulator может работать без ros, но я не нашел много информации об этом. (У меня нет опыта работы с беседкой, да и с беседкой очень мало). Я также использовал ветку gazebo по умолчанию (т.е. v9), компилируется ли uuv-simulator с v8? Я знаю, что в физике есть много методов, название которых изменилось с v8 на v9 с переходом к воспламенению.

В чем разница между uuv_simulator / uuv_world_plugins / uuv_world_plugins / и uuv_simulator / uuv_gazebo_plugins / uuv_gazebo_plugins /?

Я загрузил двухминутную симуляцию падения ящика на волнистую поверхность воды: https://youtu.be/X3bFU9bbL4A Это самое первое подтверждение концепции ...

Это видео уже выглядит круто!

Мы попытались разделить все плагины так, что есть часть, не относящаяся к ROS, и плагин ROS, который является производным от чистого плагина Gazebo. До сих пор мы не использовали плагины Gazebo сами по себе, и может потребоваться некоторая работа, чтобы заставить их работать без roslaunch и т. Д.

Я думаю, что было бы разумно интегрировать это в uuv_simulator, и я был бы готов помочь с интеграцией, когда у вас есть рабочий прототип.

Мы все еще используем Gazebo версии 7. Я не уверен, когда мы перейдем на Gazebo 8 или 9, поскольку это должно вписываться в график проекта SWARMs .

Еще одна вещь. Если вы хотите изменить волны мира, с которым вы запускаете

roslaunch uuv_descriptions ocean_waves.launch

Вы можете установить различные параметры в этом файле материалов здесь

https://github.com/uuvsimulator/uuv_simulator/blob/master/uuv_descriptions/Media/materials/scripts/waves.material#L16

Например, амплитуда установлена ​​очень низкой, но вы можете установить другие амплитуды и частоты, чтобы увидеть, как она работает.

Спасибо за отзыв, прямо сейчас я пытаюсь собрать простую 3D-модель лодки. Не имея опыта работы с такими вещами, это займет какое-то время ...

Вы можете использовать это, если хотите

https://github.com/uuvsimulator/uuv_simulator/tree/master/uuv_descriptions/world_models/aurora_static

он статичен (используется только как маркер), но вы можете преобразовать его в модель робота. Также есть модель Kingfisher, которую вы можете найти здесь https://github.com/kf/kingfisher. Последний использует usv_gazebo_plugins из этого репозитория https://github.com/bsb808/usv_gazebo_plugins.

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

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

Первый пример показывает серию коробок, соединенных универсальными шарнирами, только с плавучестью (без демпфирования или сил сопротивления).

buoyancy example 1

Во втором примере показано несколько объектов в волнах, подверженных плавучести и некоторым силам сопротивления. Лодки поступают из онлайн-3D-склада, и я использовал Blender для уничтожения сетки, используемой для столкновений, чтобы уменьшить количество вершин, используемое при расчете плавучести.

buoyancy example

Здравствуйте, я также попытался сделать симуляцию водной поверхности, вы можете посмотреть видео

https://www.youtube.com/watch?v=NHfNfg2vhMc

И репозиторий

https://github.com/PanosMallioris/Autonomous-Marine-Exploration-Water-Simulation-ROS-GAZEBO

Привет,
Я искал симулятор, совместимый с ROS, чтобы имитировать волнистый океан.
Я изучил статью Келпи, но не смог найти их пакет в GitHub. Вы знаете, где я могу это найти?

@srmainwaring ваша модель выглядит потрясающе! Сейчас я тоже работаю над созданием модели лодки, покачивающейся на поверхности океана. Я новичок в Gazebo и имею ограниченный опыт написания плагинов. Не могли бы вы поделиться кодом / плагином, который вы используете для имитации качающихся объектов? Любая помощь будет очень признательна!

@samchamberlin вы можете найти проект здесь: https://github.com/srmainwaring/asv_wave_sim.

@srmainwaring Привет, Рис, я новичок в ROS и Gazebo, и я ориентируюсь на том, как смоделировать корабль, опускающий что-то глубоко в океан. К счастью для меня, похоже, вы сделали очень полезный пакет для меня. Заранее большое спасибо! Я не совсем уверен, как работают пакеты Gazebo, но как вы думаете, можно ли как-то объединить волновую функциональность вашего пакета с подводным моделированием пакета UUV?

@JuliusHendrix да, я думаю, что это возможно, но это потребует изменения способа расчета плавучести для UUV, если вы хотите, чтобы подводный аппарат реагировал на волны, когда он находится на поверхности, поскольку метод, используемый для расчета сил плавучести, отличается в двух пакетах . Если у вас есть какие-либо вопросы о пакете моделирования волн, я буду рад ответить на них в разделе проблем его репозитория. С вопросами о пакетах UUV лучше всего обращаться к авторам.

Команда OSRF VRX (https://bitbucket.org/osrf/vrx/src/default/) также использовала визуальные эффекты волн симулятора UUV и включила мое предложение по синхронизации визуальных эффектов в симуляции с физикой. Они используют расчет плавучести на основе объема, такой как имитатор НПА, а не подход, основанный на силе на поверхности, используемый в шахте. Для начала, может быть, проще попробовать объединить подходы VRX и UUV и перейти к более сложной модели плавучести позже, если она вам понадобится?

@srmainwaring Спасибо, я

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

musamarcusso picture musamarcusso  ·  12Комментарии

dbcesar picture dbcesar  ·  5Комментарии

bst picture bst  ·  33Комментарии

hughhugh picture hughhugh  ·  5Комментарии

HashirZahir picture HashirZahir  ·  10Комментарии