Contents
Overview
The main components of using TouchOSC with ROS are:
- The TouchOSC app for iPad or iPhones
A TouchOSC layout, which is composed of tabpages
The touchosc_bridge ROS node, which is composed of tabpage handlers
TouchOSC
From hexler.net:
TouchOSC is a modular OSC and MIDI control surface for iPhone / iPod Touch / iPad. It supports sending and receiving Open Sound Control messages over a Wi-Fi network using the UDP protocol.
TouchOSC is published and created by hexler (http://hexler.net), and is available on the [Apple App Store for 4.99](http://itunes.apple.com/app/touchosc/id288120394?mt=8).
TouchOSC allows for the creation of touch interactive control layouts separated onto "tabpages". The app supports up to 25 tabpages in a single layout file. Layouts are created using the freely available [TouchOSC Editor](http://hexler.net/software/touchosc). For more information on all of the controls available, as well as their behavior with ROS, check out the Controls Reference.
Video Demo
Quick Reference
A few links of interest:
Controls Reference - A list of TouchOSC controls along with their behavior with the touchosc_bridge/DefaultTabpageHandler
Tabpage Handler Reference - A reference for creating your own tabpage handlers.
Node API
This is the node configuration regardless of which tabpage handlers are loaded. For parameters for individual tabpage handlers, check the respective documentation.
touchosc_bridge
TouchOSC to ROS bridge nodeSubscribed Topics
touchosc_bridge/vibrate (std_msgs/Empty)- When a message is received, will turn on the vibrate motors of all capable devices for approximately half a second
- When a message is received, change tabpages on all clients. Populate msg.header.frame_id with an IP address to change the tabpage on a single client.
Published Topics
touchosc_bridge/accxyz (sensor_msgs/Imu)- Accelerometer data from iOS clients. msg.header.frame_id will contain the IP address of the sending client.
- Sent when a client switches tabpages. Contains tabpage name. msg.header.frame_id will contain the IP address of the sending client.
- Diagnostic information about the state of the touchosc_bridge node. Also includes diagnostic_msgs/DiagnosticStatus messages from each of the registered tabpage handlers.
Parameters
~osc_name (string, default: Test)- Name of the node as it will appear in the Bonjour/Zeroconf system.
- Port that the OSC server will listen on
- Bonjour registration type of the OSC server
- setting the parameter to "True" will cause unhandled incoming OSC messages to be printed to the console.
- When True, the node will create a touchosc_bridge/vibrate subscriber.
- When True, the node will publish iPod and iPad accelerometer data on touchosc_bridge/accxyz. Note: "Send Accelerometer Data" must be enabled in the TouchOSC application for this to work
- When True, the node publishes diagnostic_msgs/DiagnosticArray message on /diagnostics
- When True, the node will send tabpage switch messages received on the touchosc_bridge/tabpage topic to clients.
- When True, and when a layout file is loaded, any loaded tabpages not matching a tabpage handler will go to the touchosc_bridge/DefaultTabpageHandler.
- A path to a group of layout files to use with touchosc_bridge.
- A list of layout files to use with touchosc_bridge
- Path (including filename) of a layout to use with touchosc_bridge