Pass values via command-line for arg in launch file

asked 2022-10-25 08:21:25 -0500

graziegrazie gravatar image

updated 2022-10-29 02:45:55 -0500

I would like to pass values via command-line for roslaunch. I tried it like below.

roslaunch hoge ar.launch marker_size:=10.0

But, the value on the screen was not changed. Could you suggest me what is wrong? In addition, could you let me know how should I do to pass values for roslaunch?

SUMMARY
========

PARAMETERS

 * /ar_track_alvar/marker_size: 7.0
 * /ar_track_alvar/max_new_marker_error: 0.08
 * /ar_track_alvar/max_track_error: 0.15

ar.launch is defined like below.

<launch>
    <include file="$(find ar_track_alvar)/launch/pr2_indiv.launch" >
        <arg name="marker_size" default="7.0" />
        <arg name="max_new_marker_error" default="0.08" />
        <arg name="max_track_error" default="0.15" />

        <arg name="cam_image_topic" default="/camera/dps/points" />
        <arg name="cam_info_topic" default="/camera/rgb/camera_info" /> 
        <arg name="output_frame" default="/camera_rgb_optical_frame" />
    </include>
</launch>

I use original pr2_indiv.launch.

my environemt

  • Ubuntu 18.04
  • ROS1 melodic
edit retag flag offensive close merge delete

Comments

1

I think you must redeclare your argument in the parent launchfile and pass the value of this re-declared argument to this included launch file with something like

<include file="$(find ar_track_alvar)/launch/pr2_indiv.launch" >
<arg name="marker_size" default="$(arg marker_size)" />

That's what you can learn from http://wiki.ros.org/roslaunch/XML/arg

vanmalleghema gravatar image vanmalleghema  ( 2022-10-25 13:31:45 -0500 )edit

@vanmalleghema

Thank you so much for your suggestion! That solves my problem!!

graziegrazie gravatar image graziegrazie  ( 2022-10-31 00:03:10 -0500 )edit