Advanced motion controls robotics symposium presentation-open standard tools for robotic control
Open Standard tools for Robotic Control – XML , PLCopen ,
ISO 6983 : A Delta Robot case sample
by: Christopher Fournier
Advanced Motion Controls
Robotics Symposium
Toronto , Canada , March 20, 2018
04/03/2018 1
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
The Software Concept
Component-based software engineering is the idea that project code can be
developed by gluing prefabricated components together much like in the field of electronics.
This concept enables software engineers to create new applications from reusable parts that
are interchangeable and reliable.
A software component is a system element offering a predefined service and able to
communicate with other components. A component is an object written to a specification.
A Function Block (FB) as described in the PLC language standard IEC61131-3 is the
software component that forms the basic building block of an Application (AP). FB is
implemented as a C++ class.
Example :
Application programs (AP) are built using a Visual , icon-based ,programming
language.
04/03/2018 ADVANCED Motion Controls 2
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Let’s start with some definitions:
- XML : XML stands for eXtensible Markup Language. XML was designed to
store and transport data. XML is just information wrapped in tags.
- PLCopen : PLCopen is a vendor- and product-independent worldwide
association. PLCopen was founded in 1992 and is focused around IEC 61131-3.
IEC 61131-3 standard is the only global standard for industrial control
programming. In particular , the PLCopen motion standard provides access to
extensive Class libraries that are reusable for multiple hardware platforms.
- ISO6983 : a data format for positioning, line motion and contouring control
systems used in the numerical control of machines. G-Code language.
04/03/2018 ADVANCED Motion Controls 3
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Definitions (cont.):
- Linear Delta Robot (LDR) : is a type of parallel robot manipulator in which
three prismatic (sliding) joints ( 1 DOF) move separate arms (translate them)
which connect to a single triangular end plate [1]
- Forward Kinematics : System of equations which can determine an end
effector’s position based on the position of the robot actuators. [2]
- Inverse Kinematics : Equations used to calculate the necessary actuator
positions to move the end effector to the desired position. [2]
04/03/2018 ADVANCED Motion Controls 4
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
TASK : Create the Control for a Linear Delta robot used in 3D Printing
04/03/2018 ADVANCED Motion Controls 5
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Challenges and Constraints :
Use PLCopen FB Class libraries to configure and create
the control logic
Allow for custom C++ code to be used/embedded in the
control logic as needed
Must use ISO 6983 G-code language for motion control
and path planning for Slicing program compatibility
Ability to Integrate/synchronize an Extruder axis
04/03/2018 ADVANCED Motion Controls 6
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Solution :
• Creation of a graphical programming environment with a logic schematic editor
• Use PLCopen FBs to create the logic for different states and kinematics
• Create XML files to define variables for the necessary FBs
• Create a UDFB (User Defined Function block) to handle the Delta robot
kinematics. Encapsulate C++ in the UDFB . Use the RobotHandling Library.
• Create a UDFB to translate G-code commands into PLCopen motion. Store in a
database
04/03/2018 ADVANCED Motion Controls 7
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Function Block Diagrams (FBD) used in this project
04/03/2018 ADVANCED Motion Controls 8
Logic schematic to process G-code files
Logic schematic to set coordinate system
and kinematic model
FBD in the project’s Source directory which
represents the entire project logic. It
encapsulates all other schematics.
Next : Let’s look at the Robot_Axes_Group schematic
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Setting the Coordinate Systems and Kinematic transformation :
04/03/2018 ADVANCED Motion Controls 9
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Setting the Coordinate Systems and Kinematic transformation :
04/03/2018 ADVANCED Motion Controls 10
Function Block generates Cartesian transformation
between the COORD_MCS and COORD_PCS.
Function Block generates kinematic transformation between the
COORD_ACS and COORD_MCS for DELTA Robot.
Function Block defines transformation between
the COORD_TCS and COORD_WCS
XML file
This FB creates an AXES_GROUP _REF
data structure.
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Using XML files to Configure the Robot_Delta FB Properties :
04/03/2018 ADVANCED Motion Controls 11
From within the C&M IDE : Using MS Visual Studio :
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Robot Delta FB – A look inside the encapsulated C++ code :
04/03/2018 ADVANCED Motion Controls 12
Variable Declarations (.h file)
Generates kinematic transformation between the ACS and
MCS for a DELTA Robot.
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Robot Delta FB – A quick look inside the encapsulated C++ code :
04/03/2018 ADVANCED Motion Controls 13
A “snippet” of kinematic source code (Delta.cpp file)
Generates kinematic transformation between the ACS and
MCS for a DELTA Robot.
Next : Let’s look at Handling the G-code file
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
Path Planning – Handling the G-code file from the Slicing program :
04/03/2018 ADVANCED Motion Controls 14
This FB converts G-code to MotionTask database,
which is a generic text-database file (xdb)
containing PLCopen style motion descriptions
G-code properties , initial
register settings and
GDataRef output
Executes the MotionTask ,
which performs G-code
controlled motion.
G-code file
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
How it all comes together - the Operator control :
04/03/2018 ADVANCED Motion Controls 15
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
04/03/2018 ADVANCED Motion Controls 16
Let’s Run the Project !
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By:
Case : A Linear Delta robot for 3D Printing
04/03/2018 ADVANCED Motion Controls 17
Citations :
[1] R.Clavel , “ Device for the positioning of an element in space “ U.S. Patent # 4.976.582 , Dec. 11 , 1990
[2] S.Kucuk and Z.Bingul, Industrial Robotics: Theory, Modelling and Control , Berlin 2006
sales@electromate.com
www.electromate.com
ELECTROMATE
Toll Free Phone (877) SERVO98
Toll Free Fax (877) SERV099
www.electromate.com
sales@electromate.com
Sold & Serviced By: