Skip to main content

Robotics Kinematics Library

Project description

pykin

PyPI version MIT License

Python Interface for the robot Kinematics library pykin

This library has been created simply by referring to ikpy.

Features

  • Pure python library
  • Support only URDF file.
  • Compute forward, inverse kinematics and jacobian, referred to the Introduction to Humanoid Robotics book.
  • Check robot self-collision and collision between robot's bodies and objects.
  • Plot robot kinematic chain and mesh using matplotlib or trimesh library

Installation

Requirements

You need a python-fcl package to do object collision checking.

  • On Ubuntu, install two dependency libraries using apt

    sudo apt install liboctomap-dev

    sudo apt install libfcl-dev

  • On Mac, download the two dependency libraries from git repository and build it.

    • octomap

      git clone https://github.com/OctoMap/octomap.git

      $ cd octomap
      $ mkdir build
      $ cd build
      $ cmake ..
      $ sudo make
      $ sudo make install
      
    • fcl

      git clone https://github.com/flexible-collision-library/fcl.git

      Since python-fcl uses version 0.5.0 of fcl, checkout with tag 0.5.0

      $ cd fcl
      $ git checkout 0.5.0
      $ mkdir build
      $ cd build
      $ cmake ..
      $ sudo make
      $ sudo make install
      

Install pykin

pykin supports macOS and Linux on Python 3.

  • Install from pip

    $ pip3 or pip install pykin
    
  • Install from source [recommend]

    $ git clone https://github.com/jdj2261/pykin.git
    $ cd pykin
    $ python3 seup.py install or sudo python3 setup.py install
    
  • pykin directory structure

    └── pykin
        ├── assets
        ├── collision
        ├── examples
        ├── geometry
        ├── kinematics
        ├── models
        ├── robots
        └── utils
    

Quick Start

You can see various examples in examples directory

  • Robot Info

    You can see 7 robot info.

    baxter, sawyer, iiwa14, iiwa7, panda, ur5e, doosan

    $ cd pykin/examples
    $ python robot_info.py $(robot_name)
    # baxter
    $ python robot_info.py baxter
    # saywer
    $ python robot_info.py sawyer
    
  • Forward kinematics

    You can compute the forward kinematics as well as visualize the visual or collision geometry.

    $ cd pykin/examples/forward_kinematics
    $ python robot_fk_baxter_test.py
    
    visual collision
  • Inverse Kinematics

    You can compute the inverse kinematics using levenberg marquardt(LM) or newton raphson(NR) method

    $ cd pykin/examples/inverse_kinematics
    $ python robot_ik_baxter_test.py
    
  • Sampling based Inverse Kinematics

    You can compute the inverse kinematics using geometric-aware bayesian optimization(GaBO) method

    For more detailed information, check GaBO module

    $ cd pykin/examples/inverse_kinematics
    $ python robot_ik_gabo_test.py
    
  • Collision check

    The below images show the collision result as well as visualize robot using trimesh.Scene class

    $ cd pykin/examples/trimesh_renders
    $ python sawyer_render.py
    
    trimesh.Scene Result

Visualization

You can see visualization using matplotlib library or trimesh.Scene class.

  • Visualize simple urdf using matplotlib

    ur5e sawyer iiwa14 panda
  • Visualize visual geometry using matplotlib

    ur5e sawyer iiwa14 panda
  • Visualize collision geometry using matplotlib

    ur5e sawyer iiwa14 panda
  • Visualize mesh about visual/collision geometry using trimesh.Scene class

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

pykin-1.5.8.tar.gz (50.7 MB view hashes)

Uploaded Source

Built Distribution

pykin-1.5.8-py3-none-any.whl (50.8 MB view hashes)

Uploaded Python 3

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