1. Remapping Arguments

  2. Names

Remapeado de Tópicos ROS para Nodos (Nodes)

La reasignación o remapeado de Tópicos (ROS Topics) le permite "engañar" a un nodo ROS para que cuando crea que se está suscribiendo o publicando en /some_topic, en realidad se esté suscribiendo o publicando en /some_other_topic, por ejemplo.

Por qué y cómo hacer esto

A veces, es posible que necesite un mensaje sobre un tópico ROS (ROS Topic) específico que normalmente solo va a un conjunto de nodos para que otro nodo también lo reciba. Si puede, simplemente dígale al nuevo nodo que se suscriba a este otro tópico. Sin embargo, también puede hacer una reasignación para que el nuevo nodo termine suscribiéndose a /needed_topic cuando piensa que se está suscribiendo a /different_topic.

Esto podría lograrse así:

<remap from="/different_topic" to="/needed_topic"/>

Ahora, cuando este nodo se suscribe al tópico /different_topic, la reasignación hace que realmente se suscriba al tema /required_topic. Por lo tanto, ¡cualquiera que publique en / needed_topic termina recibiendo su mensaje también en este nuevo nodo!

Mas sobre la etiqueta <remap>

La etiqueta <remap> le permite pasar argumentos de reasignación de nombres al nodo ROS que está lanzando de una manera más estructurada que si lo hiciera estableciendo el atributo args de un <node> directamente. La etiqueta <remap> se aplica a todas las declaraciones posteriores en su ámbito (<launch>, <node> o <group>).

Para comprender cómo la reasignación resuelve los nombres, consulte Remapping Arguments y Names.

Atributos

  • from="nombreOriginal"

    • nombreOriginal: nombre del tópico ROS desde (FROM) estas enviando la info.

    to="nombreNuevo"

    • nombreDestino(Target name): nombre del tópico ROS al que usted esta apuntando el tópico expresado en FROM.

Recuerde: esto significa que si reasigna desde (FROM) el tópico "A" AL tópico "B ", entonces cada vez que un nodo piensa que se está suscribiendo al tópico "A ", está realmente suscribiéndose" al tópico "B", por lo que cualquier "que publique en el tópico "B "" terminará recibiendo su mensaje en este nodo.

Otro ejemplo

Por ejemplo, se le asigna un nodo que dice que se suscribe al tópico "charla", pero solo tiene un nodo que se publica en el tópico "hola". Son del mismo tipo, y "desea canalizar su tema "hola" al nuevo nodo que quiere "charla "' . Puede hacer esto con esta reasignación (remapeo):

<remap from="chatter" to="hello"/>

Nuevamente, este ejemplo es desde la perspectiva del nodo receptor que "se suscribe" al tópico. Entonces, cuando este nodo se suscribe al tópico "chatter" en su código fuente, se reasigna para realmente suscribirse a "hello", de modo que termina recibiendo cualquier mensaje publicado por otros nodos ROS en  "hello" .

Notas Importantes

1. La reasignación (remapeo) se aplica a las líneas que siguen a la reasignación. Los nodos que se inician antes de las líneas de reasignación no se ven afectados.

  1. El remapero (reasiganción) afecta tanto a los tópicos a los que se suscribe un nodo como a los tópicos a los que publica. Sin embargo, normalmente la reasignación se realiza en el nodo "suscriptor", lo que significa que "en realidad" se está suscribiendo al tópico (tema) reasignado. Por lo tanto, cualquier nodo de publicación termina enviando sus mensajes a ese nodo al publicarlo en el tópico especificado en el campo a` en el comando remap. Esto puede parecer al revés al principio, pero una vez entendido desde la perspectiva del "nodo suscriptor (que es el que se reasigna en este ejemplo)", tiene perfecto sentido.

Wiki: es/roslaunch/XML/remap (last edited 2021-09-08 21:27:50 by JuanEduardoRiva)