WEBVTT

00:00.200 --> 00:06.980
Regardless of whether you are creating a real robot or just a simulation of it inside your PC, the

00:06.980 --> 00:10.520
first step is always to define its structure.

00:10.520 --> 00:16.980
So the model of the robot and define how all the different components are connected together.

00:17.000 --> 00:23.690
Define which components are fixed and which one are movable and also where any potential sensor of the

00:23.690 --> 00:25.160
robot is placed.

00:26.270 --> 00:35.300
In order to model a robot, Rosco uses the Urdf convention to represent the structure and the components

00:35.300 --> 00:37.970
of a robot through XML tags.

00:38.500 --> 00:46.880
Urdf stands for Unified Robot Description Format and is basically a convention used in the robotics

00:46.880 --> 00:50.630
community to describe the structure of a robot.

00:51.970 --> 00:59.500
Each robot component is defined by an XML tag that not only creates the component itself, but can also

00:59.500 --> 01:02.320
associate some properties to this component.

01:02.950 --> 01:11.020
If you've ever had a chance to use or at least to see what an HTML file of a web page looks like, then

01:11.020 --> 01:14.710
the Urdf format will sound familiar to you.

01:15.040 --> 01:21.040
Otherwise, don't worry, because in the following laboratory lesson we will implement from scratch

01:21.070 --> 01:25.270
our XML model of the robot using Urdf.

01:26.060 --> 01:33.320
It all starts with a tag called robot that defines the structure of a robot and will be a container

01:33.320 --> 01:37.490
for all the other robot components and how they are connected.

01:38.030 --> 01:45.200
So let's take a look at the main XML tags that we can find within an RDF model of a robot.

01:46.000 --> 01:50.560
The tag link represents any component of the robot.

01:50.950 --> 01:58.420
Basically, this tag creates a reference frame, so namely a frame with some properties.

01:58.720 --> 02:03.610
For example, a link can have a name that is in this case base link.

02:03.940 --> 02:08.260
And eventually a link can also have some physical dimensions.

02:08.290 --> 02:11.740
A mesh or a 3D model associated with it.

02:12.520 --> 02:13.230
To do so.

02:13.240 --> 02:20.530
The tag visual is used for the visualization of the mesh and then the tag collision and inertial are

02:20.530 --> 02:27.670
the one that are used to assign physical properties to the link and thus to assign volume and inertia.

02:28.520 --> 02:35.330
All these stacks will then be used by the physics engine to simulate the robot and so its interactions

02:35.330 --> 02:36.770
with the environment.

02:37.760 --> 02:44.390
In addition to the tag link, another commonly used tag for the creation of a robot model is the tag

02:44.390 --> 02:45.230
joint.

02:46.150 --> 02:53.170
With this tag, one can connect two links together and so to define the properties of the connection.

02:53.920 --> 03:00.700
Within the tag joint, one can specify the name of the two links that are connected together, and this

03:00.700 --> 03:04.220
connection is made following a tree like structure.

03:04.240 --> 03:12.970
So a joint that connects two links always as a parent that in this case is the base link and also as

03:12.970 --> 03:16.840
a child that in this case is the base plate.

03:17.380 --> 03:22.630
It is useful to remember that each link can only be connected to one parent.

03:22.660 --> 03:27.220
Meanwhile, each parent can have multiple child links connected to it.

03:28.120 --> 03:34.780
In this case, the base link, which is the parent, can also have several other children in addition

03:34.780 --> 03:35.980
to the base plate.

03:36.400 --> 03:43.510
On the other hand, the base plate can only be a child of the base link and cannot have other parents.

03:44.340 --> 03:51.930
Moreover, the base plate, in addition of being a child of the base link, can also be the parent of

03:51.930 --> 03:53.070
some other links.

03:53.910 --> 04:01.650
The resulting structure of the links connected by joints resembles a tree in which from a single initial

04:01.650 --> 04:06.960
link, all the other links branch off connected by the same number of joints.

04:08.220 --> 04:09.770
Within a joint tag.

04:09.780 --> 04:12.640
One can also define the type of the connection.

04:12.660 --> 04:16.200
For example, two links can be fixed to each other.

04:16.200 --> 04:21.450
That is, one does not move with respect to the other or they can also be movable.

04:21.450 --> 04:29.190
And so one link, one component of the robot can rotate or translate with respect to another component.

04:29.890 --> 04:36.520
Also within the joint tag, one can define other properties such as the rotation axis of one of the

04:36.520 --> 04:43.510
link with the respect to the other and also the limits of the relative movements between two links.

04:44.020 --> 04:50.800
By reusing these tags to define each component of the robot and its connection to the other component,

04:50.830 --> 04:53.590
we get the complete model of our robot.

04:53.980 --> 05:00.460
Here it is possible to visualize our different links are connected to each other and how they can move.

05:00.490 --> 05:03.370
They can rotate with the respect to each other.

05:04.060 --> 05:10.540
In the next laboratory lesson, we are going to implement the Erdf module of our robot that we are also

05:10.540 --> 05:16.900
going to use throughout the course for visualization simulation and also for defining the structure

05:16.900 --> 05:18.190
of the real robot.
