SHM is short for "Shared-memory based Handy-communication Manager". This provides ROS(Robot Operating System)-like interprocess communication such as Topic, Service and Action with shared memory. This is based on the library developed by Dr. Prof. Koichi Ozaki for his laboratory.
This is Publisher/Subscriber model communication demo. Left terminal publish class user made. Right terminal subscribe class.
- High-speed interprocess communication (expectation)
- If the class you made is fixed size, the class can be used with nothing.
- Access restrictions can be set up with POSIX shared memory permission.
-
POSIX shared memory system
SHM use POSIX shared memory system. The system is included in Linux such as Ubuntu.
-
Python3 (optional)
SHM support the usecase with Python.
-
Boost.Python (optional)
This library is required for support the usecase with Python.
This use CMake to build. Below is how to introduce and build SHM.
-
clone or add for submodule this repository.
$ cd <Your_cmake_ws>/src $ git clone https://github.com/ir-utsunomiya/shared-memory-based-handy-communication-manager.git or $ git submodule add https://github.com/ir-utsunomiya/shared-memory-based-handy-communication-manager.git $ gedit CMakeLists.txt add "add_subdirectory(shared-memory-based-handy-communication-manager)"
-
build programs.
$ cd <Your_cmake_ws>/build $ cmake .. $ make
TODO: We will add manuals and tutorials to Github Pages
SHM is under Apache 2.0 License.