Uuv_simulator: <neutrally_buoyant>タグは何もしません。</neutrally_buoyant>

作成日 2017年07月14日  ·  23コメント  ·  ソース: uuvsimulator/uuv_simulator

こんにちは、

UUV Simに車両を実装しようとしています。車両を浮かせようとしています。また、図のように<neutrally_buoyant>1</neutrally_buoyant>タグを設定しましたが、アップロードされた瞬間に車両が沈み続けます。 この車両を中立的に、または積極的に浮力を持たせるために役立つアドバイスはありますか?

bug

全てのコメント23件

やあ、

報告してくれてありがとう、私はそれをチェックします。 一方、 rexrovモデルhttps://github.com/uuvsimulator/uuv_simulator/のように、 rexrov neutrally_buoyantフラグをゼロに設定し、代わりに音量を設定すると、車両を積極的に浮力にすることができます。 blob / master / uuv_descriptions / models / rexrov / urdf / rexrov.gazebo.xacro#L32。
次に、その体積を使用して浮力ベクトルを計算します。

こんにちは、

音量をかなり大きく設定してみました。 rexrovほど大きくはなく、まだ沈んでいました。 私はそれを試してあなたに戻りますが、私はそれを浮かせるために私の音量を上げ、質量を下げようとしました。 でも、すぐに結果をお返しします。

そのため、音量を3.1093918 m3し、質量を0.123497に設定しましたが、車両はまだ沈んでいます。 ボリュームにrexrov設定されているものに正確に設定しようとする場合があります。また、 <box>タグをrexrovと流体力学モデルに設定することもできます。 。 そのため、どこで問題を確認すればよいかわかりません。

<neutrally_buoyant>0</neutrally_buoyant>を設定しましたか?

@musamarcusso <neutrally_buoyant>01 。 実際の変更はありません。

こんにちは@atomoclast 、これはあなたがモデル化したい車両ですか?

http://www.videoray.com/images/specsheets/2016/2016_P4STANDARDBASE_FINAL.pdf

これを再現するために、ここでこれらのパラメーターを置き換えてみます。

@musamarcussoはい、これは私がモデル化しようとしている車両です。

必要に応じてメッシュファイルを用意しています。

浮力プラグインであると理解しているテストボックスを起動しようとしましたが、 neutrally_buoyantタグを01両方に設定してテストしました。まだ両方の時間沈んだ。 また、 [Wrn] [UnderwaterObjectPlugin.cc:207] Relative angular acceleration is invalid -nanエラーを何度も出力していました。

以下に両方のファイルを確認してください。 問題が何であるかわからない。 コメントにアップロードできるように、 .txt拡張子を追加しました。

box.urdf.txt
upload_box.launch.txt

エラーRelative angular acceleration is invalidが表示されるとすぐに、UnderwaterObjectPluginは力やトルクを適用しなくなります。これは、物理エンジンが壊れていることを明確に示しているためです。

私はあなたの箱の定義を見ました:

<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0" />

これが犯人です。 剛体に慣性モーメントや質量がゼロであってはなりません。 Gazeboが力/トルクから加速度を計算する方法のため、これはゼロによる除算になります。

これで問題が解決するかどうかをお知らせください。

@sebastianschererそれは完全に理にかなっています。 基本的な楕円体を使用して車両の慣性を推定しましたが、現在は浮いています。

スラスタープラグインの理解に移りましょう! 私もそこでいくつかの問題を抱えています。

望楼のターミナルで私は見る:

[Msg] Thruster #0 initialized
[Msg]   - Link: videoray_pro4/thruster_0
[Msg]   - Robot model: videoray_pro4
[Msg]   - Input command Gazebo topic: /videoray_pro4/thrusters/0/input
[Msg]   - Thrust output Gazebo topic: /videoray_pro4/thrusters/0/thrust
[Msg] Thruster #1 initialized
[Msg]   - Link: videoray_pro4/thruster_1
[Msg]   - Robot model: videoray_pro4
[Msg]   - Input command Gazebo topic: /videoray_pro4/thrusters/1/input
[Msg]   - Thrust output Gazebo topic: /videoray_pro4/thrusters/1/thrust
[Msg] Thruster #2 initialized
[Msg]   - Link: videoray_pro4/thruster_2
[Msg]   - Robot model: videoray_pro4
[Msg]   - Input command Gazebo topic: /videoray_pro4/thrusters/2/input
[Msg]   - Thrust output Gazebo topic: /videoray_pro4/thrusters/2/thrust
[Msg] JointStatePublisher::robotNamespace=videoray_pro4

スラスターターミナルには、次のように表示されます。

process[videoray_pro4/thruster_allocator-1]: started with pid [26422]
[INFO] [1500390755.909692, 0.000000]: ThrusterManager::update_rate=50
output_dir= /home/andrew/Development/ underwater_ws/install/share/videoray_description/config/videoray_pro4
ThrusterManager: updating thruster poses
conversion_fcn= proportional
conversion_fcn_params= {'gain': 0.00031}
transform: /videoray_pro4/base_link -> /videoray_pro4/thruster_0
could not get transform from: /videoray_pro4/base_link
to: /videoray_pro4/thruster_0
[]

rosrun tf view_frames 、これが出力でした。 TFツリーがbase_linkとスラスターの間の変換を示しているのがわかります...
frame.pdf

worldと車両のbase_linkの間のフレームは、 hector_localizationパッケージの一部であるmessage_to_tfノードによって生成されます。 RexROVモデルの起動ファイルの例はこれです

https://github.com/uuvsimulator/uuv_simulator/blob/master/uuv_descriptions/models/rexrov/launch/upload_rexrov_default.launch#L31

起動ファイルでこれをどのように述べましたか?

@musamarcusso wikiチュートリアルに従って、私は次のように変換を呼び出しました。

<!-- Publish state and tf for in relation to the world frame -->
            <group ns="$(arg namespace)">
                <node name="ground_truth_to_tf" pkg="message_to_tf" type="message_to_tf" output="screen">
                    <param name="odometry_topic" value="/$(arg namespace)/pose_gt" />
                    <param name="frame_id" value="/$(arg world_frame)" />
                    <param name="tf_prefix" value="$(arg namespace)" />
                </node>
            </group>

あなたが上で呼びかけた行とは違うようです。 今からやってみます。

これで送ってくれたブロックを交換してみてください

<include file="$(find uuv_descriptions)/models/common/launch/message_to_tf.launch">
    <arg name="namespace" value="$(arg namespace)"/>
</include>

この修正が機能する場合は、すぐにチュートリアルを修正します。

ブロックをあなたのブロックに置き換えようとしましたが、うまくいきませんでした。 それが機能する唯一の方法は、両方のブロックが一緒に呼び出されることでした。

VelocityControllerNode: initializing node Thruster #0 - proportional - thrusters/0/input transform: /videoray_pro4/base_link -> /videoray_pro4/thruster_1 Thruster #1 - proportional - thrusters/1/input transform: /videoray_pro4/base_link -> /videoray_pro4/thruster_2 Thruster #2 - proportional - thrusters/2/input transform: /videoray_pro4/base_link -> /videoray_pro4/thruster_3 could not get transform from: /videoray_pro4/base_link to: /videoray_pro4/thruster_3 [<uuv_thrusters.models.thruster_proportional.ThrusterProportional object at 0x7efc4bdb8a50>, <uuv_thrusters.models.thruster_proportional.ThrusterProportional object at 0x7efc4bdb8c10>, <uuv_thrusters.models.thruster_proportional.ThrusterProportional object at 0x7efc4bd4c190>] TAM= [[ 1. 0. 0. ] [ 0. 0. 0. ] [ 0. 0.99999968 0.99999968] [ 0. 0.09999997 -0.09999997] [ 0.1 0.15249995 0.15249995] [ 0. 0. 0. ]] ThrusterManager: ready ThrusterManager: ready
ここで、スラスター3からTFを取得できない理由を確認する必要があります。

自分のバージョンのjoy_velocity.launchを起動することはできますが、コントローラーで車両を制御できません。

私は物事をデバッグしようとしていて、ノードのrqt_graph視覚化の出力を比較しています。 これらは私が見ている2つのネットワークです。 正確に機能しない理由がわかりません。

videoray2
rexrov

私が気付いたもう1つの更新:

Wikiの呼び出し: <xacro:property name="prop_mesh_file" value="file://$(find uuv_descriptions_example)/models/rov_example/mesh/propeller.dae"/>

あるべき: <xacro:property name="prop_mesh_file" value="file://$(find uuv_descriptions)/models/rexrov/mesh/prop.dae"/>

こんにちは@atomoclast

いいえ、チュートリアルでは正しいです。 チュートリアルの例は機能的な例ではありません。そのため、このREADME.mdをメッシュフォルダーに配置しました。そのため、このprop_mesh_fileは、新しい車両モデルを作成する人が編集する必要があります。
joy_velocityは、XBoxコントローラーマッピングのデフォルトで定義されています。 あなたが持っているコントローラーのモデルは何ですか?
Githubのどこかにファイルがありますか? 私はそれを実行してみて、あなたにフィードバックを与えることができます。

@musamarcussoここにリポジトリをアップロードしました: https

こんにちは@musamarcusso 、あなたはこのリポジトリを

はい、クローンを作成しました。 本日遅くにフィードバックを差し上げます。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

bst picture bst  ·  33コメント

Timple picture Timple  ·  24コメント

Timple picture Timple  ·  7コメント

tve picture tve  ·  17コメント

dbcesar picture dbcesar  ·  5コメント