GitHub - Yutarop/waypoints_editor: Waypoints Editor is a GUI tool for intuitive visual editing of waypoints in medium- to large-scale robot navigation.

2 min read Original article ↗

Waypoints Editor is a GUI tool designed to simplify waypoint management for medium- to large-scale robot navigation tasks. When navigation spans hundreds of meters to several kilometers, editing waypoints by numeric values alone becomes inefficient and error-prone. This tool enables intuitive, visual waypoint editing through a GUI, supports automatic waypoint generation, and allows multiple waypoints to be edited simultaneously.

how_to_use.mp4

Setup

1. Clone the repository

git clone https://github.com/Yutarop/waypoints_editor.git

2. Create environment for waypoints_editor

cd waypoints_editor
python3 -m venv venv
source venv/bin/active
pip install -r requirements.txt

3. (Ubuntu) Register a command alias for convenience

To make it easier to launch the application on Ubuntu, it is recommended to register an alias:

echo "alias waypoints_editor='path/to/waypoints_editor/run_app.sh'" >> ~/.bashrc
source ~/.bashrc

After this, you can start the application simply by running:

File Format Requirements

Map Files

The map must be provided using the following ROS-compatible formats:

  • PGM file (map image)
  • YAML file (map metadata)

Both files are required as input.

Waypoint Files

Waypoint files can be:

  • Created from scratch using the GUI, or
  • Loaded from an existing YAML file that follows the format below

Example:

waypoints:
- point: {x: 1.0, y: 0.0, z: 0.0}
- point: {x: 2.0, y: 0.0, z: 0.0}

finish_pose: # optional
  pose:
    position: {x: 11.630675, y: 17.134052, z: 0.0}
    orientation: {x: 0.0, y: 0.0, z: -0.997151, w: 0.075436}

Notes

  • finish_pose is optional
  • Additional parameters can be freely added to the YAML file
  • All waypoints are defined in the map coordinate frame

Acknowledgement

This project was developed with reference to the following repository.

https://github.com/KBKN-Autonomous-Robotics-Lab/orange_navigation