UBC-Snowbots / Snowflake

UBC Snowbots Codebase
10 stars 42 forks source link

Create a Mapping System #348

Open RobynCastro opened 6 years ago

garethellis0 commented 6 years ago

An "obstacle" here refers to a grid cell that is passed some threshold of "risk", as determined by #349.

I think in general, the strategy should be to populate an occupancy grid, where each cell contains the "risk" to the robot as determined by #349. I can imagine that we would probably receive a local occupancy grid relative to us from the risk analyzer. The scope of this PR is storing and merging it into a global one. There are a few options for this: 1) A "local" mapping system, where we only keep track of cells within some set distance from us. This would allow us to just use a occupancy grid with set spacing, as it would be of a set size. (ie. we don't care about obstacles more then 10 meters away from us) 2) A larger map that encompasses all the obstacles that we have seen over the entire course. If we go this route we will not be able to store an occupancy grid with set spacing. Rather, we would need to use an occupancy grid with "variable resolution" where the parts of the map that we care about are stored at a higher resolution then other parts. I have written a multi resolution graph library for another team, so this could be repurposed here. (2) might be a bit overkill, but (1) encompasses many required features for (2) anyhow, so I think the approach here might be to go for an MVP of (1), then expand that to (2) if possible.

garethellis0 commented 5 years ago

As a quick note, we've decided to go for option (2) above.