Skip to main content

ApexDrive ⚡

Universal High-Performance Robotics Actuator & Motor Control Engine
Hard Real-Time 25 kHz FOC • Sub-Microsecond eFuse Protection • 1 kHz Compliant Impedance API • CAN-FD / EtherCAT


🚀 Key Features

  • ⚡ 25 kHz Zero-Allocation FOC Core: Space Vector Modulation (SVPWM) with 3rd-harmonic neutral point shift (+15.4% DC bus utilization).
  • 🛡️ Sub-Microsecond Hardware eFuse: Instantaneous overcurrent circuit breaker (< 50ns) and real-time $I^2t$ thermal energy accumulator.
  • 🤖 Native Compliant Impedance Control: Virtual programmable spring-damper model ($K_p, K_d, \tau_{ff}$) designed for humanoids and quadrupeds.
  • 🔧 10-Second Auto-Tuner: Automated measurement of phase resistance ($R$), inductance ($L$), flux constant ($K_t$), and 360° anti-cogging ripple cancellation.
  • 📦 Bit-Packed CAN-FD Protocol: Ultra-compact 8-byte frames for multi-axis daisy-chained joint synchronization.
  • 📼 Edge Flight Recorder: Continuous 25 kHz circular in-memory ring buffer capturing pre- and post-incident forensic telemetry.

🛠️ Quickstart (Building from Source)

# Clone the repository
cd /Users/himand/apexdrive

# Build C++ Library, CLI, and Test Suite
mkdir build && cd build
cmake ..
make -j$(nproc)

# Run the unit test suite
./test_suite

💻 CLI Commands

# Scan the CAN-FD bus for connected joint actuators
./apexdrive scan

# Run 10-second automated electrical and anti-cogging calibration
./apexdrive tune --id 0x14

# Launch real-time terminal telemetry HUD and oscilloscope
./apexdrive monitor --id 0x14

# Dump forensic flight black-box incident report
./apexdrive dump-blackbox

# Run 100,000-cycle deterministic timing and FOC benchmark
./apexdrive bench

🦾 C++20 Client Integration Example

#include <apexdrive/host/actuator.hpp>
#include <iostream>

int main() {
    // Connect to Joint 0x14 on CAN-FD bus
    apexdrive::Actuator knee("can0", 0x14);
    knee.Arm();

    // 1 kHz Compliant Control Loop
    while (true) {
        float target_pos_rad = 1.57f;  // 90 degrees
        float target_vel_rad_s = 0.0f;
        float stiffness_kp = 45.0f;    // 45 Nm/rad
        float damping_kd = 2.5f;       // 2.5 Nm/(rad/s)
        float tau_feedforward = 5.0f;  // Gravity compensation

        knee.SetImpedance(target_pos_rad, target_vel_rad_s, stiffness_kp, damping_kd, tau_feedforward);

        auto state = knee.GetState();
        std::cout << "Knee Position: " << state.position_rad 
                  << " rad | Torque: " << state.torque_nm << " Nm\n";
    }
}

🐍 Python SDK Integration

import apexdrive

joint = apexdrive.Actuator("can0", node_id=0x14)
joint.arm()

# Set compliant impedance
joint.set_impedance(pos_rad=1.57, kp=40.0, kd=2.0, tau_ff=3.0)

state = joint.get_state()
print(f"Angle: {state.position_rad:.3f} rad | Temp: {state.temperature_c:.1f} °C")

📄 License

Apache 2.0 / Commercial Dual-License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apexdrive-1.0.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apexdrive-1.0.0-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file apexdrive-1.0.0.tar.gz.

File metadata

  • Download URL: apexdrive-1.0.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for apexdrive-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3f67d572be8a877954b2e0b6fb565384ff7f3bd90160b4d8262e08d196b1e253
MD5 e8c1df2643026ffbd438185c5ee8d26f
BLAKE2b-256 3d6d89fc135f75dbe90e30bdb7b09088a2f0c87d89a1523c4d9c993a49bd769c

See more details on using hashes here.

File details

Details for the file apexdrive-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: apexdrive-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for apexdrive-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e785605398922bd9e8da94cc827d28e6814386077cb9d3525ba828070ea11981
MD5 b3bec66d7648365bda14144faa42ee1c
BLAKE2b-256 f72541b403784780f8d4cea8c30077e96993be2434934f45de51f2088062f5d4

See more details on using hashes here.

Release history Release notifications | RSS feed

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page