Knowledge Engineering in robotics
Knowledge Engineering in robotics
Knowledge Engineering in robotics
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