Uuv_simulator: T: pemodelan permukaan air?

Dibuat pada 15 Sep 2017  ·  17Komentar  ·  Sumber: uuvsimulator/uuv_simulator

Pertanyaan, apakah ada sesuatu di simulator uuv yang memodelkan permukaan air, seperti gelombang? (Dan jika tidak, bagaimana cara mendapatkan animasi permukaan yang bagus di video ladang angin?)

question

Komentar yang paling membantu

Hai, Saya memiliki minat yang sama dalam pemodelan daya apung untuk kapal permukaan di Gazebo dan ini tampaknya menjadi tempat di mana itu sedang dibahas. Saya telah membuat beberapa kemajuan menggunakan pendekatan yang disebutkan di atas dan dengan senang hati akan berbagi jika ada minat.

Saya memiliki contoh kerja yang mendukung objek yang ditentukan menggunakan primitif gazebo atau jerat yang dapat terdiri dari satu atau lebih tautan. Bidang gelombang dimodelkan menggunakan mesh planar dan ada plugin terpisah untuk visual dan fisika yang terus disinkronkan menggunakan waktu simulasi dunia. Ada ketergantungan pada perpustakaan CGAL karena saya menggunakan paket mesh permukaannya.

Contoh pertama menunjukkan serangkaian kotak yang dihubungkan oleh sambungan universal dengan daya apung saja (tanpa gaya redaman atau gaya seret).

buoyancy example 1

Contoh kedua menunjukkan sejumlah objek dalam gelombang yang mengalami gaya apung dan beberapa gaya hambat. Perahu adalah stok dari gudang 3D online dan saya telah menggunakan Blender untuk memusnahkan mesh yang digunakan untuk tabrakan untuk mengurangi jumlah titik yang digunakan dalam perhitungan daya apung.

buoyancy example

Semua 17 komentar

Hai, saat ini tidak ada simulasi fisik permukaan air atau gelombang. Ini akan menjadi fitur hebat untuk ditambahkan tetapi saat ini kami tidak memiliki kapasitas untuk mengerjakannya. Jika ada yang bersedia meluangkan waktu untuk itu, beri tahu kami.

Gelombang yang mungkin Anda lihat di video atau tangkapan layar adalah efek visual murni dan diimplementasikan menggunakan shader ini di properti material.

Ah, terima kasih atas jawabannya. Saya sedang mengerjakan implementasi https://www.gamasutra.com/view/news/237528/Water_interaction_model_for_boats_in_video_games.php sebagai plugin dunia (gazebo). Satu masalah yang akan saya hadapi (saya belum sejauh itu...) adalah bagaimana merepresentasikan gelombang yang bergerak. Saat ini saya menggunakan peta ketinggian, yang memberi saya gelombang yang tidak bergerak. Itu bagus untuk banyak simulasi (walaupun aneh), tetapi tidak semuanya. Mengingat pemisahan server/klien, saya mencoba mencari tahu apa yang harus dilakukan. Sepertinya saya pada dasarnya harus menjalankan algoritma yang sama yang menghasilkan gelombang di kedua sisi. Sekali untuk fisika dan sekali untuk rendering.

Ya, itu bisa dilakukan. Salah satu caranya adalah dengan memiliki shader yang mengimplementasikan model JONSWAP atau Pierson-Moskowitz dan menghasilkan gelombang untuk visualisasi dan satu plugin Gazebo yang melakukan hal serupa untuk model.
Masalah yang saya lihat adalah bahwa kedua modul ini dipisahkan di Gazebo (jika Anda menjalankan simulasi dengan shader @sebastianscherer berkata dan berhenti sebentar, gelombang akan tetap berjalan). Selain shader, saya tidak tahu cara lain untuk menunjukkan sesuatu seperti gelombang di lingkungan.
Mengenai interaksi dengan model, satu metode yang sangat sederhana yang saya temukan adalah ini diimplementasikan dalam simulator Kelpie:

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

Tampaknya sangat mudah untuk diterapkan, tetapi saya tidak tahu seberapa bagus itu. Saya tidak pernah mencobanya.
Masalah terbesar yang saya lihat adalah sinkronisasi plugin visual dan fisik.
Jika Anda memiliki ide tentang cara menerapkan ini, beri tahu kami. Saya akan sangat tertarik dengan hal seperti itu.

Ngomong-ngomong, untuk memulai skenario kosong dengan ombak, kamu harus lari

roslaunch uuv_descriptions ocean_waves.launch

Terima kasih atas komentarnya. Saya telah menerapkan fisika yang dijelaskan dalam posting awal saya, tetapi belum disetel. Sejauh ini terlihat cukup meyakinkan untuk potongan pertama. Saya pikir saya perlu membuat lebih banyak kemajuan di air datar sebelum terlalu masuk akal untuk melihat ombak.

Apa yang saya miliki adalah plugin dunia yang mereferensikan model permukaan air, dan model perahu. Misalnya:

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

Diasumsikan bahwa model air adalah HeightMap (saya ingin mengubahnya menjadi mata jaring) dan model perahu adalah mata jaring segitiga dengan satu mata rantai (untuk saat ini) mewakili lambung kapal. Kemudian menghitung gaya apung, gesekan viskos, tarikan tekanan, dan gaya bantingan pada semua segitiga terendam dari mata jaring dan menerapkannya pada setiap segitiga.

Apakah masuk akal untuk mencoba dan mengintegrasikan plugin ini ke dalam uuv-simulator? Pada tahap ini saya mencoba untuk menghindari ros dan tampaknya uuv-simulator dapat berjalan tanpa ros, tetapi saya belum menemukan banyak info tentang itu. (Saya tidak punya pengalaman ros, dan sangat sedikit dengan gazebo). Saya juga telah menggunakan cabang default gazebo (yaitu v9), apakah uuv-simulator dikompilasi dengan v8? Saya tahu ada sejumlah metode dalam fisika yang telah mengubah nama antara v8 dan v9 dengan bergerak ke arah hal-hal pengapian.

Apa perbedaan antara uuv_simulator/uuv_world_plugins/uuv_world_plugins/ dan uuv_simulator/uuv_gazebo_plugins/uuv_gazebo_plugins/ ?

Saya mengunggah simulasi 2 menit menjatuhkan kotak ke permukaan air bergelombang: https://youtu.be/X3bFU9bbL4A Ini adalah bukti konsep pertama...

Video itu sudah terlihat cukup keren!

Kami mencoba memisahkan semua plugin sehingga ada bagian non-ROS dan plugin ROS yang berasal dari plugin Gazebo murni. Kami sejauh ini tidak menggunakan plugin Gazebo sendiri dan mungkin perlu beberapa pekerjaan untuk menjalankannya tanpa roslaunch dll.

Saya pikir masuk akal untuk mengintegrasikan ini ke uuv_simulator dan saya akan bersedia membantu integrasi ketika Anda memiliki prototipe yang berfungsi.

Kami masih menggunakan Gazebo versi 7. Saya tidak yakin kapan kami akan beralih ke Gazebo 8 atau 9, karena harus sesuai dengan jadwal proyek SWRM .

Hanya satu lagi. Jika Anda ingin mengubah gelombang dari dunia yang Anda luncurkan

roslaunch uuv_descriptions ocean_waves.launch

Anda dapat mengatur parameter yang berbeda dalam file bahan ini di sini

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

Amplitudo diatur sangat rendah, misalnya, tetapi Anda dapat menempatkan amplitudo dan frekuensi lain untuk melihatnya bekerja.

Terima kasih atas umpan baliknya, Saat ini saya sedang mencoba membuat model perahu 3D sederhana. Tidak memiliki pengalaman dengan hal-hal itu akan memakan waktu...

Anda dapat menggunakan yang ini jika Anda mau

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

itu statis (hanya digunakan sebagai semacam penanda), tetapi Anda dapat memodifikasinya menjadi model robot. Dan ada juga model Kingfisher yang bisa kamu dapatkan disini https://github.com/kf/kingfisher. Yang terakhir ini menggunakan usv_gazebo_plugins dari repositori ini https://github.com/bsb808/usv_gazebo_plugins.

Hai, Saya memiliki minat yang sama dalam pemodelan daya apung untuk kapal permukaan di Gazebo dan ini tampaknya menjadi tempat di mana itu sedang dibahas. Saya telah membuat beberapa kemajuan menggunakan pendekatan yang disebutkan di atas dan dengan senang hati akan berbagi jika ada minat.

Saya memiliki contoh kerja yang mendukung objek yang ditentukan menggunakan primitif gazebo atau jerat yang dapat terdiri dari satu atau lebih tautan. Bidang gelombang dimodelkan menggunakan mesh planar dan ada plugin terpisah untuk visual dan fisika yang terus disinkronkan menggunakan waktu simulasi dunia. Ada ketergantungan pada perpustakaan CGAL karena saya menggunakan paket mesh permukaannya.

Contoh pertama menunjukkan serangkaian kotak yang dihubungkan oleh sambungan universal dengan daya apung saja (tanpa gaya redaman atau gaya seret).

buoyancy example 1

Contoh kedua menunjukkan sejumlah objek dalam gelombang yang mengalami gaya apung dan beberapa gaya hambat. Perahu adalah stok dari gudang 3D online dan saya telah menggunakan Blender untuk memusnahkan mesh yang digunakan untuk tabrakan untuk mengurangi jumlah titik yang digunakan dalam perhitungan daya apung.

buoyancy example

Halo saya juga mencoba membuat simulasi permukaan air, Anda dapat memeriksa videonya

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

Dan repositori

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

Hai,
Saya sedang mencari simulator yang kompatibel dengan ROS untuk mensimulasikan lautan bergelombang.
Saya mempelajari makalah Kelpie tetapi saya tidak dapat menemukan paket mereka di GitHub. Apakah Anda tahu di mana saya dapat menemukannya?

@srmainwaring model Anda terlihat luar biasa! Saat ini saya sedang membuat model perahu yang bergoyang di permukaan laut juga. Saya cukup baru di Gazebo dan memiliki pengalaman menulis plugin yang terbatas. Apakah Anda bersedia membagikan kode/plugin yang Anda gunakan untuk mensimulasikan objek goyang? Bantuan apapun akan sangat dihargai!

@samchamberlin Anda dapat menemukan proyek di sini: https://github.com/srmainwaring/asv_wave_sim.

@srmainwaring Hai Rhys, saya baru

@JuliusHendrix ya saya pikir itu mungkin, tetapi itu akan melibatkan mengubah cara daya apung dihitung untuk UUV jika Anda ingin kapal selam merespons gelombang ketika di permukaan karena metode yang digunakan untuk menghitung gaya apung berbeda dalam dua paket . Jika Anda memiliki pertanyaan tentang paket simulasi gelombang, saya akan dengan senang hati menjawabnya di bagian masalah dari repositorinya. Untuk pertanyaan tentang paket UUV, Anda sebaiknya mengarahkannya ke penulis.

Tim OSRF VRX (https://bitbucket.org/osrf/vrx/src/default/) juga telah memanfaatkan visual gelombang simulator UUV dan memasukkan saran saya untuk menyinkronkan visual dalam simulasi dengan fisika. Mereka menggunakan perhitungan daya apung volume dasar seperti simulator UUV, daripada pendekatan berbasis gaya permukaan yang digunakan di tambang. Untuk memulainya mungkin lebih mudah untuk mencoba menggabungkan pendekatan dalam VRX dan UUV dan beralih ke model daya apung yang lebih kompleks nanti jika Anda membutuhkannya?

@srmainwaring Terima kasih, saya akan memeriksanya!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

HashirZahir picture HashirZahir  ·  10Komentar

musamarcusso picture musamarcusso  ·  12Komentar

ccs-ros picture ccs-ros  ·  10Komentar

dbcesar picture dbcesar  ·  5Komentar

bst picture bst  ·  33Komentar