Customizable Buttons
Description: Using a white piece of paper and a black pen, you can draw your own array of buttons that are touch-activatedSubmitted By: Garratt Gallagher
Keywords: buttons, sound board, customizable
Contents
Video
How to Reproduce Your Entry
Physical Setup
The interface is pretty simple. White paper, black thick pen.
There are several assumptions that this program uses:
- The normal of the drawing surface is pointing in the positive z direction
The drawing surface is pretty much white (I threshold at r,g,b > 240)
- the kinect is stationary
the pen color is very dark (I threshold at r+g+b < 100)
- all the buttons are visible unless your hand is over at least one button
The buttons can track up to 1cm/frame. If they go any faster, or are blocked for about a second, they will re-associate.
Code to Checkout
First you have to check out and compile the mit-ros-pkg repository. Please follow the MIT Kinect Demos General Installation instructions.
You can then continue on that page to follow the instructions for installing the 'Customizable Buttons' Demo, which have been copied here for your convenience:
rosmake impromptu_buttons --rosdep-install
Running the Code
This demo uses the openni kinect driver. To launch it run:
roslaunch openni_camera openni_kinect.launch
The one step you will have to do manually is provide a static transform from /world to /openni_camera which will make the normal of the drawing surface point in the positive z direction. In the video above, I ran the following:
rosrun tf static_transform_publisher 0 0 1.2 0 .33 0 /world /openni_camera 10
Finally, to launch this demo, run:
rosrun impromptu_buttons buttons
Dependencies
External
This package depends on the Simple Fast Media Library to play sounds. you can install the dependencies using rosdep:
rosdep install impromptu_buttons
ROS Packages
- ni
- pcl
- pcl_ros