As the English Soccer player and coach, Alf Ramsey once wisely said: “Never change a winning team!”. Although the project team excels at modesty, it was impossible to resist continuing our work at the TUDelft Aerospace Structures and Materials department. Make sure to read the article regarding the project executed during the first half of the Smart Manurfacturing and Robotics minor (http://smrdelft.nl/tudelft-tape-laying-system/) before continuing to read about the next level.
Although the result of the SMR1 project exceeded the expectations, the tape laying system still lacked certain characteristics like user-friendliness and flexibility. If the user would, for example, want to tape a laminate of a certain size that was not yet in the system, a new pattern needed to be programmed manually. Seeing the test purposes of the taped laminates, being able to change parameters such as length, width, tape width and angles is essential.
The previous project also featured a vision system capable of detecting the location and orientation of the aluminium plate which is used as mould for the system to lay tap on. The vision system could be used and did work as intended but was not very accurate. The system worked only with one specific kind of camera and its corresponding vision software. During the new project a different approach was taken in order to try to fix these problems.
Goal of this project
In order to fix the mentioned problems the following goals were set for the project:
- Develop software to generate robot code or control the robot directly to lay a laminate with variable parameters.
- Create a more accurate and robust vision system capable of detecting the position, angle and size of the mould.
- Make a program that can check if the wanted laminate fits on the detected panel and gives feedback according to its conclusion.
- Automatically adjust the path of the robot to the location and orientation of the mould as determined by the vision system.
- Make sure that the vision system can work with any camera and is not camera specific.
- Create a user interface for the input parameters of the laminate and visual feedback of laminate pattern and vision system
In short, create a more flexible tape lay system!
In order to achieve all the set goals a new piece of software has been developed. The program consist of six separate programs which communicate through ROS (Robot Operating System). Each program fulfils a separate function in the process of converting the input of the system into the wanted laminate. ROS is an open source, meta operating system specially designed to be used with industrial robots.
The following six programs are part of the system:
- Camera driver
- Vision program
- Graphical User Interface (GUI)
- Compare program
- Pattern generator
- KUKA-code generators
The figure below shows the interaction between the different programs. The GUI conducts the whole process through different service calls. The service calls specify the input and output for each part of the system and make sure that the right things are communicated to the right programs.
Graphical User Interface (GUI)
The GUI is used to input all the parameters into the system. In order for the process to be executed successfully, all parameters need to be supplied. The user is able to insert multiple layers into the sequence and change the order as desired. After pressing the submit button the process will be executed.
A vision system is needed to determine the location and orientation, as well as the size of the mould. The vision system consists of two parts, acquiring of the image and processing of the image. The first part is accomplished by using a driver compatible with the used camera. The processing is done in OpenCV. OpenCV is an open source vision based programming library. By keeping this parts separated it is as easy as possible to integrate a different camera in the future.
To make the processing of the image more accurate and robust the background was changed to a black plate. Without the black background the system would be less reliable and could sometimes give the wrong values.
Pattern and KUKA-code generators
In order to make the system lay the intended laminate it has to be supplied with two files. A *.dat-file which mostly contains the information of the different coordinate that the robot has to move to, and a *.src-file which specifies in which order and what manner the robot needs to move to these coordinate. So in order to create these files, the coordinates need to be calculated and written in the defined KUKA templates.
The coordinates are calculated using simple geometry using the user input. Depending on the size of the laminate, the width of the tape and the angles the coordinates change. After calculating the coordinates it gives a graphical overview of the result. An example of such an overview can be seen in the picture below and includes the path in blue, the different points in red that are calculated and the final shape of the desired laminate in green.
To create the files that the robot can work with the laminate data, an array with all the coordinates and rotations, is sent to two individual programs. These programs are responsible for writing either the *.dat or *.src-file to a specified location on a data storage device. These files can then be transferred to the robot after which it can be executed and the laminate will be taped.
All the set goals have been met resulting in a semi-automatic flexible tape laying system. It can be concluded that a next level has been reached. There are still steps that can and should be taken in order to improve the system but the result of the project exceeded the clients expectations and can thus be called successful.