Replies: 2 comments 1 reply
-
Yeah. This is an issue that we've hacked around a few ways so far, and have not yet cleanly solved end-to-end. It's challenging because in large maps, it's not just that you need to create an affine transformation (one way or another, using Concrete example that we've seen: let's say you have a long, somewhat-featureless corridor where a robot needs to drive 50m, take a 90-degree turn, and drive 20m further. Even with super great LIDAR and odometry, that map will drift (somewhat) due to lots of reasons like odometry drift, limited sensor range, etc.. It is unlikely to perfectly align with a floorplan image from the building CAD. Even if it's only a few grid cells off, that can be enough to create problems if the space is tight. @gbiggs has created the MapTransformer for this purpose: https://github.com/osrf/map_transformer There are GUI elements in |
Beta Was this translation helpful? Give feedback.
-
Hard to say. I guess there are a few approaches:
Although option 2 is definitely cleaner, it presents "political" challenges if an existing/incumbent robot fleet already operating in a facility is using warped maps and has already annotated them with pickup/dropoff points. That incumbent vendor might not be interested in "correcting" their maps to a truly metric/rectilinear coordinate system, since they would have to re-annotate their navigation points and re-test their deployment. But I agree, this is a better strategy for new deployments. Sadly, I think we'll need strategy 3 for some deployments with existing fleets. As to the general documentation and strategy for deriving the transforms, yes indeed we have also suffered pain and have done this manually a few times. It's the kind of thing where you do it once per site and forget about the pain until the next site 😞 so we've continually bumped fixing it "for real" into the future. But we are now working on a mini test / "textbook" deployment in our own office that will be small given our space constraints, but will include enough integration points to be relevant (free_fleet, traffic management, infrastructure (PLC) integration, web UI, etc.). We're creating a deployment guide to document this exercise at all levels. We'll create a new robot-generated map for this, and will work on the |
Beta Was this translation helpful? Give feedback.
-
From the traffic-editor section on overlaying the SLAM map:
These transformation are not sufficient to feed into something like
free_fleet
. The transformation represents a corner from the SLAM map which doesn't necessarily coincide with the origin of the map which is defined in the correspondingyaml
file. It also seems like the values need to be negated. Curious to hear what approaches can be taken to get these values or if there is room for a tool/integration/extension that would calculate the correct parameters for a standardmap_server
map.Beta Was this translation helpful? Give feedback.
All reactions