Skip to main content
Version: 10

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 Install MoveIt Pro.

Next we will clone the moveit_pro_fanuc_ws workspace.

mkdir -p ~/moveit_pro
cd ~/moveit_pro
git clone https://github.com/PickNikRobotics/moveit_pro_fanuc_ws.git
cd moveit_pro_fanuc_ws
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_ws 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