Open projects in laboratory of multi-agent systems in smart cities and Industry 4.0

Ivan Berman
Robonomics Network by Airalab
4 min readAug 19, 2021

--

This is a translation of a Russian-language article about our laboratory published on the Habr.com website in the blog of ITMO University. We would like to express our deep gratitude to ITMO University and its press office staff for the coverage of our activities. If you are a Habr.com user and you liked the article, please go to the source and give upvote to it.

Recently, we talked about five special open source tools [here, here and here], which were developed and managed by specialists, master’s and Phd students of ITMO University. Today we will share one more area — it is engaged in the Laboratory of Multi-Agent Systems in Smart Cities and Industry 4.0.

One of its main goals is the integration of autonomous cyber-physical systems into the digital economy and the implementation of the Robot-as-a-Service concept in practice. The idea is that a client orders services from a robot that “works” for its owner. Moreover, the devices themselves can “order” tasks from each other — in this context.

The laboratory deals with problems related to the connection of cyber-physical devices to decentralized networks, and develops methods for controlling complex and heterogeneous multi-agent systems. Specialists put their main emphasis on the cybersecurity of devices when operating in automatic mode and on resolving issues of unambiguous identification as well as immutability of data and valuable technical logs collected by such devices.

According to laboratory staff, such tasks may be of interest to enthusiasts involved in decentralized networks and projects if they would like to find new use cases for applying technologies they already know. Also, this may be of interest to developers and researchers in the field of robotics and Internet of Things. They can work in the laboratory together to conduct new types of research (e.g., in the human-machine interaction area) and reflect on the possibilities for commercializing projects involving robotic devices.

Our projects can also be useful for the businesses that would like to enter new technological markets, but are frightened off by the complexity and uncertainty. Since we are engaged in the implementation of cyber-physical systems in the digital economy, we see interest from representatives of government agencies.

- Ivan Berman, scientific administrator of the laboratory

Projects that are already in progress

The core of the laboratory’s projects is the Robonomics Network platform for creating applications with cyber-physical systems on a stack of decentralized and robotic technologies. It includes a Substrate framework for creating your own blockchains, the IPFS file system, some blockchain networks, and Robot Operating System as a universal connector for devices.

The laboratory is currently working on the following projects:

Sensor networks for objects of organizations and infrastructures. The idea is to create a digital footprint of objects that allows you to analyze the condition and manage assets and costs: from electricity consumption to the concentration of ultrafine particles in the room. In this direction, the laboratory has repositories that allow deploying telemetry from various sensors.

Water quality measurements using unmanned surface vehicles. Here we are talking about monitoring rivers and lakes using a small fleet of light-sized vessels equipped with compact sensors. In this case the safety and immutability of data is a significant factor due to potential disputes about the facts of pollution and the search for those responsible. To date, the laboratory has prepared two prototypes of such devices, made measurements of several water bodies, published an article in a scientific journal and agreed a collaboration with Libelium.

Sample code for one of the functions (from the project repository):

# Builds an offer message and publishes it
def make_offer(self, objective, cost):
rospy.loginfo('Making offer...')
offer = Offer()
offer.model = Multihash()
offer.model.multihash = rospy.get_param('~model')
offer.objective = objective
offer.token = Address()
offer.token.address = rospy.get_param('~token')
offer.cost = cost
offer.lighthouse = Address()
offer.lighthouse.address = rospy.get_param('~lighthouse')
offer.validator = Address()
offer.validator.address = '0x0000000000000000000000000000000000000000'
offer.lighthouseFee = UInt256()
offer.lighthouseFee.uint256 = '0'
offer.deadline = UInt256()
offer.deadline.uint256 = self.make_deadline()
self.signing_offer.publish(offer)
rospy.loginfo(offer)

Robot artist. The KUKA manipulator, who was taught to paint with a brush, creates art to finance its activities — to buy paints, canvases, etc. The point is to demonstrate a self-sustaining system that is, in a sense, entrepreneurial. Now the robot has been taught to generate NFT tokens of its art and sell them at an auction.

The laboratory believes that bringing all projects to their logical conclusion and opening several startups on their basis is a completely viable idea:

We would very much like to attract more like-minded people to the work of the laboratory. These may be third-year undergraduate (and older) engineering students who want to work with various types of robots, sensors, and DIY projects.

It is important to know and understand ROS, Linux, Python, Rust, JavaScript, and Matlab. Familiarity with distributed technologies (Ethereum, Polkadot, Bitcoin, IPFS) and network technologies (IPv6, cjdns, yggdrasil), plus the ability to work with hardware (microcontrollers, sensors, electric motors) will be a good help.

However, there are no strict requirements. If you are well versed in at least a couple of items from this list, you are welcome to come.

- Vadim Manaenko, head of the laboratory

--

--