Bool state is incorrect when retrieved from param server
The code is:
ros::NodeHandle nh_private("~");
bool state=false;
nh_private.param<bool>("state", state, "false");
It turns out the "state" is "true". Why???
Following the answer from @kmhallen, this would seem to be expected (and correct) behaviour (you're just using the wrong type for your default value). Perhaps change your topic title to reflect this?