Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How are you running your trials? In particular, ros parameters are in general not cleared from the parameter server. So if you "take out" parameters from the yaml file, they might still be present on the parameter server. There are multiple ways to deal with this.

  1. Restart roscore in between your trials, which also restarts the parameter server. This is the sledgehammer method that should always work, but might be inconvenient.
  2. Manually remove the parameters with rosparam or with according commands in the launch file.
  3. Use the clear_params attribute to the node tag in your launch files. This clears the private namespace of a node before launch. Depending on how you load parameters, this might not work. http://wiki.ros.org/roslaunch/XML/node
  4. Use anonymous node name. This way the name is different for each run and you can be sure there are no 'stale' parameters. This and the previous solution don't do anything about global parameters, but I think in your case it is only about private ones.

I suggest making sure stale parameters of previous runs don't affect you any more, and then try again and see if it makes more sense.