What is Rosserial?

For beginners, ROS (Robotic Operation System) is a system that builds specially for robotics development. This system is very accurate and makes the robotic developers do more and more developments, improvements, and new innovation. There are so many packages that build to use when developing a robot. The subscriber publisher method has used to connect those packages and modules. Users can easily develop new packages by using C++ and python languages which are very familiar to the developers rather than other languages. Developers can do real-time and real-world simulation using Gazebo and ROS which is the best robotic simulation platform currently in the tech world.

No alt text provided for this image


Ok, then we look at ROSSERIAL. Imagine that you have for example new sensor or new actuator or any kind of device that you want to add to the ROS ecosystem. In this case, you are going to face two situations whether this hardware already has or has a driver and this means that it is already supported by Ross. So in this case you can connect it to us ecosystem around the driver and then you can get all the information coming from the hard work and then processing it using a robot operating system. It's possible for example you can buy a new laser scanner, for example, you use a scanner or actually be a camera like light or unit and they are already supported in robot operating system so you don't have to worry about all the problems of how to interface with them how to get data in your programs because the drivers are already built for them.

However, if you have another hardware that does not support trust and that you want to use it with a robot operating system and this is where we have problems. So, in this case, we are in front of two different situations that we need to develop our own drivers. And this is actually time-consuming and very tedious operation takes a lot of time and you know actually you need to develop your own interfaces and the message exchange between robot operating system and between the hardware itself. So, this is actually time-consuming.

I remember one time I had the project director a great sense of node, that is that they lost the sense of note and we went through a very long process in order to be to integrate the sensor into a robot operating system.

So, fortunately, there is a framework already provide a very important framework that solves this problem and it's called diversity. What is it or said here is basically a protocol that was designed in order to communicate between us and new hardware?  There are different types of hardware that are supported by serial I'm going to present them but basically, it allows the integration of microcontrollers and embedded systems with ours for example. Imagine that you have an Arduino microcontroller to which you have attached some sensors and you would like to access the sensor information or the sensor data coming through the Arduino microcontroller. So, this set here in this case can play around.

There are different types of embedded devices like embedded Linux and other microcontroller boards. Instead of defining yourself the hardware drivers the message serialization and all the communication protocol everything was already done in ROSSERIAL and this week simply fights a lot the integration of this new hardware into the ROS ecosystem.

basically, ROSSERIAL allows new electronic hardware that actually talked to us system natively. It means you can't even run a command inside the hardware itself and you do not need to develop your custom drivers and communication protocols which is basically time-consuming. Also, a ROSSERIAL is a protocol that wraps standard serialized messages and multiplexers multiple topics and services over a character device such as a serial port or a network socket. this means ROSSERIAL provides or the necessary method serialization to be exchanged between the raw system running in your embedded device and also the ROS eco-system that is running on your computer machine. Of course, ROS serial can be applied to a certain number of embedded devices, not any kind. There is a general serial client library.

So basically, we can use our serial client for any kind of microcontroller with the condition that it has the C++ compiler but also there are specific or serial class libraries for particularly embedded systems.

For example, the ROSSERIAL model for Arduino is called ROSSERIAL ARDUINO. There is ROS for embedded Linux that is ROSSERIAL are also for Windows platforms or embed Tieback SDN 32 and DC. These are the main embedded system platforms that have their proper serial killer and libraries in this area. We're going to present ROSSERIAL ARDUINO.

No alt text provided for this image


So, this is actually the architecture. You have a new microcontroller lets you have an hour window and we have also a computer that is running ROS And then you connect using a cellular connect the system to the computer.

No alt text provided for this image


ROS-side interface

rosserial_python: a python-based implementation (recommended for pc usage). Like sever running inside the computer

rosserial_server: A c++ implementation has some limitations compared to rosserial_python but recommended for high-performance applications.

For rosserial installation, guidelines can be get from Wiki_Rosserial.

To view or add a comment, sign in

More articles by Isuru Vindula

  • What is body language?

    What is body language now, body language is an integral part of your professional communication, a positive body…

  • Introduction to OpenC

    OpenCV is the most popular library for computer vision and image processing. ROS is an open-source, meta-operating…

Others also viewed

Explore content categories