In my last article “Why ROS is perfect for IOTA” I wrote about the Robot Operating System and tried to explain why it is perfect for IOTA. The article got a lot more attention than i had expected, so I decided to give a small introduction to my work. It will be a little more technical and I’ll show you some code (python), but hopefully I can explain it well enough for everyone to understand it.
The Robot Operating System (ROS)
The Robot Operating System is, as mentioned in my last article, an Operating System for nearly every kind of device in the Robotics. It can be applied on a Robot itself for controlling purposes, but also as a System for pure data collection in a car. It is super slim, so it can be used on low-powered devices like a Raspberry Pi or a Rock64.
What Are Messages, Topics and Nodes?
In order to understand this blogpost properly, I’ll briefly explain ROS nodes, messages and topics.
A node is able to process different tasks. For example you can have a node for calculating a current position out of acceleration measurements or, in this case, to proceed an IOTA transaction. Furthermore, a node is able to communicate with others by subscribing or publishing to a specific ‘’topic’’. A ‘’topic’’ is needed for nodes that they can get data for calculations or to provide data for other nodes. It’s like a noticeboard. If you need data, you can look which data is provided in a topic or you can leave a note for others so that everyone (every node) who is interested will be able to get the information you have left.
What I’ve Done so Far
I recently created a node which subscribes and publishes different topics. With these topics you are able to monitor an address for incoming transactions and you are able to send transactions by publishing into a specific topic.
In order to make all this a little more clear, I created a small showcase for this article. In this showcase a quadcopter (not a real one, just a simulation) will be paid for providing me with some data (in this case its position, but it could also be the engine temperatureor sth. else).
CurrentState of Development
The last few weeks, I did not have that much time to code due to my bachelor thesis, but I set myself the following goals for the IOTA ROS package:
- monitor incoming transactions.
- send a transaction when a message is published into the /iota/send_transaction topic
- publish the data from incoming transactions
- monitor confirmation status of transactions
- adding more features like MAM
I recently reached the goal #1,#2 and #3. Goal #4 is nearly ready, but there are some small bugs which i need yet to solve.
This showcase shall only serve as a small example of how easy it is to create a small showcase with the IOTA ROS implementation. Every time I pay the Quadcopter a small amount of IOTAs, the Quadcopter should send a message to an specific address. For this showcase I’ve used the ‘’Gazebo’’ simulation. This simulation provides a real time simulation environment for Quadcopters and allows you to monitor e.g. the current position (picture below (r.)) .