Uuv_simulator: <neutrally_buoyant>Tag tut nichts.</neutrally_buoyant>

Erstellt am 14. Juli 2017  ·  23Kommentare  ·  Quelle: uuvsimulator/uuv_simulator

Hallo,

Ich versuche, ein Fahrzeug in UUV Sim zu implementieren, und ich versuche, mein Fahrzeug einfach zum Schweben zu bringen, und ich setze sogar das Tag <neutrally_buoyant>1</neutrally_buoyant> wie gezeigt, aber mein Fahrzeug sinkt in der Sekunde, in der es hochgeladen wird. Gibt es einen Rat, den Sie geben können, um dieses Fahrzeug neutral oder sogar positiv auftriebsfähig zu machen?

bug

Alle 23 Kommentare

Hi,

danke für die meldung, das werde ich prüfen. In der Zwischenzeit können Sie Ihr Fahrzeug positiv treiben lassen, wenn Sie das Flag neutrally_buoyant auf Null setzen und stattdessen die Lautstärke einstellen, wie beim Modell rexrov https://github.com/uuvsimulator/uuv_simulator/ blob/master/uuv_descriptions/models/rexrov/urdf/rexrov.gazebo.xacro#L32.
Das Volumen wird dann verwendet, um den Auftriebskraftvektor zu berechnen.

Hallo,

Ich habe versucht, die Lautstärke ziemlich hoch einzustellen. Nicht so groß wie das rexrov , und es sank immer noch. Ich werde das versuchen und auf Sie zurückkommen, aber ich habe versucht, meine Lautstärke nach oben und meine Masse nach unten zu verschieben, um sie zum Schweben zu zwingen. Ich melde mich aber gleich mit den Ergebnissen zurück.

Also habe ich meine Lautstärke auf 3.1093918 m3 und meine Masse auf 0.123497 und mein Fahrzeug ist immer noch gesunken. Ich kann versuchen, es auf genau das einzustellen, was Sie in rexrov für das Volumen eingestellt haben, und sogar das Tag <box> auf das setzen, was das rexrov sowie das hydrodynamische Modell hatte . Ich weiß also nicht, wo ich nach einem Problem suchen soll.

Hast du <neutrally_buoyant>0</neutrally_buoyant> ?

@musamarcusso Ich habe versucht, <neutrally_buoyant> auf 0 und 1 . Keine wirkliche Veränderung.

Hallo @atomoclast , ist dies das Fahrzeug, das Sie modellieren möchten?

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

Ich werde versuchen, diese Parameter hier zu ersetzen, um dies zu reproduzieren.

@musamarcusso Ja, das ist das Fahrzeug, das ich modellieren

Ich habe eine Mesh-Datei, wenn Sie sie brauchen.

Ich habe gerade versucht, eine Testbox mit dem, was ich verstehe, dem Auftriebs-Plugin zu starten, und habe es mit dem neutrally_buoyant Tag auf 0 sowie mit 1 und der Box versucht sank beide Male immer noch. Außerdem wurde immer wieder der Fehler [Wrn] [UnderwaterObjectPlugin.cc:207] Relative angular acceleration is invalid -nan ausgegeben.

Ich habe beide Dateien unten, damit Sie sie überprüfen können. Nicht sicher, was das Problem ist. Ich habe die Erweiterung .txt hinzugefügt, damit ich sie im Kommentar hochladen kann.

box.urdf.txt
upload_box.launch.txt

Sobald Sie den Fehler Relative angular acceleration is invalid unser UnderwaterObjectPlugin keine Kräfte oder Drehmomente mehr aufbringen, da dies ein klarer Indikator dafür ist, dass die Physik-Engine defekt ist.

Ich habe mir deine Boxdefinition angeschaut:

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

Dies ist der Täter. Kein starrer Körper sollte Trägheitsmomente oder eine Masse von Null haben. Aufgrund der Art und Weise, wie Gazebo Beschleunigungen aus Kräften/Drehmomenten berechnet, führt dies zu einer Division durch Null.

Lassen Sie uns wissen, ob dies Ihr Problem löst.

@sebastianscherer Das macht

Auf zum Herausfinden des Thruster-Plugins! Da bekomme ich auch einige Probleme.

Im Pavillon-Terminal sehe ich:

[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

Im Triebwerksterminal sehe ich:

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
[]

Ich habe gerade rosrun tf view_frames und das war die Ausgabe. Ich sehe, dass der TF-Baum eine Transformation zwischen dem base_link und dem Thruster zeigt ...
rahmen.pdf

Die Frames zwischen der Welt und dem base_link des Fahrzeugs werden vom message_to_tf Knoten generiert, der Teil des hector_localization Pakets ist. Das Beispiel für die Startdatei des RexROV-Modells ist dies

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

Wie hast du das in der Launch-Datei angegeben?

@musamarcusso Gemäß dem Wiki-Tutorial habe ich die Transformation wie folgt aufgerufen:

<!-- 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>

Es scheint anders zu sein als die Zeile, die Sie oben genannt haben. Das werde ich jetzt versuchen.

Kannst du versuchen, den Block, den du mir geschickt hast, damit zu ersetzen?

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

Wenn dieser Fix funktioniert, werde ich das Tutorial sofort korrigieren.

Ich habe versucht, meinen Block durch Ihren Block zu ersetzen, aber es hat nicht funktioniert. Es funktionierte nur, wenn beide Blöcke zusammen aufgerufen wurden.

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
Jetzt muss ich sehen, warum es den TF nicht von Thruster 3 bekommt.

Ich kann meine Version des joy_velocity.launch starten, aber ich kann das Fahrzeug nicht mit meinem Controller steuern.

Ich habe versucht, Fehler zu beheben, und vergleiche die Ausgaben der rqt_graph Visualisierung der Knoten. Dies sind die beiden Netzwerke, die ich sehe. Keine Ahnung warum es nicht genau funktioniert.

videoray2
rexrov

Ein weiteres Update, das mir gerade aufgefallen ist:

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

Sollte sein: <xacro:property name="prop_mesh_file" value="file://$(find uuv_descriptions)/models/rexrov/mesh/prop.dae"/>

Hallo @atomoclast ,

nein, im Tutorial ist es richtig. Das Beispiel im Tutorial ist kein Funktionsbeispiel, deshalb habe ich diese README.md in den Mesh-Ordner gelegt, also muss diese prop_mesh_file von der Person bearbeitet werden, die das neue Fahrzeugmodell erstellt.
Das joy_velocity ist standardmäßig für das XBox-Controller-Mapping definiert. Welches Controller-Modell hast du?
Hast du deine Dateien irgendwo in Github? Ich könnte versuchen, es auszuführen und Ihnen ein Feedback zu geben.

@musamarcusso Ich habe das Repo hier hochgeladen: https://github.com/atomoclast/videoray_description/tree/feature/DEEP-291

Hallo @musamarcusso ,

Ja, ich habe es geklont. Ich werde heute später eine Rückmeldung geben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Timple picture Timple  ·  24Kommentare

HashirZahir picture HashirZahir  ·  10Kommentare

bst picture bst  ·  33Kommentare

dbcesar picture dbcesar  ·  5Kommentare

Timple picture Timple  ·  7Kommentare