Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

A tiny inverse kinematics solver

Project description

Tinyik is a simple and naive inverse kinematics solver.

It defines an actuator as a set of links and revolute joints from an origin. Here is an example of a robot arm that consists of two joints that rotate around z-axis and two links of 1.0 length along x-axis:

>>> import tinyik
>>> arm = tinyik.Actuator(['z', [1., 0., 0.], 'z', [1., 0., 0.]])

Since the joint angles are zero by default, the end-effector position is at (2.0, 0, 0):

>>> arm.angles
array([ 0.,  0.])
>>> arm.ee
array([ 2.,  0.,  0.])

Sets the joint angles to 30 and 60 degrees to calculate a new position of the end-effector:

>>> import numpy as np
>>> arm.angles = [np.pi / 6, np.pi / 3]  # or np.deg2rad([30, 60])
>>> arm.ee
array([ 0.8660254,  1.5      ,  0.       ])

Sets a position of the end-effector to calculate the joint angles:

>>> arm.ee = [2 / np.sqrt(2), 2 / np.sqrt(2), 0.]
>>> arm.angles
array([  7.85398147e-01,   3.23715739e-08])
>>> np.round(np.rad2deg(arm.angles))
array([ 45.,   0.])

Installation

$ pip install tinyik

Project details


Download files

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

Files for tinyik, version 1.2.0
Filename, size File type Python version Upload date Hashes
Filename, size tinyik-1.2.0-py2.py3-none-any.whl (6.7 kB) File type Wheel Python version 2.7 Upload date Hashes View hashes
Filename, size tinyik-1.2.0.zip (10.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page