27.10.2013 Views

Knowledge Engineering in robotics

Knowledge Engineering in robotics

Knowledge Engineering in robotics

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong><br />

<strong>robotics</strong><br />

Herman Bruyn<strong>in</strong>ckx<br />

K.U.Leuven, Belgium<br />

BRICS, Rosetta, euRobotics<br />

Väster˚as, Sweden<br />

April 8, 2011<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 1


BRICS, Rosetta, euRobotics<br />

BRICS:<br />

Rosetta:<br />

euRobotics:<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 2


BRICS, Rosetta, euRobotics<br />

BRICS:<br />

◮ software eng<strong>in</strong>eer<strong>in</strong>g for complex robotic systems<br />

◮ how to do that <strong>in</strong> (Eclipse, MDE) tool support<br />

= lots of knowledge eng<strong>in</strong>eer<strong>in</strong>g<br />

Rosetta:<br />

euRobotics:<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 2


BRICS, Rosetta, euRobotics<br />

BRICS:<br />

◮ software eng<strong>in</strong>eer<strong>in</strong>g for complex robotic systems<br />

◮ how to do that <strong>in</strong> (Eclipse, MDE) tool support<br />

= lots of knowledge eng<strong>in</strong>eer<strong>in</strong>g<br />

Rosetta:<br />

◮ <strong>in</strong>telligent skills for force-controlled robotic<br />

assembly<br />

◮ skill to be described at several levels of<br />

abstraction = lots of knowledge eng<strong>in</strong>eer<strong>in</strong>g<br />

euRobotics:<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 2


BRICS, Rosetta, euRobotics<br />

BRICS:<br />

◮ software eng<strong>in</strong>eer<strong>in</strong>g for complex robotic systems<br />

◮ how to do that <strong>in</strong> (Eclipse, MDE) tool support<br />

= lots of knowledge eng<strong>in</strong>eer<strong>in</strong>g<br />

Rosetta:<br />

◮ <strong>in</strong>telligent skills for force-controlled robotic<br />

assembly<br />

◮ skill to be described at several levels of<br />

abstraction = lots of knowledge eng<strong>in</strong>eer<strong>in</strong>g<br />

euRobotics:<br />

◮ semantic web for <strong>robotics</strong> portal<br />

◮ need for open content <strong>robotics</strong> ontology<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 2


Examples <strong>in</strong> my research<br />

⇒ ⇒<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 3


<strong>Knowledge</strong> representation<br />

<strong>Knowledge</strong> needed is of various types:<br />

◮ robot motion controllers<br />

◮ geometry of objects + “scene graph”<br />

◮ sensor capabilities & data <strong>in</strong>terpretation<br />

◮ (partial) order<strong>in</strong>g of actions <strong>in</strong> task<br />

◮ common sense + physical laws<br />

◮ relationships robot actions ↔ effects<br />

◮ . . .<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 4


<strong>Knowledge</strong> representation<br />

<strong>Knowledge</strong> needed is of various types:<br />

◮ robot motion controllers<br />

◮ geometry of objects + “scene graph”<br />

◮ sensor capabilities & data <strong>in</strong>terpretation<br />

◮ (partial) order<strong>in</strong>g of actions <strong>in</strong> task<br />

◮ common sense + physical laws<br />

◮ relationships robot actions ↔ effects<br />

◮ . . .<br />

Representation of knowledge:<br />

◮ (hyper)graphs (Topic Maps, RDF,. . . )<br />

◮ rules (logic, OWL-x,. . . )<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 4


<strong>Knowledge</strong> representation<br />

<strong>Knowledge</strong> needed is of various types:<br />

◮ robot motion controllers<br />

◮ geometry of objects + “scene graph”<br />

◮ sensor capabilities & data <strong>in</strong>terpretation<br />

◮ (partial) order<strong>in</strong>g of actions <strong>in</strong> task<br />

◮ common sense + physical laws<br />

◮ relationships robot actions ↔ effects<br />

◮ . . .<br />

Representation of knowledge:<br />

◮ (hyper)graphs (Topic Maps, RDF,. . . )<br />

◮ rules (logic, OWL-x,. . . )<br />

How to <strong>in</strong>tegrate them. . . ?<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 4


◮ object ontology<br />

Types of ontologies<br />

◮ doma<strong>in</strong>/system ontology<br />

◮ profile ontology<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 5


◮ object ontology<br />

Types of ontologies<br />

◮ what knowledge do our robots need to become<br />

“<strong>in</strong>telligent”<br />

◮ doma<strong>in</strong>/system ontology<br />

◮ profile ontology<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 5


◮ object ontology<br />

Types of ontologies<br />

◮ what knowledge do our robots need to become<br />

“<strong>in</strong>telligent”<br />

◮ doma<strong>in</strong>/system ontology<br />

◮ what is “Field <strong>robotics</strong>”? Or “Assembly <strong>robotics</strong>”?<br />

◮ Reference: Hallam & Bruyn<strong>in</strong>ckx, An ontology of<br />

<strong>robotics</strong> science, First European Robotics Symposium,<br />

2006.<br />

◮ profile ontology<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 5


◮ object ontology<br />

Types of ontologies<br />

◮ what knowledge do our robots need to become<br />

“<strong>in</strong>telligent”<br />

◮ doma<strong>in</strong>/system ontology<br />

◮ what is “Field <strong>robotics</strong>”? Or “Assembly <strong>robotics</strong>”?<br />

◮ Reference: Hallam & Bruyn<strong>in</strong>ckx, An ontology of<br />

<strong>robotics</strong> science, First European Robotics Symposium,<br />

2006.<br />

◮ profile ontology<br />

◮ what are the competences/expertise of a researcher?<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 5


MDE’s M0–M3 & ontology<br />

M3<br />

M2<br />

M1<br />

M0<br />

doma<strong>in</strong><br />

model<br />

meta<br />

model<br />

(DSL)<br />

metametamodel<br />

<strong>in</strong>stance<br />

of<br />

<strong>in</strong>stance of<br />

doma<strong>in</strong><br />

model<br />

meta<br />

model<br />

(DSL)<br />

<strong>in</strong>stance of<br />

Real-world systems<br />

doma<strong>in</strong><br />

model<br />

DSL<br />

Designer<br />

DSL<br />

User<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 6


MDE’s M0–M3 & ontology<br />

M3<br />

M2<br />

M1<br />

M0<br />

doma<strong>in</strong><br />

model<br />

meta<br />

model<br />

(DSL)<br />

metametamodel<br />

<strong>in</strong>stance<br />

of<br />

<strong>in</strong>stance of<br />

doma<strong>in</strong><br />

model<br />

meta<br />

model<br />

(DSL)<br />

<strong>in</strong>stance of<br />

Real-world systems<br />

doma<strong>in</strong><br />

model<br />

DSL<br />

Designer<br />

DSL<br />

User<br />

M0–M3 is ontology (not other way around!)<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 6


MDE’s M0–M3 & ontology<br />

M3<br />

M2<br />

M1<br />

M0<br />

doma<strong>in</strong><br />

model<br />

meta<br />

model<br />

(DSL)<br />

metametamodel<br />

<strong>in</strong>stance<br />

of<br />

<strong>in</strong>stance of<br />

doma<strong>in</strong><br />

model<br />

meta<br />

model<br />

(DSL)<br />

<strong>in</strong>stance of<br />

Real-world systems<br />

doma<strong>in</strong><br />

model<br />

DSL<br />

Designer<br />

DSL<br />

User<br />

M0–M3 is ontology (not other way around!)<br />

Claim: MDE’s Doma<strong>in</strong> Specific Language concept<br />

is pragmatic way to start <strong>robotics</strong> objects ontology,<br />

<strong>in</strong> particular for action representation<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 6


DSL for assembly case<br />

—Discrete behaviour: FSM—<br />

move_up = apply(tff_motions.move_up, {zt=-0.3}) end<br />

move_down = apply(tff_motions.move_down, {zt=0.1}) end<br />

align = apply(tff_motions.push_down, {zt=10}) end<br />

slide_x = apply(tff_motions.compliant_slide_x,<br />

{xt=0.2, zt=1}) end<br />

trans:new{ src="<strong>in</strong>itial", tgt="move_down" },<br />

trans:new{ src="move_up", tgt="move_down",<br />

guard = return get_total_distance() > 0.2 end },<br />

trans:new{ src="align", tgt="slide_x",<br />

guard = return get_move_duration() > 2 end },<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 7


DSL for assembly case<br />

—Cont<strong>in</strong>uous behaviour: control—<br />

move_down =<br />

xt = tff.axis_spec:new { value=0 , type=’velocity’ }<br />

yt = tff.axis_spec:new { value=0 , type=’velocity’ }<br />

zt = tff.axis_spec:new { value=0.01 , type=’velocity’<br />

})<br />

compliant_slide =<br />

xt = tff.axis_spec:new { value=0, type=’force’ }<br />

yt = tff.axis_spec:new { value=-0.03, type=’velocity’<br />

zt = tff.axis_spec:new { value=1, type=’force’ }<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 8


Robot systems: M2–M3 model<br />

Component1<br />

(computation)<br />

Communication1<br />

Communication2<br />

CompositeComponent<br />

Communication3<br />

Component2<br />

(computation)<br />

Component3<br />

(computation)<br />

Communication4<br />

Structural model + Communication + Coord<strong>in</strong>ation<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 9


Robot systems: M2–M3 model<br />

Component1<br />

(computation)<br />

Communication1<br />

Communication2<br />

CompositeComponent<br />

Communication3<br />

Component2<br />

(computation)<br />

Component3<br />

(computation)<br />

Communication4<br />

Structural model + Communication + Coord<strong>in</strong>ation<br />

◮ Components: control, learn<strong>in</strong>g, plann<strong>in</strong>g,. . .<br />

◮ M0–M1 framework DSLs: Orocos + ROS<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 9


3D perception stack: M1–M2 model<br />

obj1<br />

task<br />

obj2<br />

fea1 fea2 fea3<br />

sen1 sen2<br />

task<br />

obj<br />

fea<br />

sen<br />

robot motion<br />

(predicted object<br />

motion)<br />

3D object motion model<br />

(predicted feature<br />

motion)<br />

feature motion <strong>in</strong><br />

sensor space<br />

(focus of attention)<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 10


3D perception stack: M1–M2 model<br />

obj1<br />

task<br />

obj2<br />

fea1 fea2 fea3<br />

sen1 sen2<br />

task<br />

obj<br />

fea<br />

sen<br />

robot motion<br />

(predicted object<br />

motion)<br />

3D object motion model<br />

(predicted feature<br />

motion)<br />

feature motion <strong>in</strong><br />

sensor space<br />

(focus of attention)<br />

Bayesian probability excellent candidate for DSL!<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 10


Skills: M2–M3 model<br />

Task<br />

Skill<br />

Motion<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 11


Skills: M2–M3 model<br />

Task<br />

Skill<br />

Motion<br />

The Skill is a probabilistic state mach<strong>in</strong>e:<br />

◮ state mach<strong>in</strong>e encodes causality/(partial)<br />

order<strong>in</strong>g<br />

◮ events couple the symbolic and cont<strong>in</strong>uous<br />

doma<strong>in</strong>s.<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 11


Skills: M2–M3 model (2)<br />

PIM<br />

"platform-specific<br />

model"<br />

"platform-<strong>in</strong>dependent<br />

model"<br />

PSM<br />

platform<br />

constra<strong>in</strong>ts<br />

To add knowledge on: robot, controller, sensor,<br />

learn<strong>in</strong>g algorithm,. . .<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 12


Skills: M2–M3 model (3)<br />

Task<br />

platform<br />

constra<strong>in</strong>ts<br />

Skill<br />

Motion<br />

The platform constra<strong>in</strong>ts def<strong>in</strong>e parameters <strong>in</strong> the<br />

FSM behaviour.<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 13


Skills: M2–M3 model (4)<br />

knowledge<br />

transformations<br />

Task<br />

platform<br />

constra<strong>in</strong>ts<br />

Skill<br />

Motion<br />

The Skill states are <strong>in</strong>stantiations of logic symbols,<br />

and run cont<strong>in</strong>uous time/space control & sens<strong>in</strong>g<br />

algorithms.<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 14


Conclusions<br />

◮ major challenge: not so much the amount but<br />

the variation of different types of knowledge<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 15


Conclusions<br />

◮ major challenge: not so much the amount but<br />

the variation of different types of knowledge<br />

◮ our research: proposes probabilistic f<strong>in</strong>ite<br />

state mach<strong>in</strong>e(s) as key for <strong>in</strong>tegration:<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 15


Conclusions<br />

◮ major challenge: not so much the amount but<br />

the variation of different types of knowledge<br />

◮ our research: proposes probabilistic f<strong>in</strong>ite<br />

state mach<strong>in</strong>e(s) as key for <strong>in</strong>tegration:<br />

◮ focus about what knowledge and learn<strong>in</strong>g to<br />

use, at each moment <strong>in</strong> a robot’s task<br />

◮ ground<strong>in</strong>g & clos<strong>in</strong>g the world: “obvious”<br />

◮ lends itself very well for DSL representation<br />

◮ Need for open content publicly available<br />

ontology server!<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 15


Conclusions<br />

◮ major challenge: not so much the amount but<br />

the variation of different types of knowledge<br />

◮ our research: proposes probabilistic f<strong>in</strong>ite<br />

state mach<strong>in</strong>e(s) as key for <strong>in</strong>tegration:<br />

◮ focus about what knowledge and learn<strong>in</strong>g to<br />

use, at each moment <strong>in</strong> a robot’s task<br />

◮ ground<strong>in</strong>g & clos<strong>in</strong>g the world: “obvious”<br />

◮ lends itself very well for DSL representation<br />

◮ Need for open content publicly available<br />

ontology server!<br />

⇒ multi-project cooperation can start now!<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 15


Conclusions<br />

◮ major challenge: not so much the amount but<br />

the variation of different types of knowledge<br />

◮ our research: proposes probabilistic f<strong>in</strong>ite<br />

state mach<strong>in</strong>e(s) as key for <strong>in</strong>tegration:<br />

◮ focus about what knowledge and learn<strong>in</strong>g to<br />

use, at each moment <strong>in</strong> a robot’s task<br />

◮ ground<strong>in</strong>g & clos<strong>in</strong>g the world: “obvious”<br />

◮ lends itself very well for DSL representation<br />

◮ Need for open content publicly available<br />

ontology server!<br />

⇒ multi-project cooperation can start now!<br />

⇒ what license shall we use. . . ?<br />

(Creative Commons–Share alike!?)<br />

Herman Bruyn<strong>in</strong>ckx, <strong>Knowledge</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>robotics</strong> 15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!