Skip to content

jdj2261/pykin

Repository files navigation

pykin

PyPI version MIT License

Python Interface for the robot Kinematics library pykin

This library has been created simply by referring to ikpy and kinpy .

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

    baxter

Releases

No releases published

Packages

No packages published

Languages