Kinova Kortex API
AdvancedKinova's official programming interface for its Gen3 robot arms, usable from C++ and Python.
The Kortex API is the official programming interface that the Canadian company Kinova provides for its Gen3 and Gen3 lite arms, usable from C++ or Python. Examples and documentation live in the Kinovarobotics/kortex repository on GitHub, and the Python package is installed from a wheel file downloaded from Kinova's server. Your computer connects to the arm over a wired network, logs in to open a session, and then calls services such as Base and BaseCyclic, with messages encoded as Google Protocol Buffers. There are two control modes. In the default high-level servoing mode you send joint targets, end-effector poses or end-effector velocities over TCP, and a 1 kHz control loop inside the arm's base handles kinematics and trajectories. In low-level servoing your program calls BaseCyclic over UDP and must itself send commands to every joint and read feedback at 1 kHz; Cartesian commands are no longer available, but on the Gen3 the joints can be switched to torque control. Kinova advises using C++ for low-level control because Python cannot reliably hold 1 kHz. Kinova also maintains ROS and ROS 2 drivers, ros_kortex and ros2_kortex.
ExampleIn Python, connect a TCPTransport to the Gen3's default address 192.168.1.10, log in, and call the Base service's SendTwistCommand to move the end effector at a set velocity. For 1 kHz torque control, switch to C++, enter low-level servoing, and call BaseCyclic's Refresh in a loop over UDP.
- Also called
- Kortex API, KORTEX API, kortex_api
- Related
- Kinova Gen3 · Kinova · Protocol Buffers · Software Development Kit · Torque Control · Control Frequency
- Sources
- KINOVA KORTEX API Reference (GitHub: Kinovarobotics/kortex, now Kinovarobotics/Kinova-kortex2_Gen3_G3L)
Kortex API docs: Servoing Mode (high-level vs low-level servoing)
Kortex API docs: Transport, RouterClient, SessionManager and NotificationHandler - As of
- 2026-10