Repo symbol

ros2_fanuc_interface repository

fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control
Repo symbol

ros2_fanuc_interface repository

fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control
Repo symbol

ros2_fanuc_interface repository

fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control
Repo symbol

ros2_fanuc_interface repository

fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control
Repo symbol

ros2_fanuc_interface repository

fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control crx_description crx10ia_l_moveit_config crx10ia_moveit_config crx20ia_l_moveit_config crx25ia_moveit_config crx30ia_moveit_config crx5ia_moveit_config fanuc_control fanuc_eth_ip fanuc_rmi fanuc_srvs fanuc_srvs_msgs

Repository Summary

Description The unofficial ros2 hardware interface for the Fanuc CRX robots
Checkout URI https://github.com/paolofrance/ros2_fanuc_interface.git
VCS Type git
VCS Version paolo
Last Updated 2025-06-18
Dev Status UNKNOWN
Released UNRELEASED
Tags fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Fanuc_CRX_ROS2_Driver

This repository implements a ros2 hardware interface for the CRX family Fanuc robots. The code was tested on real hardware on Fanuc CRX-10iA/L, CRX-20iA/L, and CRX-25iA with R30iB Mini Plus controller.

Additional information regarding implementation and performances evaluation can be found here

OS: Ubuntu 22.04

ROS: Humble (see the branch rolling for the rolling distro)

Alt text

Outline

  1. Prerequisites
  2. Content
  3. Installation on the remote PC
  4. Setting up your CRX robot
  5. Usage
  6. DPM
  7. Known issues
  8. Citation
  9. License

Prerequisites

The communication between ROS and the robot happens via EthernetIP. The EtherNet/IP Adapter option must be loaded on your robot controller to use this package.

To check is the EthernetIP module is loaded on your robot, open the FanucTP app and check that the EthernetIP options shows up as in the image below.

Alt text

Content

Function Description
fanuc_eth_ip Implementation of the communication via Ethernet/IP between the remote PC and the Fanuc controller.
fanuc_rmi Implementation of the communication via Remote Motion Interface (RMI) between the remote PC and the Fanuc controller. RMI is used as an alternative communication channel. From our experience, EthernetIP communication gives the best results in terms of real-time control of the robot.
ros2_fanuc_interface ROS2 Hardware Interface. Allows for controlling the robot via Ethernet/IP and RMI.
fanuc_srvs Services to call TP programs and allows for interaction with the Fanuc controller. Most of the services require TP programs to be written and running as Background Logics, that read Registers to start an action. More details will be added in future releases.

Installation on the remote PC

Install EIPScanner

The communication between the external pc and the Fanuc controller happens by means of the Ethernet/IP protocol. In particular, this package relies on the implementation provided in EIPScanner.
Please, download it from here, and follow the instructions here to install it.

NOTE: a previous version of this driver used a python driver for the Ethernet/IP communication. Please refer to the python-driver branch.

Package installation and dependencies

Install additional ros2_control and Moveit!

sudo apt update
sudo apt upgrade
sudo apt install ros-<distro>-moveit
sudo apt install ros-<distro>-moveit-planners-chomp
sudo apt install ros-<distro>-ros2-control
sudo apt install ros-<distro>-ros2-controllers

Install the current repo:

cd <to-your-src>
git clone https://github.com/paolofrance/ros2_fanuc_interface
cd ..
colcon build --symlink-install

Setting up your CRX robot

The EtherNet/IP Adapter option must be loaded on your robot controller to use this package.

Setting up the robot network

The robot controller and the external PC must be under the same network:

  1. Set your PC’s IP address as static
  2. On the robot controller, in [MENU]->[SETUP]->[HOSTCOMM]->[TCP/IP], make sure the configuration looks like the image below, where Port#1 IP address must be under the same network of your PC.
  3. Make sure you can ping the robot from your PC.

Alt text

TP program installation

To actually move the robot, you need a teach-pendant (TP) program running on the robot controller.

  1. Copy the TP programs from this folder to your robot controller.
  2. Set the TP to AUTO mode.
  3. Load and run the program ROS2.TP.

DPM input setup (optional)

File truncated at 100 lines see the full file

Repo symbol

ros2_fanuc_interface repository

fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control
Repo symbol

ros2_fanuc_interface repository

fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control
Repo symbol

ros2_fanuc_interface repository

fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control
Repo symbol

ros2_fanuc_interface repository

fanuc ros2-control ros2-fanuc-interface ros2-crx-interface ros2-fanuc-driver fanuc-hardware-interface crx-hardware-interface fanuc-rmi fanuc-dpm fanuc-ethernet-ip fanuc-remote-control