Shady: A Robotic Window Shade
We work in the new Stata Center building in a room with a large wall-window (about 4m tall and 8m wide) which currently has no shades to block sunlight. As many of our desks are directly next to this window we needed some means to block the light from hitting our computer screens. Instead of traditional shades which would block the whole window, detracting from the view, we have decided to build a robot which can climb on the window's aluminum muntins. It can thus be positioned on the window to be a localized sunshade and will be able to dynamically track the sun throughout the day.
We are developing a four degree of freedom robot to climb around on the lattice formed by the window muntins. The robot is symetric, with two barrels that have a rotational degree of freedom, and each barrel contains a one degree of freedom gripper which is able to grab onto a muntin. Below is an image of the prototype.
In addition to the four degrees of freedom used for motion, the robot will also be able to deploy a hand fan as seen above. This will allow the robot to move into the desired shading location with the minimum impact on the aesthetics of the window. When it reaches the desired location the shade can be deployed.
We are using a variety of hardware and electronics in the Shady prototype. Most of the hardware has been custom designed. We are using a Sharp Zaurus for high level control and interface the Zaurus with a stack of Acroname Brainstems for lower level sensing and motor control.
Planning and Control
Given a Shady robot and a system of muntins, we would like for Shady to position itself in an optimal spot for shading. This requires the traversal of the lattice formed by the muntins to goto and maintain the optimal location which will possibly be changing as the outside lightning conditions change. We developed a planning and control system that synthesizes the primitive Shady steps needed to move from region A to region B on muntins. We have implemented this in the Shady Simulator. This allows us to test the algorithms we develop in simulation before using them on the actual hardware. The simulator and hardware platform share a large portion of the code base, allowing easy porting of algorithms.
One such algorithm we have developed is a Path Planner that finds the shortest path from its current location to a desired goal point. Below is a screen shot of the path finder.
The user interacts with the planner by specifying a desired target point. This is done in the simulator by clicking the mouse somewhere in the environment. The path finder employs a breadth-first search to generate a graph representation of the possible Shady gripper points in the environment. It then uses Dijkstra's to find the shortest path given the selection of points. It is interesting to note that it is possible that the path that gets Shady closest to the desired point will not always be the shortest distance path due to the kinematic structure of Shady. Furthermore, in environments with muntins only intersecting at right angles, there are only a finite number of points at which the barrel of a Shady can be attached.
We are also exploring ways in which Shadys can cooperate to improve shading. If there are multiple locations that need to be shaded a group of Shadys must decide which Shady should be assigned to which Shady location. This planning process must take into consideration the fact that paths my be blocked by other Shadys that are moving to a different shading location or others that are actively shading. Additionally, there may be some situations where multiple Shadys may be needed to shade a single location. In this case care must be taken to avoid collisions.
We are interested in self-assembly for truss structures, which has led us to investigate a new kind of self-reconfiguring robot system that is a generalization of our Shady window climbing robot described above. MultiShady extends the Shady system to support an arbitrary number of cooperating Shady robots plus a set of passive bars (free "muntins" in the Shady model). The latter are simply unactuated rigid segments which are free to move under the power of one or more Shadys. Thus, MultiShady is a heterogeneous self-reconfigurable modular robot with two types of module (i.e. it is bipartite).
Some other recently-proposed heterogeneous self-reconfiguring robots are also bipartite. The Molecule  has male and female modules. SOLAR  is a modular system composed of passive struts, which can be configured into 2D trusses by robots operating on an air hockey table. Self-assembling and self-reconfiguring truss systems can be a promising direction for robotic assembly of large structures in space (see, for example  for an overview of automatic structural assembly for NASA).
We have begun development of a simulator for the MultiShady system, called MultiShadySim. Several stills from this simulator are shown below. Passive bars shown in gold, and the long horizontal bar is considered fixed in a world frame. Shadys (blue) have two distal rotating grippers that grab bars. The MultiShady system is a fully capable 2D self-reconfigurable robot: it can change topology (and hence, aggregate shape) without manual intervention, as this tower self-assembly sequence shows.
While the MultiShady concept does not require any change to Shady's kinematic structure, it is unlikely that our current prototype single-Shady hardware (under development) will have the power to perform interesting MultiShady activity. In the future we may develop new hardware with such capability.
MultiShady is not the only possible formulation for multiple interacting Shady-like robots. Notably, though, this model does not require any modifications to the original Shady kinematic structure, at least for a planar implementation in which the segments and the links exist in (fixed) parallel planes.
We would also like to extend the Shady system to a full three-dimensional unit modular self-reconfigurable robot. This would allow Shady modules to move in 3D space and to make 3D truss structures.
While we were able to generalize the Shady robot into MultiShady (2D) without changing its kinematic topology, it seems unavoidable that in order to realize MultiShady3D, we will need to add degrees of freedom (DOF). To make design and control of the modules simple, it is preferable to keep the total number of DOF of each module as low as possible. Connected sets of several modules can be employed where more DOF are needed.
We are considering adding a single additional revolute DOF to Shady, a central twist capability as illustrated below, to achieve full 3D operation. An individual module will thus have three motive DOF: the twist and the gripper rotations. If we connect 2 modules hand-to-hand, the motive DOF of the pair increases to 5 (below left). And if we use a passive bar in addition to Shady robot modules, 6 motive DOF can be achieved, allowing arbitrary position and orientation in 3D space (below right).
NSF and Intel.
 Keith Kotay, Daniela Rus, Marsette Vona, and Craig McGray. The Self-reconfiguring Robotic Molecule. In Proceedings of IEEE International Conference on Robotics and Automation, 1998.
 Jacob Everist, Kasra Mogharei, Harshit Suri, Nadeesha Ranasinghe, Berok Khoshnevis, Peter Will, and Wei-Min Shen. A System for In-Space Assembly. In Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems, 2004.
 William Doggert. Robotic Assembly of Truss Structures for Space Systems and Future Research Plans. In Proceedings of the IEEE Aerospace Conference, 2002.