Hi all, i'm trying to make this node run just with my IMU Microstrain 3DM-GX3-25. For this I use the node provided here.
If I run them as they are the IMU is outputting the data correctly, while the ekf node is receiving nothing.
Then i realized that the ekf node is subscribing to imu_data
topic and the driver is publishing on imu/data
I changed the code of ekf to make it subscribing to imu/data
but it's still waiting for ever.
I'm using Hydro on Ubuntu 12.04, and I modified the launch file to use only the IMU info (no odom, no vo).
Any suggestions?
EDIT: in addition I always receive an error when I start the IMU
[ERROR] [1395392758.782776169]: Imu: calibration check failed: average angular drift = 57.875961 mdeg/sec > 11.459156 mdeg/sec
but the IMU is shooting data anyway so it should work anyway.
EDIT2: the callback returns here:
if (!robot_state_.waitForTransform(base_footprint_frame_, imu->header.frame_id, imu_stamp_, ros::Duration(0.5))) {
// warn when imu was already activated, not when imu is not active yet
if (imu_active_)
ROS_ERROR("Could not transform imu message from %s to %s", imu->header.frame_id.c_str(), base_footprint_frame_.c_str());
else if (my_filter_.isInitialized())
ROS_WARN("Could not transform imu message from %s to %s. Imu will not be activated yet.", imu->header.frame_id.c_str(), base_footprint_frame_.c_str());
else
ROS_DEBUG("Could not transform imu message from %s to %s. Imu will not be activated yet.", imu->header.frame_id.c_str(), base_footprint_frame_.c_str());
return;
}
The stupid thing is that i don't see any WARN or ERROR on the screen...
Originally posted by mark_vision on ROS Answers with karma: 275 on 2014-03-20
Post score: 0