Uuv_simulator: <neutrally_buoyant>la etiqueta no hace nada.</neutrally_buoyant>

Creado en 14 jul. 2017  ·  23Comentarios  ·  Fuente: uuvsimulator/uuv_simulator

Hola,

Estoy tratando de implementar un vehículo en UUV Sim, y estoy tratando de hacer que mi vehículo flote, e incluso configuré la etiqueta <neutrally_buoyant>1</neutrally_buoyant> como se muestra, pero mi vehículo sigue hundiéndose en el momento en que se carga. ¿Hay algún consejo que pueda dar para ayudar a que este vehículo flote neutralmente o incluso positivamente?

bug

Todos 23 comentarios

Hola,

gracias por informar, lo comprobaré. Mientras tanto, puede hacer que su vehículo flote positivamente si establece la bandera neutrally_buoyant en cero y establece el volumen en su lugar, como en el modelo rexrov https://github.com/uuvsimulator/uuv_simulator/ blob / master / uuv_descriptions / models / rexrov / urdf / rexrov.gazebo.xacro # L32.
Luego, el volumen se usa para calcular el vector de fuerza de flotabilidad.

Hola,

Traté de configurar el volumen para que sea bastante grande. No es tan grande como el rexrov , y todavía se estaba hundiendo. Lo intentaré y me pondré en contacto contigo, pero traté de subir mi volumen y bajar mi masa para obligarlo a flotar. Sin embargo, me comunicaré contigo con los resultados en un segundo.

Así que puse mi volumen en 3.1093918 m3 y mi masa en 0.123497 , y mi vehículo aún se hundió. Puedo intentar configurarlo exactamente a lo que tiene rexrov configurado para su volumen, e incluso configurar la etiqueta <box> a lo que tenía rexrov , así como su modelo hidrodinámico . Entonces no sé dónde buscar un problema.

¿Estableciste <neutrally_buoyant>0</neutrally_buoyant> ?

@musamarcusso intenté configurar <neutrally_buoyant> en 0 y 1 . Ningún cambio real.

Hola @atomoclast , ¿es este el vehículo que quieres modelar?

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

Intentaré reemplazar estos parámetros aquí para reproducir esto.

@musamarcusso Sí, este es el vehículo que intento modelar.

Tengo un archivo de malla si lo necesita.

Intenté lanzar una caja de prueba con lo que entiendo es el complemento de flotabilidad y lo intenté con la etiqueta neutrally_buoyant configurada en 0 así como con 1 , y la caja todavía se hundió en ambas ocasiones. También imprimía el error [Wrn] [UnderwaterObjectPlugin.cc:207] Relative angular acceleration is invalid -nan una y otra vez.

Tengo ambos archivos a continuación para que los revise. No está seguro de cuál es el problema. Agregué la extensión .txt para poder cargarla en el comentario.

box.urdf.txt
upload_box.launch.txt

Tan pronto como vea el error Relative angular acceleration is invalid nuestro UnderwaterObjectPlugin ya no aplicará ninguna fuerza o torsión, ya que este es un claro indicador de que el motor de física está averiado.

Eché un vistazo a la definición de tu caja:

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

Este es el culpable. Ningún cuerpo rígido debe tener momentos de inercia ni una masa cero. Debido a la forma en que Gazebo calcula las aceleraciones de fuerzas / pares, esto resultará en una división por cero.

Háganos saber si esto resuelve su problema.

@sebastianscherer Eso tiene mucho sentido. Acabo de usar un elipsoide básico para estimar la inercia de mi vehículo y ahora está flotando.

¡A descubrir el complemento Thruster! También tengo algunos problemas.

En la terminal de la glorieta veo:

[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

En la terminal del propulsor, veo:

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

Acabo de ejecutar rosrun tf view_frames y esta fue la salida. Veo que el árbol TF muestra una transformación entre base_link y el propulsor ...
frames.pdf

Los marcos entre el mundo y el base_link del vehículo son generados por el nodo message_to_tf , que es parte del paquete hector_localization . El ejemplo del archivo de inicio del modelo RexROV es este

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

¿Cómo dijiste esto en el archivo de lanzamiento?

@musamarcusso Según el tutorial de wiki, llamé a la transformación de la siguiente manera:

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

Parece diferente a la línea que llamó arriba. Lo intentaré ahora.

¿Puedes intentar reemplazar el bloque que me enviaste por esto?

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

Si esta solución funciona, corregiré el tutorial de inmediato.

Intenté reemplazar mi bloque con el tuyo, pero no funcionó. La única forma en que funcionó fue que ambos bloques se reunieron.

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
Ahora necesito ver por qué no puede obtener el TF del propulsor 3.

Puedo lanzar mi versión del joy_velocity.launch , pero no puedo controlar el vehículo con mi controlador.

He intentado depurar cosas y estoy comparando los resultados de la visualización rqt_graph de los nodos. Estas son las dos redes que estoy viendo. No estoy seguro de por qué no funciona exactamente.

videoray2
rexrov

Otra actualización que acabo de darme cuenta:

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

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

Hola @atomoclast ,

no, es correcto en el tutorial. El ejemplo del tutorial no es un ejemplo funcional, por eso puse este README.md en la carpeta de malla, por lo que este prop_mesh_file tiene que ser editado por la persona que hace el nuevo modelo de vehículo.
El joy_velocity se define por defecto para el mapeo del controlador XBox. ¿Cuál es el modelo del controlador que tienes?
¿Tienes tus archivos en algún lugar de Github? Podría intentar ejecutarlo y darte un comentario.

@musamarcusso He subido el repositorio aquí: https://github.com/atomoclast/videoray_description/tree/feature/DEEP-291

Hola @musamarcusso , ¿ya has tenido la oportunidad de revisar este repositorio?

Sí, lo cloné. Daré una retroalimentación más tarde hoy.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

ccs-ros picture ccs-ros  ·  10Comentarios

dbcesar picture dbcesar  ·  5Comentarios

hughhugh picture hughhugh  ·  5Comentarios

Timple picture Timple  ·  7Comentarios

HashirZahir picture HashirZahir  ·  10Comentarios