been similar attempts such as ROSPod (2015) which
is still unstable and not a full-featured implementa-
tion. Even with a full underlying ROS infrastructure
to facilitate development on such devices there are a
number of other considerations. Android and iOS de-
vices are limited by available memory capacity, not to
mention processing power, and the overhead of an un-
derlying ROS implementation cuts into available re-
sources. Another consideration is the unreliability of
wireless communication. ROS assumes a high band-
width LAN connection between nodes and the mas-
ter. A user interface that augments the on-robot ROS
environment with user interface-based nodes on the
robot may have a substantive impact on robot per-
formance if communication becomes unstable. With
this in-mind a more prudent approach is to connect
to the ROS environment through other means. The
ROSBridge (Crick et al., 2011) library enables inter-
action with a ROS environment from external pro-
cesses. This interaction is facilitated through com-
mands in the form of JSON (Java Script Object Nota-
tion) strings (Crockford, 2006) . These commands are
mapped to internal ROS functions and enable external
processes to act as a ROS node operating within the
normal ROS environment.
This paper is organized into four major sections;
the first reviews earlier efforts to link external user in-
teraction systems to ROS through ROSBridge. The
second describes the implementation in Objective-C
of a ROSBridge client framework that facilitates com-
munication with ROS. The third describes the imple-
mentation and functions of RCON which acts as an
interface builder on iOS devices. Finally, to illustrate
the effectiveness of the approach a sample UI is con-
structed and tested using an autonomous system.
2 PREVIOUS WORK
This paper outlines two important advancements from
those described in previous works. The first is an iOS
implementation of an ROSBridge client library. The
second is the development of a flexible robot-interface
creation tool that leverages this iOS library to enable
the construction of such user interfaces on the device
itself. This flexibility would not be possible without
the capabilities offered by objective-c objects that en-
ables new class definitions to be created on-the-fly.
In this paper we demonstrate how to leverage the
ROSBridge library to allow for the development of
a native interface on iOS devices to facilitate effec-
tive human-robot interaction. This strategy has been
used effectively in the past by Speers et al. (2013)
to create a ROSBridge client library for Android and
in Codd-Downey et al. (2014) for the Unity3D soft-
ware platform. These libraries can be used to de-
velop customized interfaces that interact with a target
robot. Such predefined interfaces are very effective
on production robotic systems in which user-interface
requirements can be well specified in advance. How-
ever a majority of academic projects are experimen-
tal where the development of a customized interface
can be considered premature. This may also be true
for prototype robots in a commercial setting. Under
these circumstances maintaining a user interface that
keeps in stride with changes in the robot’s architecture
can be costly and time consuming. This motivates the
need for a dynamic interface that can be reconfigured
on the fly based on the needs of the current operator.
Such an interface could be used for other purposes
that may not have been considered cost effective.
3 ROSBRIDGE iOS
FRAMEWORK
ROSBridge (Crick et al., 2011) facilitates communi-
cation between an external application and the ROS
environment. It exposes messages from the ROS en-
vironment to external software using JSON strings,
and allows an external agent to inject messages into
the ROS environment. In essence it allows an exter-
nal application to respond to and influence the ROS
environment without the overhead of a full ROS im-
plementation. The ROSBridge iOS framework lever-
ages this communication protocol to provide an iOS
application access to the ROS environment using na-
tive Objective-C constructs. Translating commands
to and from JSON strings and facilitating communi-
cation with the server is essential to providing a sim-
ple and comprehensible framework to developers. An
overview of this communication pathway is depicted
in Fig. 1, which also lists the full set of ROSBridge
commands supported by the iOS framework.
The motivation for choosing iOS as our develop-
ment platform in part is due to the support of na-
tive application development within iOS. This is to
be contrasted with the Android platform where appli-
cations are run within a virtual machine which adds
additional memory and processing overhead. iOS ap-
plications are written in Objective-C which is essen-
tially an object oriented framework built overtop C us-
ing a preprocessor and an extensive runtime environ-
ment. Leveraging this runtime environment, an iOS
application is afforded many of the capabilities avail-
able only to the compiler in many other languages.
These capabilities include but are not limited to; con-
structing and registering new class definitions, attach-
RCON:DynamicMobileInterfacesforCommandandControlofROS-enabledRobots
67