Ask Your Question

3DM-GX3-25 throws std::runtime_error() "Time is Out of Dual 32-bit range" on Ros Fuerte/Ubuntu Precise

asked 2012-08-24 11:40:53 -0500

jdavis gravatar image

I was trying to get the 3DM-GX3-25 Inertial sensor up and running on Ros Fuerte/Ubuntu Precise using the Microstrain 3dM-GX2 IMU node in the Microstrain 3dM-gX2 package.

When I run the node, I get the following error:

jdavis@MyUbuntu:~/fuerte_workspace/sandbox/microstrain_3dmgx2_imu$ rosrun microstrain_3dmgx2_imu imu_node

[ INFO] [1345843227.742138299]: Connected to IMU [ 3DM-GX3-25] model [ 6223-4220] s/n [
6223.06644] options [ 5g 300d/s] [ INFO] [1345843227.742460665]:

Calibrating IMU gyros. terminate called after throwing an instance of 'std::runtime_error' what(): Time is out of dual 32-bit range Aborted (core dumped)

I looked it up on and saw that a similar error was thrown in rosbag file playing (this one) and (this one).

The IMU timestamps are measured in Uint64_ts and converted to Doubles for calculations, before converting them back to Uint64_t. Is this what I should be looking at?

Any ideas on how I can get around this would be great!

edit retag flag offensive close merge delete



I got it to work by replacing data.header.stamp = ros::Time::now().FromNSec(time) to data.header.stamp = ros::Time::now() in the function getData() inside the source file for the node. Conversion to ros::time threw the error?

jdavis gravatar image jdavis  ( 2012-08-27 09:34:41 -0500 )edit

Thanks, this solution worked for me too. I wish they have a look at it and integrate the solution or a better solution to the driver.

martimorta gravatar image martimorta  ( 2013-04-15 05:44:20 -0500 )edit

@jdavis I suggest you file a ticket here: so that the maintainers know there is an issue. Before doing so, try to see if Groovy includes a fix for this issue.

Eric Perko gravatar image Eric Perko  ( 2013-04-15 15:17:03 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2013-04-15 15:29:19 -0500

Chad Rockey gravatar image

Is this the same issue?

If so, just apply that patch, or do apply like it was fixed for Groovy:

edit flag offensive delete link more

answered 2014-11-18 17:19:19 -0500

Ryan gravatar image

I'm adding a note here because this was the top Google result when I searched for the term. In my case, I ended up stripping out all calls to the Time library I could directly find, including the basic now() calls, without effect. I hypothesize it may have had to do with VM clock jitter, as moving to physical hardware fixed it immediately.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2012-08-24 11:40:53 -0500

Seen: 2,815 times

Last updated: Nov 18 '14