Contents
ROS-Industrial Tutorials Overview
ROS-Industrial contains many software packages. The packages are split into two categories: general and vendor specific. General information about each package can be found by following links to the package specific-wiki.
If you find any problems/issues with these tutorials, contact us by posting a message in the ROS-Industrial category on ROS Discourse.
Bugs related to a specific vendor stack should be reported to that stack's issue tracker, see the package pages for links. All other issues can be submitted to the generic issue tracker. Use GitHub to report bugs or submit feature requests. [View active issues]
General ROS-Industrial
The following sections cover ROS-Industrial general capabilities, libraries, messages, etc.
Training
The training class curriculum is recommended for new users to both ROS and ROS-Industrial.
Basic Developers' Training Class Curriculum - ROS-I Consortium class for C++ programmers starting with basic Linux and concluding with a vision-enabled pick and place project. Includes slides, step-by-step exercises, and test code.
General
These tutorials cover assorted topics on ROS-Industrial. The tutorials do not have a specific order and are meant to be followed on a topic by topic basis.
- Create a URDF for an Industrial Robot
Walks through the steps and conventions for creating a Unified Robot Description Format (URDF) for an industrial robot.
- Create a MoveIt Package for an Industrial Robot
Walks through the steps of creating a MoveIt package for an industrial robot. The MoveIt package provides collision-aware path planning for the robot.
- Working with ROS-Industrial Robot Support Packages
This tutorial will provide an overview of the files and directories that make up a ROS-Industrial robot support package and show how to make proper use of the functionality provided by such packages.
- Create a Joint Position Streaming Interface utilizing TCP Socket Libraries
These notes apply to creating the joint position streaming interface on an industrial controller using the ROS-Industrial TCP socket libraries. This interface is good for basic motion and proof of concept integration.
- Create a kinematics solution using IK Fast
This tutorial describes how to automatically create a fast, closed-form analytical kinematics solution for your robot using the IKFast module from OpenRAVE.
Vendor Specific Tutorials
ROS-Industrial provides supporting software for many vendor platforms. Each platform requires different setup and configuration steps in order to be used with ROS-Industrial.
ABB
The ABB software package contains drivers and supporting packages for ABB industrial robots.
Please find the tutorials at abb_driver/Tutorials.
Fanuc
The Fanuc software package contains drivers and supporting packages for Fanuc industrial robots.
Indigo
- Installation of the ROS-Industrial driver on Fanuc controllers
This tutorial guides you through an installation of the ROS-Industrial programs on Fanuc controllers.
- Configuration of the ROS-Industrial driver on Fanuc controllers
This tutorial guides you through the configuration of the ROS-Industrial Fanuc components on the controller.
- Running the ROS-Industrial driver programs on your Fanuc robot
This tutorial explains how to run the ROS-Industrial programs installed in the previous tutorial(s) in simulation and on the real hardware.
Kinetic
- Please refer to the Indigo tutorials.
Melodic
- Please refer to the Indigo tutorials.
Motoman
The Motoman software package contains drivers and supporting packages for Motoman industrial robots.
The following tutorials are general motoman tutorials and utilize several packages:
- Perform Path Planning in Simulation Using Arm Warehouse Viewer
Gives instructions for launching the arm warehouse viewer for the motoman sia10D robot.
The following tutorials are specific to the dx100 package (<= ROS Groovy):
- Creating a DX100 Server Application(<=Groovy)
This tutorial walks through the steps of creating a server application for the dx100 controller. The server application runs on the controller and allows communications with ROS nodes.
The following tutorials are specific to the motoman_driver package(>=ROS Hydro). This package supports drivers for DX100, DX200, and FS100 controllers:
- Installing the Motoman ROS Server
This tutorial walks through the steps of installing the ROS server code on the FS, DX, and YRC robot controllers
- Using the Motoman FS/DX/YRC ROS Interface
This tutorial walks through the steps of using the DX/FS/YRC interface
- Creating a Dual-Arm System (Indigo+)
This tutorial is related to the setup and configuration for a Dual-Arm system(Multi-Groups) using the Motoman driver
Create a new tutorial:
External Package Tutorials
The following sections provide links to external packages on which ROS-Industrial depends on heavily.
MoveIt
The MoveIt package is the core arm planning library for ROS-Industrial. Tutorials can be found via the Docs menu on that page. Be sure to select the correct version.
Implementation Notes
The tutorials below include just implementation notes. They may or may not become complete tutorials themselves. They are included here because the information in them is not found anywhere else.
- Improving ROS-Industrial motion on an Industrial Robot (Implementation Notes)
This tutorial gives some background information and hint/tips/tricks to achieve faster and smoother motion when using ROS-Industrial
- Porting from Google Code to Github (Implementation Notes)
Short instructions for moving a package from Google code to Github
- Create a simple EtherCAT IO network (Implementation Notes)
- ROS-Industrial Pull Request Review Process
Outline of the ROS-Industrial core repository pull request review process.
- Verifying a new robot package (Implementation Notes)
- Porting Arm Navigation Package from Fuerte to Groovy (Implementation Notes)
- Installing PCL Plugin in ParaView (Implementation Notes)
- File and directory layout for robot support repositories (Implementation Notes)
How to organise files and directories within a robot support repository
Deprecated
The tutorials below have been deprecated since they do not apply to the current release of ROS-Industrial. The description indicates the last ROS-Industrial version in which they applied.
1. Create an Arm Navigation Package for and Industrial Robot(<=Groovy)
- This tutorial describes how to create and arm navigation package.
Industrial Calibration Toolbox
This tutorial shows how to use the intrinsic camera calibration package to compute the camera intrinsic parameters using a rail guide and calibration target. The procedure uses a slightly different cost function than OpenCV and Matlab. It relies on knowing the distance the camera is moved between successive images. When performed precisely, the routine is both quicker because it requires fewer images and more accurate because the parameters have lower co-variance.
This tutorial explains how to perform an extrinsic calibration of a network of cameras, through two examples. You will learn how to write and run a calibration script which defines the cameras, the targets, and a series of observations. You will also learn how to modify an existing Xacro or Urdf model to provide a seamless interface for installing the calibration results. You will also be introduced to the concept of a cost function. One significant contribution of this library is the variety of cost functions it contains.
This tutorial shows how to perform the extrinsic calibration of a David SLS-2 3D sensor on an industrial Fanuc robot.
This tutorial will explain how to use the industrial_extrinsic_cal package to calibrate one or two cameras to a checkerboard or circle grid target. If using two cameras, they both should have the same target in their field of view. If using the unchanged repository provided yaml files for parameters, then you will need at least one Asus/Kinect cameras and a checkerboard (12x12 square checkerboard (11x11 points)) or circle grid (5x7 circles).
Simple example for industrial extrinsic calibration using a webcam
Create a new tutorial: