1

Вместо запуска пакета с помощью командной строки, я сделал стартовый файлДобавить ARG в файле запуска

Commande линии:

rosrun image_view image_saver image:=/the-rgb-image-topic 

Запуск файла:

<launch> 
    <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME"> 
    <remap from="image" to="/camera/rgb/image_raw"/> 
    </node> 
</launch> 

Теперь я хочу то же самое для этого:

rosrun image_view image_saver image:=/camera/depth/image _encoding:=16UC1 

Как я могу добавить аргумент в файл запуска ..

Я думаю, что я должен начать это так

<launch> 
    <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME"> 
    <remap from="image" to="/camera/rgb/image_raw"/> 

    <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME"> 
    <remap from="image" to="/camera/depth/image"/> 
    </node> 
</launch> 
+1

взглянуть на [документации roslaunch XML] (http://wiki.ros.org/roslaunch/XML) и, в частности, к тегу [''] (http://wiki.ros.org/roslaunch/XML/arg). – alextoind

+0

@alextoind: Если я правильно ее понимаю, OP хочет установить аргумент в файле запуска. Тег 'arg' будет использоваться для передачи аргументов в файл запуска при его запуске. – luator

+0

@luator, да, возможно, вы правы, но вы также можете использовать атрибут 'default' тега' ', чтобы обеспечить поведение по умолчанию, как в вашем ответе, и внешний доступ к этому параметру, если это необходимо. – alextoind

ответ

1

Чтобы передать произвольные аргументы узлов в пусковых-файлов, вы можете использовать атрибут argsnode tag:

<node name="image_saver" pkg="image_view" type="image_saver" args="_encoding:=16UC1" ...> 

Однако в данном конкретном случае есть лучший способ: _encoding это не просто произвольный аргумент, но это параметр, который час andled by ROS Parameter Server. Несмотря на то, вероятно, будет работать, используя атрибут args, то лучше способ заключается в использовании param tag:

<node name="image_saver" pkg="image_view" type="image_saver"> 
    <remap from="image" to="/camera/depth/image" /> 
    <param name="encoding" value="16UC1" type="string" /> 
</node> 
Смежные вопросы