๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SW/ROS2

[ROS2] ROS2์˜ ๊ธฐ์ดˆ. ์ •์˜๋ถ€ํ„ฐ ๊ธฐ๋ณธ๊นŒ์ง€ (1) (๋ฉด์ ‘์ค€๋น„์šฉ ๋ฐ ์ž๊ธฐ์†Œ๊ฐœ์„œ์šฉ ๋ณต์Šต)

์ด์ „๊ธ€ (ROS2 ์„ค์น˜)

 

ROS2) ROS2 Humble ์„ค์น˜ํ•˜๊ธฐ (Ubuntu 22.04 LTS) !

23.09.29 ์ง‘ํ•„24.07.04 ํ‹€๋ฆฐ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€ ์ˆ˜์ • --- INDEX ---1. Terminator ์„ค์น˜2. VScode ์„ค์น˜3. ROS ์„ค์น˜4. ROS ์„ค์น˜ ํ™•์ธํ•˜๊ธฐ --- --- --- ---0. Basic$ sudo apt update$ sudo apt upgrade์ผ๋‹จ ์ด๊ฑฐ ๊ฑธ์–ด๋†“๊ณ  ์‹œ์ž‘ !์–ธ์ œ๋‚˜ ๊ธฐ๋ณธ

99kh.tistory.com

 

 

----

 

 

 

 

0. ์„œ๋ก 

 ์ทจ์—… ์ค€๋น„ํ•จ์— ์žˆ์–ด์„œ, ํ•„์ž์˜ ๊ธฐ๋ก์šฉ์œผ๋กœ ๋‚จ๊ธด๋‹ค.

์ด ๊ธ€์„ ๊ฒ€์ƒ‰ํ•ด์„œ ํƒ€๊ณ  ๋“ค์–ด์˜ค๋Š” ๋ถ„๋“ค๋„ ์•„๋งˆ ์ทจ์—…์ค€๋น„์ƒ์ด๊ฑฐ๋‚˜, ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ผ๊ฒƒ์ด๋ผ ์ƒ์ •ํ•˜๊ณ  ๊ธ€์„ ์‹œ์ž‘ํ•œ๋‹ค.

 

ํ•„์ž๋„ ์˜ค๋žœ๋งŒ์— ROS2๋ฅผ ๋งŒ์ง€๊ธฐ์— ๊ธฐ์–ต์ด ์•ˆ๋‚  ์ˆ˜ ์žˆ์Œ์„ ์–‘ํ•ด ๋ฐ”๋ž€๋‹ค.

๋‹ค๋งŒ, ๊ทธ๋ ‡๋‹ค๊ณ  ์ดˆ๋ณด๋Š” ์•„๋‹ˆ๋‹ค. ROS2๋ฅผ ํ™œ์šฉํ•ด ๋‹ค์–‘ํ•œ ๊ฒฝ์ง„๋Œ€ํšŒ์—์„œ ์œก๊ตผ์ฐธ๋ชจ์ด์žฅ์ƒ์„ ๋น„๋กฏํ•ด ๊ฝค๋‚˜ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ์ˆ˜์ƒํ–ˆ์—ˆ๋‹ค.

 

์„ธ์ƒ ๋ชจ๋“  ์ทจ์ค€์ƒ๊ณผ ๋Œ€ํ•™์ƒ๋“ค ํŒŒ์ดํŒ…์ด๋‹ค.

 

์ฐธ๊ณ ๋กœ, ๋ฐ”์œ์‚ฌ๋žŒ๋“ค์€ 2๋ฒˆ๋ถ€ํ„ฐ ๋ณด๋ฉด ๋œ๋‹ค.

 

1. ์ •์˜

ROS์˜ ์ •์˜ ์ž์ฒด๋Š” 

Robot Operating System์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ด๊ฒŒ OS์ธ๊ฐ€? ์•„๋‹ˆ๋‹ค. ์ด๊ฑธ ์˜คํ•ดํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

 

ROS2๋Š” ์ฒ ์ €ํ•˜๊ฒŒ middle ware์ด๋ฏ€๋กœ ์ด๋ฅผ ํ—ท๊ฐˆ๋ฆฌ๋ฉด ์•ˆ๋œ๋‹ค.

์ •ํ™•ํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด,

 

 

๋กœ๋ด‡ ๋ฐ ๋ถ„์‚ฐ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ๋ฏธ๋“ค์›จ์–ด ํ”„๋ ˆ์ž„ ์›Œํฌ

 

 

์ธ๋ฐ, ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๊ธฐ์ˆ ํ•ด๋ณด์ž๋ฉด,

 

"๋กœ๋ด‡์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฌ๋Ÿฌ ์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋“ˆ(์„ผ์„œ์ฒ˜๋ฆฌ, ์ œ์–ด, ์ธ์‹, ํ†ต์‹  ๋“ฑ)์„ ํ‘œ์ค€ํ™”๋œ ํ†ต์‹  ๊ตฌ์กฐ์™€ ๊ฐœ๋ฐœ ๊ทœ์น™์œผ๋กœ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋ ˆ์ž„์›Œํฌ"

 

์ด๋‹ค. 

ROS2๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ OMG์—์„œ ์ •์˜ํ•œ DDS middleware์ด๊ณ  framework์ด๋‹ค.

 

๋ง์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋Š”๋ฐ,

middleware๋Š”,

OS์™€ Application ์‚ฌ์ด์—์„œ ํ†ต์‹ , ๋ฐ์ดํ„ฐ๊ตํ™˜, ๋™๊ธฐํ™”, ๋ถ„์‚ฐ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” software ๊ณ„์ธต์ด๋‹ค. ํ•„์ž๊ฐ€ ๋‚˜์ค‘์— ์ด software, hardware layer์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์„ ํ•œ๋‹ค๋ฉด ๋ฐ”๋กœ ์—ฌ๊ธฐ ๋ฐ‘์— ๋‚จ๊ฒจ๋‘๊ฒ ๋‹ค.

 

DDS(Data distribution Service)๋Š”,

์šฐ๋ฆฌ ํ•œ์ฟก๋ง๋กœ ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ ์„œ๋น„์Šจ๋ฐ, ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์‹ค์‹œ๊ฐ„์„ฑ, ์‹ ๋ขฐ์„ฑ, ํ™•์žฅ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด "๋ฐ์ดํ„ฐ ์ค‘์‹ฌ"์˜ ํผ๋ธ”๋ฆฌ์‹œ-์„œ๋ธŒ์Šคํฌ๋ผ์ด๋ธŒ ๋ชจ๋ธ์„ ์ œ๊ณตํ•˜๋Š” "ํ‘œ์ค€ ๋ฏธ๋“ค์›จ์–ด"์ด๋‹ค.

 ์ด ๋ง์—๋„ ํ‚ฅ์ด ๋ช‡๊ฐœ ์žˆ๋Š”๋ฐ, "๋ฐ์ดํ„ฐ ์ค‘์‹ฌ(Data-Centric)"์ด๋ผ๋Š” ๋ง๋„ ์ค‘์š”ํ•˜๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฉ”์‹œ์ง€ ์ค‘์‹ฌ์€ ๊ทธ๋ƒฅ A -> B ๊ฐ™์€ ๋А๋‚Œ์ธ๋ฐ,

๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์€ "์šฐ๋ฆฌ ์‹œ์Šคํ…œ์— ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•ด!!"ํ•˜๊ณ  ์™ธ์น˜๋ฉด, ๊ทธ๊ฑธ ๊ตฌ๋…์ค‘์ธ ์นœ๊ตฌ๊ฐ€ ์ฝ์–ด๋“ค์ด๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

๋ง์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๋‹ˆ ๋‚˜๋จธ์ง„ ์งง๊ฒŒ,

OMG๋Š” object management group์œผ๋กœ, UML๊ฐ™์€ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ๊ณผ SW์•„ํ‚คํ…์ฒ˜ ํ‘œ์ค€์„ ์ •ํ•ด์ฃผ๋Š” ๊ตญ์ œ ํ‘œ์ค€ํ™” ๋‹จ์ฒด๋‹ค. ์ด๋Ÿฐ๊ฒŒ ํ‘œ์ค€์ด ์žˆ์–ด์•ผ ์‚ฌ๋žŒ๋“ค์ด ์“ฐ๊ธฐ ํŽธํ•˜๋‹ค.

 

ํ”„๋ ˆ์ž„์›Œํฌ๋Š”, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด ๊ตฌ์กฐ์™€ ์‹คํ–‰ํ๋ฆ„์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด๋‘๊ณ , ๊ฐœ๋ฐœ์ž๋Š” ํ•„์š” ๋กœ์ง๋งŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด๋‹ค. ROS2๋„ ๊ทธ๋ ‡๋‹ค.

 

 

 

 

 

1.1 ROS? ROS2?

ROS2๊ฐ€ ๋ญ˜๊นŒ?

์ผ๋‹จ, "2" ๋ผ๋Š”๊ฑด, 1๋„ ์žˆ๋‹ค๋Š” ์–˜๊ธฐ๋‹ค.

 

๊ทผ๋ฐ ROS2๋ผ๊ณ  ๊ตณ์ด ๋ถ€๋ฅด๋Š” ์ด์œ ๋Š” ๊ฐ„๋‹จํžˆ, ๋„ˆ๋ฌด ๋งŽ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์‚ฌ์‹ค ํ•„์ž๋Š” ROS1์ด ubuntu 20.04 ํ›„๋กœ ๋‚˜์˜ค๋Š” ์šฐ๋ถ„ํˆฌ์—์„œ ์ง€์›์ด ์•ˆ๋˜๊ธธ๋ž˜ ์ง„์ž‘์— ์ง€์› ์ข…๋ฃŒ๋œ์ค„ ์•Œ์•˜๋‹ค.

๋‹ค๋งŒ, ์ •๋ณด๋ฅผ ์ข€ ์ฐพ์•„๋ณด๋‹ˆ, ubuntu 20.04๋กœ ๋“ค์–ด๊ฐ€๋Š” ROS noetic์ด 2025๋…„ 5์›”์— ์ง€์› ์ข…๋ฃŒ๋๋‹ค ํ•˜๋”๋ผ.

ROS ๋ฐฐํฌํŒ ์ถœ์‹œ Ubuntu ver EOL(์ง€์›์ข…๋ฃŒ)
Kinetic 2016.05 16.04 2021.04
Melodic 2018.05 18.04 2023.04
Noetic(์ตœํ›„) 2020.05 20.01 2025.04

 

์•”ํŠผ ROS1์„ ์ •๋ฆฌํ•˜๋ฉด ์ด๋Ÿฐ๋А๋‚Œ์ธ๋ฐ, ์‚ฌ์‹ค ROS1์ด๋ผ๊ณ  ๋”ฐ๋กœ ๋ถ€๋ฅด์ง€ ์•Š๊ณ  ๊ทธ๋ƒฅ ROS๋ผ๊ณ  ํ•œ๋‹ค. ๋‹ค๋งŒ, 1์žฅ์—์„œ๋Š” ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ์œผ๋‹ˆ ROS1์ด๋ผ๊ณ  ๊ธฐ์ˆ ํ•˜๊ฒ ๋‹ค.

 

ROS2๊ฐ€ Ubuntu 20.04๋ถ€ํ„ฐ ์ ์šฉ์ด ๋˜์–ด๋ฒ„๋ ค, ROS1์€ ์ตœํ›„๊ฐ€ melodic์ด๋ผ๊ณ  ์•Œ๊ณ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๋งŽ์„ ๊ฒƒ์ด๋‹ค.

ํ•„์ž๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ROS2 Humble๋กœ ์‹œ์ž‘ํ•ด๋ฒ„๋ ค์„œ ์ž˜์„ ๋ชจ๋ฅด๊ฒ ๋‹ค.

 

๊ทธ๋ž˜์„œ ROS1๊ณผ ROS2์˜ ์ฐจ์ด๊ฐ€ ๋ญ๋ƒ?

์•„๋ž˜์™€ ๊ฐ™์€ ์ฐจ์ด๊ฐ€ ์žˆ์–ด, ROS1๊ณผ ROS2๋Š” ๊ฑฐ์˜ ์™„์ „์ด ๋‹ค๋ฅธ ํ”Œ๋žซํผ์œผ๋กœ ๋ณธ๋‹ค.

 

1.2 ROS1๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ, ROS2์˜ ํŠน์ง•

์‚ฌ์‹ค ๋‚ด์šฉ์„ ๋งŽ์ด ๋บ๋‹ค. ์ค‘์š” ํฌ์ธํŠธ๋งŒ ์ง‘์„ ์ˆ˜ ์žˆ๊ฒŒ.

ROS1์€ DDS๋กœ, ROS ์ž์ฒด์˜ DDS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋˜ํ•œ, Application์— Master Node๊ฐ€ ์žˆ์–ด, ์—ฌ๊ธฐ์„œ ๋…ธ๋“œ๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ROS1์€ ๊ทธ ์ž์ฒด๋กœ middleware๋ผ๊ณ  ๋ณด๊ธฐ์— ์กฐ๊ธˆ ์• ๋งคํ–ˆ๋‹ค.

 

๊ทผ๋ฐ ROS2๋Š” ๋ชจ๋‘ middleware๋กœ ๋บ๊ณ , master Node๋„ ์‚ฌ๋ผ์กŒ๋‹ค.

๋˜ํ•œ, OS๋„ Linux๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ windows, macOS, RTOS๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

ROS1๋„ ๊ฐ€๋Šฅํ–ˆ๋˜๊ฑฐ ๊ฐ™์€๋ฐ, ํ†ต์‹ ๋งŒ ์ž˜ ์žก์•„๋‘๋ฉด ์•„๋‘์ด๋…ธ ์ž์ฒด๋ฅผ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋กœ ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

 

 

ROS2๋Š” ROS1์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์„ค๊ณ„๋˜์—ˆ๋‹ค.

 

ROS๋Š” ์‚ฌ์‹ค "์—ฐ๊ตฌ์šฉ ํ”„๋ ˆ์ž„์›Œํฌ" ์ •๋„์˜€์œผ๋‚˜, ROS2๋กœ ์‹ค์ œ ํ˜„์žฅ์— ํˆฌ์ž… ๊ฐ€๋Šฅํ•œ ๋กœ๋ด‡ ๋ฏธ๋“ค์›จ์–ด๋กœ ์žฌํƒ„์ƒ ๋˜์—ˆ๋‹ค.

 

์ด๋Ÿฐ ROS2๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ๋•Œ, ํ•ต์‹ฌ ๋ชฉํ‘œ๋Š” 

  • ์‹ค์‹œ๊ฐ„์„ฑ ์ง€์›
  • ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์— ๊ฐ•ํ•œ ๊ตฌ์กฐ
  • ์‚ฐ์—…, ์ƒ์šฉ ํ™˜๊ฒฝ ๋Œ€์‘
  • ๋ณด์•ˆ
  • Multi OS ์ง€์›

์ด์—ˆ๊ณ , ์ด๋Š” ROS2 ๊ตฌ์กฐ์— ์—ฌ์‹คํžˆ ๋ฌป์–ด๋‚œ๋‹ค.

 

 

2 ROS2 ๊ตฌ์กฐ์˜ ํ•ต์‹ฌ 

ROS2๋Š” ๋‹จ์ˆœํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ™์€๊ฒŒ ์•„๋‹ˆ๋‹ค.

 

  1. ๋…ธ๋“œ ๊ธฐ๋ฐ˜ ๋ถ„์‚ฐ ๊ตฌ์กฐ
  2. ๋А์Šจํ•œ ๊ฒฐํ•ฉ(Loose Coupling)
  3. ๋ถ„์‚ฐ์‹œ์Šคํ…œ ์ „์ œ

 

 

2.1 ๋…ธ๋“œ ๊ธฐ๋ฐ˜ ๋ถ„์‚ฐ ๊ตฌ์กฐ

ROS2์˜ ์‹œ์Šคํ…œ์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋…ธ๋“œ(Node)๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

 

โœ“ ํ•˜๋‚˜์˜ ๋…ธ๋“œ = ํ•˜๋‚˜์˜ ์—ญํ• 

โœ“ ์„ผ์„œ์ฒ˜๋ฆฌ, ์ œ์–ด, ํŒ๋‹จ์„ ๋ถ„๋ฆฌ

โœ“ ๋…๋ฆฝ์  ์‹คํ–‰ ๋ฐ ์žฌ์‹œ์ž‘ ๊ฐ€๋Šฅ

 

์ด๋ ‡๊ฒŒ๋˜๋ฉด ๋ญ๊ฐ€ ์ด์ ์ด๋ƒ?

-> ๊ฐ ์„ผ์„œ๋ณ„๋กœ ๋งก๊ณ ์žˆ๋Š” ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๊ณ , ์ด๋“ค์ด Publish๋งŒ ํ•ด์ฃผ๋ฉด, ์‹œ์Šคํ…œ ์•ˆ์—์„œ ์ด ์ •๋ณด๊ฐ€ ๋ฐœํ–‰๋œ๋‹ค!

-> ์„ผ์„œ์— ์ „์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด, ํ•ด๋‹น ๋…ธ๋“œ์—์„œ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  Publish ํ•˜๋ฉด ๋œ๋‹ค!

-> ๋งŒ์ผ ๋‚ด๊ฐ€ ์˜ˆ์ƒํ•œ ๋™์ž‘์ด ์•„๋‹ˆ๋ผ๋ฉด, publish๋œ ์ •๋ณด๋ฅผ ๋‚ด๊ฐ€ ์ฝ์–ด๋ด๋„ ๋˜๊ณ , ํ•„์š”ํ•œ ๋…ธ๋“œ๋งŒ ์ผœ๊ณ  ๋Œ์ˆ˜๊ฐ€ ์žˆ๋‹ค!

 

 

ํ•œ๋งˆ๋””๋กœ, ๋””๋ฒ„๊น…์— ์šฉ์ดํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜๋„ ์‰ฌ์šฐ๋ฉฐ, ๊ธฐ๋Šฅ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ.

 

 

๊ธฐ๋Šฅ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š”๊ฑด ์ข€ ์ค‘์š”ํ•˜๋‹ค.

ํ•„์ž๋Š” ์ตœ๊ทผ์— ๋ฐฉ์‚ฐSW๊ฐœ๋ฐœ ๊ด€๋ จ ๊ต์œก์„ ๋“ค์—ˆ์—ˆ๋Š”๋ฐ, Vํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ ๊ฐœ๋ฐœํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋Šฅ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๊ธฐ๋Šฅ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉด ์ด ํ…Œ์ŠคํŠธ๊ฐ€ ํŽธํ•ด์ง„๋‹ค.

 

๋˜ํ•œ, ๊ธฐ๋Šฅ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ด ๋ฐฉ์‚ฐSW๊ฐœ๋ฐœ ๊ด€๋ จ ๊ต์œก์„ ๋“ค์œผ๋ฉด์„œ ์ฒ˜์Œ ํ•ด๋ดค๋Š”๋ฐ, ๋‹ค๋ฅธ ์—ฌํƒ€ ํ”„๋กœ์ ํŠธ์—์„œ ์ด ๊ธฐ๋Šฅ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ๋ณ„ ์„ฑ๋Šฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ธฐ์—, ์–ด๋–ค ๋…ธ๋“œ๊ฐ€ ์„ฑ๋Šฅ์„ ์–ผ๋งˆ๋‚˜ ๋จน๊ณ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

2.2 ๋А์Šจํ•œ ๊ฒฐํ•ฉ(Loose Coupling)

๋А์Šจํ•œ ๊ฒฐํ•ฉ.. ์ด๊ฑฐ ๋ฉด์ ‘์—์„œ๋„ ๋“ค์€ ๋ฐ” ์žˆ๋‹ค... ๋А์Šจํ•œ ๊ฒฐํ•ฉ์ด ๋ญ๋ƒ๊ณ  ๋ฌป๋”๋ผ. (WPF์˜ MVVM)

 

์ด๋ฏธ ์ƒ์ˆ ํ–ˆ์ง€๋งŒ, ๋…ธ๋“œ๊ฐ„์—๋Š” ์ง์ ‘ ํ˜ธ์ถœ ์—†์ด ์—†๋‹ค.

์ด๊ฒŒ ์–ด์ฉŒ๋ผ๊ณ ..? ์‹ถ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ,

 

 

โœ“ ์†ก์‹  ๋…ธ๋“œ๋Š” ์ˆ˜์‹  ๋…ธ๋“œ๋ฅผ ๋ชฐ๋ผ๋„ ๋จ

โœ“ ์ˆ˜์‹  ๋…ธ๋“œ๋Š” ์†ก์‹  ๋…ธ๋“œ๋ฅผ ๋ชฐ๋ผ๋„ ๋จ 

 

์ด๋Ÿฐ ๋А๋‚Œ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ.. "๋ฐ์ดํ„ฐ๊ธฐ๋ฐ˜" ๊ฐ™์€ ๋А๋‚Œ์ด๋‹ค.

 

 

2.3 ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ์ „์ œ

ROS2๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ถ„์‚ฐ์‹œ์Šคํ…œ์„ ์ „์ œ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ด์ ์ด ์žˆ๋‹ค.

 

โœ“ ๋‹ค์ค‘ CPU์‚ฌ์šฉ

โœ“ ๋‹ค์ค‘ OS์—์„œ ์‚ฌ์šฉ

โœ“ ๋‹ค์ค‘ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ

 

์ด๋Ÿฐ ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•ด๋„ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค.

์ง„์งœ๋กœ Linux์™€ Windows๊ณผ MacOS๋ฅผ ํ•œ๋ฒˆ์— ์จ๋„, ๊ฐ™์€ ์‹œ์Šคํ…œ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

 

 

 

3. ๋งˆ๋ฌด๋ฆฌ ๋ฐ ๋‹ค์Œ๊ธ€

ํ•„์ž๋Š” ๊ฐ ๊ธฐ๋Šฅ๋ณ„ ๋…ธ๋“œ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ (Topic, Service, action)์„ ์‚ฌ์šฉํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ–ˆ์—ˆ๋‹ค.

๊ทผ๋ฐ ์ฒซ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋‹จ์ˆœํžˆ "๋…ธ๋“œ ๋ถ„๋ฆฌ"๋งŒ ๋˜๋ฉด ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์ผ์ค„ ์•Œ์•˜๋‹ค ใ…‹ใ…‹

์•„๋‹ˆ๋”๋ผ.. ๊ธฐ๋ณธ์ ์œผ๋กœ run() ๋Œ๋ฆฌ๋ฉด, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ธ Single Thread๋กœ ๋Œ์•„๊ฐ€๊ฒŒ ๋˜๊ณ , ์ด๊ฒŒ ๋…ธ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์—ฌ๋„ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๋Œ์•„๊ฐ„๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ๋กœ ๋Œ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ๋”ฐ๋กœ ์žˆ๊ณ , 

 

๋งŒ์•ฝ ๋‹ค์ค‘ ๋…ธ๋“œ๋ฅผ ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ๋กœ ๋Œ๋ฆฌ๊ฒŒ๋˜๋ฉด? Linux์˜ ๊ธฐ๋ณธ ์Šค์ผ€์ฅด๋ง์ธ CFS๋กœ ๋Œ์•„๊ฐ€๊ฒŒ ๋œ๋‹ค.

 

๋‹ค์Œ ๊ธ€์—์„œ๋Š” Topic, Service, action๋“ฑ ๋…ธ๋“œ์™€ ๋…ธ๋“œ์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์— ๋Œ€ํ•ด ํฌ์ŠคํŒ… ํ•  ์˜ˆ์ •์ธ๋ฐ, ๊ธ€์ด ์ถ”๊ฐ€๋˜๋ฉด ์ด ๋ฐ‘์— ๋งํฌ๋ฅผ ๋‚จ๊ฒจ๋‘๊ฒ ๋‹ค.

 

 

 

 

------

 

25.12.13 ์ง‘ํ•„