Atracsys Camera Operators#
Authors: Wayland Technologies Inc. (Wayland Technologies Inc.)
Supported platforms: x86_64, aarch64
Language: C++
Last modified: August 11, 2026
Latest version: 0.1.0
Minimum Holoscan SDK version: 4.0.0
Tested Holoscan SDK versions: 4.0.0
Contribution metric: Level 4 - Experimental
This package contains the optional live-camera path for the Atracsys visualizer. It is not required for the default replay build.
Architecture#
graph LR
HW[Physical Camera] --> Master(AtracsysMasterSourceOp)
Master -- Disparity --> Filter[PointCloudFilterOp]
Filter -- 3D Points --> Out((Output))
Master -- Tracking/Video --> Out
The package provides:
AtracsysMasterSourceOpfor visible, infrared, marker-pose, and disparity outputPointCloudFilterOpfor converting disparity plus Q-matrix data into structured-light points asynchronously via the GPU.
Proprietary SDK Dependency#
SDK status and usage notice: This integration uses engineering AArch64 versions of the spryTrack SDK and S3DK for evaluation and development purposes only. The proprietary SDK/S3DK libraries and headers are not included in HoloHub. When approved for this specific integration, the required components must be supplied separately by Wayland. Any extraction, reuse, redistribution, or separate use of those components outside this specific integration requires prior written approval. These engineering components are not certified or officially supported Atracsys releases. For a full-featured or production-ready integration, please contact the Wayland team.
The live camera operator requires these separately supplied proprietary components. Access is reviewed case by case and is subject to prior written approval. Contact contact@wayland.io to discuss access for this specific integration.
For an approved integration package:
- Install the Atracsys SDK so that its CMake package is discoverable (e.g., at
/opt/atracsys-4.9.0). - Install the S3DK such that it is discoverable through
S3DK_ROOT(e.g., at/opt/s3dk).
Build requirements:
- Atracsys SDK with CMake package discovery
- S3DK installation discoverable through
S3DK_ROOT - OpenCV with CUDA support plus the stereo-processing modules used by S3DK
- TBB and OpenMP support available to the OpenCV/S3DK stack
Runtime requirements:
- supported Atracsys hardware
- installed vendor SDKs
- any required USB/container privileges for device access
This operator package is intended to be enabled explicitly as an optional dependency for
atracsys_visualizer live-camera mode.
API Reference#
C++#
AtracsysDevice#
Methods#
| Method | Description |
|---|---|
AtracsysDevice & instance() |
|
void init() |
|
void shutdown() |
|
ftkLibrary lib() const |
|
uint64_t serial() const |
|
ftkBuffer & buffer() |
|
const std::map<std::string, uint32_t> & options() const |
atracsys::IS3DKInterface#
Methods#
| Method | Description |
|---|---|
StereoParameters * createStereoParameters()=0 |
|
void destroyStereoParameters(StereoParameters *ptr)=0 |
|
bool initializeDeviceHelper(uint64_t *device_sn, ftkLibrary lib, ImageType3D *image_type)=0 |
|
stereo_matching_engine * createDefaultEngine()=0 |
|
void destroyDefaultEngine(stereo_matching_engine *ptr)=0 |
|
GpuFrame3D * createGpu3DFrame(ImageType3D image_type)=0 |
|
void destroyGpu3DFrame(GpuFrame3D *ptr)=0 |
|
bool computeDispMap(const ftkFrameQuery *frame, const stereo_matching_engine *engine, GpuFrame3D *frame3d, StereoParameters *stereo)=0 |
atracsys::ISDKInterface#
Methods#
| Method | Description |
|---|---|
ftkError setInt32(ftkLibrary lib, uint64_t sn, uint32_t optID, int32_t val)=0 |
|
ftkError setData(ftkLibrary lib, uint64_t sn, uint32_t optID, ftkBuffer *buffer)=0 |
|
ftkError getLastFrame(ftkLibrary lib, uint64_t sn, ftkFrameQuery *frame, uint32_t timeout)=0 |
|
ftkFrameQuery * createFrame()=0 |
|
void destroyFrame(ftkFrameQuery *frame)=0 |
|
ftkError setFrameOptions(bool pixels, uint32_t eventsSize, uint32_t leftRawDataSize, uint32_t rightRawDataSize, uint32_t threeDFiducialsSize, uint32_t markersSize, ftkFrameQuery *frame)=0 |
|
ftkError setRigidBody(ftkLibrary lib, uint64_t sn, ftkRigidBody *rigidBody)=0 |
|
ftkError enumerateOptions(ftkLibrary lib, uint64_t sn, ftkOptionsEnumCallback cb, void *user)=0 |
|
ftkError initExt(const char *config, ftkBuffer *buffer)=0 |
|
void close(ftkLibrary *lib)=0 |
|
ftkError getData(ftkLibrary lib, uint64_t sn, uint32_t optID, ftkBuffer *buffer)=0 |
|
ftkError getInt32(ftkLibrary lib, uint64_t sn, uint32_t optID, int32_t *val)=0 |
|
ftkError getLastErrorString(ftkLibrary lib, uint32_t size, char *buffer)=0 |
|
ftkError loadBody(ftkLibrary lib, const std::string &fileName, ftkRigidBody &geometry)=0 |
RealS3DKWrapper#
Inherits from: atracsys::IS3DKInterface
Methods#
| Method | Description |
|---|---|
StereoParameters * createStereoParameters() override |
|
void destroyStereoParameters(StereoParameters *ptr) override |
|
bool initializeDeviceHelper(uint64_t *device_sn, ftkLibrary lib, ImageType3D *image_type) override |
|
stereo_matching_engine * createDefaultEngine() override |
|
void destroyDefaultEngine(stereo_matching_engine *ptr) override |
|
GpuFrame3D * createGpu3DFrame(ImageType3D image_type) override |
|
void destroyGpu3DFrame(GpuFrame3D *ptr) override |
|
bool computeDispMap(const ftkFrameQuery *frame, const stereo_matching_engine *engine, GpuFrame3D *frame3d, StereoParameters *stereo) override |
RealSDKWrapper#
Inherits from: atracsys::ISDKInterface
Methods#
| Method | Description |
|---|---|
ftkError setInt32(ftkLibrary lib, uint64_t sn, uint32_t optID, int32_t val) override |
|
ftkError setData(ftkLibrary lib, uint64_t sn, uint32_t optID, ftkBuffer *buffer) override |
|
ftkError getLastFrame(ftkLibrary lib, uint64_t sn, ftkFrameQuery *frame, uint32_t timeout) override |
|
ftkFrameQuery * createFrame() override |
|
void destroyFrame(ftkFrameQuery *frame) override |
|
ftkError setFrameOptions(bool pixels, uint32_t eventsSize, uint32_t leftRawDataSize, uint32_t rightRawDataSize, uint32_t threeDFiducialsSize, uint32_t markersSize, ftkFrameQuery *frame) override |
|
ftkError setRigidBody(ftkLibrary lib, uint64_t sn, ftkRigidBody *rigidBody) override |
|
ftkError enumerateOptions(ftkLibrary lib, uint64_t sn, ftkOptionsEnumCallback cb, void *user) override |
|
ftkError initExt(const char *config, ftkBuffer *buffer) override |
|
void close(ftkLibrary *lib) override |
|
ftkError getData(ftkLibrary lib, uint64_t sn, uint32_t optID, ftkBuffer *buffer) override |
|
ftkError getInt32(ftkLibrary lib, uint64_t sn, uint32_t optID, int32_t *val) override |
|
ftkError getLastErrorString(ftkLibrary lib, uint32_t size, char *buffer) override |
|
ftkError loadBody(ftkLibrary lib, const std::string &fileName, ftkRigidBody &geometry) override |