If you asked for a single metric that demonstrated the relatively immature state of robotics development, you could do no worse than the use of middleware. Middleware is software that provides abstracted translation, integration, interoperability, and brokering services between applications, operating systems, and database management systems in distributed computing environments. Middleware solutions for robotics development primarily support hardware integration and device control.
Middleware is widely employed, and with a great deal of success, for the development and execution of information technology (IT) systems. In fact, within IT middleware is standard technology in much the same way as are databases. No so within the robotics community. When Robotics Trends surveyed more than 200 individuals whose companies were actively developing robotics technologies and applications, it was found that no single middleware type was used by more than about 12 percent of the survey respondents. It gets worse. Only 24 percent of respondents indicated they use any type of middleware at all, and this figure is expected to rise.
Much has been said of the propensity to reinvent the wheel during the development of robotics systems. The good news is that it appears that technology consolidation, standardization, and reuse is beginning to take hold. De facto standards for development tools, platforms, and frameworks are evolving. In the robotics middleware space, the closest “standard” solution is Player.
The primary function of robotics middleware is to free the developer from low-level programming to integrate each software, hardware, and communications module that makes up a given robotic system. Player, TCP/IP-based middleware for robot device control, offers drivers for many different types of hardware such as sensors and actuators, as well as different classes of software. Basically, Player provides developers an abstraction layer for writing robot control software.
Player employs a client-server model for robot control. The Player server can execute on any computer (running on a number of operating systems) with connectivity to the target robotic systems, and can support multiple connections to devices. Robot control programs utilizing Player communicate via sockets, and therefore can be written in any programming language.
Player is open source GNU General Public License software distributed through the Player Project. The Player code, which has been developed by roboticists within the Player Project community for approximately 10 years, is free to be used, modified, and distributed. Player is often employed in conjunction with two other Player Project open source software packages: Stage and Gazebo, two- and three-dimensional robot simulators, respectively.
Currently, more than 100 universities and research organizations are using Player. Commercial companies are also using Player in their products. Willow Garage, for example, uses Player code in its PR2 mobile manipulation robots. CoroWare Technologies promotes the use of Player to control its CoroBot and Explorer platforms. In fact, if you want to learn how robot control is accomplished using Player, I would suggest attending the “Playing With Player” session at Robotics Trends’ Robotics Summit Virtual Conference and Exposition on June 16, 2010 (Actually, I invite you to all of the Robotics Summit keynotes and sessions). Kevin Sikorski, Robotics Architect at CoroWare Technologies, will be delivering the session beginning at 3:00 PM EDT. Robotics Summit is a virtual event, so you can attend the session from your office or home, but the best part is that registration is free.Read More