C.A.A.
(Computer Aided Assembly)
Lab.I.C. (Laboratorio di Ingegneria
della Conoscenza)
Università di Milano - Bicocca
In collaborazione con:
– I.T.I.A. - C.N.R.
– Zanussi
Obiettivi di C.A.A.

Realizzazione di uno strumento di
supporto alla selezione degli organi da
presa esistenti o alla eventuale prima fase
di progettazione di nuovi organi da presa.
 Forma prototipale.
 Dominio circoscritto.
14 Gennaio 2000
C.A.A.
Descrizione del progetto

Committente: Zanussi.
 Ambito: assemblaggio di gruppi di
componenti del basamento lavabiancheria
e del termostato frigorifero.
 I casi applicativi scelti si posizionano nella
famiglia dei pezzi medio-piccoli.
 La linea di assemblaggio deve avere un
altissimo indice di riconfigurabilità.
14 Gennaio 2000
C.A.A.
Dominio di applicazione
Assemblaggio automatico.
 Linea di assemblaggio.
 Cella di assemblaggio:

– robot;
– componente da assemblare;
– ambiente (processo).
14 Gennaio 2000
C.A.A.
Architettura del Sistema

Sistema Basato sulla Conoscenza
(realizzato a regole):
– Rappresentazione della conoscenza:
regole di produzione;
– Database;
– Interfaccia utente;
– Interfaccia di integrazione.
14 Gennaio 2000
C.A.A.
Scelte tecnologiche

Base della conoscenza:
– Jess

Database:
– Object Store

Interfaccia utente:
– Java

Interfaccia di integrazione:
– Web-based
14 Gennaio 2000
C.A.A.
Team/Risorse

Componenti del team
– Coordinatore: Stefania Bandini
– Capo-progetto: Giuseppe Frisoni
– Sviluppatori:
– Paolo Mereghetti
– Alessandro Saporiti
– Augusto Vezzaro
– Consulenza su architettura ed integrazione: Flavio De Paoli

Risorse
– PC Pentium, Windows NT
– PC Silicon Graphic presso ITIA
14 Gennaio 2000
C.A.A.
Ciclo di vita

Studio di plausibilità:
– analisi del dominio;
– state of the art;
– identificazione delle specifiche.





Acquisizione della conoscenza.
Sviluppo del Dimostratore.
Affinamento della conoscenza.
Sviluppo del Prototipo.
Installazione del Prototipo.
14 Gennaio 2000
C.A.A.
Tempistica
28 gennaio: consegna Dimostratore.
 28 febbraio: consegna Prototipo e

installazione.
14 Gennaio 2000
C.A.A.
Stato attuale

Stato di avanzamento dei lavori al
14/01/2000:
– come previsto: KB e Interfaccia;
– avanti: DB. Siamo pronti a sviluppare.
14 Gennaio 2000
C.A.A.
Base della conoscenza
Sistema esperto
Fatti
 Regole
 Motore inferenziale

14 Gennaio 2000
C.A.A.
Sistema esperto: motore inferenziale

Tool
– CLIPS (C Language Integrated Production System)
– JESS (Java Expert System Shell)

JESS
– Java
Jess 5.0 ver. b3
http://herzberg.ca.sandia.gov/jess
14 Gennaio 2000
C.A.A.
Architettura della base della
conoscenza

Regole
– Suddivisione delle regole in sezioni

Fatti
– Strutturazione ad oggetti
14 Gennaio 2000
C.A.A.
Suddivisione delle regole





Determinazione della forma del polpastrello
Determinazione della morfologia dell’organo
Calcolo della forza di serraggio
Verifica della resistenza di superficie di presa
Scelta della tipologia di attuazione
14 Gennaio 2000
C.A.A.
Fatti
Organo da
presa
morfologia
diti
parametri
attuazione
14 Gennaio 2000
C.A.A.
Sviluppi futuri del sistema

Java
– compatibilità

Fatti : Modello ad oggetti
– espandibilità
14 Gennaio 2000
C.A.A.
OODBMS e Object Store
14 Gennaio 2000
C.A.A.
Basi di dati a oggetti o classiche
relazionali?

I modelli di basi di dati tradizionali sono
adeguati per applicazioni di tipo gestionale
ed amministrativo.
 Difficoltà nel gestire dati tipici di applicazioni
più complesse (es. CAD o dati multimediali),
le basi di dati orientate agli oggetti sono nate
per soddisfare le esigenze di tali applicazioni.
14 Gennaio 2000
C.A.A.
Basi di dati a oggetti o classiche
relazionali?


L’approccio ad oggetti infatti offre la flessibilità
necessaria non essendo limitato ai tipi di dato (il
sistema dei tipi di dati e estendibile) e ai sistemi di
query language tradizionali.
Gli OODBMS (Object Oriented Data Base
Management System) in particolare permettono di
gestire tipi di dati non strutturati (es. bitmap di
immagini, lunghe stringhe di testo, disegni CAD) che
saranno gestiti dall’applicazione ma la cui struttura
non è nota al DBMS.
14 Gennaio 2000
C.A.A.
Caratteristiche OODBMS
nuovi concetti




Scompare il concetto di tabella e compare il concetto
di collection.
Scompare il concetto di riga e compare quello di
oggetto.
Si passa da una visione passiva a una visione attiva
dei dati memorizzati.
La conoscenza diventa ‘viva’ e può cambiare il
proprio stato rispondendo a ‘messaggi’ esterni. I primi
ad usare questo approccio sono stati proprio gli
sviluppatori di linguaggi per la rappresentazione della
conoscenza.
14 Gennaio 2000
C.A.A.
Caratteristiche OODBMS
persistenza

I sistemi di BDD tradizionali usano appositi
comandi per l’inserimento persistente dei dati
con le basi di dati a oggetti si usano due
approcci:
– persistenza automatica tramite il comado
new di calssi con proprietà estensionale.
– persistenza esplicita attraverso un
apposito metodo che inserisce l’oggetto
nella collection.
14 Gennaio 2000
C.A.A.
Caratteristiche OODBMS
cancellazione

Anche la cancellazione può essere:
– esplicita tramite comado (problema per
l’integrità referenziale).
– tramite garbage collector (assicura
l’integrità referenziale).
14 Gennaio 2000
C.A.A.
Object Store
cos’è?

nato per lo sviluppo di OODBMS in C++
fornisce un’estensione del linguaggio che
permette di gestire la persistenza dei dati.
 attualmente è possibile sviluppare
applicazioni anche in linguaggio Java.
 permette di gestire non solo collection di
oggetti ma anche associazioni unarie e
binarie tra le collection garantendo quella
stutturazione rigorosa e formale che è il punto
di forza dei BDD relazionali.
14 Gennaio 2000
C.A.A.
Object Store
caratteristiche

la persistenza non è una caratteristica
automatica ma per creare collection
persistenti devo creare una root di tipo
persistente nella quale inserire gli oggetti.
 L’integrità referenziale è garantita sulle
associazioni permettendo anche
propagazione delle cancellazioni.
 OS fornisce un query language SQL-like per
interrogare le collection di oggetti e aggiunge
funzionalità tipiche per gli oggetti. 14 Gennaio 2000
C.A.A.
Perchè Object Store


La nostra applicazione potrà trovarsi a dover gestire
dati non strutturati come disegni CAD o VRML che
possono essere gestiti in modo veramente efficente
solo con un OODBMS.
Il sistema su cui dovrà operare il prodotto è distribuito
e browser-based quindi la possibilità che Object
Store da di poter utilizzare un linguaggio come Java
ci permette di gestire in modo ottimale questa
situazione.
14 Gennaio 2000
C.A.A.
Perchè Object Store

La possibilità di usare Java permette anche
una coerenza degli strumenti di sviluppo
dell’intera applicazione che facilità
l’integrazione degli stessi e permette
all’applicazione di avere una struttura più
omogenea.
14 Gennaio 2000
C.A.A.
Aspetti tecnici e formali
sulla struttura della
base di dati
14 Gennaio 2000
C.A.A.
PARTE COMPONENTE E ZONA DI PRESA
ZonaPresa
Componente
codice zona - stringa
delicatezza - enum. [++, +, -, --]
nome - stringa
peso - float
cRiduzione - float
distBaricentro - integer
zonePresaCilindriche set (0,n) di oggetti ZonaCilindrica
zonePresaPiane - set (0,n)
di oggetti ZonaPiana
zonePresaIrregolari set (0,n) di oggetti ZonaIrregolare
IS A
distRettaApp - integer
cAttrito - float
forzaMaxRottura - float
forzaSerrAssemblaggio - float
forzaSerrTrasporto - float
forzaScelta - Float
distanzaSuperfici - Integer
areaAfferrata - float
IS A
IS A
ZonaCilindrica
ZonaPiana
ZonaIrregolare
altezza - integer
raggio - integer
altezza - integer
larghezza - integer
areaContatto - integer
angolo - integer
singola - enum. [si, no]
ferromagnetica - enum. [si, no]
porosa - enum. [si, no]
C.A.A.
14 Gennaio 2000
TIPOLOGIA ORGANO PRESA
OrganoPresa
attuazione - oggetto di tipo Attuazione
morfologia - oggetto di tipo Morfologia
diti - oggetto di tipo diti
forzaSerraggio - integer
PART OF
PART OF
corsa - integer
regolazioneForza - integer
cambioRapido - enumerazione [si, no]
Morfologia
nome - enum.
Attuazione
nome - enum.
PART OF
[elettrico, pneumatico, idraulico,
elettropeumatico]
costo - enum. [++, +, -, --]
Diti
nome - enum. [piatti, intaglio_a_V,
[tre_dita_autocentranti,
tre_dita_indipendenti,
due_dita_parallele,
due_dita_angolari, magnete,
ventose]
costo - enum. [++, +, -, --]
ingombro - enum. [++, +, -, --]
intaglio_cilindrico, non_standard]
semplice - enum. [++, +, -, --]
esplosivo - enum. [++, +, -, --]
delicati - enum. [++, +, -, --]
posizionano - enum. [si, no]
peso - enum. [++, +, -, --]
duraturi - enum. [++, +, -, --]
peso - enum. [++, +, -, --]
pulito - enum. [++, +, -, --]
preciso - enum. [++, +, -, --]
forza - enum. [++, +, -, --]
semplice - enum. [++, +, -, --]
C.A.A.
14 Gennaio 2000
PROCESSO
Processo
accRobot - float
forzaInserimento - float
puliziaAmbiente - enum. [++, +, -, --]
sicurezzaAmbiente - enum. [++, +, -, --]
nome_componente - stringa
nome_organo_presa - stringa
14 Gennaio 2000
C.A.A.
SCHEMA ENTITA’ RELAZIONI
ZONA PRESA
PIANA
TIPOLOGIA
ORGANO PRESA
n
ZONA PRESA
CILINDRICA
1
CONTESTUALE A
POSSIEDE
n
0
0
POSSIEDE
COMPONENTE
1
1
CONTESTUALE A
1
PROCESSO
0
POSSIEDE
n
ZONA PRESA
IRREGOLARE
C.A.A.
14 Gennaio 2000
Interfaccia di Integrazione
Obbiettivo

Organizzazione e gestione della
cooperazione di moduli Software.
Modulo
Software
Modulo
Software
Interfaccia
di
Integrazione
Modulo
Software
Modulo
Software
14 Gennaio 2000
C.A.A.
Fase di Analisi e Fase Decisionale

Analisi dei moduli software:
– Funzione.
– Tecnologie coinvolte.

Analisi dei vincoli imposti dall’End User:
– Caratteristiche hardware.
– Disponibilità hardware per fasi di implementazione e test.
– Tempi di sviluppo.

Scelta dell’architettura.

Scelta del linguaggio di programmazione (fortemente dipendente
dall’architettura).
14 Gennaio 2000
C.A.A.
Moduli Software

Shell per lo sviluppo di Sistemi Basati sulla Conoscenza
(Jess)
– Rule Based.
– Interamente scritto in Java.
– Esistono vesrioni per i principali Sistemi Operativi.

Database (Object Store)
– Sviluppato su piattaforma Windows.
– Basato su Classi di Oggetti (Java o C++).
– (Non) Richiede applicazioni server per la sua gestione.

Interfaccia Utente
– Permette la gestione dell’intero sistema.
– Scritta in un linguaggio di programmazione di Alto Livello.
– User Friendly.
14 Gennaio 2000
C.A.A.
Vincoli posti dall’End User

Database su piattaforma Windows e accesso dell’Utente da
piattaforma Unix (Silicon).

Risorse temporali limitate per implementazione e testing
del sistema su piattaforma Unix.

Vicinanza della Deadline del Progetto.
14 Gennaio 2000
C.A.A.
Architettura proposta

Sistema basato su Tecnologie Web.
Database
Interfaccia
di
Integrazione
Interfaccia
Utente
Client
Web Browser
Web Server
With Java Servlet
Object Store
Sistema Basato
sulla
Conoscenza
Jess
14 Gennaio 2000
C.A.A.
La scelta di Java

Facile integrazione fra i moduli.

Ampliamento delle funzionalità del Web Server con
Servlets.

Creazione di interfacce utente User Friendly compatibili con
i più comuni Web Browser (Netscape e Internet Explorer).
14 Gennaio 2000
C.A.A.
Scarica

CAA - L.Int.Ar.