Skip to content

Non ros mid360 global mapper #1263

@leshy

Description

@leshy

dimos native mapper

we have this go2 native mapper/nav, you can run it with:
dimos --replay run unitree-go2

visit http://localhost:7779/
click somewhere, route planner makes a route, robot doesn't follow as it's a recording, IRL it would.

This uses PointCloud2 messages from Go2, go2 gives us some preprocessed rough voxel grid. The way we do deletions is we just insert this local map into a global map, replacing existing global map voxels that were in it's place (this way we do deletions). Code is very simple, we use o3d voxel grid on cuda for this. (dimos/mapping/voxels.py)

we then build a costmap and nav on top dimos/mapping/costmapper.py

livox native integraiton

this is all great, but for serious sensors (mid360) we've been running ros till now, we don't want to do this. We want to treat global map that we built from goofy go2 stuff and fancy mid360 map the same. and we want to run our nav etc on top of that.

There is a "dimos native module integration + fastlio + mid360" PR written a few days ago, the thing works great
#1235

you should be able to run this easily locally (needs mid360 hw and nix on the system)

next steps

above livox integration optionally gives you a nice global voxel grid map, for now in cpp voxels are just stored in a dumb hash map that never deletes points, we need to experiment with deletions and updating

IDK how we want to do this. do we have 2 topics? local + global? how do we do voxel deletions? explore!

Our current nav assumes dynamic global map, see if this is possible with livox or not, I understand there are many points, but also if minecraft guy can write one, maybe we can also write one

either way once this is done we can easily plug it into the rest of our native stack, start doing multistory, relocalization
easy upgrade is also loop closure, there are livox forks for this but don't care about this as much

possible easy approach

same as we do for go2 - create a convex hull of lidar points, remove that hull from the global map, insert the new one

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions