2015-03-23 4 views
0

У меня есть два разных, но связанных с ними вопросаROS-файл запуска для установки значения переменной

1st: Можно ли установить значение переменной с помощью файла запуска? Я читал об этом в Интернете, но я не мог понять, как его использовать.

2nd: Я не мог найти ничего о том, как использовать файл запуска для установки значения переменной в сообщении. Например, если у меня есть:

mymessagevector.msg:

mymessage myvector[2] 

mymessage.msg:

int32 value 
string ID 

Есть ли способ, чтобы установить myvector [0] .id = «ID1» и myvector [1] .ID = «ID2» и всегда публиковать это без необходимости определять его каждый раз, когда я отправлял сообщение в тему?

ответ

1

Первый ответ можно легко найти в roslaunch documentation (и относительных подразделах).

Простой пример выглядит следующим образом:

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

Вы можете найти значения всех этих параметров в следующих ссылок: param и node.

Извините, но я не знаю, как можно инициализировать «первое сообщение» с помощью roslaunch (если это возможно ...). Вместо этого вы можете использовать переменную.

UPDATE:

Я покажу вам пример в файл с

/* 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)); 

++ Вы можете найти ros::NodeHandle документации here.

+0

То, что я не понимаю, это то, как использовать его впоследствии. Я определяю переменную там, но мне нужно объявить эту переменную в моей cpp, и она должна автоматически получить это значение, правильно? Я думал, что это так, но я не в состоянии это сделать. – Carollour

+0

Я добавил пример C++ в ответ. Надеюсь, поможет. – alextoind