A new year is upon us, and with it comes a groundbreaking change for The Zebracorns. Known for furthering the frontier of what is possible in the programming of FRC robots by, among other things, making use of ROS, The Zebracorns are once again announcing a new step forward in programming. This monumental change to the code base is representative of a metamorphosis in our understanding of the important aspects of robot code. When ROS was first adopted by The Zebracorns three and a bit years ago, it heralded the coming of a new era in robot technology - one of multitudes of sensors detecting and processing concurrently every aspect of the robot’s surroundings. Teams of processors would churn through the data, arriving at an action for the robot tailored exactly to the task at hand and the environs of the field. It was this shiny object of outside data that lead us down a path toward cutting-edge sensor technology backed by an industry standard software framework.
The number of processors on the robot is being reduced to one, which The Zebracorns have determined is the ideal number of processing units on a robot. Experimental data has shown that robots function very poorly with zero processors on board. Certain obstacles did prevent the testing of negative quantities of processors, though The Zebracorns are all but certain that a singular processor is superior to these smaller quantities. What is less trivial is the inferiority of multiple processors, as have been employed in seasons past. To better understand this conclusion, consider a soup making committee. The committee, consisting of dissimilar members appointed by various individuals is tasked with selecting the ingredients for a soup. One member, thinking of a hearty Russian borscht suggests beets, while another, coming from a lunch of ramen, puts forth noodles. Still another asserts that the soup must incorporate chicken. The only preparation method around which any consensus can be built is the pureeing typical of a split-pea soup. What results is a pulverized purple mess of pasta and poultry. Just as a singular person can follow a complete vision to produce a delicious fluidic feast, so too can a single processor better organize its thoughts rather than having to jockey for control amidst the hassle of dealing with external pieces of silicon.
The question that naturally arises, then, is that of how best to optimize and clarify the thoughts of this singular processor. For this, The Zebracorns have turned for inspiration to the transcendentalists of the mid 19th century. Henry David Thoreau, while writing his now famous Walden, lived in a cabin which he had constructed by the lake, removed from the complexities of society, where he could be more in tune with himself. Just as the bustling civilization of emerging technological advancements of the late industrial revolution presented a source of distraction, a vast array of sensor inputs causes a robot to lose touch with its true purpose. By removing sensors, the robot, as well as its programmers, need not be preoccupied with the surrounding environment, and can instead turn their attention to the robot’s own inner processes.
The release of this code represents a shift in paradigm from a complex do-everything mentality to a more simple, elegant philosophy. Rather than the Jackson Pollock splatter-painting of ROS nodes controlling motors via the fickle and unreliable mess that is CAN bus, we instead move toward a vision of software inspired by the elegant minimalism of Yves Klein and others. As is customary for The Zebracorns, we encourage others to follow suit and consider for themselves the potential virtues of such a model. In The American Scholar, Ralph Waldo Emerson lamented a deficit in original thought, and warned of the dangers of simply adopting another’s ideas as one’s own. In a similar vein, we have restructured our release process to encourage others to learn and draw inspiration from our codebase whilst not being tempted to simply copy. It is not lost upon us that this year’s code marks a radical departure from recent years, and in fact bears more resemblance to the software of a decade and a half ago, a more harmonious and simpler time. Hindsight is 20/20, however, and it is now that the virtues of this era’s code, once hidden from us behind the blinding glare of the shiny object of ROS, have now made themselves apparent.
https://github.com/FRC900/2004Season/
https://github.com/FRC900/2005Season/