etiqueta <node>

<< TableOfContents (3) >>

La etiqueta <node> se utiliza para especificar un ROS node que desea que se inicie. Esta es la etiqueta roslaunch más común, ya que admite las funciones más importantes: activar y desactivar nodos.

roslaunch no proporciona ninguna garantía sobre en qué orden comienzan los nodos. Esto es intencional: no hay forma de saber externamente cuándo un nodo está completamente inicializado, por lo que todo el código que se inicia debe ser robusto para iniciarse en cualquier orden.

La página de tutoriales roslaunch cubre algunos ejemplos de cómo utilizar completamente la etiqueta <node>, como configurando un nodo para que se inicie en gdb.

Ejemplos

<node name="listener1" pkg="rospy_tutorials" type="listener.py" args="--test" respawn="true" />

Inicia el "listener1" nodo usando el ejecutable listener.py del rospy_tutorials paquete con el argumento de línea de comandos --test. Si el nodo muere, se reaparecerá automáticamente.

<node name="bar1" pkg="foo_pkg" type="bar" args="$(find baz_pkg)/resources/map.pgm" />

Lanza el nodo barra desde el paquete foo_pkg. Este ejemplo usa argumentos de sustitución para pasar una referencia portátil a baz_pkg/resources/map.pgm.

Atributos

.pkg="mypackage"

  • Paquete de nodo.

type ="nodetype "

  • Tipo de nodo. Debe haber un ejecutable correspondiente con el mismo nombre.

name ="nodename"

  • Nombre del nodo. NOTA: el nombre no puede contener un namespace. Utilice el atributo ns en su lugar.

args ="arg1 arg2 arg3 " (opcional)

  • Pasa argumentos al nodo.

machine="machine-name " (opcional, ver <machine>)

  • Inicia el nodo en la máquina designada.

respawn=" true"(opcional, predeterminado: falso)

  • Reinicia el nodo automáticamente si se cierra.

respawn_delay=" 30" (opcional, por defecto 0) << Versión(ROS indigo) >>

  • Si respawn es true, espera respawn_delay segundos después de que se detecte la falla del nodo antes de intentar reiniciar.

required =" true" (opcional)

  • 'ROS 0.10' : Si el nodo muere, mata a roslaunch completo.

ns =" ​​foo"(opcional)

  • Inicia el nodo en el namespace 'foo'.

clear_params="true|false"(opcional)

  • Elimina todos los parámetros en el namespace privado del nodo antes del lanzamiento.

output="log|screen"((opcional)

  • Si es 'pantalla', stdout / stderr del nodo se enviará a la pantalla. Si es 'log', la salida stdout / stderr se enviará a un archivo de registro en $ ROS_HOME/log, y stderr continuará enviándose a la pantalla. El valor predeterminado es 'log'.

cwd="ROS_HOME|node"(opcional)

  • Si es 'nodo', el directorio de trabajo del nodo se establecerá en el mismo directorio que el ejecutable del nodo. En C Turtle, el valor predeterminado es 'ROS_HOME'. En Box Turtle (ROS 1.0.x), el valor predeterminado es 'ros-root'. El uso de 'ros-root' está desaprobado en C Turtle.

launch-prefix="prefix arguments"(opcional)

  • Comando / argumentos para anteponer a los argumentos de lanzamiento del nodo. Esta es una característica poderosa que le permite habilitar gdb, valgrind, xterm, nice u otras herramientas útiles. Consulte Roslaunch Nodes en Valgrind o GDB para ver ejemplos.

Elementos

Puede utilizar las siguientes etiquetas XML dentro de una etiqueta <node>:

  • <env>

    • Establece una variable de entorno para el nodo.

    <remap>

    • Establece un argumento de reasignación para este nodo.

    <rosparam>

    • Carga un archivo rosparam en el espacio de nombres ~ / local de este nodo.

    <param>

    • Establezca un parámetro en el espacio de nombres ~ / local del nodo.

Wiki: es/roslaunch/XML/node (last edited 2021-09-23 18:31:06 by JuanEduardoRiva)