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.
- Author: Shaun Edwards
- License: BSD
- Source: git https://github.com/mtconnect/ros_bridge.git (branch: None)
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.
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
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 http://swri-ros-pkg.googlecode.com/svn/branches/fuerte_dev git clone git://github.com/mtconnect/ros_bridge.git git clone git://github.com/mtconnect/cppagent.git echo "Build MTConnect agents" mkdir agent_build cd agent_build cmake ../cppagent make echo "Build MTConnect ROS bridge and examples" roscd mtconnect_example rosmake
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 https://alufr-ros-pkg.googlecode.com/svn/trunk/freiburg_tools echo "Building param edit gui plugin" roscd rosgui_paramedit rosmake
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)
ROS_PACKAGE_PATH=<source path>:$ROS_PACKAGE_PATH export MTCONNECT_AGENT_DIR=<source path>/agent_build/agent/
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:
- use_rviz - launches rviz if true (not required if using GUI)
- real_robot - connects to real robot if true, otherwise uses simulated robot
- real_grasps - utilizes robot grasp IO if ture, otherwise uses simulated graps
- robot_ip - robot ip address (only valid if using real grasps or real robot)
- use_bswap - performs byte swapping (true for actual fanuc controller, false for simulated controller in Roboguide)
- 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 related to the Fanuc support or ROS Industrial in general, please contact the developers using the swri-ros-pkg-dev Google group.
Report a Bug
This software was developed with the support of NIST