C++
===========
Download and Installation
-------------------------
The C++ SDK is distributed as **pre-compiled binaries** for easy integration.
.. raw:: html
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
---------------
.. _cpp_usage_examples:
We provide a demo to **get yourself started** with the C++ SDK.
.. raw:: html
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
^^^^^^^^^^^^^^^^^^^^^^
.. cpp:class:: bota::BotaPayloadCompensator
Provides payload compensation functionality.
.. cpp:function:: explicit BotaPayloadCompensator(const std::string& config_path)
Initializes the compensator from a JSON configuration file.
.. cpp:function:: ~BotaPayloadCompensator()
.. cpp:function:: BotaControlReturnCode update(double timestamp, std::array& wrench_imu_raw, std::array& wrench_imu_compensated)
Computes compensated output from raw input. Result is written into ``wrench_imu_compensated``.
.. cpp:function:: bool tareCompensatedWrench()
Zeros the compensated wrench output by computing and applying current offsets.
BotaPayloadEstimator
^^^^^^^^^^^^^^^^^^^^
.. cpp:class:: bota::BotaPayloadEstimator
Provides payload estimation functionality.
.. cpp:function:: explicit BotaPayloadEstimator(const std::string& config_path)
Initializes the estimator from a JSON configuration file.
.. cpp:function:: ~BotaPayloadEstimator()
.. cpp:function:: BotaControlReturnCode update(double timestamp, std::array wrench_imu_raw)
Feeds new raw data into the estimation algorithm.
.. cpp:function:: bool startPayloadEstimation()
Starts the payload estimation process.
.. cpp:function:: bool isEstimatorRunning() const
Returns ``true`` if estimation is currently in progress.
.. cpp:function:: bool isEstimationSuccessful() const
Returns ``true`` if the last estimation completed successfully.