Acerca de los archivos urdf / xacro / sdf, world / launch

Después de mucho tiempo, he estado atascado en problemas relacionados. Resulta que debido a que no puedo entender la relación entre estos archivos, todavía escribo una publicación para grabar:

  • Tanto urdf como sdf son archivos de modelo y se pueden cargar en Gazebo;
  • urdf solo puede representar un solo robot, y sdf puede expresar todo el entorno y múltiples robots, por lo que Gazebo está impulsando el modelo sdf, pero la mayor parte del trabajo original se basa en urdf;
  • urdf no puede definir variables, por lo que xacro se puede definir a través de macros para definir algunos "atributos";
  • El archivo sdf generalmente está en una carpeta. El nombre de la carpeta es el nombre del modelo al que hicimos referencia al agregarlo. También hay un archivo model.config, una carpeta de mallas, una carpeta de materiales, etc. Referencia ~ / .gazebo / models / gas_station /;
  • Los archivos urdf y xacro usan la etiqueta <robot> para representar un robot, mientras que el archivo sdf usa la etiqueta <model> y las otras etiquetas también son diferentes. Puede haber algunas que se pueden convertir entre sí. Para una comprensión profunda, como pysdf, consulte aquí;
  • urdf es un concepto utilizado en ROS, por lo que no se puede agregar a Gazebo en el archivo mundial, pero se puede agregar en el archivo de inicio a través del método spawn_model en el paquete gazebo_ros;
< lanzamiento > 
  ... 
  < nombre de nodo = "spawn_urdf" pkg = "gazebo_ros" type = "spawn_model" args = "- file $ (find MYROBOR_description) /urdf/bus_mass.urdf -urdf -z 1 -modelo MYROBOT" /> </ lanzamiento > 

  • El archivo sdf se puede agregar directamente por referencia en el archivo mundial;
<? xml version = "1.0" ?> 
< sdf version = "1.4" > 
  < world name = "default" > 
    < include > 
      < uri > model: // ground_plane </ uri > 
    </ include > 
    < include > 
      < uri > model : // sun </ uri > 
    </ include > 
    < include > 
      < uri > modelo: // bus <
      > bus </ name > 
      < pose > -2.0 7.0 0.0 0 0 0 </ pose > 
    </ include > 
  </ world > 
</ sdf >
  • Archivo xacro de referencia en el lanzamiento:
< launch > 

    < param name = "robot_description" command = "$ (find xacro) / xacro '$ (find MYROBOT_description) /urdf/MYROBOT.xacro'" /> 

    < node name = "spawn_model" pkg = "gazebo_ros" type = "spawn_model" respawn = "false" output = "screen" args = "- urdf -x 0.0 -y 0.0 -z 0.0 -model ROBOT_NAME -param robot_description" /> 

</ launch >

 

Supongo que te gusta

Origin www.cnblogs.com/pig-fly/p/12696399.html
Recomendado
Clasificación