I use ros::init() to specify the node namespace.

ros::init() specifies the node's name, not its namespace.  The node's name determines where a private name ("~name") goes.

Josh