Package Summary

Version 1.6.3
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/open-rmf/rmf_traffic_editor.git
VCS Type git
VCS Version humble
Last Updated 2024-11-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

traffic editor

Maintainers

  • Morgan Quigley
  • Marco A. Gutiérrez

Authors

No additional authors.

Traffic Editor

A graphical editor for robot traffic flows. The intent is to make it easy to annotate building floorplans with the desired robot traffic lanes and generate simulation models to test and evaluate different traffic schemes.

Quality Declaration

This package claims to be in the Quality Level 3 category. See the Quality Declaration for more details.

System Requirements

This program is developed and tested on Ubuntu 18.04 LTS, using Qt 5 and yaml-cpp.

Compiling Instructions

Traffic Editor is now structured as a Colcon package. After installing ROS 2 Eloquent, the following command sequence will create a colcon workspace in ~/colcon_workspace and build traffic-editor there:

sudo apt update
sudo apt install libyaml-cpp-dev qt5-default \
  libopencv-dev libopencv-videoio-dev
mkdir -p ~/colcon_workspace/src
cd ~/colcon_workspace/src
git clone https://github.com/open-rmf/rmf_traffic_editor
cd ~/colcon_workspace
source /opt/ros/eloquent/setup.bash
colcon build --packages-select rmf_traffic_editor

The companion traffic_editor_assets package contains a nifty bunch of useful assets to use with rmf_traffic_editor. It is included in the above checkout.

Then you should be able to run traffic-editor by sourcing the install space of that workspace, in a new “clean” terminal:

source ~/colcon_workspace/install/setup.bash
traffic-editor

Quick Start

If it’s the first time you are running it, starting the editor with traffic-editor should bring up a blank window.

First, you’ll need to make sure that traffic-editor knows where the model thumbnails are found. If you installed traffic_editor_assets, rmf_traffic_editor should find it automatically. The thumbnails are top-view renderings of various art assets that can be added to the environments, such as chairs.

Click Edit->Preferences... and see if the path provided in the “Thumbnail Path” box looks reasonable.

If necessary, the “Find…” button can be used to browse the filesystem to point to any desired thumbnail directory.

(If you installed the recommended traffic_editor_assets package, you will find its thumbnail directory in its install space at <workspace_dir>/install/traffic_editor_assets/share/assets/thumbnails.)

Creating a new Project and an empty Building Map

Click Project->New... and save your new project as test.project.yaml

Click Edit->Project Properties... and enter “test” as the project name and test.building.yaml as the building path. Then click OK.

Click Edit->Building Properties... and enter “test” as the building name. Click OK.

Creating a level and adding some stuff

Click the “Add…” button in the “levels” tab on the far right side of the main editor window. This will pop up a dialog where you can create a new level. Enter L1 for the name and click OK. This will create a 10 meter square level.

You can zoom in and out using the mouse wheel on the rendering on the left side of the main window. You can pan around by dragging the mouse around with the mouse wheel (or middle button) depressed.

Now, you should be able to click the green dot toolbar icon, which is the “Add Vertex” tool (or press V) and click a few vertices in the white area. Press the [Escape] key to return to the “Select” tool.

Now, you should be able to click the add wall tool (or press W) and drag from one vertex to another vertex to add wall segments.

To delete wall segments or vertices, first press [Escape] to enter Select mode. Then, click on a wall segment or vertex, and press [Delete].

Save your work

Click Project->Save or press Ctrl+S to save the project and building map.

Adding real-world measurements to set the scale

To set the scale of the drawing, click the add measurement tool (or press M) and drag from one vertex to another to add a real-world measurement line, which should show up as a pink line. Then click the select tool (or press Esc) and click on the line with the left button. This should populate the property-editor in the lower-right pane of the editor window. You can then specify the real-world length of the measurement line in meters. If you set more than one measurement line on a drawing, the editor will compute an average value of pixels-per-meter from all supplied measurements.

Currently you need to re-load the document (closing the editor and re-opening) to re-compute the scale. This is not ideal, but is hopefully not a frequently-used feature. Typically the scale of a map is only set one time.

Adding lifts

Click the “Add…” button in the “lifts” tab on the far right side of the main editor window. This will pop up a dialog where you can create a new lift. You can specify the name, position, size, and reference floor in the dialog.

Note: Do include the keywork “lift” in the lift name as for now this is how slotcars recognize lift models.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rmf_traffic_editor

1.6.3 (2024-11-05)

  • Fix reference file name being kept when loading new building (#503)
  • Contributors: Luca Della Vedova

1.6.2 (2023-08-10)

1.6.1 (2023-06-05)

  • Switch changelogs to rst format.
  • Contributors: Yadunund

1.6.0 (2022-10-05)

  • Added a dispensable field for models (#436)
  • Use index based iterator to avoid yaml cpp bug (#435)
  • better vertex text size in meter-scale maps (#431)
  • Contributors: Aaron Chong, Luca Della Vedova, Morgan Quigley

1.5.1 (2022-04-20)

  • update OSM tile server URL to full planet data (#430)
  • fix cmake ament_index_cpp dependency
  • add a github CI job for rolling
  • don't double-trigger CI runs
  • update qt packages for jammy github workflow
  • build/install rmf_utils from source in ci_rolling
  • Contributors: Morgan Quigley, Youliang Tan

1.5.0 (2022-03-13)

  • fix #419 by calculating transformed x/y in image-based maps (#421)
  • validate reference level index before using it (avoid a crash)
  • Use C++17 for std::optional
  • move all CI to galactic on ubuntu 20.04
  • move the C++ style check into the 'main' CI test workflow
  • Feature/render OpenStreetMap tiles (#418)
    • "new building" dialog box which asks which coordinates to use
    • use a subdirectory in ~/.cache as the OSM tile cache
    • show the tile cache size on the status bar
    • use EPSG:3857 (meters) for rendering tile maps
    • WGS84 coordinate translation
    • render OSM tiles in grayscale, so the non-tile things are easier to see
    • populate lat, lon property fields in EPSG:3857 mode
    • remove obsolete "flattened" UI stuff
    • save global coords in wgs84 but render them in epsg3857 on OSM tiles
    • GUI box to set the local CRS for sim/nav generation
    • move all RMF keys into GeoJSON props. add start/end names
    • feature_type -> rmf_type in GeoJSON properties
    • translate robot spawn point along with the world
  • Handle simulation offsets for models and cameras (#408)
    • lat/lon translation behavior for models (previously, builds break when adding models due to WGS84 translation not having a "rotation" variable)
    • change naming for wgs84 model positions to lat/lon instead of x/y for consistency
    • apply offsets to the camera, so the camera view appears over the working area
    • Handle simulation offsets for models and cameras
    • Pass transform in Model constructor; pass un-transformed variables for to_yaml
    • Add check if global_transform was initialized; fix wrong computation of xy
    • parse model coordinates in wgs84 and project for viewing/editing
    • move model projection/translation to generate phase
    • set user-agent string in HTTP tile requests
    • workaround for 32-bit scrollbar overflow at extreme zoom
    • introduce a simple queuing system for tiles
    • reset zoom when loading a different filename
  • flip layer images right-side up in cartesian meters mode (#405)
  • Improve behavior for Cartesian maps (#401)
    • Improve behavior for Cartesian maps

    * because Cartesian maps have 1-meter units, we need to compute a better default scale for them. Previously it was always using a default scale of 0.05. * somewhat related, also fix the edge-select implementation so it spins through all edges in the map rather than just selecting the first edge within 10 units... that was OK when we were always using pixel-based maps, but now that meter-based maps are in use, it was just choosing the first edge that was within 10 meters of the click, which was a lot of edges and felt somewhat random.

    • stop drawing a 1-unit border around the scene rectangle
    • rotate vertex icons to +Y for cartesian maps
  • Cartesian worlds (y=up) and steps towards using GeoPackage (#396)
    • create passthrough transform for cartesian_meters coordinate systems
    • y-flip in traffic-editor GUI for cartesian worlds; only invert Y coordinate for legacy image-based maps
    • add coordinate system files for C++ GUI
    • pass coordinate system to vertex draw, to flip text as needed
    • correct deprecated setuptools key to fix warning

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rmf_traffic_editor at Robotics Stack Exchange