openFrameworks Hokuyo 2D LiDAR blob detection for macOS and Windows
This project implements the Hokuyo UST-LX LiDAR protocol and clusters data to be used as blob detection for creative applications.
You can download a built binary from the releases sidebar or you can compile the software using the openFrameworks architecture.
If compiling from source code, I recommend using the projectGenerator software to import the project into your IDE of choice.
This project was developed with openFrameowrks v0.12.0, it uses the following openFrameworks addons; all included in the main package. Be sure to add them using the projectGenerator application.
- ofxGui
- ofxOsc
Additionally, this project uses the ofxDropdown addon and must be included in your addons folder if you're buliding this project from source.
This project also uses a modified version of ofxNetwork that is extended to control which ethernet adapter Meatbags uses to create its TCP connections. This modified version is included in the source code.
After opening and closing the application Meatbags will create a batch of JSON files that are automatically loaded on startup with the option to auto-save on exit. These hold the configuration state of the application and allow easy startup for art install scenarios.
Meatbags is meant to be used as companion software to creative coding applications. After a configuration is set it is recommended to toggle headless mode and run Meatbags as a background application. It can be set to send OSC out, the OSC schema is provided below:
/blob index x y width height laserIntensity filterIndex1 filterIndex2 ...
/blobs index1 x y index2 x y ...
/blobsActive index1 index2 ...
/filter index isInhabited blobDistanceToCentroid
/filterBlobs filterIndex blobIndex1 x1 y1 blobIndex2 x2 y2 ...
/generalStatus sensorIndex status
/laserStatus sensorIndex status
/connectionStatus sensorIndex status
Created by artists for artists. This software is provided free for artists to use in their art installs and free for educational purposes. The license is provided on my here. For commercial purposes email me at [email protected].
This project uses the DBSCAN algorithm for clustering the LiDAR measurements received from Hokuyo sensor. A performant C++ implementaion of DBSCAN by Eleobert is used to cluster the streaming LiDAR data.
A C++11 implementation of C++20's std::span is by tcbrindle also used to enable Eleobert's dbscan implementation.
- Hokuyo UST-10LX
- Hokuyo UST-20LX
- macOS Sequoia 15.4.1
- Windows 10 Home
- figure out polling for interfaces
- add rectangle behind blob info
- add circle shape to filter options