Why ROS is perfect for IOTA

Moin Moin! Servus! Hello!

For this short blog post I have to introduce myself shortly. My name is Michael and I’m studying Electrical Engineering. The last few months I was very busy in writing my bachelor’s thesis about the implementation of a quadcopter autopilot into the ROS framework. And at that time I realized that the ROS framework and IOTA match perfectly. But what is ROS and how does it match with IOTA? Thats the question I’m dealing with in this blogpost.

What is ROS?

ROS is short for the Robot Operating System. It is an open source meta-operating system and is used for every kind of robot (e.g. a quadcopter, turtlebot, service roboter , …). In the past robots needed to be programmed for their own. The more complex the robots became, the more complicated the programs became too. A big disadvantage was, that the programs couldn’t be easily reused because the programs were tightly interlaced with the hardware. ROS is a solution for that problem. With ROS you are able to create hardware independent “programs”, called packages. That makes it very modular and easy to use. Another advantage is, that ROS is language independent. You are able to create those packages in the programming language you prefer. Currently, Python, C++, and Lisp are supported. Java and Java Script libraries are in the experimental phase.

For those who want a more detailed explanation I highly recommend the ROS Wiki: http://wiki.ros.org/ROS/Introduction.

Why is ROS perfect for IOTA?

In the last few days I tried to integrate IOTA into the ROS framework, so I created a ROS package in which I would like to introduce you now. With this package you are able to create so-called “Nodes”(slightly different to these which run the IOTA network) . These nodes are used for processing tasks and they are able to create topics in which they publish data or other stuff. Other nodes are able to subscribe to those topics and use the data for other processing tasks. This is the part where it gets interesting. The node from my package creates a topic in which you can publish all the data you need for a transaction.

Abb.1: Topic, published from an IOTA package created node

Everytime you publish that data into the topic, the node will create a transaction automatically, regardless of the transaction value. This allows any ROS programmer to be able to send automatically transactions to the Tangle, independent of his IOTA knowledge and his preferred programming language. Furthermore it will allow IOTA transactions, on nearly every kind of robot, whether quadcopter, mobile service or some highly specialized robots. It won’t matter. Even localization with GPS data and digital twins are possible due to the zero value transactions. This package is just a small programm but I think it provides a good solution to help ROS programmern integrating IOTA.

My future plans:

In future I want to continue developing the IOTA_ROS_PKG. One of the goals is the creation of a topic to read and analyze the messages from a transaction easily. I want to invite anyone who knows a little about ROS to contribute in the developing.

git repository: https://github.com/MichiKuhl/iota_ros_pkg

With this blogpost I want to motivate the community to contribute in developing, even if you have no clue about programming. I created that package written in Python within a few days with zero programming skills in Python. Therefore I want to give a big thank you to John Grant for his great tutorial. It was a great help. https://medium.com/@johngrant/iota-python-a-beginning-8067f29a7e0 .

If you liked my blogpost it would be nice if you would consider to leave a donation.