Only released in EOL distros:
Package Summary
Provides a node for displaying polygon or circle projected interfaces.
- Author: Daniel Lazewatsky
- License: BSD
- Source: git https://github.com/OSUrobotics/ros-3d-interaction.git (branch: groovy-devel)
Contents
Running
The easiest way to run the interface is alongside the projector calibration node. This can be done with
roslaunch projector_interface calibrate_and_circle.launch
This will start both the calibration node and interface node. The interface node will wait to display anything until a homography is available on the /homography parameter. After calibration, the calibration node will exit.
At this point the interface node is ready to display the cursor, object circles, and any polygons sent to it using the projector_interface/DrawPolygon service.
Nodes
object_circler
Responsible for drawing the interface and dispatching click notifications if any objects in the interface have been clickedSubscribed Topics
object_cloud (sensor_msgs/PointCloud2)- A point cloud containing the centers of detected objects to be circled
- Indicates that a click has been received
- A point cloud containing point intersections. These points are used to determine which object (if any) is being selected. This enables using multiple world models for object selection. If multiple models are not being used, this should be the same as intersected_points_cursor.
- A point cloud containing point intersections used to determine the current cursor location in the interface.
- The camera calibration for the camera whose camera-projector homography is being used.
Published Topics
selected_point (geometry_msgs/PointStamped)- After a click, this is the point that was clicked on.
- Published each time the interface is finished redrawing
- Published the cursor history every time a click is received.
- The object id for the object that was just clicked
Services
hilight_object (projector_interface/HilightObject)- Tells the interface to hilight a specific object
- Clears all hilights
- Requests the current cursor history
- Enables changing the selection method for selecting circled objects.
- Adds a polygon for the interface to draw
- Clears all polygons
Parameters
/homography (string)- The camear-projector homography
- Sets the top right of the display to be (0,0) rather than bottom left. Defaults to false.
- Sets how much cursor history to use. Defaults to 10.
- Sets whether or not to draw circles around detected objects (from object_cloud)
point_to_click
Takes a button press from a joystick and publishes a click. After a button press has been detected, won't publish another click for 1 second.Subscribed Topics
joy (sensor_msgs/Joy)- The joystick topic
Published Topics
click (std_msgs/Empty)- Topic where clicks should be published.
find_objects
Calls the tabletop object detector and publishes a cloud of detected object centers.Published Topics
object_cloud (sensor_msgs/PointCloud2)- Object center cloud topic
- Table information
Parameters
~detect_rate (float)- How frequently to call the detector. Defaults to once every 2 seconds (0.5).
manipulator
Goes between object_circler and PR2's object manipulation capabilities.Subscribed Topics
click (std_msgs/Empty)- Receives clicks when objects are clicked on
- Intersected points when there was a click
Published Topics
place_pose (geometry_msgs/PoseStamped)- Publishes a pose where the object should be placed