The outcome of the first three semesters of my study in ITECH was a carbon/glass fiber wound pavilion based on a variety of research topics such as biomimetic, structural simulation, material study, and advanced fabrication techniques utilizing aerial-robots and robotic arms.
Done by more than 30 researchers, ITECH Research Pavilion 2016/17 demonstrate a new architectural expression by combining a variety of expertise. Development of fabrication agents and the communication between themselves and users was an aspect of this project I contributed the most.
“The concept of the fabrication process is based on the collaboration between strong and precise, yet stationary machines with limited reach and mobile, long-range machines with limited precision. In the specific experimental set-up, two stationary industrial robotic arms with the strength and precision necessary for fibre winding work are placed at the extremities of the structure, while an autonomous, long range but less precise fibre transportation system is utilized to pass the fibre from one side to the other, in this case a custom-built UAV..” ICD website
Here I will describe scopes I mainly participated. You can find more information about this project and credits here.
Use of quadcopter as an autonomous transportation system between two industrial arms was one of the key features of our research pavilion. Our task (as drone team) was to develop required hardware and software for this machine.
Thanks to this development we had the chance to work with ROS as the main software framework. Localization based on A.R. Markers, integration with onboard sensors such as flow sensor, generating control commands in order to navigate toward a point, and dispatching these command from the onboard computer to flight controller (Pixhawk) are the main functionalities we implemented.
Websocket components of Bengesht were developed at the same time to simplify the communication between Grasshopper and ROS ecosystem (though RosBridge package).
Two KUKA industrial robotic arms were programmed by KRC4. KRC4 can be considered as a low-level programming language which made finding a scalable software architecture a crucial part of this task since it was developed heavily based on RSI (asynchronised).
The outcome of this research was a scalable architecture in which we could invoke different modules and pass parameters in real-time over the network. This customized structure of KRC4 code made it easy to maintain and easy to introduce new functionalities which were an important part of our workflow in the research pavilion.
In order to connect these robotic arms to overall ROS network, KUKA_IO package was developed. This package is able to establish the connection to KRC over UDP and prepare packages based on RSI specifications.
ROS as the underlying communication framework came handy later when we attached an I.R. cameras and a pneumatic gripper controlled by Arduino boards on each Kuka robot. I.R. cameras where used to correct the position of robots before exchanging effector between Drone and Kukas. Also, grippers had to be controlled perfectly with drone’s onboard Electro Permanent Magnet. This complexity wouldn’t be possible without having a unified and clear messaging system between these nodes.
SERIAL_IO package was developed in response to this need. Using this package we managed to handle three connected Arduino boards and route the messages to the targeted serial port.
Each fabrication step required different functions of different agents to be invoked at the right sequence (Tasklist). Tasklist was a sequence of commands in which messages and their targeted (ROS) topic were describes.
TASK_IO was a web application responsible for reading the Tasklists, communicate with different RosCores over WebSocket (RosBridge) and observe the state of each task in order to jump to the next command when the current task was done. Text to speech functionality of this application simplified the process of dispatching commands to users intuitively.