Josh, I found out what the problem is. But I do not have a solution to it right now. #include #include int main(int argc, char** argv) { QApplication app( argc, argv, false ); ros::init(argc, argv, "params_test"); ros::NodeHandle n; double a = 1.5; n.setParam( "a", a ); double a_get; n.getParam( "a", a_get ); ROS_INFO_STREAM( "a=" << a << " a_get=" << a_get ); return 0; } Gives me [ INFO] [1288340780.906072159]: a=1.5 a_get=1 Without QApplication it gives me [ INFO] [1288340754.462816012]: a=1.5 a_get=1.5 So the problem is QApplication. I am using Ubuntu 9.04 with QT 4.5.0. I will now upgrade to Qt 4.6 hoping that this changes something. Regards Christian > Do you have a small test-case that fails that I could try? We have a > test-case for exactly this: > > double double_param = 0.0; > EXPECT_TRUE( param::get( "double", double_param ) ); > EXPECT_DOUBLE_EQ( double_param, 10.5 ); > > Does the params test in test_roscpp also fail? > > Josh > > On Thu, Oct 28, 2010 at 5:09 AM, Christian Verbeek > > wrote: > > getParam(const std::string &key, double &d) > > returns only the integer part of the parameter. > > ros::NodeHandle nh( "~" ); > double dvalue; > nh.getParam( "key", dvalue ); > > dvalue=0 // in the launch file 0.2 > dvalue=1 // in the launch file 1.5 > ... > > in /opt/ros/cturtle/ros/core/roscpp/src/libros/param.cpp > I printed the XmlRpcValue and this gives me > > 0 > 1 > > Whats going wrong? Any ideas? > > rosparam get key > returns 0.200000000000000001 or 1.5 > > so the values in the parameter server are correct. > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > > > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users