An USB-based real-time communication infrastructure for robotic platforms
Item Usage Stats
MetadataShow full item record
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.