Skip to main content
Version: 8

FANUC CRX Series Hardware Setup Guide

This how-to guide covers steps for setting up and configuring a CRX series robot arm to run with MoveIt Pro.

Required Hardware

The MoveIt Pro Technical Specifications Document details the hardware and software requirements for running MoveIt Pro along with a list of the current features.

1. Assemble the Arm hardware

Your CRX series robot comes with a setup guide, follow this document to Assemble the arm. There are some additional details on network setup on the FANUC Driver Documentation site.

2. Set Up Computer

For the best hardware performance, FANUC recommends setting up the control computer to run Ubuntu 22.04 (optionally with real-time PREEMPT_RT kernel installed).

3. Set Up Robot Controller

Follow the Robot Controller Setup guide to prepare the FANUC arm for communication with the control computer.

4. Change Computer and Robot Network Settings

Follow the Driver Network Configuration and Robot Network Configuration guides to configure the network connection between the computer and robot.

5. MoveIt Pro Robot Configuration

If you have not already installed MoveIt Pro, follow the Quick Start Install.

Next we will clone the moveit_pro_fanuc_config workspace.

mkdir -p ~/moveit_pro
cd ~/moveit_pro
git clone https://github.com/PickNikRobotics/moveit_pro_fanuc_config.git
cd moveit_pro_fanuc_config
git submodule update --recursive --init

Now we will customize the crx_hw robot configuration for your hardware:

  • By default, this config loads the URDF to the CRX-10iA robot, however this can be configured by setting the robot_model URDF parameter (under robot_description: urdf_params:) in the hardware config's config.yaml file. Optionally you can change this parameter in the crx_mock if you would like to visualize the robot using mock hardware as well. Possible values are the available models in the fanuc_crx_description package (e.g. crx10ia, crx10ia_l, crx20ia_l, etc.).
  • Change the URDF parameters, robot_ip, stream_motion_port and rmi_port, within the hardware config's config.yaml to configure MoveIt Pro with the IP address and ports set in the previous step.

To tell MoveIt Pro to launch with the crx_hw configuration, run moveit_pro configure and in response to the prompts update the workspace path to ~/moveit_pro/moveit_pro_fanuc_config and update the MoveIt Pro robot config package to crx_hw.

Lastly, build the docker image and user workspace:

moveit_pro build

Your hardware is now ready for use with MoveIt Pro!

6. Launch MoveIt Pro

Use the command moveit_pro run to launch MoveIt Pro with your CRX hardware.

Configuring Real-Time GPIO

The crx_hw contains a copy of the example gpio config provided by the FANUC driver and is configured to start up the FANUC GPIO controller. This file can be changed to whatever configuration you'd like (additional details in the FANUC docs).

If you do not require real-time control of certain GPIO values, the GPIO controller also exposes ROS2 services under /fanuc_gpio_controller/* that does not require configuration.

Troubleshooting

Hardware is no longer streaming

Sometimes the FANUC driver can lose connection to the robot if there is high network load on the control computer. If you see the following line in the MoveIt Pro logs, the FANUC hardware interface will need to be restarted.

[FR_HW_Interface]: FANUC ROS2 HW no longer streaming.

To restart the hardware interface, run moveit_pro shell in a separate terminal, and then run the following commands.

ros2 control set_hardware_component_state crx10ia inactive
ros2 control set_hardware_component_state crx10ia active