tf problems when combine robot_localization gps & navigation amcl stack
hi, Dear all,
I met tf problems when combine robot_localization
+ navsat
+ navigation amcl
stack. the tf transforms seems are colliding with each other.
according to r_l
instruction, I set ekf_template_local.yaml
and ekf_template_global.yaml
:
publish_tf: true
gps node migration works well, but tf shows collide when i run roswtf, following is error messages:
**ERROR TF multiple authority contention:
* node [/ekf_localization_global] publishing transform [odom] with parent [map] already published by node [/amcl]
* node [/amcl] publishing transform [odom] with parent [map] already published by node [/ekf_localization_global]**
so I set ekf_template_global.yaml
:
publish_tf: false
just only to let amcl module to publish tf(odom->map), but it often occurs the warnning info as below at last line:
process[ekf_localization_local-1]: started with pid [59323]
process[ekf_localization_global-2]: started with pid [59449]
process[navsat_transform_node-3]: started with pid [59596]
[ INFO] [1465373999.050320208, 1465356233.643751380]: Datum (latitude, longitude, altitude) is (30.587115, 103.987225, 452.160004)
[ INFO] [1465373999.050385885, 1465356233.643751380]: Datum UTM coordinate is (402897.868551, 3384282.066208)
[ INFO] [1465373999.050625052, 1465356233.654742509]: Initial odometry pose is Origin: (-6.2733690279887452945 -0.27920951194753762525 -0.029217864509362003606) Rotation (RPY): (-0.0066287586623609510289, -0.0080349835834440021948, -0.00022201279494916720432)
[ INFO] [1465373999.050853030, 1465356233.654742509]: Corrected for magnetic declination of 0.000000 and user-specified offset of 0.000000. Transform heading factor is now -0.000222
[ INFO] [1465373999.050906508, 1465356233.654742509]: Transform world frame pose is: Origin: (-6.2733690279887452945 -0.27920951194753762525 -0.029217864509362003606)
Rotation (RPY): (-0.0066287586623609510289, -0.0080349835834440021948, -0.00022201279494916720432)
[ INFO] [1465373999.050948531, 1465356233.654742509]: World frame->utm transform is Origin: (3384148.7263204208575 -402893.25039371155435 29408.271071974020742)
Rotation (RPY): (-0.0066305423673257484971, -0.0080335117269795773554, 2.2864374053448203049e-09)
**[ WARN] [1465373999.084253427, 1465356233.686713222]: Could not obtain transform from map to base_link. Error was Could not find a connection between 'base_link' and 'map' because they are not part of the same tree.Tf has two or more unconnected trees.
[ WARN] [1465373999.084397737, 1465356233.686713222]: Could not obtain map->base_link transform. Will not remove offset of navsat device from robot's origin.
**
but the tf works fine, and the tf data is correct, although a little drift.
so to avoid the warning, i changed another method, i set ekf_template_global.yaml
:
publish_tf: true
and change amcl.cfg, set:
<param name="tf_broadcast" value="false"/>
when I run roswtf
:
WARNING The following nodes are unexpectedly connected:
* /ekf_localization_global->/view_frames_61426_1465374081884 (/tf)
the tf collide warning disappeared, but the tf data is wrong, the odom and base_link's z axis data has big issue. tf data is bad.
how should i do to make all works well? please help me. thank you very much!
launch file and bag file is at here:
- launch files: https://www.dropbox.com/s/ahk7nw9kg1e...
- rosbag file:
https://www.dropbox.com/s/htth1w41c58...
In bag file, I used following 4 topics:
- lms1_scan
- imu_topic
- imu_odom_topic
- imu_nav_topic
Thank you for all your help. I really appreciate your help! thanks!
update1:
- bad effect of video record at here: https://youtu.be/S8ueiIQoQ_A
- map file at here: https://www.dropbox.com/s/btd1nso7dlq...
- params file of
r_l
at here: https://www.dropbox.com/s/zd81adtnx3g ...
This is quite a long question! I will take a look at it soon. In the meantime, I suggest you make sure all of your sensor data conforms to standards, and then add one sensor at a time to one EKF, verify the results, then add more. Don't just throw it all together at once.
hi, dear@Tom Moore, I'm sorry for so long question. yes, I check data conform and confirm it is ENU frame, according to your wiki knowledge. and I tried many time step by step, one sensor and another integrate, I'm still failed, the odom drift very large at last about163sec, especially when UAV turn