Hardware-Software Connection
From CajunBot Wiki
CajunBot's software design decouples the hardware-software connection so that various types of hardware devices can be dealt with in terms of a common interface. Very commonly systems are very tightly coupled to the specific hardware device(s) that they operate. The need to be able to have multiple kinds of sensors all providing the same kind of data at the base level was an important concern in the design of CajunBot, and because of this we deal with data abstractly without caring about the nuances of a particular device.
[edit] Scalability
As a project starts out, it may be that hardware devices and computing power is limited, often to a single machine. Being able to accommodate more sensors and more computing power in the future is one of the characteristics that the CajunBot software system provides.
The CajunBot software has the capability to run on a single compute node, or across several different computers. The process of reconfiguring the software is not automatic, but it is relatively straightforward and simple, provided the new machines already contain the required third party software libraries needed.
To minimize delay between communication of various processes, a high speed network switch should be used when scaling the software to run on multiple machines.
[edit] Remote Visualization
The approach that CajunBot has taken to storing log data has enabled a variety of configurations for connecting to the data being processed by the bot in real time. One of these configurations is that of remote visualization. By taking a subset of the data being logged to the disk, the logging program can broadcast the data to a specific address where the visualization system can be used to "see" what the bot is currently "seeing".
This is very useful in field tested where the testers may be riding inside of or external to the bot, and need to know precisely what decisions the software is making.

