FANUC ROS1 Interface
The fanuc_ros1 repository is a ROS1 interface for FANUC robot arms, specifically designed to work with the R-30iB+ controller. It provides a framework for motion planning and execution using MoveIt, along with various skills for industrial tasks.
Software Architecture
The fanuc_ros1 package is an interface layer that enables planning and execution via MoveIt, allows for peripheral control and launches the RViz GUI. In the standard ROS-I architecture, it would fit as shown below. Details and tutorials to setup the driver and interface can be found here.
Source: http://wiki.ros.org/Industrial
ROS-I Controller Layer is setup at the robot controller (R-30iB+). Details
ROS-I Interface Layer
fanuc_lrmate200id_support
Open-source community has a support package for many industrial robots, including LR Mate 200iD.MoveIt Layer
fanuc_lrmate200id7l_moveit_config
We developed moveit configuration package for LR Mate 200iD robots which is used for trajectory planning.Application Layer
fc_tasks
We developed a set of services and actions to perform various industrial tasks using the robot arm. These allow to develop custom application using the robot arm without worrying about the underlying motion planning and execution.
ROS Packages
fc_launch
fc_msgs
fanuc_lrmate200id_support
fanuc_lrmate200id7l_moveit_config
fanuc
fc_tasks
Note
fc_tasks
is the core package which either uses other listed packages or packages, like fc_launch, use fc_tasks to launch the interface.
ROS Services
Service Name |
Type |
Description |
---|---|---|
|
|
Retrieve the current pose of the robot |
|
|
Set a desired pose for the robot |
|
|
Set robot joint values (uses BiTRRT for planning) |
|
|
Execute a predefined trajectory |
|
|
Stop the current trajectory execution |
|
|
Execute a cartesian space trajectory |
|
|
Execute a cartesian trajectory asynchronously |
|
|
Set or write a value to an I/O port |
|
|
Read or get the value from an I/O port |
ROS Actions
Action Name |
Type |
Description |
---|---|---|
|
|
Move the robot to a specified pose |
|
|
Move the robot to a pose asynchronously |
|
|
Move robot joints to target values (uses BiTRRT) |
|
|
Execute a cartesian trajectory as an action |
ROS Topic Subscribers
Topic |
Topic Name/Type |
Description |
---|---|---|
|
Status Topic |
Indicates whether the robot or manipulator is currently moving |
|
Status Topic |
Publishes the current status of the ongoing trajectory execution |
|
Sensor Topic |
Publishes the current joint positions, velocities, and efforts |
ROS Topic Publishers
Topic Name |
Type |
Description |
---|---|---|
|
Pose Publisher |
Publishes the current end effector (tool) pose |
|
Digital Out |
Publishes all Digital Output I/O states |
|
Digital In |
Publishes all Digital Input I/O states |
|
Analog Out |
Publishes all Analog Output I/O states |
|
Analog In |
Publishes all Analog Input I/O states |
Note
Note: All methods called by these elements are detailed in the Doxygen formatting style.
Note
This package also enables Fanuc I/O control using comet_rpc. Using the io.launch file, a Fanuc_IO ROS node is launched with the following functionality