-
Notifications
You must be signed in to change notification settings - Fork 262
Feature/add route server UI editor #684
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
SteveMacenski
merged 24 commits into
ros-navigation:master
from
bekirbostanci:feature/add-route-server-ui-editor
May 3, 2025
Merged
Changes from all commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
d236c1a
Add documentation for Route Graph Generation LIF Editor
bekirbostanci cf32990
Update documentation to include LIF Editor in route graph generation …
bekirbostanci 19386a5
Add images for Route Graph Generation LIF Editor tutorial
bekirbostanci 05f434b
Fix trim trailing whitespace
bekirbostanci b14f2d2
Fix references in Route Graph Generation documentation
bekirbostanci c12f13e
Fix directive in Route Graph Generation LIF Editor documentation
bekirbostanci 8750972
Fix directive syntax in Route Graph Generation LIF Editor documentation
bekirbostanci 1f0f09e
Add GitHub link to Route Graph Generation LIF Editor documentation
bekirbostanci 80b9d5c
Add new image for fast edge creation and update image dimensions in R…
bekirbostanci 6654f7e
Update tutorial steps for Route Graph Generation LIF Editor documenta…
bekirbostanci 414e0ef
Update layout section formatting in Route Graph Generation LIF Editor…
bekirbostanci 8d4c4ff
Update tutorial step title from 'Set Up Layout' to 'Create Layout' in…
bekirbostanci ada5cc2
Add blank line for improved readability in Route Graph Generation LIF…
bekirbostanci bbc138f
Fixed list number with new line
bekirbostanci fc72c1a
Swap width and height attributes for images in Route Graph Generation…
bekirbostanci 9a07f32
Fix formatting of website and GitHub links in Route Graph Generation …
bekirbostanci 7223b4f
Add Route Server Tools documentation and Nav2 Route Tool tutorial
bekirbostanci 7a003ae
Fix missing newline at end of file in tutorials index
bekirbostanci a08a37d
Remove unnecessary newline in Route Server Tools documentation
bekirbostanci f1adb38
Update image paths in Route Server Tools documentation to use relativ…
bekirbostanci 0ea77de
Remove outdated references to Route Server Tools tutorials in index
bekirbostanci 32dc77c
Update tutorials/docs/route_server_tools.rst
SteveMacenski f7aa299
Update tutorials/docs/route_server_tools.rst
SteveMacenski 9174562
Update tutorials/docs/route_server_tools.rst
SteveMacenski File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+126 KB
tutorials/docs/images/route_graph_generation_lif_editor/add_edge_fast_create.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+316 KB
tutorials/docs/images/route_graph_generation_lif_editor/add_edge_normal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+324 KB
tutorials/docs/images/route_graph_generation_lif_editor/check_geojson.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+121 KB
tutorials/docs/images/route_graph_generation_lif_editor/check_geojson_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+308 KB
tutorials/docs/images/route_graph_generation_lif_editor/delete_edge.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+254 KB
tutorials/docs/images/route_graph_generation_lif_editor/delete_node.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+120 KB
tutorials/docs/images/route_graph_generation_lif_editor/export_geojson.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+155 KB
tutorials/docs/images/route_graph_generation_lif_editor/frame_name.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+170 KB
...rials/docs/images/route_graph_generation_lif_editor/setup_coordinate_system.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| .. _route_server_tools: | ||
|
|
||
| Route Server Tools | ||
| ################## | ||
|
|
||
| Route Server tools are essential components in the Nav2 ecosystem that help users create, edit, and manage route graphs for robot navigation. A route graph is a representation of valid paths that a robot can follow in its environment, consisting of nodes (waypoints) and edges (connections between waypoints). These tools simplify the process of defining preferred paths and restricted areas for robot navigation. | ||
|
|
||
| Unlike free-space planning, route-based navigation ensures that robots follow specific, predefined paths, which is particularly useful in: | ||
|
|
||
| - Industrial environments where specific routes must be followed | ||
|
SteveMacenski marked this conversation as resolved.
|
||
| - Warehouse operations requiring structured movement patterns | ||
| - Facilities with restricted areas or preferred paths | ||
| - Multi-robot coordination scenarios where predefined routes help prevent conflicts | ||
|
SteveMacenski marked this conversation as resolved.
|
||
| - Large scale outdoor urban or natural environments | ||
|
|
||
| Provided Tools | ||
| ************** | ||
|
|
||
| .. toctree:: | ||
| :maxdepth: 1 | ||
|
|
||
| route_server_tools/navigation2_route_tool.rst | ||
| route_server_tools/route_graph_generation_lif_editor.rst | ||
| route_server_tools/route_graph_generation.rst | ||
|
|
||
| Description | ||
| *********** | ||
|
|
||
| There are several tools available for creating and editing route graphs for the Nav2 Route Server: | ||
|
|
||
| 1. **Nav2 Route Tool**: An Rviz panel that allows users to create, edit, and manage route graphs directly within the ROS 2 environment. It supports loading existing graphs, adding/editing/removing nodes and edges, and saving changes to files. | ||
|
|
||
| 2. **VDA LIF Editor**: A web-based tool that allows users to create route graphs using floor plan images. It can generate both GeoJSON and LIF formats, making it particularly useful for standardized route creation. No installation is required as it runs in a web browser. | ||
|
|
||
| 3. **Manual Route Graph Generation**: For those who prefer direct file editing, route graphs can be created manually in GeoJSON format using QGIS. This method provides the most control over the graph structure but requires understanding of the GeoJSON format. | ||
|
|
||
| Choose the tool that best fits your needs based on your workflow and requirements. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
175 changes: 175 additions & 0 deletions
175
tutorials/docs/route_server_tools/route_graph_generation_lif_editor.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,175 @@ | ||
| .. _route_graph_generation_lif_editor: | ||
|
|
||
| Route Graph Generation LIF Editor | ||
| ********************************* | ||
|
|
||
| - `Overview`_ | ||
| - `Requirements`_ | ||
| - `Tutorial Steps`_ | ||
|
|
||
| Overview | ||
| ======== | ||
| A route can also be created using the **VDA LIF Editor**, a web-based open-source tool. This project was developed to present floor plans in a standardized format defined by the VDA. With the VDA LIF Editor, you can generate both GeoJSON and LIF formats simultaneously. | ||
|
|
||
| - Website: https://vda5050-lif-editor.vercel.app/ | ||
| - Github: https://github.com/bekirbostanci/vda5050_lif_editor | ||
|
|
||
| Requirements | ||
| ============ | ||
| This is an online web-based tool, so no installation is required. You can use it directly in your browser. | ||
|
|
||
| Tutorial Steps | ||
| ============== | ||
|
|
||
| 1. Create Layout | ||
| ---------------- | ||
|
|
||
| Click the **'Edit'** button under the **'Layout'** section in the left sidebar. This will open a new popup where you can edit the layout name. Click the **'Save'** button to save it. | ||
|
|
||
| .. note:: | ||
| You can also change the layout name after creating the layout. | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/frame_name.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
|
|
||
| Click the **'Edit'** button under the **'Layout'** section in the left sidebar. In the popup, upload your floor plan image using the **'Background Image'** section. | ||
| After uploading the image, four input fields will appear. Set the image width and height in meters, and specify the origin coordinates (X, Y). | ||
| The origin is the bottom-left corner of the image. | ||
| Click the **'Save'** button to save and close the popup. | ||
|
|
||
| .. note:: | ||
| If you don't see the image, zoom out the map and check the origin position of your image. | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/setup_coordinate_system.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
| 2. Node Operations | ||
| ------------------ | ||
|
|
||
| Add Node | ||
| ~~~~~~~~ | ||
| Now you can add nodes to the map. There are two ways to do this: | ||
|
|
||
| 1. Click directly on the map to add a node. This will create a node automatically. If you want to change its properties, click on the node and edit its information in the right sidebar. | ||
| 2. Click the **'Node'** button under the **'Create Item'** section in the left sidebar. This will display the **'Create Node'** section in the right sidebar. Fill in the node details and click **'Save'** to create the node. | ||
|
|
||
| .. note:: | ||
| If the **'Fast Create'** toggle is on, you cannot create nodes using the right sidebar (method 2). You must turn the toggle off first. | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/add_node.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
| Delete Node | ||
| ~~~~~~~~~~~ | ||
| To delete a node, click on it (a glowing orange border will appear around the selected node), then click the **'Delete'** button in the right sidebar. | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/delete_node.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
| 3. Edge Operations | ||
| ------------------ | ||
|
|
||
| Add Edge | ||
| ~~~~~~~~ | ||
| Now we can add edges to the map. There are two ways to create edges: | ||
|
|
||
| 1. Select a node, enter the target node ID in the **'Connected Nodes'** input in the right sidebar, and select the node from the list. This will create an edge between the selected node and the target node. | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/add_edge_normal.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
| 2. If the **'Fast Create'** toggle is on, clicking on the map will automatically connect the new node to the previously selected node. | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/add_edge_fast_create.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
| Delete Edge | ||
| ~~~~~~~~~~~ | ||
| To delete an edge, click on it (the edge color will change to orange), then click the **'Delete'** button in the right sidebar. | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/delete_edge.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
| 4. Check GeoJSON | ||
| ---------------- | ||
| Click the **'ROS'** menu button on the top bar to view the generated GeoJSON. | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/check_geojson.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/check_geojson_1.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
| 5. Export to GeoJSON | ||
| -------------------- | ||
| You are now ready to export the node and edge layers as GeoJSON files. Click the **'Save'** button on the top bar and then select **'Export ROS GeoJSON'**. | ||
|
|
||
| | | ||
|
|
||
| .. image:: ../images/route_graph_generation_lif_editor/export_geojson.png | ||
| :width: 710px | ||
| :height: 330px | ||
| :align: center | ||
|
|
||
| | | ||
|
|
||
| 6. Congratulations | ||
| ------------------ | ||
| Your graph is now ready to be used by the Nav2 route! If you want to edit the graph later, you should also export the LIF file. | ||
| Click the **'Save'** button on the top bar and select **'Export LIF'**. | ||
| To edit, reopen the LIF file in the VDA LIF Editor and make your changes. You can also re-export the LIF file as GeoJSON. | ||
|
|
||
| **Happy Routing!** |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.