2015-03-23 1 views
0

J'ai deux questions différentes mais liéesERO launchfile pour définir la valeur variable de

1er: Est-il possible de définir la valeur d'une variable à l'aide du fichier de lancement? J'ai lu à ce sujet en ligne mais je ne pouvais pas comprendre comment l'utiliser. 2ème: Je n'ai rien trouvé sur la façon d'utiliser le fichier de lancement pour définir la valeur d'une variable dans un message. par exemple si j'ai:

mymessagevector.msg:

mymessage myvector[2] 

mymessage.msg:

int32 value 
string ID 

est-il un moyen de régler la myVector [0] = .ID "ID1" et myvector [1] .ID = "ID2" et toujours publier cela sans avoir à le définir à chaque fois que j'ai envoyé le message à un sujet?

Répondre

1

La première réponse pourrait être facilement trouvée dans le roslaunch documentation (et sous-sections relatives).

Un exemple simple est la suivante:

<launch> 
    <node pkg="pkg_name" type="node_type" name="node_name"> 
    <param name="var_name" type="var_type" value="var_value" /> 
    </node> 
</launch> 

Vous pouvez trouver la signification de tous ces paramètres dans les liens suivants: param et node.

Je suis désolé, mais je ne sais pas comment on pourrait initialiser un "premier message" en utilisant roslaunch (si c'est possible ...). Vous pouvez utiliser une variable à la place.

MISE À JOUR:

Je vais vous montrer un exemple dans un C++ fichier

/* Retrieves information from parameters (if there are some specified) */ 

/* this handle let you access all the parameters of the node (and other stuffs) */ 
ros::NodeHandle node_handle = new ros::NodeHandle("~"); 

/* for example I need to retrieve the name of the serial port which is a parameter of my node */ 
std::string serial_port = ""; 
/* this member function searches for the parameter and stores it into 'serial_port' if it exists, 
* otherwise it uses the third parameter of the function (a default value) */ 
node_handle->param("<name_of_param_in_roslaunch>", serial_port, std::string(DEFAULT_VALUE)); 

Vous trouverez la documentation ros::NodeHandlehere.

+0

Ce que je ne comprends pas, c'est comment l'utiliser après. Je suis en train de définir une variable, mais je dois déclarer cette variable dans mon cpp et elle devrait automatiquement avoir cette valeur, n'est-ce pas? Je pensais que c'était comme ça mais je ne suis pas capable de le faire. – Carollour

+0

J'ai ajouté un exemple C++ dans la réponse. J'espère que cela aide. – alextoind