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.
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:
pip install fanucpy
Follow these steps to install FANUC driver.
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()
# 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
)
# open gripper
robot.gripper(True)
# close gripper
robot.gripper(False)
# 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)}")
robot.call_prog(prog_name)
robot.get_rdo(rdo_num=7)
robot.set_rdo(rdo_num=7, value=True)
External contributions are welcome!
- Agajan Torayev: Key developer
- Fan Mo: Support with documentation
- Michael Yiu: External contributor
We introduce an experimental feature: Robot Apps. This class facilitates modularity and plug-and-produce functionality. Check the following example apps:
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}
}