Presentations of the second ROS Meetup on the topics: Gazebo and tools for robots


On April 18, the next online ROS Meetup will take place , and we continue to publish recordings of reports from the past ROS Meetup, which took place on November 30, 2019 in Moscow and gathered more than 200 ROS amateurs who shared their experience and knowledge.

In this publication, you can get acquainted with a selection of speeches about the
Gazebo robotics simulator, robot behavior and datasets.

So let's go!

Using the Gazebo Simulator in Robotics


Report author: Alexander Bogoslovsky

Presentation
slides Sometimes it’s not possible to interact with the robot “live”, in which case you have to turn to simulators. And if it comes to ROS, then first of all to the Gazebo simulator, since it was originally created for use with ROS. Gazebo holds many robotic competitions, including in such eminent organizations as DARPA and NASA. This simulator will help to implement almost any solid-state robot, such as a humanoid, a wheeled robot, a copter, an underwater robot, and so on.

Robots for Gazebo are created in the URDF (Unified Robotic Description Format) format - XML ​​markup that describes the robot links and the nodes of communication between them. Since this is a universal format, which is also necessary for positioning real robots on ROS (for example, robot_state_publisher and joint_state_publisher packages), it was not originally intended to describe the entire robot. Therefore, when importing a model into Gazebo, the URDF format is converted to SDF (Simulation Description Format), which may already contain all the necessary information for modeling, including surface materials, color, sensors, and so on. The world of simulation, in which we further place the robot, essentially has the same SDF format. And the extensions of the names of such files to describe the world have the form ".world".

Gazebo owes its versatility to a wide range of plugins created by the community, as well as fully open source. When tasks become too specific, you can write your own plugin based on the provided API to complete them. A large community of users will help in writing, as well as a huge number of Gazebo training articles on the official website of the simulator. But it is far from always necessary to write your own plugin - the basic functionality of the simulator is very extensive.

This report reviews the functionality and features of Gazebo, as well as its strengths and weaknesses, which can help decide on the use of this simulator in your project.

Behavior Tree as a way of defining a robot action script


Report author: Evgeny Safronov

Presentation slides
In many cases, the behavior of the robot should be not only complex and diverse, but also as predictable as possible (preferably 100%). Statistical behavior models based on ML methods allow simulating very complex actions, but it is still difficult to guarantee the safety and transparency of robot behavior. In such cases, engineers resort to various state machines. An alternative to them is Behavior Trees / BT trees, which came to robotics from the gaming industry.

In this video, we will start with the basics of the Behavior Tree - consider the types of nodes and leaves, the rules for traversing (executing) a tree, analyze the two main styles for creating BT - imperative and reactive, and make sure that they are rarely used in their pure form. We will discuss what BT can be from the point of view of machine learning and how ML methods can be integrated into a tree structure created by hand, we will see that node templates, like classes in OOP, help to encapsulate behavior, increase the readability of tree logic and create separate libraries. Finally - a brief overview of ready-made frameworks for working with ROS. There is no clear leader, everyone has different approaches to many key aspects, from basic semantics to interaction with ROS. However, now you can download and try to connect BT to your robot / simulator!

What's in your bag? How to work with bag-files and not drown in data


Report author: Oleg Shipitko

Presentation slides
It's no secret that bag-files are the main data logging format in ROS. Most developers who have at least once encountered ROS know what bag-files are and how to work with them. However, not everyone thought about such issues as:
  • How is the bag file inside?
  • how to reduce its volume?
  • What else can I do with bag-files besides recording and playback?
  • What should I do if the type of one of the messages has changed, but I don’t want to eject all previously recorded files?

The answers to these and other questions are dedicated to our presentation.

In our speech, we tried to answer each of them.
The report is divided into several parts. In the beginning, the format for storing bag-files and their internal structure is considered.

The second part of the report discusses the features of recording files. The non-obvious and rarely used arguments of the rosbag record command are highlighted. Features of writing to a bag-image file are considered. The algorithms used to compress bag-files are described.

In the part devoted to simplicity and inspection of recorded files, commands are considered that allow you to view the contents of a bag-file, as well as find out what topics it contains. Particular attention is paid to the rqt_bag file inspection tool and its main features.

The data recorded in bag-files can be used to test various classification algorithms. In this case, the task of marking up the data arises - matching the data set with a certain tag that defines the class that is correct for the given data set. As an example of a tool for solving such a problem, the report considers the package rosbag-sliding-windows-annotator, which allows you to use data from visual topics as a basis for annotating numerical data. At the same time, the necessary classes for markup are loaded from the user json-file, which makes the package configurable for many markup tasks.

When storing a large number of bag-files, the task of quickly finding a file that meets some criteria arises. For a mobile robot, such criteria may be, for example, a specific weather, a route of movement, the presence / absence of a specific event in a file (for example, a person blocking a robot's path), etc. To quickly search for a file that meets the required set of criteria, the files can be annotated - map each file a certain compressed amount of information containing the data necessary for a quick search. The report discusses the approach to annotation of bag-files, used in the company “Visilelect Service”, - mapping each bag-file image, allowing you to quickly view and compare information about many files.

The last part of the report is devoted to an overview of standard tools for migrating bag-files to ROS. Migration is necessary if one or more messages in the file has changed, but you want to save and use previously recorded bag-files. In this case, you can overwrite the old files by adding new fields to the old message (or removing existing ones). To simplify this process, ROS provides off-the-shelf tools that are briefly covered in the report.

Conclusion


Soon, on April 18, the next ROS MeetUp will take place, only now we will conduct it in the format of an online webinar. We invite all colleagues to attend as listeners and speakers. Participation is free, the number of places is limited, register here .
And we will also organize an open-source package contest on ROS!
And we remind you that you can find like-minded ROS developers in Russia and find out the latest ROS news in our telegram channel ROS Russia community .

If you are interested in developing robots, robotic modules or software components, if you want to show off your developments or just chat with like-minded people, welcome to our next ROS Meetup, which will be held on April 18 in online format !

All Articles