overview&of&jopenshowvar&v0.2&for&kuka…filipposanfilippo.inspitivity.com/posters/...v02-for-kuka-robots.pdf ·...

1
RESEARCH POSTER PRESENTATION DESIGN © 2012 www.PosterPresentations.com INTRODUCTION CONCLUSIONS REFERENCES [1] Filippo Sanfilippo, Lars Ivar Hatledal, Houxiang Zhang, Massimiliano Fago and Kristin Ytterstad Pettersen. JOpenShowVar: an Open-Source Cross-Platform Communication Interface to Kuka Robots. In Proceeding of the IEEE International Conference on Information and Automation (ICIA), Hailar, China. 2014, 1154–1159. [2] Filippo Sanfilippo, Lars Ivar Hatledal, Hans Georg Schaathun, Kristin Ytterstad Pettersen and Houxiang Zhang. A Universal Control Architecture for Maritime Cranes and Robots Using Genetic Algorithms as a Possible Mapping Approach. In Proceedings of the IEEE International Conference on Robotics and Biomimetics (ROBIO), Shenzhen, China. 2013, 322–327. [3] Filippo Sanfilippo, Lars Ivar Hatledal, Houxiang Zhang and Kristin Ytterstad Pettersen. A Mapping Approach for Controlling Different Maritime Cranes and Robots Using ANN. In Proceeding of the IEEE International Conference on Mechatronics and Automation (ICMA), Tianjin, China. 2014, 594–599. [4] Lars Ivar Hatledal, Filippo Sanfilippo and Houxiang Zhang. JIOP: a Java Intelligent Optimisation and Machine Learning Framework. In Proceedings of the 28th European Conference on Modelling and Simulation (ECMS), Brescia, Italy. 2014, 101–107. JOpenShowVar, a Java open-source cross-platform communication interface to Kuka robots, was previously introduced by our research group [1]. JOpenShowVar allows for read-write use of the controlled manipulator variables and data structures. This interface, which is compatible with all Kuka robots that use KR C4 and previous versions, runs as a client on a remote computer connected with the Kuka controller. JOpenShowVar opens up to a variety of possible applications, making both the use of various input devices and sensors as well as the development of alternative control methods possible. In this work, a first overview of the new, more flexible and efficient, procedures that have been introduced in the latest release of the library is introduced. These new methods replace the old fundamental reading and writing method that is now marked as deprecated. On top of these new methods, some other high-level functions can be built for angles and torques reading of the controlled manipulator. Overview of JOpenShowVar v0.2 for Kuka Robots CONTACTS Filippo Sanfilippo is a PhD candidate in Engineering Cybernetics at the Norwegian University of Science and Technology and research assistant at the faculty of Marine Technology and Operations, Aalesund University College. Supervisors: Professor Kristin Ytterstad Pettersen, Professor Houxiang Zhang and Professor Domenico Prattichizzo. Email: [email protected] Fig. 1 The idea of realising a communication interface for Kuka robots that works as a middleware between the user program and the Kuka Robot Language (KRL). This paper highlights the features of JOpenShowVar latest release. Two more flexible and efficient, procedures are introduced in the latest version of the library to replace the old fundamental reading and writing method that is now marked as deprecated. In the future, different control algorithms such as the ones implemented in [2], [3] and [4] may be tested as alternatives to the standard kinematic method. JOpenShowVar works as a middleware between the user program and the KRL, as shown in Fig. 1. The proposed control system architecture is shown in Fig. 2. It is a client-server architecture with JOpenShowVar running as a client on a remote computer and KUKAVARPROXY acting as a server on the KRC. JOpenShowVar locally interacts with the user program and remotely communicates with the KUKAVARPROXY server via TCP/IP. r z_R^(n_z ) tees F. Sanfilippo, L. I. Hatledal and H. Zhang Department of Mari/me Technology and Opera/ons Aalesund University College Postboks 1517, 6025 Aalesund, Norway {fisa, laht, hozh}@hials.no K. Y. Peaersen Department of Engineering Cyberne/cs Norwegian University of Science and Technology 7491 Trondheim, Norway kris/[email protected] BACKGROUND try (CrossComClient client = new CrossComClient(" 158.38.140.193", 7000)) { //JOpenShowVar v0.1 reading Callback readRequest = client.sendRequest(new Request(0, "$OV_JOG")); System.out.println(readRequest); //JOpenShowVar v0.1 writing Callback writeRequest = client.sendRequest(new Request(1, "$OV_JOG", "100")); System.out.println(writeRequest); //JOpenShowVar v0.2 reading KRLReal jog = KRLVariable.OV_JOG(); client.readVariable(jog); System.out.println(jog); //JOpenShowVar v0.2 writing jog.setValue(10); client.writeVariable(jog); System.out.println(jog); } Algorithm 1 A use-case example that highlights the differences between the new methods and the deprecated sendRequest method. JOpenShowVar (Middleware) User Program KRL (Kuka Robots) KRC Remote Computer KUKAVARPROXY JopenShowVar User Program TCP/IP Fig. 2 The proposed architecture for JOpenShowVar: a client-server model is adopted. In particular, KUKAVARPROXY is a multi-client server that is written in Visual Basic 6.0 and can serve up to 10 clients simultaneously. KUKAVARPROXY implements the Kuka CrossComm class. The interface of this class allows for the interaction with the real- time control process of the robot and makes it possible to perform several operations such as selection or cancellation of a specific program, errors and faults detection, renaming program files, saving programs, resetting I/O drivers, reading variables and writing variables. KUKAVARPROXY implements the reading and writing methods. All the variables that need to be accessed by these methods have to be declared as global variables in the predefined global system data list $CONFIG.DAT. All kinds of variables can be declared in this file from basic types such as INT, BOOL and REAL to more complex structures like E6POS and E6AXIS that allow for storing the robot configuration. Moreover, several system variables can be accessed provided there are no restrictions due to the type of data such as for $PRO_IP, $POS_ACT, $AXIS_ACT or $AXIS_INC. For example, the current robot position, $POS_ACT, cannot be written but only read. Restrictions of this nature are checked by the controller. However, it should be noted that the Kuka CrossComm class does not provide a real-time access to the robot's data. In fact, it takes a non-deterministic time to access a specific variable. Since Kuka does not offer any kind of documentation on this topic, several experimental tests were performed at our laboratory in order to asses this time interval. According to our experiments, the average access time is about 5 ms. Moreover, this time interval is not affected by the kind of access to be performed (whether it is a reading or a writing operation) or by the length of the message. For these reasons, it is advantageous to aggregate several variables in logical structures when reading or writing data. By using data structures it is possible to simultaneously access several variables, thereby minimising the access time. The only limitation to this approach is on the length of the logical structures that cannot exceed 255 bytes. JOpenShowVar provides a client, CrossComClient, which is written in Java, thus making cross-platform support possible. As presented in our previous work [1], the client initially provided only one low level method, sendRequest. This method allows for both reading and writing variables. The sendRequest method returns a Callback instance containing the updated value. However, in the latest release of JOpenShowVar, starting from version v0.2, the sendRequest is marked as a deprecated method, since two new more flexible and efficient methods are introduced: readVariable and writeVariable. NEW METHODS Since the release version v0.2 of JOpenShowVar, the sendRequest is marked as a deprecated method. To replace this old method, two new more reliable methods are added to the CrossComClient: the readVariable method allows for reading any desired remote variable or structure from the controlled robot and store it locally. An exception is thrown if an error in the communication protocol occurs; the writeVariable method allows for updating any desired remote variable or structure of the controlled robot with the value of the corresponding local variable or structure, respectively. An exception is thrown if an error in the communication protocol occurs. The deprecated sendRequest method is being kept as part of the JOpenShowVar library simply because the GUI still uses it for a practical reason. In fact, this old method does not require any knowledge on the internal structure of the variables to be accessed compared to the newly introduced methods. It should be noted that the new method writeVariable cannot handle arrays, this can only be done by using the old sendRequest method. In the Algorithm 1 sketch box a possible use-case example is shown.

Upload: phamxuyen

Post on 09-Apr-2018

222 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Overview&of&JOpenShowVar&v0.2&for&Kuka…filipposanfilippo.inspitivity.com/posters/...v02-for-kuka-robots.pdf · Since Kuka does not offer any kind of documentation on this topic,

RESEARCH POSTER PRESENTATION DESIGN © 2012

www.PosterPresentations.com

(—THIS SIDEBAR DOES NOT PRINT—) DES IGN GUIDE

This PowerPoint 2007 template produces an A0 presentation poster. You can use it to create your research poster and save valuable time placing titles, subtitles, text, and graphics. We provide a series of online tutorials that will guide you through the poster design process and answer your poster production questions. To view our template tutorials, go online to PosterPresentations.com and click on HELP DESK. When you are ready to print your poster, go online to PosterPresentations.com Need assistance? Call us at 1.510.649.3001

QUICK START

Zoom in and out As you work on your poster zoom in and out to the level that is more comfortable to you. Go to VIEW > ZOOM.

Title, Authors, and Affiliations

Start designing your poster by adding the title, the names of the authors, and the affiliated institutions. You can type or paste text into the provided boxes. The template will automatically adjust the size of your text to fit the title box. You can manually override this feature and change the size of your text. TIP: The font size of your title should be bigger than your name(s) and institution name(s).

Adding Logos / Seals Most often, logos are added on each side of the title. You can insert a logo by dragging and dropping it from your desktop, copy and paste or by going to INSERT > PICTURES. Logos taken from web sites are likely to be low quality when printed. Zoom it at 100% to see what the logo will look like on the final poster and make any necessary adjustments. TIP: See if your school’s logo is available on our free poster templates page.

Photographs / Graphics You can add images by dragging and dropping from your desktop, copy and paste, or by going to INSERT > PICTURES. Resize images proportionally by holding down the SHIFT key and dragging one of the corner handles. For a professional-looking poster, do not distort your images by enlarging them disproportionally.

Image Quality Check Zoom in and look at your images at 100% magnification. If they look good they will print well.

ORIGINAL( DISTORTED(

Corner&handles&

Good

&prin

/ng&qu

ality

&

Bad&prin/n

g&qu

ality

&

QUICK START (cont. )

How to change the template color theme You can easily change the color theme of your poster by going to the DESIGN menu, click on COLORS, and choose the color theme of your choice. You can also create your own color theme. You can also manually change the color of your background by going to VIEW > SLIDE MASTER. After you finish working on the master be sure to go to VIEW > NORMAL to continue working on your poster.

How to add Text The template comes with a number of pre-formatted placeholders for headers and text blocks. You can add more blocks by copying and pasting the existing ones or by adding a text box from the HOME menu.

Text size

Adjust the size of your text based on how much content you have to present. The default template text offers a good starting point. Follow the conference requirements.

How to add Tables

To add a table from scratch go to the INSERT menu and click on TABLE. A drop-down box will help you select rows and columns.

You can also copy and a paste a table from Word or another PowerPoint document. A pasted table may need to be re-formatted by RIGHT-CLICK > FORMAT SHAPE, TEXT BOX, Margins.

Graphs / Charts You can simply copy and paste charts and graphs from Excel or Word. Some reformatting may be required depending on how the original document has been created.

How to change the column configuration RIGHT-CLICK on the poster background and select LAYOUT to see the column options available for this template. The poster columns can also be customized on the Master. VIEW > MASTER.

How to remove the info bars

If you are working in PowerPoint for Windows and have finished your poster, save as PDF and the bars will not be included. You can also delete them by going to VIEW > MASTER. On the Mac adjust the Page-Setup to match the Page-Setup in PowerPoint before you create a PDF. You can also delete them from the Slide Master.

Save your work Save your template as a PowerPoint document. For printing, save as PowerPoint of “Print-quality” PDF.

Print your poster When you are ready to have your poster printed go online to PosterPresentations.com and click on the “Order Your Poster” button. Choose the poster type the best suits your needs and submit your order. If you submit a PowerPoint document you will be receiving a PDF proof for your approval prior to printing. If your order is placed and paid for before noon, Pacific, Monday through Friday, your order will ship out that same day. Next day, Second day, Third day, and Free Ground services are offered. Go to PosterPresentations.com for more information.

Student discounts are available on our Facebook page. Go to PosterPresentations.com and click on the FB icon.

©&2013&PosterPresenta/ons.com&&&&&2117&Fourth&Street&,&Unit&C&&&&&&&&&&&&&&Berkeley&CA&94710&&&&&[email protected](

INTRODUCTION(

CONCLUSIONS(

REFERENCES([1] Filippo Sanfilippo, Lars Ivar Hatledal, Houxiang Zhang, Massimiliano Fago and Kristin Ytterstad Pettersen. JOpenShowVar: an Open-Source Cross-Platform Communication Interface to Kuka Robots. In Proceeding of the IEEE International Conference on Information and Automation (ICIA), Hailar, China. 2014, 1154–1159. [2] Filippo Sanfilippo, Lars Ivar Hatledal, Hans Georg Schaathun, Kristin Ytterstad Pettersen and Houxiang Zhang. A Universal Control Architecture for Maritime Cranes and Robots Using Genetic Algorithms as a Possible Mapping Approach. In Proceedings of the IEEE International Conference on Robotics and Biomimetics (ROBIO), Shenzhen, China. 2013, 322–327. [3] Filippo Sanfilippo, Lars Ivar Hatledal, Houxiang Zhang and Kristin Ytterstad Pettersen. A Mapping Approach for Controlling Different Maritime Cranes and Robots Using ANN. In Proceeding of the IEEE International Conference on Mechatronics and Automation (ICMA), Tianjin, China. 2014, 594–599. [4] Lars Ivar Hatledal, Filippo Sanfilippo and Houxiang Zhang. JIOP: a Java Intelligent Optimisation and Machine Learning Framework. In Proceedings of the 28th European Conference on Modelling and Simulation (ECMS), Brescia, Italy. 2014, 101–107.

JOpenShowVar, a Java open-source cross-platform communication interface to Kuka robots, was previously introduced by our research group [1]. JOpenShowVar allows for read-write use of the controlled manipulator variables and data structures. This interface, which is compatible with all Kuka robots that use KR C4 and previous versions, runs as a client on a remote computer connected with the Kuka controller. JOpenShowVar opens up to a variety of possible applications, making both the use of various input devices and sensors as well as the development of alternative control methods possible. In this work, a first overview of the new, more flexible and efficient, procedures that have been introduced in the latest release of the library is introduced. These new methods replace the old fundamental reading and writing method that is now marked as deprecated. On top of these new methods, some other high-level functions can be built for angles and torques reading of the controlled manipulator.

Overview&of&JOpenShowVar&v0.2&for&Kuka&Robots&

CONTACTS(

Filippo Sanfilippo is a PhD candidate in Engineering Cybernetics at the Norwegian University of Science and Technology and research assistant at the faculty of Marine Technology and Operations, Aalesund University College. Supervisors: Professor Kristin Ytterstad Pettersen, Professor Houxiang Zhang and Professor Domenico Prattichizzo. Email: [email protected]

Fig. 1 The idea of realising a communication interface for Kuka robots that works as a middleware between the user program and the Kuka Robot Language (KRL).

This paper highlights the features of JOpenShowVar latest release. Two more flexible and efficient, procedures are introduced in the latest version of the library to replace the old fundamental reading and writing method that is now marked as deprecated. In the future, different control algorithms such as the ones implemented in [2], [3] and [4] may be tested as alternatives to the standard kinematic method.

JOpenShowVar works as a middleware between the user program and the KRL, as shown in Fig. 1. The proposed control system architecture is shown in Fig. 2. It is a client-server architecture with JOpenShowVar running as a client on a remote computer and KUKAVARPROXY acting as a server on the KRC. JOpenShowVar locally interacts with the user program and remotely communicates with the KUKAVARPROXY server via TCP/IP.

rz_R^(n_z )tees

F.&Sanfilippo,&L.&I.&Hatledal&and&H.&Zhang&Department&of&Mari/me&Technology&and&Opera/ons&

Aalesund&University&College&Postboks&1517,&6025&Aalesund,&Norway&

{fisa,&laht,&hozh}@hials.no&&

K.&Y.&Peaersen&Department&of&Engineering&Cyberne/cs&

Norwegian&University&of&Science&and&Technology&7491&Trondheim,&Norway&

kris/[email protected]&&

BACKGROUND(

try (CrossComClient client = new CrossComClient(" !158.38.140.193", 7000)) {

//JOpenShowVar v0.1 reading!Callback readRequest = client.sendRequest(new Request(0,

!"$OV_JOG")); System.out.println(readRequest);!//JOpenShowVar v0.1 writing!Callback writeRequest = client.sendRequest(new Request(1,

!"$OV_JOG", "100")); System.out.println(writeRequest);!//JOpenShowVar v0.2 reading!KRLReal jog = KRLVariable.OV_JOG();!client.readVariable(jog);!System.out.println(jog);!//JOpenShowVar v0.2 writing!jog.setValue(10);!client.writeVariable(jog);!System.out.println(jog); }

Algorithm 1 A use-case example that highlights the differences between the new methods and the deprecated sendRequest method.

JOpenShowVar(Middleware)User Program KRL (Kuka Robots)

KRCRemote ComputerKUKAVARPROXY

JopenShowVar

User ProgramTCP/IP

Fig. 2 The proposed architecture for JOpenShowVar: a client-server model is adopted.

In particular, KUKAVARPROXY is a multi-client server that is written in Visual Basic 6.0 and can serve up to 10 clients simultaneously. KUKAVARPROXY implements the Kuka CrossComm class. The interface of this class allows for the interaction with the real-time control process of the robot and makes it possible to perform several operations such as selection or cancellation of a specific program, errors and faults detection, renaming program files, saving programs, resetting I/O drivers, reading variables and writing variables. KUKAVARPROXY implements the reading and writing methods. All the variables that need to be accessed by these methods have to be declared as global variables in the predefined global system data list $CONFIG.DAT. All kinds of variables can be declared in this file from basic types such as INT, BOOL and REAL to more complex structures like E6POS and E6AXIS that allow for storing the robot configuration. Moreover, several system variables can be accessed provided there are no restrictions due to the type of data such as for $PRO_IP, $POS_ACT, $AXIS_ACT or $AXIS_INC. For example, the current robot position, $POS_ACT, cannot be written but only read. Restrictions of this nature are checked by the controller. However, it should be noted that the Kuka CrossComm class does not provide a real-time access to the robot's data. In fact, it takes a non-deterministic time to access a specific variable. Since Kuka does not offer any kind of documentation on this topic, several experimental tests were performed at our laboratory in order to asses this time interval. According to our experiments, the average access time is about 5 ms. Moreover, this time interval is not affected by the kind of access to be performed (whether it is a reading or a writing operation) or by the length of the message. For these reasons, it is advantageous to aggregate several variables in logical structures when reading or writing data. By using data structures it is possible to simultaneously access several variables, thereby minimising the access time. The only limitation to this approach is on the length of the logical structures that cannot exceed 255 bytes. JOpenShowVar provides a client, CrossComClient, which is written in Java, thus making cross-platform support possible. As presented in our previous work [1], the client initially provided only one low level method, sendRequest. This method allows for both reading and writing variables. The sendRequest method returns a Callback instance containing the updated value. However, in the latest release of JOpenShowVar, starting from version v0.2, the sendRequest is marked as a deprecated method, since two new more flexible and efficient methods are introduced: readVariable and writeVariable.

NEW(METHODS(Since the release version v0.2 of JOpenShowVar, the sendRequest is marked as a deprecated method. To replace this old method, two new more reliable methods are added to the CrossComClient: •  the readVariable method allows for reading any desired remote variable or

structure from the controlled robot and store it locally. An exception is thrown if an error in the communication protocol occurs;

•  the writeVariable method allows for updating any desired remote variable or structure of the controlled robot with the value of the corresponding local variable or structure, respectively. An exception is thrown if an error in the communication protocol occurs.

The deprecated sendRequest method is being kept as part of the JOpenShowVar library simply because the GUI still uses it for a practical reason. In fact, this old method does not require any knowledge on the internal structure of the variables to be accessed compared to the newly introduced methods. It should be noted that the new method writeVariable cannot handle arrays, this can only be done by using the old sendRequest method. In the Algorithm 1 sketch box a possible use-case example is shown.