On Mon, Dec 27, 2010 at 10:43 PM, Patrick Bouffard wrote: > Hi Ken, > > On Mon, Dec 27, 2010 at 10:23 PM, Ken Conley wrote: >> Good recommendation.  I added a paragraph here.  Please let me know >> what you think: >> >> http://www.ros.org/wiki/roslaunch/XML#Evaluation_order > > Thanks, that looks good. One question: that paragraph seems to be > written to apply to the whole launch file, not just parameters. But > are there any other elements that can be defined more than once > without throwing an error? E.g. if you define a machine or node twice, > roslaunch yells at you doesn't it? Are you saying that the same rule > applies to tags too? It doesn't apply to arg tag. It does apply to other tags that establish a 'key', e.g. remap, machine, env. Of course, this reminds me that my unit tests probably need to test this more strenuously. > Also I'm not sure I understand what you mean by 'brittle' override > behaviour. Of course if you don't have the right parameter name the > override won't work--how would args make this any better? And wouldn't > you have to have an for every single parameter you ever want to > change? Do you just mean that if you provide an arg setting that isn't > used, that roslaunch will complain (IIRC)? roslaunch will complain about arg settings that do not line up. And you're right, attempting to arg-specify every parameter would get very cumbersome, though you could use to specify the name of a parameter file instead -- obviously this does not provide smooth transition between fine and coarse overrides. One of the things that is 'medium' priority for me is brainstorming a better roslaunch specification format, now that we have better understanding of how roslaunch is used. In particular, now that nodes have names, I've been trying to brainstorm as to how to have something similar to XPath which would allow addressing/overriding of any node-based configuration (remaps, args, etc...). Suggestions are welcome. > Are the ways that roslaunch will complain such as those I mentioned, > and (maybe more importantly) the cases where it won't complain, > documented somewhere? is one of the few things that roslaunch will complain about -- one of the reasons why I added was to provide a mechanism to make roslaunch to complain :). The arg page documents the "must/cannots" of various usages: http://www.ros.org/wiki/roslaunch/XML/arg - Ken