CubeSystem

Background

The development of the CubeSystem and its hardware backbone in form of the RoboCube started already in 1997, i.e., at a time where options like a Raspberry Pi or even just an Arduino simply did not exist. Robot control hardware was at that time based on proprietary electronics or on very individual solutions using any of the myriads of possible microcontrollers where everything had to be developed from scratch.

The main goal of the CubeSystem project was hence to provide an open source collection of generic building blocks that can be freely combined into an application. So, the CubeSystem is a collection of hardware- and software-components for fast robot prototyping with the RoboCube in its center. The RoboCube is based on an open-bus architecture where PCBs with different functionalities, e.g., I/O-interfaces, additional memory, or even a camera-interface, can be stacked on top of each other. This leads to a volume that roughly resembles a cube; hence the name. The core CPU is a Motorola MC68332, which features a Time Processing Unit (TPU), i.e., a co-processor that is particularly well suited for tasks like motor-control with the generation of Pulse-Width-Modulation (PWM) signals or Quadrature Decoding (QDec) of motor encoders without burdening the main CPU.

The CubeSystem evolved in more than five years of research and development. It started in 1997 as an EU TMR-project at the Artificial Intelligence Laboratory (AI-lab) of the Vrije Universiteit Brussel (VUB) with Andreas Birk as principal investigator, Thomas Walle working as postdoc on the hardware, and Holger Kenn as PhD student on the CubeOS. Work on it continued at Constructor University, then still known as International University Bremen (IUB), when Andreas Birk started there in 2001. The CubeSystem was used in a wide range of applications from educational activities to industrial projects; a short list with links is provided below.

Overview

The CubeSystem offers a component collection for fast prototyping of complete robots, i.e., the hardware and the software side, at least on the control level including basic functionalities for intelligent autonomous behaviors.

The most basic parts of the CubeSystem are

  • the RoboCube: a special embedded controller, or more precisely controller family, based on the MC68332 processor
  • the CubeOS: an operating system, or more precisely an OS family
  • the RobLib: a library with common functions for robotics

The general CubeOS and RobLib are collections of software components that can be customized and combined to a particular set of libraries suited for a particular application. Take for example a simple soccer robot based on the CubeSystem. The RobLib provides for example generic functions for controlling a two wheeled differential drive. To control the two motors of the concrete robot some customization is needed. This includes defining the mechanical parameters like the gear-ratio, the wheel diameter and so on, as well as the specification of the software drivers in CubeOS to service the pulse-width-modulation of the motor drivers and the quadrature decoding of the motor encoders.

The CubeSystem also allows quite some flexibility to adopt the hardware side to the actual application. The RoboCube or short Cube features some standard electronic components like the processor-, bus-, and I/O-board that are combined with a more application specific base-board. The boards are equipped with a special stacking connector that allows to put several boards on top of each other. The compact form factor of the boards and the stacking leads to a cubic shape of the controller, hence the name RoboCube. The organization of the Cube architecture can be thought of in a tree-like manner. At the root is the minimal Cube, namely a processor-board. It can be expanded by a bus-board. This new branch adds new functionalities like, e.g., UARTs and I2C controllers that allow to expand to further branches, for example in form of certain sensors.

So, a CubeSystem application is a concrete instance of a collection of components, for example in form of a mobile soccer robot. As a matter of convenience, we use the term CubeSystem for both the general collection of components as well as for a concrete application. The same holds for RoboCube, CubeOS, and RobLib, which are used to both refer to the general collection of components as well as to particular instances for concrete applications. This difference between the CubeSystem and a CubeSystem is important.

Applications Examples

The CubeSystem is used for example in the following robots:

References

[1] A. Birk, H. Kenn, and T. Walle, “On-board Control in the RoboCup Small Robots League,” Advanced Robotics Journal, vol. 14, pp. 27 – 36, 2000. https://doi.org/10.1163/156855300741410 [Preprint PDF]

[2] A. Birk and H. Kenn, “Efficient Scheduling of Behavior-Processes on Different Time-Scales,” in Proceedings of the International Conference on Robotics and Automation, ICRA’2001, IEEE Press, 2001. https://doi.org/10.1109/ROBOT.2001.932569 [Preprint PDF]

[3] A. Birk and H. Kenn, “An Industrial Application of Behavior-Oriented Robotics,” in Proceedings of the International Conference on Robotics and Automation (ICRA), 2001. https://doi.org/10.1109/ROBOT.2001.932640 [Preprint PDF]

[4] A. Birk, H. Kenn, M. Rooker, A. Akhil, B. H. Vlad, B. Nina, B.-S. Christoph, D. Vinod, E. Dumitru, H. Ioan, J. Aakash, J. Premvir, L. Benjamin, and L. Ge, “The {IUB} 2002 Rescue Robot Team,” in {RoboCup}-02: Robot Soccer World Cup VI, Springer, 2002.

[5] A. Birk, H. Kenn, and L. Steels, “Programming with Behavior Processes,” International Journal of Robotics and Autonomous Systems, vol. 39, pp. 115–127, 2002. https://doi.org/10.1016/S0921-8890(02)00198-7 [Preprint PDF]

[6] A. Birk, “Fast Robot Prototyping with the CubeSystem,” in International Conference on Robotics and Automation (ICRA), 2004. https://doi.org/10.1109/ROBOT.2004.1302539 [Preprint PDF]

[7] H. Kenn and A. Birk, “From Games to Applications: Component reuse in Rescue Robots,” in RoboCup 2004: Robot Soccer World Cup VIII. vol. 3276, Springer, 2005, p. p.669ff. https://doi.org/10.1007/978-3-540-32256-6_65 [Preprint PDF]

[8] D. Albu, A. Birk, Petar Dobrev, F. Gammoh, A. Giurgiu, S.-C. Mihut, B. Minzu, R. Pascanu, S. Schwertfeger, A. Stan, and S. Videv, “Fast Prototyping of an Autonomous Underwater Vehicle (AUV) with the CubeSystem,” in 6th International Symposium on Intelligent Autonomous Vehicles (IAV 2007), 2007, pp. 78-83. https://doi.org/10.3182/20070903-3-FR-2921.00016 [Preprint PDF]