Skip to main content

Python package for FANUC industrial robots

Project description

fanucpy: Python package for FANUC industrial robots

IMPORTANT

The funding for this project officially ended on September 1, 2023. I am seeking external funding to keep this package alive and to develop packages such as abbpy, kukapy, etc. Please help me with your comments and use cases to understand better your needs. This is my calendar link for arranging a quick video call: https://calendar.app.google/GRfs1Q61QbQSMtAD8.

Software contents

The package consists of two parts:

  1. Robot interface code written in Python programming language
  2. FANUC robot controller driver (tested with R-30iB Mate Plus Controller) written in KAREL and FANUC teach pendant languages

The communication protocol between the Python package and the FANUC robot controller is depicted below: Communication Protocol

Python package installation

pip install -U fanucpy

Driver installation

Follow these steps to install FANUC driver.

Usage

Connect to a robot:

from fanucpy import Robot

robot = Robot(
    robot_model="Fanuc",
    host="192.168.1.100",
    port=18735,
    ee_DO_type="RDO",
    ee_DO_num=7,
)

robot.connect()

Moving

# move in joint space
robot.move(
    "joint",
    vals=[19.0, 66.0, -33.0, 18.0, -30.0, -33.0],
    velocity=100,
    acceleration=100,
    cnt_val=0,
    linear=False
)

# move in cartesian space
robot.move(
    "pose",
    vals=[0.0, -28.0, -35.0, 0.0, -55.0, 0.0],
    velocity=50,
    acceleration=50,
    cnt_val=0,
    linear=False
)

Opening/closing gripper

# open gripper
robot.gripper(True)

# close gripper
robot.gripper(False)

Querying robot state

# get robot state
print(f"Current pose: {robot.get_curpos()}")
print(f"Current joints: {robot.get_curjpos()}")
print(f"Instantaneous power: {robot.get_ins_power()}")
print(f"Get gripper state: {robot.get_rdo(7)}")

Calling external program

robot.call_prog(prog_name)

Get/Set RDO

robot.get_rdo(rdo_num=7)
robot.set_rdo(rdo_num=7, value=True)

Get/Set DOUT

robot.get_rdo(dout_num=1)
robot.set_rdo(dout_num=1, value=True)

Contributions

External contributions are welcome!

  • Agajan Torayev: Key developer
  • Karol
  • Fan Mo
  • Michael Yiu: External contributor

RobotApp

We introduce an experimental feature: Robot Apps. This class facilitates modularity and plug-and-produce functionality. Check the following example apps:

  1. Pick and Place App
  2. Aruco Tracking App
  3. FANUC ChatGPT

Citation

Please use the following to cite if you are using this library in academic publications Towards Modular and Plug-and-Produce Manufacturing Apps

@article{torayev2022towards,
  title={Towards Modular and Plug-and-Produce Manufacturing Apps},
  author={Torayev, Agajan and Mart{\'\i}nez-Arellano, Giovanna and Chaplin, Jack C and Sanderson, David and Ratchev, Svetan},
  journal={Procedia CIRP},
  volume={107},
  pages={1257--1262},
  year={2022},
  publisher={Elsevier}
}

Acknowledgements

This work was developed at the Institute for Advanced Manufacturing at the University of Nottingham as a part of the Digital Manufacturing and Design Training Network.

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 814078.

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

fanucpy-0.1.14.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fanucpy-0.1.14-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file fanucpy-0.1.14.tar.gz.

File metadata

  • Download URL: fanucpy-0.1.14.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.11.5 Darwin/23.1.0

File hashes

Hashes for fanucpy-0.1.14.tar.gz
Algorithm Hash digest
SHA256 b77fcbcc2924f9c6ee0d6d5b38641b9b0adc28e3fddbdb6e836969c85a88ed42
MD5 88910f00515291d936330f3a7ddef8c2
BLAKE2b-256 f1bf512771502552155f128610329d8c9d21b0cd0480b8b0002af6bd2f796463

See more details on using hashes here.

File details

Details for the file fanucpy-0.1.14-py3-none-any.whl.

File metadata

  • Download URL: fanucpy-0.1.14-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.11.5 Darwin/23.1.0

File hashes

Hashes for fanucpy-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 fcc51cee9e2c447dc122fb9cd07d6125d8408fa0eb38ca79a19474e8b6f90a8d
MD5 c92f696556f63afe36366493b321fe2c
BLAKE2b-256 b045a60b9fcdff99787cf13301b1b42090ce680cb89223ae840282003509914c

See more details on using hashes here.

Supported by

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