Talking(to( 
with( 
Noury&Bouraqadi,&Luc&Fabresse,&Jannik&Laval& 
h"p://car.mines/douai.fr4 
Very 
long-term 
goal! 
44 
4Current4Robots4
54 
Robots4at4our4lab4 
64 
Robot4 
SSoSoCoCwCwwaararere4e44 
ACAcocttmuuapattuootrre4 4r4 
SSSeeennnssosoorrr4 4 4 
AAAcctctutuuaaattotoorr4r4 4 
Physical4Environment4 
74 
Robot4 
SSooCCwwaarree44 
ACAcocttmuuapattuootrre4 4r4 
SSSeeennnssosoorrr4 4 4 
AAAcctctutuuaaattotoorr4r4 4 
Physical4Environment4 
84 
MulHple4Kinds4of4Robots4
94 
MulHple4Kinds4of4Robots4 
Noury4Bouraqadi4–4JM2L420104 
104 
MulHple4Kinds4of4Robots4 
Heterogeneity4Challenge4 
• Different4sensors4&4actuators4 
• Different4shapes4&4sizes44 
• Different4compuHng4capabiliHes4 
114 
Heterogeneity4Challenge4 
124 
Different4Drivers4&4Protocols4 
Different4low/level4algorithms4
Heterogeneity4Challenge4 
134 
Different4Drivers4&4Protocols4 
Different4low/level4algorithms4 
ImplementaHons4 
exist4 
144 
Robot4 
ACAcocttmuuapattuootrre4 4r4 
AAllggoo44 C,(C++( 
Python( 
SSSeeennnssosoorrr4 4 4 
44 
4 
AAAcctctutuuaaattotoorr4r4 4 
Physical4Environment4 
154 
Robot4 
?( 44 
ACAcocttmuuapattuootrre4 4r4 
AAllggoo44 C,4C++4 
Python4 
SSSeeennnssosoorrr4 4 4 
4 
AAAcctctutuuaaattotoorr4r4 4 
Physical4Environment4 
164 
Robot4 
AAllggoo44 C,4C++4 
Python4 
Middleware4 
ACAcocttmuuapattuootrre4 4r4 
SSSeeennnssosoorrr4 4 4 
44 
4 
AAAcctctutuuaaattotoorr4r4 4 
Physical4Environment4
174 
Robot4 
ACAcocttmuuapattuootrre4 4r4 
AAllggoo44 C,4C++4 
Python4 
SSSeeennnssosoorrr4 4 4 
44 
4 
AAAcctctutuuaaattotoorr4r4 4 
Physical4Environment4 
184 
Robot4 
ACAcocttmuuapattuootrre4 4r4 
AAllggoo44 C,4C++4 
Python4 
SSSeeennnssosoorrr4 4 4 
44 
4 
AAAcctctutuuaaattotoorr4r4 4 
Physical4Environment4 
Robot4Guide4using4 
194 
• Museum4 
• Hospital4 
• Shopping4Mall4 
• …4 
Robot4Guide4using4 
204 
• Museum4 
• Hospital4 
• Shopping4Mall4 
• …4
Laser4Scans4!4Map4 Annotated4Map4 
Robot4Guide4using4 
234 
Proprietary4SoCware4 
RRRaaannngggeeefififinnndddeeerr4r44 OOddoommeetteerr44 MMoottoorr44 
Robot4Guide4using4 
244 
Path44 
Planner4 
LocalizaHon4 
System4 
Proprietary4SoCware4 
RRRaaannngggeeefififinnndddeeerr4r44 OOddoommeetteerr44 MMoottoorr44
Robot4Guide4using4 
254 
Path44 
Planner4 
LocalizaHon4 
System4 
App4 
Bridge4 
Proprietary4SoCware4 
RRRaaannngggeeefififinnndddeeerr4r44 OOddoommeetteerr44 MMoottoorr44 
Talking(to( 
with( 
Talking(to( 
with( 
Talking(to( 
with( 
(Talk(Today)(
More4Challenges4 
294 
More4Challenges4 
304 
Resource4 
Constraints4 
(RAM,4CPU,4 
Ba"ery...)4 
Hardware4 
+4SoCware4 
IntegraHon4 
Changing4 
CondiHons4 
More4Challenges4 
314 
Self( 
Adapta;on( 
Changing4 
CondiHons4 
Resource4 
Constraints4 
(RAM,4CPU,4 
Ba"ery...)4 Hardware4 
+4SoCware4 
IntegraHon4 
More4Challenges4 
324 
Smalltalk( 
+(FPGA( 
(Talk(Tomorrow)( 
Resource4 
Constraints4 
(RAM,4CPU,4 
Ba"ery...)4 Hardware4 
+4SoCware4 
IntegraHon4
More4Challenges4 
334 
TDD( 
Hardware4 
+4SoCware4 
IntegraHon4 
More4Challenges4 
344 
TDD4 
Hardware4 
+4SoCware4 
IntegraHon4 
354 
Robot4 
SSoSoCoCwCwwaararere4e44 
ACAcocttmuuapattuootrre4 4r4 
SSSeeennnssosoorrr4 4 4 
AAAcctctutuuaaattotoorr4r4 4 
Physical(Environment( 
364 
Robot4 
SSoSoCoCwCwwaararere4e44 Safety( 
ACAcocttmuuapattuootrre4 4r4 
SSSeeennnssosoorrr4 4 4 
AAAcctctutuuaaattotoorr4r4 4 
Physical(Environment(
374 
Simula;on( 
Safety( 
384 
Noise4 
SimulaHon4 
Resources4 
Failure4 
Asynchrony4 
Precision4 
Methodology4for4Safe4TDD4 
394 
• Ensure4emergency4stop4working!4 
• Order4tests4 
– Sensors4before4actuators4 
– Controlled4environments4before4open4ones4 
– StaHc4environments4before4dynamic4ones4 
• Run4test4only4if4prerequisites4pass4 
Methodology4for4Safe4TDD4 
404 
• Ensure4emergency4stop4working!4 
• Order4tests4 
– Sensors4before4actuators4 
– Controlled4environments4before4open4ones4 
– StaHc4environments4before4dynamic4ones4 
• Run4test4only4if4prerequisites4pass4
Methodology4for4Safe4TDD4 
414 
• Ensure4emergency4stop4working!4 
• Order4tests4 
– Sensors4before4actuators4 
– Controlled4environments4before4open4ones4 
– StaHc4environments4before4dynamic4ones4 
• Run4test4only4if4prerequisites4pass4 
Methodology4for4Safe4TDD4 
424 
• Ensure4emergency4stop4working!4 
• Order4tests4 
– Sensors4before4actuators4 
– Controlled4environments4before4open4ones4 
– StaHc4environments4before4dynamic4ones4 
• Run4test4only4if4prerequisites4pass4 
BoTest4 
Framework4 
434 
the44 
Future4 
is4 
RoboHcs4 
Let’s44make4it4with44 
Smalltalk4 
444 
10(000(000+(
Big4Players4Invest4in4RoboHcs4 
• Amazon4Drones4for4Parcel4Delivery4 
454 
Big4Players4Invest4in4RoboHcs4 
• Google4Self/Driving4Car4 
4 
464 
Big4Players4Invest4in4RoboHcs4 
• Google4Self/Driving4Car4 
4 
474 
Google4Bought484 
RoboHcs4Companies4in4 
2013!4 
484 
the44 
Future4 
is4 
RoboHcs4 
Let’s44make4it4with44 
Smalltalk4
494 
the44 
Future4 
is4 
Talking(to( 
with( 
RoboHcs4 
Let’s44make4it4with44 
Smalltalk4 Noury&Bouraqadi,&Luc&Fabresse,&Jannik&Laval& 
h"p://car.mines/douai.fr4

Talking to Robots in Pharo

  • 1.
    Talking(to( with( Noury&Bouraqadi,&Luc&Fabresse,&Jannik&Laval& h"p://car.mines/douai.fr4 Very long-term goal! 44 4Current4Robots4
  • 2.
    54 Robots4at4our4lab4 64 Robot4 SSoSoCoCwCwwaararere4e44 ACAcocttmuuapattuootrre4 4r4 SSSeeennnssosoorrr4 4 4 AAAcctctutuuaaattotoorr4r4 4 Physical4Environment4 74 Robot4 SSooCCwwaarree44 ACAcocttmuuapattuootrre4 4r4 SSSeeennnssosoorrr4 4 4 AAAcctctutuuaaattotoorr4r4 4 Physical4Environment4 84 MulHple4Kinds4of4Robots4
  • 3.
    94 MulHple4Kinds4of4Robots4 Noury4Bouraqadi4–4JM2L420104 104 MulHple4Kinds4of4Robots4 Heterogeneity4Challenge4 • Different4sensors4&4actuators4 • Different4shapes4&4sizes44 • Different4compuHng4capabiliHes4 114 Heterogeneity4Challenge4 124 Different4Drivers4&4Protocols4 Different4low/level4algorithms4
  • 4.
    Heterogeneity4Challenge4 134 Different4Drivers4&4Protocols4 Different4low/level4algorithms4 ImplementaHons4 exist4 144 Robot4 ACAcocttmuuapattuootrre4 4r4 AAllggoo44 C,(C++( Python( SSSeeennnssosoorrr4 4 4 44 4 AAAcctctutuuaaattotoorr4r4 4 Physical4Environment4 154 Robot4 ?( 44 ACAcocttmuuapattuootrre4 4r4 AAllggoo44 C,4C++4 Python4 SSSeeennnssosoorrr4 4 4 4 AAAcctctutuuaaattotoorr4r4 4 Physical4Environment4 164 Robot4 AAllggoo44 C,4C++4 Python4 Middleware4 ACAcocttmuuapattuootrre4 4r4 SSSeeennnssosoorrr4 4 4 44 4 AAAcctctutuuaaattotoorr4r4 4 Physical4Environment4
  • 5.
    174 Robot4 ACAcocttmuuapattuootrre44r4 AAllggoo44 C,4C++4 Python4 SSSeeennnssosoorrr4 4 4 44 4 AAAcctctutuuaaattotoorr4r4 4 Physical4Environment4 184 Robot4 ACAcocttmuuapattuootrre4 4r4 AAllggoo44 C,4C++4 Python4 SSSeeennnssosoorrr4 4 4 44 4 AAAcctctutuuaaattotoorr4r4 4 Physical4Environment4 Robot4Guide4using4 194 • Museum4 • Hospital4 • Shopping4Mall4 • …4 Robot4Guide4using4 204 • Museum4 • Hospital4 • Shopping4Mall4 • …4
  • 6.
    Laser4Scans4!4Map4 Annotated4Map4 Robot4Guide4using4 234 Proprietary4SoCware4 RRRaaannngggeeefififinnndddeeerr4r44 OOddoommeetteerr44 MMoottoorr44 Robot4Guide4using4 244 Path44 Planner4 LocalizaHon4 System4 Proprietary4SoCware4 RRRaaannngggeeefififinnndddeeerr4r44 OOddoommeetteerr44 MMoottoorr44
  • 7.
    Robot4Guide4using4 254 Path44 Planner4 LocalizaHon4 System4 App4 Bridge4 Proprietary4SoCware4 RRRaaannngggeeefififinnndddeeerr4r44 OOddoommeetteerr44 MMoottoorr44 Talking(to( with( Talking(to( with( Talking(to( with( (Talk(Today)(
  • 8.
    More4Challenges4 294 More4Challenges4 304 Resource4 Constraints4 (RAM,4CPU,4 Ba"ery...)4 Hardware4 +4SoCware4 IntegraHon4 Changing4 CondiHons4 More4Challenges4 314 Self( Adapta;on( Changing4 CondiHons4 Resource4 Constraints4 (RAM,4CPU,4 Ba"ery...)4 Hardware4 +4SoCware4 IntegraHon4 More4Challenges4 324 Smalltalk( +(FPGA( (Talk(Tomorrow)( Resource4 Constraints4 (RAM,4CPU,4 Ba"ery...)4 Hardware4 +4SoCware4 IntegraHon4
  • 9.
    More4Challenges4 334 TDD( Hardware4 +4SoCware4 IntegraHon4 More4Challenges4 344 TDD4 Hardware4 +4SoCware4 IntegraHon4 354 Robot4 SSoSoCoCwCwwaararere4e44 ACAcocttmuuapattuootrre4 4r4 SSSeeennnssosoorrr4 4 4 AAAcctctutuuaaattotoorr4r4 4 Physical(Environment( 364 Robot4 SSoSoCoCwCwwaararere4e44 Safety( ACAcocttmuuapattuootrre4 4r4 SSSeeennnssosoorrr4 4 4 AAAcctctutuuaaattotoorr4r4 4 Physical(Environment(
  • 10.
    374 Simula;on( Safety( 384 Noise4 SimulaHon4 Resources4 Failure4 Asynchrony4 Precision4 Methodology4for4Safe4TDD4 394 • Ensure4emergency4stop4working!4 • Order4tests4 – Sensors4before4actuators4 – Controlled4environments4before4open4ones4 – StaHc4environments4before4dynamic4ones4 • Run4test4only4if4prerequisites4pass4 Methodology4for4Safe4TDD4 404 • Ensure4emergency4stop4working!4 • Order4tests4 – Sensors4before4actuators4 – Controlled4environments4before4open4ones4 – StaHc4environments4before4dynamic4ones4 • Run4test4only4if4prerequisites4pass4
  • 11.
    Methodology4for4Safe4TDD4 414 •Ensure4emergency4stop4working!4 • Order4tests4 – Sensors4before4actuators4 – Controlled4environments4before4open4ones4 – StaHc4environments4before4dynamic4ones4 • Run4test4only4if4prerequisites4pass4 Methodology4for4Safe4TDD4 424 • Ensure4emergency4stop4working!4 • Order4tests4 – Sensors4before4actuators4 – Controlled4environments4before4open4ones4 – StaHc4environments4before4dynamic4ones4 • Run4test4only4if4prerequisites4pass4 BoTest4 Framework4 434 the44 Future4 is4 RoboHcs4 Let’s44make4it4with44 Smalltalk4 444 10(000(000+(
  • 12.
    Big4Players4Invest4in4RoboHcs4 • Amazon4Drones4for4Parcel4Delivery4 454 Big4Players4Invest4in4RoboHcs4 • Google4Self/Driving4Car4 4 464 Big4Players4Invest4in4RoboHcs4 • Google4Self/Driving4Car4 4 474 Google4Bought484 RoboHcs4Companies4in4 2013!4 484 the44 Future4 is4 RoboHcs4 Let’s44make4it4with44 Smalltalk4
  • 13.
    494 the44 Future4 is4 Talking(to( with( RoboHcs4 Let’s44make4it4with44 Smalltalk4 Noury&Bouraqadi,&Luc&Fabresse,&Jannik&Laval& h"p://car.mines/douai.fr4