[ros-users] roslaunch remap with if

Michael Krainin mkrainin at cs.washington.edu
Wed Nov 24 22:26:57 UTC 2010


Hello,

I have a launch file with the following line:
<remap if="$(arg playback)" from="/rgbd/image"
to="/surfel_node/republished_image" />
where playback is defined as
<arg name="playback" default="false"/>

When playback is set to true, roslaunch works fine with this launch
file. When it's set to false, however, roslaunch dies and gives the
following message:
Traceback (most recent call last):
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/__init__.py",
line 214, in main
    p.start()
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/parent.py",
line 246, in start
    self._start_infrastructure()
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/parent.py",
line 197, in _start_infrastructure
    self._load_config()
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/parent.py",
line 118, in _load_config
    self.config =
roslaunch.config.load_config_default(self.roslaunch_files, self.port,
verbose=self.verbose)
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/config.py",
line 381, in load_config_default
    loader.load(f, config, verbose=verbose)
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py",
line 731, in load
    self._load_launch(launch, ros_config, is_core=core,
filename=filename, argv=argv, verbose=verbose)
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py",
line 704, in _load_launch
    self._recurse_load(ros_config, launch.childNodes,
self.root_context, None, is_core, verbose)
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py",
line 630, in _recurse_load
    n = self._node_tag(tag, context.child(''), ros_config,
default_machine, verbose=verbose)
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py",
line 94, in call
    return f(*args, **kwds)
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py",
line 374, in _node_tag
    remap_context.add_remap(self._remap_tag(t, context, ros_config))
  File "/pr/ros-cturtle/ros/tools/roslaunch/src/roslaunch/loader.py",
line 211, in add_remap
    remap = [canonicalize_name(x) for x in remap]
TypeError: 'NoneType' object is not iterable

Is 'remap' incompatible with 'if' or am I just doing things wrong.

Thanks,
Mike



More information about the ros-users mailing list