Intelligent Systems Lab Project: FLOOR
Participants
- Julian Daberkow
- Markus Gaffke
- Tobias Laufkoetter
- Timo Michalski
- Hendrik Oestreich
Supervisors
- Marian Pohling
- Eckard Riedenklau
Motivation
- In the "Cognitive Service Robotics Apartment" (CSRA) many sensors have been installed, to research the living of tomorrow in an intelligent apartment which supports its residents in their everyday life.
- To detect persons easily, a capacitive floor (SensFloor®) was installed in the apartment.
- Combined with the other actuators and sensors in the apartment the SensFloor® creates added value because it simplifies person detection and tracking (with much lower computational load than other systems).
- In this project we also want to explore new usage scenarios for the SensFloor®.
Application Szenario
The SensFloor® helps to track people inside the apartment, to know where they are and possibly adjust the activity of other sensors. Multiple modules can be combined and allow to track the staying frequency in specific areas. All incoming sensor data should be filterable by only passing a room id or name to the program. Other scenarios which could be established with the floor are for example: Security (Intrusion detection), Safety (Detect unconscious people), Input device (Use gestures or as a playing field). Depending on the scenario, the capacitive floor can be an ambient sensor which does not require a specific user attention or it could be used consciously as an input device. An important aspect is the seamless integration into the apartment environment to enable interaction with other sensors and actuators.Objectives
The project goals are to develop- a Robotics Systems Type (RST) which defines the encapsulation of the data transmitted over the bus
- a central interface which handles the data from the wireless receiver and publishes it via RSB. (FLOOR-BASE)
- a user interface which shows the current activation of the individual modules (FLOOR-VIEW)
- a simulation component to be able to generate various scenarios and to record and replay the activation of the modules (FLOOR-SIM)
- a couple of example applications (FLOOR-APPS)
- Keyboard Emulator
- Maze Game
- Dance Game
Description
Setup
In our project setup we worked with different patches which had a size of 2x4 modules. Each module consists of 8 segments which measure an individual capacity value. In the middle of each module a wireless transmitter is embedded which sends the measurement to a wireless receiver. The receiver is connected to a PC via USB and is able to connect several modules.
Architecture
The figure shows the external components, the developed software components and the communication channels between them. One of the requirements was to support a 24/7 service and plug-and-play of the individual components. Therefore we have chosen RSB as the communication bus. This also supported the integration in the CSRA.
Components
The FLOOR-BASE is the interface between the wireless receiver (FLOOR-Gateway) and the RSB. It parses the incoming serial data, encapsulates it in our RST packet and publishes it on the bus.The FLOOR-VIEW displays the current activation of the SensFloor® modules. The component listens to the bus and visualizes the different capacity values with fluent colour intensities. The view is built up dynamically, so the positions of the modules are perceived automatically without any user effort. Once all modules were recognized you can save the module-setup as a schematic for later use. To include the functionalities in other components, they were separated as a dynamic library (FLOOR-LIB).
The FLOOR-SIM offers the ability to simulate incoming Floor-RSB-Messages, without the necessity of actual hardware modules. The area of modules the user wants to simulate, can be modified on-the-fly or saved and loaded via the same schematics, used in the FLOOR-VIEW. In the actual simulation the modules can activated or deactivated by simple mouse clicks, which results in outgoing RSB-Messages, containing updated capacity information.
The keyboard-emulator was developed to translate user actions on the SensFloor® into key-events to be used for various purposes, for example as a game input device. By including the FLOOR-LIB into the emulator schematics can be loaded and the capacity of the modules can be visualized. Users can select several segments and assign them to a specific key-event. This key-event is emitted if activation of the selected segement(s) is measured. A list of key-assignments can be saved and loaded.
The maze-app was developed to test the SensFloor® and evaluate how accurately one could move around on it. Therefore, when the user starts a game with the maze-app, it shows the user a path from one side of the SensFloor® to the other for 5 seconds. After that, the path disappears and the user has to walk this on path and is not allowed to step somewhere aside. As long the the user stays on the path, the segments turn green, otherwise red.
The dance-floor app is a gaming app for entertainment purposes. Hereby the FLOOR is used as an input device where the user has to tap on the right modules as the game demands it. It's purpose was mainly to explore the RSB Java implementation and the cross platform/environment abilities of the RSB.
Results of the First and Second Term (Winter Term 2014/15 and Summer Term 2015)
Overall the project was very successful. The planning phase in the beginning helped to establish a clear software architecture. The components could be developed independently in small teams. The following overview shows a short summary of the results:- All planned components were successfully implemented and tested.
- A central library was developed to include certain functionalities in the different components.
- The integration into the sports-room of the CSRA was successful and a few demos were already given.
- Further integration of the floor system into the CSRA was successful.
- The system can run as a 24/7 service in the CSRA.
- Different patches for different rooms are supported.
- GUI has been updated and supports multiroom via tabs.
- The DeviceManager can be used to configure the compontents at the start of the system.
- The DeviceManager provides information about which patches are installed and which USB-reciever is working.
The video shows the setup, the different software components that were developed and a few demo scenarios.
Discussion and Conclusion
- The incremental development of the components allowed synchronous implementation of the functionalities.
- Many components rely on the FLOOR-LIB, this component needed more attention as expected, but it helps maintaining the source code in the future.
- Starting with one module (8 Segments) we managed to handle 16 modules in the final presentation. The software scales nicely and shows no performance losses.
- The project was very versatile and we learned a lot about serial communication, the use of RSB for process communication and gui programming with C++.
Performance measurements
Setup
- Camera with 60 fps was used for recording.
- ~20 manual activations of the floor were used for evaluation.
- Frames were counted between touch and the reaction of the system.
Evaluation
Many possible reasons for a delay
- Reaction time of the sensor itself
- Wireless transmission
- Processing of serial data
- Inter-process communication
- Drawing in the graphical user interface
Outlook
There are several subjects one could approve, for example:- Save energy by triggering other components
- Increase person detection accuracy
- Support for fitness applications in the sports room
- Allow gestures for opening cupboard doors in the kitchen
- combine the components with other sensors and actuators in the apartment
References:
SensFloor® is a product from FutureShape.Audiosurf 2 was developed by Audiosurf, LLC, Based in Seattle, WA.