rososc is a collection of ROS nodes and software utilities for interacting with the Open Sound Control protocol. Open Sound Control is a messaging system for communication with computers and media hardware (synthesizer, tactile instruments, synthesizers, etc) using either the TCP or UDP protocol.
The current (beta) version is 0.2. While most of the functionality and features have been tested, this should still be considered fairly experimental. Please report all bugs and feature requests to the link at the bottom of this page.
Installing on Ubuntu
Due to the way that rosdep works, you must have pip (Python package manager) installed before ROSOSC will install successfully. To accomplish this:
- sudo apt-get install python-pip
osc_bridge handles the basic interaction with the ROS environment, Bonjour network browsing and registration system, as well as the Open Sound Control protocol.
This package uses txosc, a Python and Twisted implementation of the Open Sound Control protocol, written by Arjan Scherpenisse and Alexandre Quessy. Additionally, it uses the capabilities of pybonjour to handle Bonjour network browsing and registration.
touchosc_bridge provides the connector between the TouchOSC iOS and Android applications. It handles the base interaction between TouchOSC and the device hardware and the ROS system that is running on a host computer. The transactions between the device and ROS are via UDP.
A TouchOSC layout is composed of 1-25 tabpages. Each of these tabpages may contain any number of controls, which are independently addressed over the OSC protocol. A change in any of these controls will be sent to the touchosc_bridge, which will then trigger corresponding callback functions.
touchosc_bridge provides a plugin architecture using Python modules called tabpage handlers. A tabpage handler is set up to receive messages from a tabpage (and it's aliases), and can be used to create new ways of easily interacting with TouchOSC layouts.
Included is a default tabpage handler, which will provide a ROS Publisher and Subscriber for each control in a layout file. Consult the touchosc_bridge documentation for more information.
rososc currently includes two handlers that you can use with your own project. These are:
teleop_handler - for publishing command velocities from an iPhone or iPad to your robot or simulated robot. It includes some deadman capabilities, so velocities zero out when the user is not touching the screen, or closes the app. It also features support for multiple clients, with a client "lockout" feature. Consult the package documentation for more information.
diagnostics_handler - for interacting with diagnostics and aggregate diagnostics data being published by your hardware (or simulation). Allows for an at-a-glance look of system status, as well as detailed views for the most recent incoming diagnostics message. Also features the ability to pause data at a point in time to investigate possible failures. Consult the package documentation for more information.
pytouchosc contains a library, PyTouchOSC, for interacting with .touchosc layout files.
It also includes the layoutserver_node, which allows the user to transfer .touchosc layout files to the device.
Report a Bug
Use Github Issues to report bugs or request features
Use answers.ros.org to Ask Questions about this stack.