ekf_localization_node core dumping
Still setting up ekf_localization_node here -- I'm playing back and processing my bag, but getting this error, whether I run from a lauch file with params or with no params from rosrun,
$ rosrun robot_localization ekf_localization_node
ekf_localization_node: ../nptl/pthread_mutex_lock.c:350: __pthread_mutex_lock_full: Assertion `(-(e)) != 3 || !robust' failed.
Aborted (core dumped)
The error only occurs when by bag is playing, otherwise the node sits silently. There's no log file or rosout messages so I'm not sure how to locate the problem, any suggestions ?
FURTHER DETAILS:
System info: PARAMETERS * /rosdistro: indigo * /rosversion: 1.11.10 on Xubuntu 14.04 LTS.
Sample geometry/gps message,
header:
seq: 200
stamp:
secs: 1431535613
nsecs: 57244062
frame_id: ''
child_frame_id: ''
pose:
pose:
position:
x: -2.90984643623
y: -3.69588956097
z: -3.51702306711
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
covariance: [1.218219225942454, 0.006998948102184068, 0.17239271800594577, 0.0, 0.0, 0.0, 0.006998948102183846, 1.2159598403645349, 0.14679821372057594, 0.0, 0.0, 0.0, 0.17239271800594574, 0.14679821372057594, 4.825820933693012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
twist:
twist:
linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Sample /imu message:
header:
seq: 105
stamp:
secs: 1431535415
nsecs: 50663948
frame_id: base_imu_link
orientation:
x: 0.026096916629
y: -0.0692553241391
z: -0.248199192676
w: 0.96587774163
orientation_covariance: [0.0025, 0.0, 0.0, 0.0, 0.0025, 0.0, 0.0, 0.0, 0.0025]
angular_velocity:
x: -0.09
y: -0.04
z: 0.02
angular_velocity_covariance: [0.02, 0.0, 0.0, 0.0, 0.02, 0.0, 0.0, 0.0, 0.02]
linear_acceleration:
x: 0.666884609375
y: 0.117595390625
z: 9.37468921875
linear_acceleration_covariance: [0.04, 0.0, 0.0, 0.0, 0.04, 0.0, 0.0, 0.0, 0.04]
Launch file,
<launch>
<node pkg="robot_localization" type="ekf_localization_node" output="screen" name="ekf_localization_node">
<param name="odom0" value="odometry/gps"/>
<param name="odom0_differential" value="false"/>
<rosparam param="odom0_config">[true, true, false,
false, false, false,
false, false, false,
false, false, false,
false, false, false]</rosparam>
<param name="imu0" value="imu" />
<rosparam param="imu0_config">[false, false, false,
false, false, true,
false, false, false,
false, false, true,
true, false, false]</rosparam>
<param name="imu0_differential" value="true"/>
<param name="imu0_remove_gravitational_acceleration" value="true"/>
</node>
</launch>
Update:
To try to isolate the cause, I tried recording my data into ...
Can you share one of the bag files? Have you tried just using the IMU or just the GPS data? I'm interested in your frame-less GPS data, though that shouldn't cause it to crash. Also, did you compile from source? If so. which branch?
Hi Tom, great to see you here! I've put a (tiny) bag and my launch file here for you, https://dl.dropboxusercontent.com/u/1...https://dl.dropboxusercontent.com/u/1... The crash happens even if I have IMU only, or GPS only, or comment out both of them. I installed from apt-get
still have same error after looking at the empty gps frames. My navsat_transform_node is taking its frame from my own command-based odometry node . This was sending empty frames so I filled them in, parent=odom_motor, child=base_link. odometry/gps now has the same parent but still empty child?
Yeah, see my answer below. Let's first move away from the installed version and go to source for now. Then we can try to work through these issues one-at-a-time.