Architecture - Phase 1

Architecture - Phase 1 #

Introduction and Goals #

The goal of the Phase 1 is to establish the backbone of the future architecture and the main principles of the project.

This documentation uses some parts of the https://arc42.org architecture documentation framework, but lacks some mandatory sections in sake of simplicity and development progress.

Architecture Constraints #

  • Architecture relies on usage of Robot Operating System (ROS). It is expected that ROS will provide access to a large and relevant library of software components during the next iterations and simple communications between nodes.

System Scope and Context #

Business Context #

The business context is represented by a use case diagram. Sensors are presented as actors.

usecase

Technical Context #

technical

Solution Strategy #

General Strategy. The architecture of the 1st Phase is built on tree main principles:

  • Reusability - usage of existing libraries, define reliable interfaces
  • Development Convenience - minimum mandatory tool for each component. All decisions are up to developer
  • Independency - each component is decoupled from all others and can use it’s own stack. The communication between components is made in the microservice manner and relies on minimalistic interfaces.

Use case leads to the following functional requirements:

RequirementImplementation StrategyMotivation
1. Process Audio InputUse a microphone through the OS driver with the positional
data to locate the sound source. The positional data should
accessible through an abstract interface.
The simplest approach. Positional abstract interface is needed to do
the development without having accelerometer connected to the
desktop PC. Also the devices are very different and we will use the
interface to unify the communication with any accelerometer.
2. Produce Audio OutputThe output device is a headphones controlled by a
cross-platform hi level library.
Enough as a PoC. Use existing hardware and libraries.
3. Process Video InputCamera is an input device. The signal is used for the pet
recognition. Heavy processing
can be done externally
The robot should not care powerful computation capacity at this
phase. The simpler to implement solution is the better
4. Move in SpaceUse the simplest movement system with an accelerometerThis combination should be enough to provide minimum awareness
about the positioning
5. Manual User ControlImplementation through ROSRequires minimum efforts as already implemented
in publicly available components
6. Turn On/OffWill be implemented as a physical switchA physical switch is the simplest and the most reliable solution
7. Making Autonomous DecisionAll the data (Audio, Video, Positional) is provided to
the ROS interface of the Business Logic component.
The logic is simple and mainly verifies interfaces.
The purpose of the Phase is to make everything work together.
There is no need in comp[lex decision algorithms right now.

Deployment View #

The technical context is represented by a UML deployment diagram.

deployment

Building Block View #