Wednesday, March 26, 2008
—Tom Atwood, Editor-in-Chief, Robot Magazine
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.

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.

