Giter VIP home page Giter VIP logo

rviz_tool_cursor's Introduction

Rviz Tool Cursor

license - Apache 2.0

An Rviz tool that visualizes a given geometry as the cursor and orients the object normal to objects in the scene. On a click of the left mouse button, the tool will publish the 3D point and 6D pose of the object on which the cursor rests. When multiple points are clicked, the tool will display all selection points and lines connecting them and will publish a message containing all the current selection points.

Mesh tool cursor

Controls

  • Left mouse button: Add a selection point (triggers the publication of the point, pose, and pose array messages)
  • Left mouse button hold: Adds selection points when lasso mode is enabled
  • Right mouse button: Deactivates the tool
  • Center mouse button: Clears the current selection points and boundary

Implementations

Tool Cursor

The base class of the tool cursor has the following properties:

  • Pose Topic: The topic on which to publish the 6D pose in the Rviz environment when the left mouse button is clicked
  • Point Topic: The topic on which to publish the 3D point (no orientation) in the Rviz environment when the left mouse button is clicked.
    • Note: If you want this to match the output of the Publish Point tool, you can remap /tool_cursor_point to /clicked_point. Alternatively, you can edit this in the Panels > Tool Properties menu.
  • Pose Array Topic: The topic on which to publish the vector of 6D poses that have been selected in the Rviz environment when the left mouse button is clicked
  • Patch Size: The number of pixels on a side with which to create a patch used for estimated the surface normal
  • Lasso Mode: Toggle lasso mode where selection points are constantly acquired when the left mouse button is held down
  • Close Loop: Toggle the visualization of the line connecting the last point to the first point
  • Show Points: Toggle the display of the selection points
  • Show Lines: Toggle the display of the lines connecting the selection points
  • Point Color: Controls the color of the selection points
  • Line Color: Controls the color of the selection boundary lines
  • Point Size: Controls the size (in pixels) of the selection points

Mesh Tool Cursor

The mesh tool cursor visualizes a specified mesh file (.stl or .ply) as the cursor. The tool has the following additional properties:

  • Mesh Filename: The filename of the mesh file to be displayed (supports package:// and file:// URIs)
  • Color: The color of the cursor visualization

Circle Tool Cursor

The circle tool cursor visualizes a 2D circle of specified radius as the cursor. The tool has the following additional properties:

  • Radius: The radius of the circle visualization
  • Color: The color of the cursor visualization

Customization

In order to create a custom Rviz tool cursor, the ToolCursor base class requires the implementation of the virtual function createToolVisualization() which defines the cursor visualization:

rviz_tool_cursor's People

Contributors

davidmerzjr avatar marip8 avatar youngbend avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rviz_tool_cursor's Issues

Tool Conflicts with Publish Points, and No Way to Turn It Off

This package contains tools that publish poses on a unique topic. This topic is used in a number of systems I am responsible for maintaining.

As of f81dc0f, the rviz_tool_cursor tools also publish 'point' messages on the topic created by the 'publish point' tool. Because they are both rviz plugins / tools, they publish from the same node, making remapping one or the other infeasible. I am not sure of any way to distinguish between the outputs of these two tools. This heavily limits the parallel usage of the publish point tool and the tools from this package.

Is there some straightforward way to make it optional whether the tools publish on both topics? I don't know how to get constructor arguments in, or even where these constructors are 'called'. Could we have it check a parameter?

I could just fork the repository and never look back, but I don't like creating parallel development streams without good reason.

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.