/
tutorial-robot.txt
78 lines (68 loc) · 4.33 KB
/
tutorial-robot.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
.. _sec-tutorial-robot:
Use a robotic platform
======================
Addressing real-life experiments (such as dynamic auditory scene analysis in a
*search and rescue* scenario) implies to deploy and run the |TwoEarsModel| on a
robotic platform. To assess the active and exploratory features of the model and
its ability to handle multi-modality, the robot must be endowed with binaural
perception, adequate mobility, and other sensing modalities. It must come with a
software platform enabling the concurrent execution of all the processes
involved in the model. To ensure reproducible research, this architecture must
enable maximum software sharing when switching from one platform to another.
The above requirements advocate the design of a comprehensive software modular
architecture composed of two distinct parts. Its lower **functional layer**
consists of components which run concurrently under severe time constraints and
communicate by control or data flow in real time. Typical components subject to
real time performance are sensorimotor functions, such as locomotion,
proprioceptive or exteroceptive data acquisition and processing, |SLAM|,
obstacle avoidance, reactive navigation, *etc.* Many such components are in
interaction with the environment, so that several local perception-action loops
take place in this layer. Typical issues are components reusability (*e.g.*, by
encapsulating low-level locomotion primitives or sensor drivers under interfaces
common to all the used robots), formal proofs of dependability and
scalability. Higher in the architecture, the **decisional/cognitive layer**
hosts deliberation primitives. Such purposeful, chosen or planned actions are
critical for robot autonomy against variable environments. Among the ingredients
of deliberation in robotics, one can cite learning, goal reasoning, task
planning, deliberate action, perception (bottom-up as well as top-down) and
monitoring. These abilities take place at a more abstract level, under lighter
time constraints. The functional and cognitive layers are connected with each
other through a bridge.
The |TwoEarsModel| will involve functions for robot locomotion, streaming of
binaural signals, |SLAM|, motion planning and navigation, as well as low-level
visual functions to the detection, segmentation and tracking of people or
objects. In view of the above, these functions come within the functional
layer. As shown later, they are implemented in C/C++ under the celebrated |ROS|
middleware, which is ubiquitous in robotics. To improve their specification, the
organisation of their code, their reliability, their robustness and their
sustainability, they are designed by using the middleware-independent |GenoM3|
framework. Conversely, the |blackboard| takes place within the deliberative
layer. A Matlab bridge has been designed so as to bridge these two extremal sets
of primitives. The monaural and binaural processors of the |AFE| should
basically be incorporated in the functional level, so that their C/C++
transcoding into software components is ongoing.
Platforms of increasing complexity have been planned. Frank is a binaural
*head-on-a-stick* type system, that is, a KEMAR head-and-torso simulator which
we endowed with an original silent controllable device enabling neck rotation.
This device will shortly be equipped with stereo vision. Meanwhile, it has been
mounted on Jido, a Neobotix MP-L655 nonholonomic mobile robot, so as to get
translational degrees-of-freedom for long-range navigation (figure
:numref:`fig-frank-on-jido`). Importantly, extensive evaluations of all the
functional components hereafter presented have been conducted.
.. _fig-frank-on-jido:
.. figure:: img/frank-on-jido.jpg
:align: center
Frank, a KEMAR head-and-torso simulator mounted on Jido, a mobile robot.
The current release of the |TwoEarsModel| provides :ref:`sec-bass` which can be
used to acquire the binaural signals from Frank or another dummy head from
within Matlab. See further :ref:`sec-robot-getting-started` for an introduction
on how to get started with the robotic software. In later releases of |TwoEars|
we will provide you with a tutorial on how to build your own dummy head with
rotatable head, and how to use the aforementioned Matlab bridge in order to
steer its movements from within Matlab.
.. vim: filetype=rst spell:
.. emacs:
Local Variables:
mode: rst
fill-column: 80
End: