Only released in EOL distros:  

mtconnect: mtconnect_msgs | mtconnect_ros_bridge

Package Summary

MT Connect stack contains packages and libraries for integrating ROS and equipment (machine tools) that support the MTConnect communications standard. The development in this stack has been supported by NIST.



This stack is part of the ROS Industrial and MTConnect programs. It contains packages that create a bridge between ROS and the MTConnect protocols. This page also contains information that covers the MTConnect example stack, which contains a sample implementation of a CNC and robot integration.


The installation of this stack requires both binary installations and installations from source.

Binary Installs

These instructions assume that you have already installed the Fuerte version of ROS. If you have not, see here for detailed instructions.

Ruby and the it's associated state machine library are required to run some scripts.

sudo apt-get install ruby1.9.1
sudo gem install statemachine

The arm navigation experimental and PR2 object manipulation stacks are also required. The command below will pull down the stacks and any required dependencies. NOTE: The PR2 object manipulation is needed to satisfy dependencies for nodes/libraries that aren't really used. The dependency will likely be removed in the future.

sudo apt-get install ros-fuerte-arm-navigation-experimental
sudo apt-get install ros-fuerte-pr2-object-manipulation 

The GUI application (not required, only used for example application) depends on the ROS Qt framework. If you wish to use the GUI, run the following

sudo apt-get install ros-fuerte-qt-gui-core ros-fuerte-rqt

Source Installs

It is easiest to create a single source directory in which all repositories are downloaded (ex: ~/ros/feurte). The ROS-Industrial, MTConnect ROS bridge, and MTConnect Agent libraries will all be downloaded. From the source directory enter the following:

echo "Downloading repositories"
svn checkout
git clone git://
git clone git://
echo "Build MTConnect agents"
mkdir agent_build
cd agent_build
cmake ../cppagent
echo "Build MTConnect ROS bridge and examples"
roscd mtconnect_example

If you wish to use the sample GUI (not required, only used for example application) you will need to download some additional tools.

echo "Downloading GUI tools"
svn checkout
echo "Building param edit gui plugin"
roscd rosgui_paramedit

Fanuc Controller Install

The repository contains Fanuc controller files (both KAREL and TP files). These are located in the mtconnect_cnc_robot_example package under the karel and tpe directories. All files in these directories must be compiled and installed on the Fanuc robot controller.


The following environment variables must be defined in the ~/.bashrc file. Note, <source_path> must be replaced with the source directory used above (ex: ~/ros/fuerte)

export MTCONNECT_AGENT_DIR=<source path>/agent_build/agent/

MTConnect Example

The MTConnect example stack contains sample integrations between a simulated cnc and robot.

The Fanuc server (controller side) should be started first. Execute the ldr_mtc_i file using the Fanuc teach pendant.

The following launch commands will bring up a simulated robot loading a CNC.

The following command will start the ROS bridge, MTConnect agents, and CNC simulator.

roslaunch mtconnect_ros_bridge mtconnect_ros_bridge_components.launch

Multiple terminal windows will be opened for the various agents and CNC simulator.

In a separate terminal start the robot simulation (see option description below).

roslaunch mtconnect_cnc_robot_example mtconnect_m16ib20_state_machine.launch <option>:=<value>

The following options can be used with the launch file above:

  1. use_rviz - launches rviz if true (not required if using GUI)
  2. real_robot - connects to real robot if true, otherwise uses simulated robot
  3. real_grasps - utilizes robot grasp IO if ture, otherwise uses simulated graps
  4. robot_ip - robot ip address (only valid if using real grasps or real robot)
  5. use_bswap - performs byte swapping (true for actual fanuc controller, false for simulated controller in Roboguide)
  6. home_check - enables home position checking before startup (not recommended for simulated robot).

This will launch Rviz with a simulated robot feeding a CNC. To shutdown the system, it is recommended that all the terminal windows be closed (5 total) using Control-C.

An optional GUI can also be used to start, stop, reset and view the example demonstration. To use the GUI perform the following:

In a separate terminal start the GUI framework application:

rosrun rqt_gui rqt_gui 

From the GUI menu choose Perspectives->Import. In the file broswer, browse to the mtconnect_example_gui package and select config/mtconnect.perspective. Once the perspective loads, you will need to manually load the Rviz configuration. Using the Rviz menu bar, File->Open Config. In the file browser, browse to the mtconnect_example_launch package and select vcg/mtconnect_visualization_conf.vcg

The GUI allows the user to START from an IDLE state, STOP a cycle, and RESET a faulted or aborted condition.

Contact us/Technical support

For questions about this package or ROS-Industrial in general, please contact the developers by posting a message in the ROS-Industrial category on ROS Discourse.

Report a Bug


This software was developed with the support of NIST

Wiki: mtconnect (last edited 2018-05-27 11:25:01 by GvdHoorn)