Skip to main content

Differentiable Forward Kinematics for TensorFlow and Keras based on URDF files

Project description

dlkinematics

Deep Learning Kinematics

Differentiable Forwad Kinematics for TensorFlow and Keras

Supported Joint Types:

  • Fixed
  • Revolute
  • Continious
  • Prismatic
  • Floating (not coverd by unit tests)
  • Planar (not coverd by unit tests)

Installation

Install from PyPi

$ pip install dlkinematics

Install from source

$ pip install -e git+https://github.com/lumoe/dlkinematics.git@main#egg=DLKinematics

Usage:

import tensorflow as tf
from dlkinematics.urdf import chain_from_urdf_file
from dlkinematics.dlkinematics import DLKinematics

# Load URDF
chain = chain_from_urdf_file('data/human.urdf')

# Create DLKinematics
dlkinematics = DLKinematics(
   chain,
   base_link="human_base",
   end_link="human_spine_2",
   batch_size=2)

# Joint configuartion
thetas = tf.Variable([1., 2., 3., 4.], dtype=tf.float32)

# Forward pass
with tf.GradientTape() as tape:
    result = dlkinematics.forward(thetas)

print(result)
print(tape.gradient(result, thetas))

As Keras Layer

from dlkinematics.training_utils import ForwardKinematics
from tensorflow import keras
import tensorflow as tf

model = keras.Sequential()

FK_layer = ForwardKinematics(
   urdf_file = 'path/to/urdf',
   base_link = 'link0',
   end_link = 'linkN',
   batch_size = 2)

model.add(FK_layer)
# Output shape of FK_layer is (batch_size, 4, 4)

Run tests

The tests use ROS packages to validate the result of the dlkinematics module.

  1. Build the docker image for tests:
    $ docker build -t dlkinematics_tests .

  2. Start the container in the root folder of the project:
    $ docker run -it -v $PWD:/work dlkinematics_tests python3 -m pytest

  3. Execute all tests:
    $ docker run -it -v $PWD:/work dlkinematics_tests python3 -m pytest
    Execute only a single testfile:
    $ docker run -it -v $PWD:/work dlkinematics_tests python3 -m pytest tests/test_prismatic.py

Project details


Download files

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

Source Distribution

dlkinematics-0.1.0rc4.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

dlkinematics-0.1.0rc4-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file dlkinematics-0.1.0rc4.tar.gz.

File metadata

  • Download URL: dlkinematics-0.1.0rc4.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.8.13-050813-generic

File hashes

Hashes for dlkinematics-0.1.0rc4.tar.gz
Algorithm Hash digest
SHA256 4208f71e059e86f9cee97746ceccc50615f8838ee745c0e9c238df6b5a3345c6
MD5 4edc69892f8ceb20a0fbe9f829db3ef8
BLAKE2b-256 cfdbc10d289d3ae7eeaef4590b1723c384995d6b879fc24b898f92b464f06964

See more details on using hashes here.

File details

Details for the file dlkinematics-0.1.0rc4-py3-none-any.whl.

File metadata

  • Download URL: dlkinematics-0.1.0rc4-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.8.13-050813-generic

File hashes

Hashes for dlkinematics-0.1.0rc4-py3-none-any.whl
Algorithm Hash digest
SHA256 c9403dd458a9bc3e47120790ed5774af90c60187de232ae693edc8ff9d271d36
MD5 db1b1f06957a3ed3a530d564666c98f7
BLAKE2b-256 17c1c5a09e84c36e6ec3b8e04451e99a065e7a5271440d53e8e52ed039999c6f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page