dimensionalOS / dimensionalOS/dimos
Good Frontier Exploration
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.5k
- Forks
- 808
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 233
Description
Current Frontier Exploration algo jumps across the map to random unexplored places. so robot expores 1 meter, then has to walk to the other side of the building to explore 1 meter, then goes back etc.
/dimos/navigation/frontier_exploration/wavefront_frontier_goal_selector.py
is very heavy, is a module (should it just be a function "give me next goal") ? not sure.
Alternative idea (but open for different approaches, just make it good)
If you just place a target outside of the reachable space, and A* is allowed to try and path through unknown space, A* will potentially start optimally exploring
Proposed Solution (but not sure, needs validation):
- Place a target in an unexplored area on the map boundary - if reached, place another also on the map boundary, but slightly rotated with regards to map center.
Profit - In a room target will end up outside of the wall, and A* will explore all.
In perfectly empty space, robot explores in a spiral, since we are placing targets slightly rotated once reached
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading dimos/navigation/frontier_exploration/wavefront_frontier_goal_selector.py and its goal-selection call sites to understand the current random frontier behavior. Validate candidate approaches in an exploration scenario, including rooms and open space. Done means frontier goals produce coherent exploration with substantially less travel between small unexplored areas.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- robotics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100