Skip to main content

Kinisi now supports motor and platform position control

· 2 min read

Kinisi firmware and the Python, JavaScript, and Arduino SDKs now support position control. Set a motor's target angle or a mobile platform's target pose, and the controller uses encoder feedback to track that target.

The feature is available in version 2.3.1, with setup controls and live position graphs in the Kinisi web client.

Watch it move​

In this demo, motor 0 drives a 30 cm arm to 90°, 180°, 360°, and back to 0°. The camera shows the complete movement in one continuous take, alongside the position response graph.

Motor 0 moving a 30 cm arm in one continuous take. The graph is a synchronized replay of recorded encoder feedback; narration uses Kokoro. Watch on YouTube.

Motor angles and platform poses​

Motor position is continuous: a target of 360° represents one full turn from the current origin. You can set a target, read the measured position, or reset the position origin to zero.

For mobile robots, platform position control accepts x, y, and heading targets in the world frame. Distances use meters, and angles use radians in the SDK commands. The web client's Angle units setting lets you work with degrees for angular targets, speeds, and graphs; your choice saves automatically in the browser.

Two controllers working together​

Position control builds on the velocity controller. The position PID turns the remaining distance or angle into a speed target, and the velocity PID drives the motor to track that speed. Each controller has its own Kp, Ki, and Kd settings. Platform control also has separate tuning for translation and heading.

Initialize and tune velocity control first, then initialize position control. Maximum speed and position tolerance let you choose how quickly the mechanism moves and how close it must get to the target.

Try position control​

Our tutorials cover the setup, explain the parameters, and show the web client controls:

Update your firmware and SDK to get started: