Home | Tutorials | Wiki | Issues
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The problem is that roslaunch secretly adds two arguments when starting a node's executable: _name and _log. If the node's executable is not ROS interoperable, then the executable may fail because it doesn't know how to handle the _name and _log arguments that were added on by roslaunch. This is the case here, since roslaunch is calling the "gzclient" script, which executes "gzclient" with arguments passed in by roslaunch. gzclient dies because it doesn't know how to handle the _name and _log arguments passed in from roslaunch.

The workaround you found works because it uses rosrun to start the gzclient instead of roslaunch. rosrun doesn't add those pesky "_name" and "_log" parameters.

click to hide/show revision 2
No.2 Revision

The problem is that roslaunch secretly adds two arguments when starting a node's executable: _name __name and _log. __log. If the node's executable is not ROS interoperable, then the executable may fail because it doesn't know how to handle the _name __name and _log __log arguments that were added on by roslaunch. This is the case here, since roslaunch is calling the "gzclient" script, which executes "gzclient" with arguments passed in by roslaunch. gzclient dies because it doesn't know how to handle the _name __name and _log __log arguments passed in from roslaunch.

The workaround you found works because it uses rosrun to start the gzclient instead of roslaunch. rosrun doesn't add those pesky "_name" "__name" and "_log" "__log" parameters.