Wednesday, March 26, 2008




CoroBots are broadly capable and expandible four-wheeled mobile robot platforms designed to minimize the cost and complexity of robotics research and development. When Robot learned that CoroBots and Microsoft Robotics Studio were in active use at Vassar College, we made a beeline for Ken Livingston, Professor of Psychology and Cognitive Sciences, to give us an insight into what he and his students are up to. We then interviewed CoroWare to learn more about their history and mission in educational and mobile robotics.
—Tom Atwood, Editor-in-Chief, Robot Magazine


The Interdisciplinary Robotics Research Laboratory was funded by a grant from the National Science Foundation, with matching funds from Vassar College, to provide a space in which faculty and students from many different departments might pursue research in robotics. Lead faculty on the grant were from departments of Biology (Jon Long), Computer Science (Tom Ellman, Luke Hunsberger, Brad Richards), and Psychology (Ken Livingston), and all had worked together previously in Vassar's Cognitive Science Program. There are more than a dozen different robots in the lab, but CoroWare has provided our core suite of machines. The platforms are very flexible, with easy access to components and the ability to add large numbers of sensors in many different configurations. We've used everything from simple tactile sensors to fairly high resolution cameras. This allows us to use the robots in many different research projects.

In addition, CoroWare has designed a software interface that makes communication with the robots very easy to manage, whether they are being teleoperated or are running autonomously. We became very early adopters of Microsoft Robotics Studio as our primary software platform because it allows us to integrate code written for specific purposes in different languages. For example, our vision code is primarily written in C, but other functions are handled in C++ or C#. MSRS does the work of making these different chunks of code talk to each other seamlessly. CoroWare has integrated a very power efficient electronics package (built around Via boards and chips) with plenty of computing power, so we can easily take advantage of MSRS even when running computationally complex algorithms.
The fact that the same robots can be used in teleoperated or in autonomous mode with no major hardware changes has been a real boon for us. We can run our experiments on how variation in sensor input affects controllability in a teleoperation task one day and the next day use the same robot in our experiments that explore autonomous category learning. The fact that we can compare data from human teleoperators with data from autonomous robots turns out to be a real plus. For example, our experiments are already yielding some interesting and counter-intuitive results, including the finding that sometimes perceiving the world with less detail and precision makes effective learning much easier, not harder.

In other work, Luke Hunsberger is using our six CoroBots in his research on multiagent intentionality. Luke is interested in how agents operating autonomously nevertheless manage to communicate their unique perspectives on a problem well enough to allow them to cooperate in finding a solution. Humans do this all the time. You and I can figure out without a lot of conversation how to cooperate to pick up a big object and move it across a room. This seems simple, but I have to understand a lot about your capabilities and knowledge of the world (and vice versa) for that to work. Luke wants to know how we can give robots that same capability, and having six of them makes it possible to explore very complicated problems in cooperation. One of the nice things about the CoroBots is their accessibility. We have been able to bring many students into the lab to work on our research, from the teleop to autonomous learning projects, and several of them (including all of the students in the photos) either are or are about to be co-authors on papers coming out of the lab. Several are planning to go on to careers in robotics, and we're confident they'll be working from a solid foundation thanks to the work they've been able to do in the lab with our robots.



A programmable logic controller (PLC), or programmable controller is a digital computer used for automation of industrial processes. Unlike general-purpose computers, the PLC is designed for multiple inputs and output arrangements, extended temperature ranges, immunity to electrical noise, and resistance to vibration and impact. Programs to control machine operation are typically stored in battery-backed or non-volatile memory. A PLC is an example of a rea time system since output results must be produced in response to input conditions within a bounded time, otherwise unintended operation will result. The main difference from other computers is that PLCs are armored for severe condition (dust, moisture, heat, cold, etc) and have the facility for extensive input/output (I/O) arrangements. These connect the PLC to sensors and actuators. PLCs read limit switches, analog process variables (such as temperature and pressure), and the positions of complex positioning systems. Some even use machine vision. On the actuator side, PLCs operate electric motors, pneumatic or hydraulic cylinders, magnetic relays or solenoids, or analog outputs.

The input/output arrangements may be built into a simple PLC, or the PLC may have external I/O modules attached to a computer network that plugs into the PLC. The functionality of the PLC has evolved over the years to include sequential relay control, motion control, process control, distributed control systems and networking. The data handling, storage, processing power and communication capabilities of some modern PLCs are approximately equivalent to desktop computers. PLC-like programming combined with remote I/O hardware, allow a general-purpose desktop computer to overlap some PLCs in certain applications.The functionality of the PLC has evolved over the years to include sequential relay control, motion control, process control, distributed control systems and networking. The data handling, storage, processing power and communication capabilities of some modern PLCs are approximately equivalent to desktop computers. PLC-like programming combined with remote I/O hardware, allow a general-purpose desktop computer to overlap some PLCs in certain applications.


Early PLCs, up to the mid-1980s, were programmed using proprietary programming panels or special-purpose programming terminals, which often had dedicated function keys representing the various logical elements of PLC programs. Programs were stored on cassette tape cartridges. Facilities for printing and documentation were very minimal due to lack of memory capacity. More recently, PLC programs are typically written in a special application on a personal computer, then downloaded by a direct-connection cable or over a network to the PLC. The very oldest PLCs used non-volatile magnetic core memory but now the program is stored in the PLC either in battery-backed-up RAM or some other non-volatile flash memory.
Early PLCs were designed to replace relay logic systems. These PLCs were programmed in "ladder logic", which strongly resembles a schematic diagram of relay logic. Modern PLCs can be programmed in a variety of ways, from ladder logic to more traditional programming languages such as BASIC and C. Another method is State Logic, a Very High Level Programming Language designed to program PLCs based on State Transition Diagrams.

A microcontroller (also MCU or µC) is a computer-on-a-chip. It is a type of microprocessor emphasizing high integration, low power consumption, self-sufficiency and cost-effectiveness, in contrast to a general-purpose microprocessor (the kind used in a PC). In addition to the usual arithmetic and logic elements of a general purpose microprocessor, the microcontroller typically integrates additional elements such as read-write memory for data storage, read-only memory, such as flash for code storage, EEPROM for permanent data storage, peripheral devices, and input/output interfaces. At clock speeds of as little as a few MHz or even lower, microcontrollers often operate at very low speed compared to modern day microprocessors, but this is adequate for typical applications. They consume relatively little power (milliwatts), and will generally have the ability to sleep while waiting for an interesting peripheral event such as a button press to wake them up again to do something. Power consumption while sleeping may be just nanowatts, making them ideal for low power and long lasting battery applications.
Microcontrollers are frequently used in automatically controlled products and devices, such as automobile engine control systems, remote controls, office machines, appliances, power tools, and toys. By reducing the size, cost, and power consumption compared to a design using a separate microprocessor, memory, and input/output devices, microcontrollers make it economical to electronically control many more processes.

 

blogger templates | Make Money Online