Gmapping question
Could someone explain to me the required frames from http://wiki.ros.org/gmapping
All i get from this ,is that a statictransformpublisher is need to TF the frames
(laser or base_scan or etc.) --> base_link and base_link --> odom
but i already have transformation (coming from arduino code )
which is { odom --> baselink } and i also got statictransform from my LIDAR's launch file which is baselink -->basescan
Soo for a complete tf tree does it need to be a backwards trasnformation of the frames i already have , or maybe one tf between 2 frames is enough
Asked by Kostas Tzias on 2022-09-24 08:55:02 UTC
Answers
With gmapping, "building a map" and "using a map" require different launch file configurations. When using a map, you need to either 1) provide a static transform map->odom
(and you'll likely experience odom drift), or 2) you need to run some ros node like amcl
that will publish map->odom
and correct for odom drift.
Beware of one quirk of amcl: in my experience, you need to trigger it using a ros service i.e. it doesn't re-run itself once it finishes.
Asked by Mike Scheutzow on 2022-09-27 14:59:59 UTC
Comments
What happens when "building a map" ,does it have similar requirements .
Asked by Kostas Tzias on 2022-09-28 10:58:00 UTC
Comments
I think you have what is required. The parent is the
odom
, then thebase_link
and thenbase_scan
. I do not understand your last sentence. If you are asking if one transform between two frames is enough (like the coordinate ofbase_scan
with respect tobase_link
) or if you need two transforms, then I say one transform is enough.Asked by zrahman on 2022-09-24 12:29:08 UTC
Yeah that's what i thought but the tf tree between them is keep breaking while its already providing map . What i mean is that the map is provided and after a few seconds the tf tree is splitting to .. map-->odom and base_link-->base_scan
Asked by Kostas Tzias on 2022-09-24 13:54:29 UTC