Gazebo: buoyancy uw biomimetics robot's scraps
Gazebo: 水中生物模倣型ロボットを動かそうとしたメモ
目的と課題点
目的
stlモデルをvisualにもつ多関節水中ロボットを用いてGazebo内で遊泳シミュレーションをする
課題点
- ros2_controlタグを追加すると中性浮力が保たれない
- collisionモデルのgeometoryに応じたinertialを設定し、ros2_control経由でフラッピング動作をさせても、前進しない
以下、メモ
visualのみ、meshを読み出す
inertialの全パラメータはfusion2urdfで生成されたもので、変更しない
collisionoを中性浮力になるgeometryタイプに変更する
volume_calculator.pyで"mass"から、boxのxyzを求める
collision 中性浮力となるyをbox sizeに適用する
collision origin 0へ
<link name="base_link">
<inertial>
<origin xyz="0.00792150552871263 0.004962055813034319 0.04887561199610228" rpy="0 0 0"/>
<mass value="4.52"/>
<inertia ixx="0.027915" iyy="0.052072" izz="0.073658" ixy="-0.000771" iyz="-3.2e-05" ixz="-0.001061"/>
</inertial>
<collision>
<origin xyz="0.00792150552871263 0.004962055813034319 0.04887561199610228" rpy="0 0 0"/>
<geometry>
<box size="0.24 0.23541666666666666 0.08"/>
</geometry>
</collision>
<visual>
<geometry>
<mesh filename="file://$(find manta_v2_description)/meshes/base_link.dae" scale="0.001 0.001 0.001"/>
</geometry>
<material name="grey"/>
</visual>
</link>
<link name="link_Ltop_roll1_1">
<inertial>
<origin xyz="-0.03076571133852378 0.038562518219365516 0.00018122130753521482" rpy="0 0 0"/>
<mass value="0.19434161563031094"/>
<inertia ixx="0.000104" iyy="0.000241" izz="0.000317" ixy="1e-06" iyz="0.0" ixz="-0.0"/>
</inertial>
<visual>
<origin xyz="-0.137421 -0.145942 -0.049756" rpy="0 0 0"/>
<geometry>
<mesh filename="file://$(find manta_v2_description)/meshes/link_Ltop_roll1_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="grey"/>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.08 0.2 0.012146350976894434"/>
</geometry>
</collision>
</link>
<joint name="rev_link_Rmid_roll1" type="revolute">
<origin xyz="0.040221 -0.122812 0.050056" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="link_Rmid_roll1_1"/>
<axis xyz="0.983165 -0.182721 -0.0"/>
<limit upper="0.523599" lower="-0.523599" effort="100" velocity="100"/>
- <dynamics damping="0.1" friction="0.0"/>
</joint>
jointタグ内に、dynamics damping frictionの設定は削除
progress 2022/10/10
Buoyancy 1000
ros2_controlタグなし
ros2 launch manta_v2_gazebo_ros2_control stl_to_ocean.launch.py
仰向けで静止
Buoyancy 1000
ros2_controlタグあり
libLiftDragPluginあり
ros2 launch manta_v2_gazebo_ros2_control trajectory_plankton.launch.py
線形的に回転量が増加し、モデルが破損する
floating_sphere_with_fin
- floating_sphere_with_fin.urdf
- sphere_with_fin.launch.py
- floating_sphere_with_fin_controller.yaml
[ROS Q&A] 059 - Aerodynamic parameters of lift-drag plugin
Gazebo ANSWERS Need information on aerodynamic parameters of lift-drag plugin
Buoyancy plugin
- floating_sphere.urdf
- scripts/volume_calculator.py
- inertial_calculator.py
- worlds/ocean.world
[Morpheus Chair] Buoyancy Dynamic Control Gazebo | EXTRA.Ep.2
その他やること
[ROS Q&A] 066 - buoyancy neutral object goes up with hydrodynamics plugin #Part 2
[ROS Tutorials] 068 - buoyancy neutral object goes up with hydrodynamics plugin #Part 3
[ROS Q&A] 074 - Aerodynamic parameters of lift-drag plugin part2
知見のある方がいましたら、是非ご教授お願いします。
If anyone knows, please guide me.