Skip to content

Latest commit

 

History

History
75 lines (55 loc) · 2.85 KB

README.md

File metadata and controls

75 lines (55 loc) · 2.85 KB

pyfri

Build License JOSS Code Style: Black

KUKA Fast Robot Interface Python SDK. The code in this repository, provides Python bindings for the FRI Client SDK C++ through pybind11. The interface has been designed to be as similar as possible to the documentation provided by KUKA.

There is one difference users of the Python bindings should be aware. When instantiating the client application, in C++ this is performed as follows.

// ..setup client..

// create new udp connection
UdpConnection connection;


// pass connection and client to a new FRI client application
ClientApplication app(connection, client);

In Python, the equivalent code is as follows.

import pyfri as fri

# ..setup client..

app = fri.ClientApplication(client)

Since UDP is the only supported connection type and the connection object is not actually required by the user after declaring the variable, the UdpConnection object is created internally to the fri.ClientApplication class object.

See the examples.

Quickstart

  1. Clone repository (make sure you include --recursive):
    git clone --recursive https://github.com/lbr-stack/pyfri.git
  2. Change directory:
    cd pyfri
  3. Install:
    export FRI_CLIENT_VERSION=1.15
    pip3 install .

Note

FRI client is fetched from fri and must be available as branch, refer README.

  1. Setup the hardware, see Hardware Setup.

  2. Checkout the Example Applications.

Citation

If you enjoyed using this repository for your work, we would really appreciate ❤️ if you could leave a ⭐ and / or cite it, as it helps us to continue offering support.

@misc{huber2023lbrstack,
      title={LBR-Stack: ROS 2 and Python Integration of KUKA FRI for Med and IIWA Robots}, 
      author={Martin Huber and Christopher E. Mower and Sebastien Ourselin and Tom Vercauteren and Christos Bergeles},
      year={2023},
      eprint={2311.12709},
      archivePrefix={arXiv},
      primaryClass={cs.RO}
}