Funzionalità per la navigazione di robot...

25
Corso di Robotica Prof. Davide Brugali Università degli Studi di Bergamo Funzionalità per la navigazione di robot mobili

Transcript of Funzionalità per la navigazione di robot...

Corso di Robotica

Prof. Davide Brugali

Università degli Studi di Bergamo

Funzionalità per la navigazione di

robot mobili

Variability of the Robotic Domain

UNIBG - Corso di Robotica - Prof. Brugali

Shop Floor logistics

Store inventory Autonomous cars

RoboCup

Tourist guide

Variability in Robot Navigation

UNIBG - Corso di Robotica - Prof. Brugali

Variability in Mobile Robot Navigation Systems

UNIBG - Corso di Robotica - Prof. Brugali

A

B

Motor control

Localization

Localization

Motor control

Software variability

Motor control

Obstacle Avoidance

Localization

Trajectory following

Motion planning

Motor control

UNIBG - Corso di Robotica - Prof. Brugali

A

B

W

V

Omnidirectional

Differential Drive

TWIST = { V = linear velocity W = angular velocity

TWIST

Trajectory following

UNIBG - Corso di Robotica - Prof. Brugali

A

B

TWIST

Trajectory following

UNIBG - Corso di Robotica - Prof. Brugali

A

B

Y

Geometric curve Magnetic tape

Visual path

X

TWIST

Trajectory planning

UNIBG - Corso di Robotica - Prof. Brugali

A

B

X

Y

Optimization: - minimum time - minimum jerk

Geometric Map-based localization

UNIBG - Corso di Robotica - Prof. Brugali

A

B

X

Y

2D/3D sensor

Geometric Map-based localization

UNIBG - Corso di Robotica - Prof. Brugali

Marker-based topological localization

UNIBG - Corso di Robotica - Prof. Brugali

A

B

artificial markers

Marker-based Visual navigation

UNIBG - Corso di Robotica - Prof. Brugali

Kiva robots at Amazon stores

Obstacle avoidance

UNIBG - Corso di Robotica - Prof. Brugali

A

B

X

Y

Environemnt - Moving obstacles - Static obstacles

Da cosa dipende la varietà dei

sistemi di navigazione per robot?

UNIBG - Corso di Robotica - Prof. Brugali

Sources of variability

software

control system

Embodiment Intelligene

Situatedness

• Navigation

• Manipulation

• Sematic Perception

• …

• Indoor / outdoor

• Static / dynamic

• Natural / artificial illumination

Simon's "ant on the beach"

An ant's behavior control mechanism is very simple: obstacle right, turn left; obstacle left, turn right.

Intelligence.

On a beach with rocks and pebbles, an ant's trajectory will be a zigzag line. Situatedness.

But if the size of an ant were to be increased by a factor of 1000, then its trajectory would be much straighter.

Embodiment.

Robot Variability : Embodiment

Robot embodiment refers to the consciousness of having a body (a

mechanical structure with sensors and actuators) that allows the

robot to experience and interact with the world.

Despite the semantic similarities between the operations supported

by similar devices (e.g., all ranging devices provide distance

measurements, all rovers provide wheeled mobility), robot control

applications strongly depend on the type of robot actuators and on

the robot kinematic structure.

For example, different algorithms are used to plan an obstacle-free

path and to control the robot motion along the path.

Robot Variability : Situatedness

Robot situatedness refers to existing in a complex, dynamic, and

unstructured environment that strongly affects the robot behavior.

Situatedness implies that the robot is aware of its own posture, in one

place at a given time, and of the objects (obstacles, workpieces, or

co-workers) around it in the workspace.

According to the operational environment, the robot can use

different sensors and techniques for 3D perception and localization.

For example, a GPS cannot be used inside a building, while the

performance of a stereo vision system is affected by environment

light conditions.

Robot Variability : Intelligence

Robot intelligence refers to the ability to express adequate and useful behaviors while interacting with the dynamic environment.

Robot intelligence is usually defined in terms of

autonomy, i.e. the robot's ability to control its own activities and to carry on tasks without the intervention of the human operator;

deliberativeness, i.e. the ability of planning and revising future actions in order to achieve a given goal while taking into account the mutable conditions of the external environment;

adaptability, i.e. the ability of changing its behavior in response to external stimuli according to past interactions with the real world.

The interaction among robot functionalities strongly depends on the type of task that the robot has to perform and this has an impact on how concurrent activities access shared (computational and robotics) resources and on their timeliness.

Corso di Robotica - UNIBG - Prof. Brugali

Application Domain : Home robotics

Roomba Vacuum Cleaner Lawn mower

Intelligence Situatedness Embodiment

Capability

• Navigation

Task

• Area coverage

Type of Environment

• Indoor/outdoor

• Unstructured

Environment Dynamics

• Mostly static

Locomotion

• Differential drive

Perception

• Infrared / sonar

• monocular camera

20

Corso di Robotica - UNIBG - Prof. Brugali

Application Domain : Service robotics (Logistics)

Shop Floor Supermarket

Intelligence Situatedness Embodiment

Capability

• Navigation

• Manipulation

• Semantic perception

Task

• Pick & Place

• Transportation

Type of Environment

• Indoor

• Mostly Structured

Environment Dynamics

• Moving obstacles (slow

/ fast)

Locomotion

• Differential drive

• Omnidirectional

Manipulation

• Single/dual arm

Perception

• Laser scanner

• 3D camera

21

Progettazione del sistema di

navigazione per robot mobili

UNIBG - Corso di Robotica - Prof. Brugali

To be competitive, system integrators need

easily configurable software that supports …

a portfolio of similar systems or products with variations in features and functions

Rather than building each new system variant from scratch, significant savings

may be achieved by reusing portions of previous systems to build new ones.

Software Reuse - definition

Software reuse is:

the practice of developing software

from a stock of building blocks,

so that similarities in requirements and/or architecture between applications can be exploited

to achieve substantial benefits in productivity and quality.

Software Reuse Techniques

Asset type Reuse form

Source code Copy and Paste

Class library Extend

Design Pattern / Architecture Imitate

Components Integrate

Component Framework Customize

Software Product Lines Configure