An USB-based real-time communication infrastructure for robotic platforms
Author
Öztürk, Cihan
Advisor
Saranlı, Uluç
Date
2009Publisher
Bilkent University
Language
English
Type
ThesisItem Usage Stats
60
views
views
583
downloads
downloads
Abstract
A typical robot operates by carrying out a sequence of tasks, usually consisting
of acquisition of sensory data, interpretation of sensory inputs for making
decisions, and application of commands on appropriate actuators. Since this cycle
involves transmission of data among electro-mechanical components of the
robot, high quality communication is a fundamental requirement. Besides being
reliable, robust, extensible, and efficient, a high quality communication infrastructure
should satisfy all additional communication requirements that are specific to
the robot it is used within. To give an example, for a rapid moving autonomous
robot with a reactive controller which is intended to be used in time critical situations,
a real-time communication infrastructure which guarantees demanded
response times is required.
The Universal Robot Bus (URB) is a distributed communication framework
based on the widely used I2C standard, intended to be used specifically within
rapid autonomous robots. Real-time operation guarantees are provided by defining
upper bounds in response times. URB facilitates exchange of information
between a central controller and distributed sensory and actuator units. Adoption
of a centralized topology by connecting distributed units directly to a central
controller creates a bottleneck around the central unit, causing problems in scalability,
noise and cabling. In order to overcome this problem, URB is physically
realized such that gateways (bridges) are incorporated between the central and
distributed units which offload the work of the central unit and master the underlying
I2C bus. Connection between the central unit and the gateway, the uplink
channel, can be established using any high bandwidth communication alternative
which successfully satisfies communication requirements of the system.
The main contribution of this thesis is the design and implementation of the URB uplink channel using the well known Universal Serial Bus (USB) protocol.
Although true real-time operation is not feasible with USB due to its polling
mechanism, USB frame scheduling of 1ms is acceptable for our application domain.
In this thesis, hardware components used in the USB uplink implementation
as well as our software implementation are covered in detail. These details
include the firmware running on the gateway, a Linux based device driver and a
client control software that uses a USB library running on central controller, and
finally sub-protocols between the application-driver and driver-firmware layers.
The thesis also includes our experiments to estimate the performance of the USB
uplink in terms of its roundtrip latency, bandwidth, scalability, robustness, and
reliability. Finally, this thesis also serves as a reference on distributed systems,
device driver development, Linux kernel programming, communication protocols,
USB and its usage in real-time applications.