C++

Download and Installation

The C++ SDK is distributed as pre-compiled binaries for easy integration.

Supported platforms:

  • Linux: x86_64 and aarch64
  • Windows: x86_64
  • macOS: arm64

Download: Get the binaries here

Installation: Copy the downloaded files to your C++ project and configure your build system

Usage Demo

We provide a demo to get yourself started with the C++ SDK.

What you'll find in the demo:

  • Estimator and Compensator setup and configuration
  • Real-time pipeline setup in C++
  • Integration patterns and best practices

API description

Both classes are defined in the bota namespace and use a PIMPL pattern for implementation encapsulation.

BotaPayloadCompensator

class bota::BotaPayloadCompensator

Provides payload compensation functionality.

explicit BotaPayloadCompensator(const std::string &config_path)

Initializes the compensator from a JSON configuration file.

~BotaPayloadCompensator()
BotaControlReturnCode update(double timestamp, std::array<double, 12> &wrench_imu_raw, std::array<double, 12> &wrench_imu_compensated)

Computes compensated output from raw input. Result is written into wrench_imu_compensated.

bool tareCompensatedWrench()

Zeros the compensated wrench output by computing and applying current offsets.

BotaPayloadEstimator

class bota::BotaPayloadEstimator

Provides payload estimation functionality.

explicit BotaPayloadEstimator(const std::string &config_path)

Initializes the estimator from a JSON configuration file.

~BotaPayloadEstimator()
BotaControlReturnCode update(double timestamp, std::array<double, 12> wrench_imu_raw)

Feeds new raw data into the estimation algorithm.

bool startPayloadEstimation()

Starts the payload estimation process.

bool isEstimatorRunning() const

Returns true if estimation is currently in progress.

bool isEstimationSuccessful() const

Returns true if the last estimation completed successfully.