= Sensor Sharing Manager
SensorSharingManager (SSM) is a program that allows multiple processes to utilize sensor data obtained in a time series.
Multiple processes may access such sensor data as a ring buffer in shared memory gets constructed by SSM.
In addition, various sensor data can be correlated among each other by using frequently-updated data (e.g. odometry data) and timestamp information.
SSM herewith supports multi-sensor data processing upon non-real-time OS.
This page provides the overview of SSM and its utility program.
Pages for further reference
* [HowToUseSSM How to use SSM]
* [ProgrammingWighSSM Programming with SSM]
* [SoftwareModules Software Modules] (explanations about sensor drivers)
== Downloads
* [http://sourceforge.jp/projects/pc-ymbc/files/?release_id=31401#31401 SSM-0.31]
== Installation
SSM can simply be installed by downloading, unzipping, and “make”-ing the downloaded file by following steps.
{{{
tar xzvf <downloaded_file>
cd <unzipped_directory>
make clean
make
sudo make install
}}}
The commands above copies the binary files under SSM/bin, the library files under /usr/local/lib, and the header files under /usr/local/include.
== SSM Features
Features:
* Simple structure/interface
* Available in user-specified data size
* Maintains a certain size of data log
* High-speed access by utilizing shared memory, without having to wait for context switching
* n output for every sensor input
* Time-specified data access
* Almost data collision occurs unless ancient data is being accessed
Restrictions:
* Data size cannot be modified during the operation
* Limited data size due to the Linux shared memory constraints
* Data structure must be defined for both writing and reading the memory
* Minimum access rate must be defined
* Time-specified access may be slowed down with access rate irregularity
* Timestamp is fixed to double type
== SSM Structure
The program used in the SSM system is divided into the following three types:
* SSM: Simultaneously manages the sensors (e.g. registering and listing)
* Sensor Drivers: Reads and writes the data from each sensor to SSM
* User Programs: Reads and processes the data from SSM
[[Embed(ssm_system.png, caption=SSM system structure)]]
== Packaged Software Programs
* ssm: Launches the sensor management program
* lsssm: Lists all the sensors registered in SSM
* ssmlogger: Records the data for sensors currently registered in SSM as separate log files
* ssmmultiplayer: Simultaneously plays the recorded sensor data
* ssmtransport: Shares the sensor data in SSM with other PC