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:
- Robot interface code written in Python programming language
- 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:
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:
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.