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.
-
explicit BotaPayloadCompensator(const std::string &config_path)
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
trueif estimation is currently in progress.
-
bool isEstimationSuccessful() const
Returns
trueif the last estimation completed successfully.
-
explicit BotaPayloadEstimator(const std::string &config_path)