Files

Floor-Surface Handling & Edge Cleaning (ROS2 package)

Clean better by adapting to the floor. This package adds wall following (to clean tight against walls), carpet-edge following, recognizing carpet vs hardwood, and lifting / lowering the mop accordingly (never wet a carpet). Because the physical robot isn't built yet, this is a Gazebo simulation — you model the surfaces and the surface sensor in Gazebo; it is later re-validated on hardware in the live-robot-bringup RFC.

Status — ready to start work. No need to wait for OOMWOO hardware — develop it in the Gazebo sim (urdf-gazebo-sim) or on the real placeholder Proscenic M6 Pro. Say so in the discussions so we can coordinate.

Important References

Note: this package may need new sim sensors/actuators (surface sensor, mop actuator). Add them inside your submission for now and propose folding the stable ones back into urdf-gazebo-sim later — please don't rewrite that RFC.

Request for Contribution - Instructions

  • wall following
    • detect walls from the LiDAR and drive a controlled offset along them so edges get cleaned, not just the room interior
    • integrate with clean-and-map coverage so edges and interior are both covered, without re-cleaning everything
    • post in Project Discussions to let everyone know you're working on it, and post your progress
  • carpet-edge following
    • detect carpet boundaries and follow the edge to clean along them
  • surface recognition (carpet vs hardwood)
    • model a plausible sensor in sim (wheel current / IMU vibration / a dedicated downward sensor) and publish the surface type
  • mop lift / lower
    • actuate the mop up on carpet, down on hardwood; model the actuator in Gazebo; never wet a carpet
    • coordinate with cleaning-jobs for mop-related job constraints
  • test it well
    • build worlds with mixed carpet + hardwood regions and walls
    • verify edge coverage, correct surface classification, and correct mop state at every transition
  • regression tests (headless, CI-friendly)
    • surface-classification accuracy
    • edge-coverage percentage (walls / carpet edges actually cleaned)
    • zero carpet-wetting events (mop never down on carpet)
  • submit a PR (pull request) to contributions/floor-care/<your-github-username>/
    • link to ROS2 package(s) and any sim sensor/actuator + world additions
    • instructions, documentation - how to install, run, configure, troubleshoot, test results
    • videos of wall/edge following and mop lift/lower at surface transitions
    • announce your submission in Project Discussions
  • iterate with review
  • TBD, expect the RFC to evolve

Acceptance criteria

Objective, measurable. Examples:

  • Wall / carpet-edge following cleans tight along edges and integrates with coverage (high edge-coverage %)
  • Surface recognition classifies carpet vs hardwood accurately
  • Mop lift/lower tracks surface type correctly with zero carpet-wetting events
  • Regression tests pass (classification accuracy, edge coverage, no carpet-wetting), runnable headless in CI
  • Works in at least one mixed carpet + hardwood world
  • Documented and reliably reproducible by someone else
  • TBD, expect criteria to evolve

The maintainer selects among compliant candidates using these criteria. Multiple attempts are welcome and useful even if not selected — modules are swappable, and a non-selected design is still a valid learning exercise and a fallback.