!!
ROS2  !
 !
Geoffrey BIGGSPart 1

F<582;8,-*'
• ''–   AI …

• D*E3+>%D*E3+>'•'7H3
• CPU ?@D($#!)"&=+0G• :H9,-*%2;8,-**H.6/4AH'"•  %'&+G3C/1BG• …

" !%#%
•  $%$• •  •  %
• %$%

,'@EC:;8=QIRDQCS• 7 5>?BJ– *6,
– &1- $6(!3.
@EC:;8.9QB<OR>KQ• PHAC./%!,–*/PhD Problem– */Promotion
Problem– )6*0 -*#52-• >?BJOGN* ( API+L9FLM24=QIRDQC– OGN"– Plug-and-play 

Arena !  
Player   Gazebo !  Player ! Player 2.0 !Player 3.0 !Orocos  
Orocos 2 !Orocos !
"#RT    
OpenRTM !
OpenRTM 1.0!
ORCA 2 !
Microsoft Robotics Studio !YARP !
"ROS

#OPRoS   
ROS 1.0 !20152014

2013

20122011201020092008

2007

2006

2005

2004

2003

2002

2001

2000

1999

1998

ROS 2

20
• BIF9:71

/<@CL– *) &')6 $'2!

• JQJO8;CPSBIF9:7– QKEF47=DN;TCT4AR?T-0AEF– HTG9:7UMT<TV/5*+API0 • >RAJF/"BIF9:7– (0BIF9:70/'%#.!
– main()– .'→,3JQFC8J
,3!

Player,Arena 
Player  Gazebo
Player • ,9LCK=L;ID>@=B@786BHLEJL:

Orocos Orocos – + M)5*
ID>@(.– 9LCK&1AL<+4%'RT

ORC

2004

2003

2002

2001

2000

1999– /$– – "3 ID>@, # &02 !* ('.

1998• API-UNIXF?G+ $"$$
#$#Arena  $
Player  Gazebo  $
Player $ Player 2.0 $Player 3.0 $Orocos Orocos 2 $Orocos $%&RT! 
OpenRTM $
OpenRTM 1.0$
ORCA 2 $
Microsoft Robotics Studio $YARP $% &OPRoS ROS ROS 1.0 $

2015

2014

2013

2012

2011

2010

2009

2008

2007

2006

2005

2004

2003

2002

2001

2000

1999

1998

ROS 2 
• "$ #$– YARP– Orocos– OpenRTM– ROS•  ROS!$ 

0A<!$• 20B • )A5?-A,>7/2+9;=A. – Arena → Stage + Gazebo• ROS0A<0A<

Arena (2000)– ROS "#0A< •Stage (2010)

B:1<6A,0A<– -42'(%@*?8A3?2
4&/2Gazebo

rvizPart ROSROS• Robot Operating System• 2007
• *37/57 +1$'*7/!6-7)6'
 %724,$'

!"#&/
!.0(&7   “...to support the development, distribution, andadoption of open source software for use inrobotics research, education, and productdevelopment.”

http://osrfoundation.org   2D   

http://wiki.ros.org/navigation   

  

DRC#23%'&#"(%'&$ !

            

"ROS('• ;5>*+) ",A7@7=148A<– $(&'–  '!"• (.:A4' – Introspection– 361– 0A/
–…

• 2A>%
– ?914#2A>%
– 2A>$B361-2A>

%PC0.47047596160651484, 0.012463983269873857, 0.13185027912023128, 0.5380365386000314, 0.403864612045705,
0.06069930337048779, 0.3691795213234019, 0.8515692765843788, 0.0736967442312384, 0.2843486311730886,
0.8538529785225724, 0.3129984654314725, 0.3584207454827225, 0.4537846637411378, 0.7561766125048414,
0.8508870244042188, 0.0520696074562399, 0.8765451038148542, 0.15299405008975697, 0.5867355890849806,
0.9669883187750915, 0.41628598565655384, 0.34816285093525845, 0.9728408650406579, 0.41829494089973274,
0.579997374892018, 0.5531830445281459, 0.24530608285472844, 0.38526280587020356, 0.2210817119943037,
0.07975484090387797, 0.6433789010590776, 0.14258622222962336, 0.47068371292023214, 0.021146762861280366,
0.7809218654795851, 0.059743545404254084, 0.7174453572838055, 0.11796690651681152, 0.45170824264501075,
0.3463075513634315, 0.12329222545582419, 0.9238715097652316, 0.20246585186042165, 0.07287853589316085,
0.8857115222065027, 0.2607754782454512, 0.7871998842710477, 0.3123418728541889, 0.24793655686384475,
0.03936840867259228, 0.15830275932784887, 0.0588537758302089, 0.6905061474343309, 0.45187144905773735,
0.3137586806320821, 0.3928776902569401, 0.18194845109045765, 0.7772116865207355, 0.10878199902185848,
0.6046192473442614, 0.3783574047058046, 0.9335545367770111, 0.5931631033298297, 0.8227864249862641,
0.37984882478112314, 0.35863612685228197, 0.712004279109606, 0.3414544916392299, 0.4118358463966818,
0.709283617996954, 0.14020958524673632, 0.03867697529807812, 0.5240273928062406, 0.631862692442692,
0.9698634206694162, 0.6034612197461879, 0.3218208000413312, 0.6832981693054933, 0.6050553280734954,
0.6604449894889293, 0.3442873321468821, 0.18196942376936986, 0.4199897381622488, 0.8804476148633672,
0.1922718532155836, 0.963177730081603, 0.21728977473403277, 0.20754416331944092, 0.30192492471822563,
0.19063402733809054, 0.9498797020928332, 0.6673141005665001, 0.45745969941649967, 0.4351040209987119,
0.5928193275952122, 0.6823498640502099, 0.7442921879931558, 0.00932650033833149, 0.11983479696483657,
0.0519672566623508, 0.36971891569137594, 0.190717653457389, 0.7492902839065593, 0.5602249232567452,
0.6585780171293569, 0.08658888622314564, 0.6945120787132953, 0.5580665700278967, 0.48146812759625746,
0.4540375145339196, 0.8059387960368088, 0.8555468352647819, 0.5737110434503095, 0.35666621246462693,
0.06659849272034857, 0.21051537392984276, 0.731280246174109, 0.9151365268872526, 0.37390717986528854,
0.32541148512546336, 0.5594068298257496, 0.08044184535792642, 0.5591207304751257, 0.20915450867051832,
0.02534903593989679, 0.19416932780283314, 0.34906251623185813, 0.8432152857763088, 0.8664024388302471,
0.2840496778118137, 0.2781658794647851, 0.2465128654531562, 0.9988375836561965, 0.887499520253597,
0.027578461404808352, 0.29371750902319593, 0.8873891214375212, 0.914573150995103, 0.000652243172693745,
0.06772123956909537, 0.9597290829459296, 0.7714181981544204, 0.32507290632274355, 0.11058804894490903,
0.9998152138773576, 0.622944943150389, 0.3816913626678231, 0.7083424647825276, 0.11404328136373076,
0.21818485912970653, 0.08168144717155512, 0.6732894753601069, 0.5991484405675498, 0.026001431290659682,
0.7854449857322512, 0.2454220869235253, 0.9264245146883056, 0.9350749518287534, 0.9652777708676377,
0.8655942624669641, 0.27395894599419734, 0.0785308404808881, 0.3250820262765106, 0.5039220523760805,
0.4985074812618765, 0.01020455824663058, 0.5881052368037296, 0.01781120958533622, 0.27810744561068323,
0.4818559083236109, 0.535352899944137, 0.6768776195049253, 0.16544968523832215, 0.5330947114782651,
0.6964628631194874, 0.09006024022384884, 0.07967584234804681, 0.9611481706094649, 0.9264391787583394,
0.6569180180956492, 0.9620719195023297, 0.4245900557129376, 0.7340280656377078

/1.+• 94.0  '– /:-–  "5:,•  )94.0!$ &!
&• 7*3#" &• ;28:6& (%   !   →  →  Part 3
ROS 2ROS555• 3.)*'+*#$",2)*+%6/• 3.)*– 3.)*!
–  – -4(1606&6!
–  ROS 2?
• ROS 1 !!
• ROS 1" !!
• ROS 1 )-+&'$  !!
• ROS 1# !
• ROS 1!(./,*% 0" Arena !#Player Gazebo !#Player 2.0 #Player #
Orocos
Player 3.0 #Orocos #
Orocos 2 #$%RT " OpenRTM #
ORCA 2 #
OpenRTM 1.0#
Microsoft Robotics Studio #YARP #$ %OPRoS
ROS

2017

2016

2015

ROS 22014

2013'&
2012

2011

2010

2009

2008

2007

2006

2005

2004

2003

2002

2001

2000

1999

1998

ROS #ROS 1.0 #ROS 2#ROS• Robot Operating System• 2007
• *37/57 +1$'*7/!6-7)6'
 %724,$'

!"#&/
!.0(&7ROS• Robot2OperatingSystemROS
• 2007 !
• 2;?7=?'
5?.$>(39,/2&?7)>5?1>/


-?:

#"<4,/ %)*+.7)680.$?

F<582;8,-*'
• ''–   AI …

• D*E3+>%D*E3+>'•'7H3
• CPU ?@D($#!)"&=+0G• :H9,-*%2;8,-**H.6/4AH'"•  %'&+G3C/1BG• …

F<582;8,-*'
• ''–   AI …

• D*E3+>%D*E3+>'•'7H3
• CPU ?@D($#!)"&=+0G• :H9,-*%2;8,-**H.6/4AH'"•  %'&+G3C/1BG• …

ROS• OSRF  

#" ROS$• & – #/4-)3• 6)'1(.12!%7–*+,05*+,0!ROS
• #$
• !%%"% ROS 

ROS
• POSIXOS• Ubuntu
•  

Q ROS 2• 821=K!/&+ '$*• ROS1")#+$*"82GN;7N:– >C@452- – ..O ,I>N:E38LP– I2J?3F– OBNAH3C936J P– 3LCH- –  %0(M%0(DK<:Part 4
ROS 1ROS 2

ROS 1 ROS 2!
•4;0(:• 4;0(:!"#• QoS• 8%389$<&/'-7!
• *,.'9$:,%6
• 2<1!
• OS)5<0! • 4;+*!
•  

ROS 1"& $• &  #
• Master'roscore(– !&&• & ROSTCP• & XMLRPC

MasterXMLRPC

&

&

#

#

ROSTCP%ROSUDP

&
#

"& $ROS 2".3#6$25
• -6+$%)/,6&!.
4'%.4'%• Master– Single point of failure• *6(0(*6(DDS
 013
–



-6+-6+.4'%.4'%
DDS-6+013".3#6$25

+'-1DDS(Data Distribution Service).0 0"/0.0 0&0$

scan
%,(-.0 0&0$)0'.00&0$• OMG• •  0*/#0!
• )0'DDS ROS

ROS

rclcpp (ROS  )rclcpp (ROS  )rmw (ROS API)

rmw (ROS API)

FastRTPSRTI Connext DDS

DDS interoperability wire protocolDDS  eProsima FastRTPS

Apache 2

RTI Connext DDS

Commercial

ADLink OpenSplice DDS

Commercial

DDS

QoS

UDPTCP

Best-effort

Reliable

ROS 2/DDS Best-effort

Reliable

ROS: 

Master
MasterPC

XM
LRPC

LRXM

1

DDS Discovery
Protocol2 – ROS 1
1main()

2


main()3main()   – ROS 2
2

1ROS


ROS


3

Executor   

ROS  – ROS 2

&$!% – ROS 2

# '"$&(&&  &"# – ROS 2•   !&% & !
– ' $%(  ROS 1

ROS 2     
ROS 1

ROS 2    

,3+0-" 2 – ROS 2#$)/ 4%(*(.03 5 $)3*
1&3$ 
12'/!3+$)3*

12'/ROSROSROSROS1

ROS2(AI76• 05C1G• Test-DrivenLTDDM• 2J>J%
• LinuxMac OSXWindows%CI&;6<94:<;6<• Kanban%94:<(• Backlog'.

• 6AFJ<(+-%94:<!Backlog• 'Ready ,In Progress'• 94:< @EJ9%,Ready'• Continuous Integration• Linux&Windows&OSX%;6<(H?DK• 94:<!In Review'Pull request• ( !H?DK• 8K6!#*$H?DKBK5• Master3EJ9'94:<@EJ9/BK5• 94:<@EJ9
• 94:</".

• FFK6?G=)
FFK6%   https://waffle.io/ros2/ros2   https://github.com/ros2   http://ci.ros2.org/

(ROS,• >D:9!'"& .
• 3E5<6;AE+2–

(*-#%12$0• MISRA-C)
• 89<@ –ROS2+FApex.ioG• :5BC<4+ .7?E=/– DDS-Security)

ROS1 • 
ROS1 ROS2
ROS

ROS2/DDS






ROS1




ROS2


ROS2#$ &• )@9D-.+#• ;F9*'("–  !E>68 – C+D5,A

• Windows%%127A0?F8)=B68</FA"• #:F3"E>684<8-.+=B68</FA

Part 5ROS 2• +.'*0)
•  – ROSConROS 2!

• --0'&$%.
–--0'6/7• "ROS 1+#0(,0– actionlib– MoveIt!
–…

ROS Ardent Apalone 02017/121• '. ++.
– !$ ++.•   ++.
– &,#(.• ".!.)-2 /– rmw: 0.4.0 ←– rclcpp: 0.4.0– tf2_eigen: 0.8.0– rviz2: 2.0.0

*%*+ROS Bouncy Bolson 42018/065• 6)3#//3– (1&,3

• %!3$3-2!( • '3 + –
launch"30– .'0 "30– %.*3)3#
– Rviz –   ,&,• (+• • %,IDL • Python",launch,*• ! rosbag• )*$#, • ')#, 
https://github.com/ros2/ros2/wiki/Roadmap

ROS 2 • +(#4"– '04," – !7/32&$),8– 67 +(#4-%104," !8– .5*"!6

http://design.ros2.org/

ROS 2 

• "!"– ROS 2 
"!"   – #https://github.com/ros2/rclcpp/pulls

https://github.com/ros2

ROS 2• %
– ROS 2$ $ – 
– !#"&https://waffle.io/ros2/ros2https://gbiggs.github.io/
rosjp_ros2_intro/