Conversation
|
Thanks for the PR! Happy to see that the community picks up on this :) It may take some time to go through this and think about everything. In the meantime, everyone should feel invited to comment on this and share some ideas/use-cases, such that we can see what exactly the community wants to use this for. Regarding some of your minor points:
@nachovizzo, @tizianoGuadagnino, @saurabh1002 feel free to hop on, I think we all should be involved in the ROS 2 madness :) |
|
Thanks for the feedback! Not sure how I missed the pre-commit hooks! I ran linting and added license strings. I also took a first-pass at exposing config as node parameters. edit: My approach in 8da02b1 was silly. d9c3ded creates and then fetches Parameters at runtime based on the pydantic config. This way, we don't have to worry about multiple sources of truth for default values, and can modify parameters with usual ROS tooling (s.a. Old ramblings about 8da02b1 collapsedIn the interest of avoiding duplicate (potentially different) default settings as mentioned, I took an approach that creates a default file from the `write_config` script at the package build time. This won't end up out of sync with upstream changes made to pydantic defaults in KISS-SLAM, etc. But it's opaque during development and a little hacky by running during setup.py. It also still doesn't expose individual SLAM parameters to the ROS parameter server. I think I have an idea for declaring params programatically from pydantic.Also sorry for the force-pushes; made some mistakes in my original commit metadata. Shouldn't be any more. |
Hi there, thanks for the exciting research and excellent python implementation. I've been plugging away at a minimal ROS2 wrapper (#5) over the last few days and want to share what I have so far for feedback from the authors / the larger community. It's still a long way from complete as a drop-in SLAM package and I don't usually do python ROS development, so I'm sure there's a lot to be improved.
Please feel free to close this if there's a more appropriate place for this ongoing development.
Implementation so far
This adds a subdirectory which contains a ROS 2 package,
kiss_slam_roswith a single node. The nodekiss_slam_nodelistens for PointCloud2 messages and runs them through KISS-SLAM to provide a map -> lidar transform, odometry, and a 2d occupancy grid.Here's a crunchy demo gif:

Big questions
I'd appreciate some advice about approaching a few major challenges:
SlamPipeline._global_mappingfunction after loop closures. However, this is costly and I'm unsure how we could make the SLAM objects thread-safe to do this asynchronously.Smaller points