SENSUS SDK
website·Indexed 32 days ago
https://docs.calyo.comCalyo's software development kit for working with PULSE sensors. SENSUS enables the acquisition of live or recorded data, provides imaging algorithms, and supports integrations with ROS 2 and Foxglove. The ecosystem includes the sensus-sdk with a Python wrapper and a versioned configuration schema for pipeline setup.
What's inside SENSUS
- SENSUS is a software development kit (SDK) designed for working with PULSE sensors. It enables developers to acquire live or recorded acoustic data, execute configurable signal-processing and imaging pipelines, and export results to various destinations including files, application buffers, ROS 2, or Foxglove. It provides a Python API for direct application integration and supports the creation of robotics perception pipelines and real-time monitoring tools.
Overview of Calyo PULSE and SENSUS SDK
Calyo provides a software and hardware perception stack consisting of PULSE sensors and the SENSUS SDK. SENSUS is a collection of libraries, tools, and examples designed to reduce friction during the integration of PULSE sensors into applications.Integrate Calyo PULSE with third-party environments
The SENSUS SDK uses a Docker-based architecture to support various open development environments. Available integrations include:
- ROS2: Access PULSE data via ROS topics and services.
- Docker: Run the SENSUS SDK within a container.
- Foxglove: Access SENSUS SDK features within the Foxglove visualization tool.
- C++: Integrate the SENSUS SDK directly into C++ codebases.
- Python: Use Python wrappers to integrate the SENSUS SDK.
- Matlab: Utilize the SENSUS SDK within the Matlab environment.
Use the Calyo Signals Plot Panel
The Calyo Signals Plot Panel allows users to view raw signal data. This feature was introduced in version v0.0.5.SENSUS SDK Pipeline Configuration Overview
SENSUS configurations are versioned YAML or JSON documents. Every configuration must declare the schema version matching the SENSUS release. A pipeline consists of three primary components: a
Reader, aProcessorPipeline(which contains multiple stages and units), and aWriter.Components are defined in two ways:
- Compact Form: Used for built-in plugins; arguments are placed alongside the
type. - Structured Form: Required for all non-built-in plugins (e.g.,
calyo_ros) and optional for built-in ones. It usesplugin,type, and a nestedconfigobject.
- Compact Form: Used for built-in plugins; arguments are placed alongside the
Understand the SENSUS modular pipeline architecture
SENSUS operates on a modular pipeline architecture consisting of four primary components:
- Reader: Defines the data source (live device, recorded dataset, or another pipeline).
- Processor: Executes processing stages (filtering, imaging, point-cloud generation, clustering).
- Writer: Directs the result to a destination (file, buffer, ROS 2, Foxglove).
- Configuration: A versioned YAML or JSON file that describes the pipeline and runtime parameters, allowing changes without modifying application code.
Pipelines can be chained using a
FrameBufferReader, enabling a single acquisition pipeline to feed multiple processing or output pipelines.Use SensusMT for asynchronous SENSUS SDK integration
TheSensusMTclass provides a non-blocking, multi-threaded interface to thesensus-sdk. It allows the SDK to run in a separate thread, enabling streaming data acquisition where frames are queued internally. This is ideal for applications requiring concurrent processing, continuous data capture, or GUI integration. To retrieve data, useget_next()to check for availability andflush()to retrieve the latest packets.Calyo PULSE CP-STK Starter Kit contents
The Calyo PULSE CP-STK is an evaluation kit for 3-D ultrasound sensing hardware. It includes the following components:
- Calyo PULSE CP-STK 3-D ultrasound sensor
- USB-C to USB-C cable
- Quick Start Guide
Acquire and capture data with SENSUS
SENSUS provides capabilities to interface with one or more PULSE sensors via USB-C to acquire raw, timestamped acoustic data. Additionally, it supports playing back recorded datasets and generating simulated sensor data based on supported scene and acoustic-surface inputs.Safe operation of the Pulse Starter Kit (CP-STK) sensor
The Pulse Starter Kit sensor uses ultrasonic waves. To ensure safe operation, maintain a distance of approximately 30 cm between your head and the sensor. Do not target the sensor directly at your ears or eyes, and do not place the device facedown on a surface while it is powered on.Retrieve the Calyo PULSE sensor serial number
With the PULSE device plugged in, you can retrieve the sensor's serial number by querying the USB device list for the specific vendor and product IDs (0403:6014).lsusb -v -d 0403:6014 2>/dev/null | grep iSerial | awk '{ print "Calyo PULSE S/N: "$3 }' # Example Output -> Calyo PULSE S/N: CP66156A50003Export images using PNGWriter
ThePNGWriterfeature allows for the direct exporting of PNG images from SENSUS software, facilitating post-processing for downstream systems and Machine Learning workflows.