Skip to content

epic:Base for next-gen RMF#26

Open
arjo129 wants to merge 11 commits into
mainfrom
epic/next-gen-base
Open

epic:Base for next-gen RMF#26
arjo129 wants to merge 11 commits into
mainfrom
epic/next-gen-base

Conversation

@arjo129

@arjo129 arjo129 commented Jul 1, 2026

Copy link
Copy Markdown
Member

Note: DO NOT SQUASH MERGE THIS PR, we want to keep history

This PR consists of a set of commits by myself, @xiyuoh and @SamuelFoo that should form the base of the next-gen-rmf.

It implements most of Pass 1 of #8. It consists of a minimal CI, plan executor and plan server along with a simple destination server. There are also some temporary demos that have been vibed-out so that people can start hacking.

Testing

I would start with the repository's main readme:

Then I would work through the demos here:

Finally I would try the Nav 2 demos out:

arjo129 and others added 5 commits June 22, 2026 14:56
Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>
Adds a simple path visualizer for RViz to view plans generated by the planner over the topic `~/path_markers`.

### GenAI Use
We follow [OSRA's policy on GenAI tools](https://github.com/openrobotics/osrf-policies-and-procedures/blob/main/OSRF%20Policy%20on%20the%20Use%20of%20Generative%20Tools%20(%E2%80%9CGenerative%20AI%E2%80%9D)%20in%20Contributions.md)

- [x] I used a GenAI tool in this PR.
- [ ] I did not use GenAI

Generated-by: Gemini 3.1 Pro


---------

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>
Adds a CI for the next-gen prototype.

### Implementation description

We create a base container consisting of `ros2_rust`, `nav2` and generated rust messages. We then Perform the building against this base container.

### GenAI Use
We follow [OSRA's policy on GenAI tools](https://github.com/openrobotics/osrf-policies-and-procedures/blob/main/OSRF%20Policy%20on%20the%20Use%20of%20Generative%20Tools%20(%E2%80%9CGenerative%20AI%E2%80%9D)%20in%20Contributions.md)

- [x] I used a GenAI tool in this PR.
- [ ] I did not use GenAI

Generated-by: Gemini Pro 3.1

Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>

* Update CI workflow branch to epic/next-gen-base

Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>

* Add branch to CI workflow for additional feature

Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>

* Remove nav2 stuff

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Rosdep new code as well

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Rosdep new code as well

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Update CI

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Update readme

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* try not using repos file

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Fix typo

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Update README.md

Co-authored-by: Xiyu <ohxiyu@gmail.com>
Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>

* remove broken source path

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* remove broken source path

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* add rosdep init

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* to rosdepinit or not that is the question

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* rosdep binary

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* fix instructions

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Remove repos file

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Remove repos reference

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Update dockerfile to use colcon cargo from apt

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Update readme instructions

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Fix apt command

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Update README for clarity on workspace dependencies

Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>

* Use rosenv

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Re-add colcon-ros-cargo

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* update readme since vcs is no longer needed

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Dockerfile base

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Force upgrade

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Add break-system package line

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Limit to only epic branch

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

---------

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>
Co-authored-by: Xiyu <ohxiyu@gmail.com>
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
## New feature implementation

### Implemented feature

I added a reservation-aware destination server package, in addition to the stateless simple destination server. The user can switch between both implementations in the demo at launch time.

### Implementation description

This PR is a combination of:

- arjo129#4: E2E visualization for reservation queuing
- arjo129#7: negative-coordinate reservation fixes
- arjo129#8: RMF Site Editor config parsing

and the splitting of the destination server package into stateless and reservation-aware packages.

### GenAI Use
We follow [OSRA's policy on GenAI tools](https://github.com/openrobotics/osrf-policies-and-procedures/blob/main/OSRF%20Policy%20on%20the%20Use%20of%20Generative%20Tools%20(%E2%80%9CGenerative%20AI%E2%80%9D)%20in%20Contributions.md)

- [x] I used a GenAI tool in this PR.
- [ ] I did not use GenAI

---------

Generated-by: GPT-5.5

Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
@mxgrey mxgrey added this to PMC Board Jul 1, 2026
@github-project-automation github-project-automation Bot moved this to Inbox in PMC Board Jul 1, 2026
@arjo129
arjo129 marked this pull request as ready for review July 1, 2026 05:08
arjo129 and others added 2 commits July 3, 2026 06:43
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
* Fix QoS durability mismatches in integration tests

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* CI: Run tests sequentially to avoid DDS interference

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

---------

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
@xiyuoh
xiyuoh force-pushed the epic/next-gen-base branch from 512b83e to 34b2d6a Compare July 3, 2026 06:47
* Introduce nav2 traffic for next gen

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Bring in spatio temporal stuff

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Remove sp from repos file

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Remove .repos file

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Persistent cancelllation

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* More robust inner nav request handling

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Add clearer description

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Review comments

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Add visualizer launch

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Move bevy ros2 stuff to its own crate + cleanup

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Compare destination session

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Adjust log level

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Add more deps instructions to readme

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Some readme stuff, some ci stuff, some logging stuff

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* See if CI will fetch the right things

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>

* Add deps

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

* Forgot the 2

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>

---------

Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
Co-authored-by: Arjo Chakravarty <arjoc@intrinsic.ai>
@arjo129
arjo129 requested review from mxgrey and xiyuoh July 6, 2026 02:45
xiyuoh and others added 3 commits July 6, 2026 14:39
Some cleanup follow-up from Nav2 traffic PR outlined in #21:
- Replace `DefaultPlugins` with `MinimalPlugins` + `LogPlugin`
- Use `rmf_participant_discovery` for the visualizer
- Add `nav2_traffic` node to `demo_viz` launch file

### GenAI Use
We follow [OSRA's policy on GenAI tools](https://github.com/openrobotics/osrf-policies-and-procedures/blob/main/OSRF%20Policy%20on%20the%20Use%20of%20Generative%20Tools%20(%E2%80%9CGenerative%20AI%E2%80%9D)%20in%20Contributions.md)

- [x] I used a GenAI tool in this PR.
- [ ] I did not use GenAI

Generated-by: Gemini 3.1 Pro
Signed-off-by: Xiyu Oh <xiyu@openrobotics.org>
Related to #12

### Implemented feature

Adds a very rudimentary way of loading environment maps. This is by no means a final approach to loading maps, but it provides a high level way of representing them for the time being.

### Implementation description

We subscribe to the `/map` topic to listen for OccupancyGrids. It gets converted internally to a `Map` struct

### Test it

Use the launch file provided by `demo_map.launch.py` . It spins up a ROS 2 `map_server` loaded with a custom 20x20 grid map (`demo_grid.png`) and activates it. The dashboard subscribes to `/map` and visualizes it as a background layer.

Run the launch file:
```bash
ros2 launch rmf_path_server_demo demo_map.launch.py
```
- Open `http://localhost:8080` in your web browser.
- The canvas will automatically fit to the 20x20 grid map.
- You can add robots and set goals as in the default mode, and see the map obstacles (a box in the center) drawn on the canvas.

### GenAI Use
We follow [OSRA's policy on GenAI tools](https://github.com/openrobotics/osrf-policies-and-procedures/blob/main/OSRF%20Policy%20on%20the%20Use%20of%20Generative%20Tools%20(%E2%80%9CGenerative%20AI%E2%80%9D)%20in%20Contributions.md)

- [x] I used a GenAI tool in this PR.
- [ ] I did not use GenAI

Generated-by: Gemini Pro 3.1

---------

Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>
Co-authored-by: Xiyu <ohxiyu@gmail.com>
* Change build branch from 'epic/next-gen-base' to 'main'

Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>

* Change CI workflow branch from epic to main

Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>

---------

Signed-off-by: Arjo Chakravarty <arjo129@gmail.com>
@mxgrey mxgrey moved this from Inbox to In Review in PMC Board Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

4 participants