Giter VIP home page Giter VIP logo

rviz_annotator's Introduction

Rviz Annotator

Description

Rviz Annotator is a ROS package that integrates rosbag player into rviz plugins for playing and annotating recorded PointCloud2 messages. The user can select points displayed in rviz for manual object clusters naming and export a new .bag file. It contains three rviz plugins:

  • Rosbag player
  • Annotation panel
  • PointCloud2 selection tool (using PointCloud2_Segments custom messages)

Dependencies

The following ROS packages are used for recording their output:

yaml-cpp library is also needed for YAML support. (Normally it is pre-installed with ROS)

Compiling

Build with catkin_make install under catkin workspace.

Setup

  1. Open plugin_params.yaml in the config directory to set default parameters:

    • sel_topic: topic for publishing selected points message
    • marker_array_topic: topic for publishing marker array
    • csv_name: name of the output .csv file after rviz save (Ctrl + S only )
    • csv_dir: location of the output .csv file
    • bagfiles_dir: directory containing .bag files
    • pc_segments_topic: subscriber PointCloud2_Segments topic
    • pc2_topic: subscriber PointCloud2 topic
  2. Open rviz and add RosbagPlayer panel, Annotation panel and PointSelect tool

  3. Under player panel, select a directory that contains .bag files and, under annotation panel, type PointCloud2 topic to subscribe to, or refresh to update open topics and select from the list

  4. Add MarkerArray display to see annotated points

Annotation

Start player by pressing Start.
Activate PointSelect ( s key for shortcut) tool to select points on a specific frame, after pressing Pause button.

Annotation panel shows selection status, depending on the initial clustering ( Clean for points that belong to the same cluster/object or Dirty for different clusters). Hit Join to create custom cluster or Divide to separate points from previous custom cluster. Type cluster name to set it and markers visualize the created clusters ( MarkerArray display should be active).

Holding << or >> down steps continuously backwards or forward while paused.

Hit Ctrl + S to save annotated points to csv when done.

Export

Run rosrun rviz_annotator exportBag <initial_bagfile_name> to export a new .bag file containing annotations.

Each custom cluster in the new .bag has its own color. Clusters that have not been selected manually are displayed grayed out.

Known Issues

The exporter node gives generated colors to annotated points and gray color to the rest for each frame.
It needs to take the original cluster id's into account retaining their color and adding the annotated points with new id's.

Notes

Rosbag player has backwards step as an extra feature, but does not support all the original player features.

SyncTopics option of the player must be checked always before performing Backstep and Step ( << and >> ).

The name of the package ( rviz_annotator ) should not be changed, because it causes run-time errors.

The format of directory parameters must be path/to/file and topic/name for topic parameters (no / on the end).

Currently only C++11 compiler is supported. Tested on ros-kinetic version.

rviz_annotator's People

Contributors

matthewzid avatar

Stargazers

 avatar Chien-Yu Lin avatar

Forkers

roboskel

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.