ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
2

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 -0600

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 answers.ros.org 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

Comments

1

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 imu_node.cc source file for the node. Conversion to ros::time threw the error?

jdavis gravatar image jdavis  ( 2012-08-27 09:34:41 -0600 )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 -0600 )edit

@jdavis I suggest you file a ticket here: https://github.com/ros-drivers/microstrain_3dmgx2_imu/issues 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 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
0

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

Chad Rockey gravatar image

Is this the same issue?

https://code.ros.org/trac/ros-pkg/ticket/5601

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

https://github.com/ros-drivers/microstrain_3dmgx2_imu/commit/efcf5ef011a97f8bda415616075ed85a5bfcb962

edit flag offensive delete link more
0

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

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

Question Tools

2 followers

Stats

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

Seen: 2,988 times

Last updated: Nov 18 '14