Robotics is concerned with the study of those machines that can replace human beings in the execution
of a task.
As regards both physical activity and decision making from robotics.
Sciavicco.
Cigliano.
Villani.
According to this definition of robotics, provided in one of the most famous book about robotics,
it is evident how multidisciplinary this subject is, whose purpose is to design and develop intelligent
systems that can substitute human beings in the execution of their tasks.
According to this definition, the robotics has two main characteristics.
Physical activity, namely the capability of the robot to execute an action that modifies the status
of the surrounding environment.
And this might mean to move some shelves, for example, in a warehouse or to manipulate objects for
the packaging and so on.
This aspect is affected by the mechanic and the electronic of the robot that determines, for example,
the maximum speed and the maximum load that the robot can handle.
Decision making instead is the capability of the robot to adapt its behavior to the surrounding environment.
For instance, avoiding obstacles during the autonomous navigation or deciding which object to grasp
from a basket.
In this case, the software is important for encoding the intelligent behaviors and the logic of the
robot.
It is clear that the development of a robot from scratch is a considerably hard task, since not only
the knowledge of many subjects such as electronics, mechanics, networks and computer science are needed,
but also if we focus just on one of these, as we do in this course, which is software development,
the implementation from scratch of all the software modules is a very complex and long process.
Luckily, though, over the last decade, universities and innovative companies have contributed to
the development of modules and functionalities that allows robots to navigate autonomously while avoiding
obstacles or to grasp objects or to detect people and so on.
Initially each of these module was developed with its own interface, and these made each module basically
incompatible with all the others that a different institution, for example, with a different interface
and communication protocol developed.
This incompatibility very often required reinventing the wheel in order to make those modules interact
with each other, or even in some cases, to entirely redevelop a module.
The Ross project starts with the aim of making all these modules that are developed by different institutions
compatible with each other and leave the research centre finally free to focus only on the most innovative
projects in the field of robotics.
Furthermore, this also allows all of those who want to create a robot to reuse a lot of functionalities
that are already implemented and widely tested by a community of roboticists and developers that use
and optimize the same software on a daily basis.
This way.
You don't need to know all the technical details of the implementation of the modules, but you can
directly use and enjoy the application.
In 2007, Willow Garage was founded with the aim of exploring and doing research in the field of robotics.
And finally, in 2009, it officially released the first version of Ros.
To facilitate the development of robotics applications.
Nowadays, the development of the functionalities of Ros is managed by the Open Source Robotics Foundation
that in 2018 also released the first version of Ros two that we are going to use in this course.
Until today.
There are many Ros based robots that operate in different fields, from the industry to research and
service robotics, and even to this partial exploration succeeding in achieving the purpose of the Ros
Project.
That was to reuse the same software components in all the robots.
So in robots with different mechanics that serve different purposes.