Software Development
Software engineering is a common thread that unifies many of the technologies developed at TA; from the development of stand-alone software tools, to embedded software delivered with an application-specific instrument, to graphical user interface (GUI) software used for monitoring and visualizing instrument performance, to robot control algorithms, to custom in-house analysis software. All software development at TA is overseen by Leonard White, and conforms to best-practice and “clean code” standards where applicable.
In the area of dedicated software deliverables, TA is especially expert at 3D representations and visualization software. As a veteran of two Hollywood visual effects studios, Leonard White brings unique insight into physics-based simulations and calculations requiring a self-consistent 3D representation, including physical mechanisms for particle generation, solid body dynamics, and collision calculation. In this area, TA is actively creating a real-time ocean wave visualizer for the US Navy (ONR Contract #N00014-07-M-0437). The overall goal of the continuing SBIR program is to produce a computer-based system for accurately simulating and visualizing near-shore waves for use by mission planners and as a training aid. As part of the ongoing program, the ability to produce photo-realistic animations and images of ocean waves has been demonstrated. In addition TA has developed a 3D visualizer accurately representing an aircraft carrier flight deck to support camera location and guidance programs for the Navy. TA is involved in real-time graphical simulation as well, including development within commercial physics “game” engines. TA has worked with several engines including the open-source Blender 3D engine, and the Unreal engine developed by Epic Games (The Unreal engine has been the target of military simulation integration efforts). These efforts include basic geometry and scenario manipulation (using the COTS editors available with these engines) as well as incorporating new capabilities into the engines using the supported scripting languages. Real-time systems make use of parallel processing on GPU’s, and TA is well versed in the use of OpenGL, CUDA and other GPU tools. Also in the area of stand-alone software tools, TA is in the process of developing advanced tools for optimal geometric packing calculations of aircraft in hanger bays for NAVAIR Lakehurst.
In addition to stand-alone software, TA uses embedded processors as part of a variety of technology platforms. The processing hardware involved ranges from full-scale laptop computers running Linux real-time operating systems, to small microprocessors with limited instruction sets. As an example, TA implemented a robotic system with 25 sonic ranging sensors for obstacle avoidance. These were grouped into five bundles each with a microprocessor to parse data and convert it to USB for acquisition by a quad-core “robot brain” laptop processor that fused the sonic data with laser, video, and encoder outputs. The software on the laptop processor was custom code using elements of OpenCV and Player/Stage to control path planning, problem solving, and navigation of the robot through complex environments.
In the area of GUI development, TA principals Christopher Templeman and Michael White have developed control screens for monitoring systems implemented on several aircraft carriers. The consideration of human factors for military use is critical as the training level of the average user is widely variable, and utilization of the tool while under extreme pressure must be considered. Here TA’s aircraft packing software is an excellent example of a software front-end that exists as a user interface layer above the geometric algorithms that allows Navy personnel to quickly harness complex computation processes to perform an otherwise manpower-intensive task quickly and intuitively. TA has experience programming control interfaces for mouse-driven, touch screen, and smart phone computing devices.