Summary | ROS2 III |
[ ROS2 ] ROS ๊ธฐ์ด III (DDS์ QoS)
์ด์ ํฌ์คํธ์ ๋ด์ฉ์์๋ Topic๊ณผ Service, ๊ทธ๋ฆฌ๊ณ Action์ ๋ํด ๋ค๋ฃจ์๋ค. Node ๊ฐ ํต์ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํ๋ค๋ฉด ํด๋น ํฌ์คํธ๋ฅผ ๋ฐฉ๋ฌธํ๊ธฐ ๋ฐ๋๋ค. ๋ณธ ํฌ์คํธ์์๋ ๋ฉ์์ง ํต์ ๋ฐฉ์ DDS์ QoS์ ๋ํด ์์๋ณด์.
DDS Data Distribution Service
DDS๋?
ROS2๋ ์ฐ์ ์ฉ ์์ฅ์ ์ํด ํ์ค ๋ฐฉ์ ์ฌ์ฉ์ ์ค์ํ๊ฒ ์ฌ๊ธด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ROS2๋ ROS1๊ณผ ๋น์ทํ๊ฒ ๋ง๋ค๊ธฐ๋ณด๋ค๋ ์ฐ์ ์ฉ ํ์ค์ ๋ง๋ค๊ณ ์ํ๊ณ๋ฅผ ๊พธ๋ ค๊ฐ๊ณ ์์๋ DDS๋ฅผ ํต์ ๋ฏธ๋ค์จ์ด๋ก์ ์ฌ์ฉํ๋ค.
DDS์ ํน์ง
- ์ฐ์
ํ์ค
- ๋น์๋ฆฌ๋จ์ฒด OMG๊ฐ ๋ถ์ฐ๊ฐ์ฒด์ ๋ํ ๊ธฐ์ ํ์ค์ ์ ํ๊ณ ์ ๋ง๋ ๋ฏธ๋ค์จ์ด
- ์ฐ์ ํ์ค์ผ๋ก ์๋ฆฌ์ก์
- ์ด์์ฒด์ ๋
๋ฆฝ
- DDS๋ Window, Linux, MacOS, Android ๋ฑ ๋ค์ํ OS ์ง์ํจ
- ์ธ์ด ๋
๋ฆฝ
- DDS๋ ๋ฏธ๋ค์จ์ด๋ก, ๊ทธ ์์ ๋ ๋ฒจ์ธ ์ฌ์ฉ์ ์ฝ๋ ๋ ๋ฒจ์์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ฐ๊พธ์ง ์์๋ ๋จ
- ROS2์์๋ RMW ROS Middle Ware๋ก ๋์์ธ๋์ด ๋ค์ํ ์ธ์ด ์ง์
- UDP ๊ธฐ๋ฐ ์ ์ก ๋ฐฉ์
- ์ฌ๋ฌ ๋ชฉ์ ์ง๋ก ๋์์ ๋ณด๋ผ ์ ์์ โก๏ธ ๋น ๋ฅธ ์ ์ก ์๋
- TCP ๋ฐฉ์์ ๋นํด ์ ๋ขฐ์ฑ์ด ๋จ์ด์ง์ง๋ง
QoS
๋ฅผ ๋์ ํ์ฌ ์ด๋ ์ ๋ ํด๊ฒฐํจ
- ๋ฐ์ดํฐ ์ค์ฌ์
- DDS ์ฌ์ ์ค DCPS Data-Centric Publish-Subscribe๋ ์ ์ ํ ์์ ์์๊ฒ ์ ์ ํ ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ์ ๋ฌํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ publish ๋ฐ subscribe ๋ฐฉ์์ด๋ค.
- ๋์ ๊ฒ์
- ์ด๋ค Topic์ด ์ด๋ค ๋๋ฉ์ธ ์์ญ์ ์๊ณ , ์ด๋ค Node๊ฐ ์ด๋ฅผ ๋ฐ์ /์์ ํ๋์ง ์ ์ ์์
- ROS1์ Node ์ด๋ฆ ์ง์ ๋ฐ ๋ฑ๋ก, Node ๊ฐ ๋ฉ์์ง ์ฐ๊ฒฐ ์ง์ํ๋
ROS Master
์ฌ์ฉํ์ง ์์๋ ๋จ - ๋ง์ Node๋ค์ด participant๋ก ์ทจ๊ธ๋์ด ๋์ ๊ฒ์์ ํตํด ์ฐ๊ฒฐ๋จ
Summary
ROS2๋ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด์ฅํ๊ณ , DDS์ ์ฌ์ฉ์ผ๋ก Node ๊ฐ์ ๋์ ๊ฒ์ ๊ธฐ๋ฅ์ ์ง์ํ๊ณ ์์ด์ ๊ธฐ์กด ROS1์์ ๊ฐ Node๋ค์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ์๋ ROS Master
์์ด๋ ์ฌ๋ฌ DDS ํ๋ก๊ทธ๋จ ๊ฐ์ ํต์ ์ด ๊ฐ๋ฅํ๋ค.
โก๏ธ DDS๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ
publish, subscribeํ ๋ฉ์์ง ์ ๋ฌ์ด ๊ฐ๋ฅํ๋ค.
์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก, ๋ถ์์ ํ ๋คํธ์ํฌ์ ๋์ํ๊ณ ๋ณด์์ ๊ฐํํ ์ ์๋ค.
QoS Quality of Service
QoS๋?
QoS๋ DDS
์ ์๋น์ค ํ์ง๋ก, ๋ฐ์ดํฐ ํต์ ์ ์ต์
์ด๋ผ๊ณ ํ ์ ์๋ค.
ROS2์์๋ TCP์ฒ๋ผ ์ ๋ขฐ์ฑ์ ์ค์ ์ฌ๊ธฐ๋ ํต์ ๋ฐฉ์๊ณผ UDP์ฒ๋ผ ํต์ ์๋์ focus๋ฅผ ๋ง์ถค ํต์ ๋ฐฉ์์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
์ด๋ฅผ ์ํด DDS
์ QoS๋ฅผ ๋์
ํ์ฌ Publisher
/Subscriber
๋ฑ์ ์ ์ธํ ๋ QoS๋ฅผ ๋งค๊ฐ๋ณ์ ํํ๋ก ์ง์ ํ ์ ์์ด์ ์ํ๋ ๋ฐ์ดํฐ ํต์ ์ ์ต์
์ค์ ์ ์ ์ ๊ฐ ์ง์ ํ ์ ์๋ค.
QoS์ ์ข ๋ฅ
- Reliability
RELIABLE
: TCP์ฒ๋ผ ๋ฐ์ดํฐ ์์ค ๋ฐฉ์งํ๊ณ ์ ๋ขฐ๋ ์ฐ์BEST_EFFORT
: UDP์ฒ๋ผ ํต์ ์๋๋ฅผ ์ต์ฐ์ ์
- History
- ํต์ ์ํ์ ๋ฐ๋ผ ์ ํด์ง ์ฌ์ด์ฆ๋งํผ์ ๋ฐ์ดํฐ ๋ณด๊ด
KEEP_LAST
: ์ ํด์ง ๋ฉ์์ง ํ ์ฌ์ด์ฆ ๋งํผ์ ๋ฐ์ดํฐ ๋ณด๊ด (depth
: ๋ฉ์์ง ํ ์ฌ์ด์ฆ)KEEP_ALL
: ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ด (๋ฉ์์ง ํ์ ์ฌ์ด์ฆ๋ DDS ๋ฒค๋๋ง๋ค ๋ค๋ฆ)
- Durability
- ๋ฐ์ดํฐ ์์ ํ๋
Subscriber
๊ฐ ์์ฑ๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ํ๊ธฐํ ์ง์ ๋ํ ์ค์ TRANSIENT_LOCAL
: Subscription์ด ์์ฑ๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ ๋ณด๊ด (Publisher์๋ง ์ ์ฉ ๊ฐ๋ฅ)VOLATILE
: Subscription์ด ์์ฑ๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ ๋ฌดํจ
- ๋ฐ์ดํฐ ์์ ํ๋
- Deadline
- ์ ํด์ง ์ฃผ๊ธฐ ์์ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ ๋ฐ ์์ ๋์ง ์์ ๊ฒฝ์ฐ ์ด๋ฒคํธ ํจ์๋ฅผ ์คํ
deadline_duration
: Deadline์ ํ์ธํ๋ ์ฃผ๊ธฐ
- Lifespan
- ์ ํด์ง ์ฃผ๊ธฐ ์์์ ์์ ๋๋ ๋ฐ์ดํฐ๋ง ์ ํจ ํ์
- ๊ทธ๋ ์ง ์์ ๋ฐ์ดํฐ๋ ์ญ์
lifespan_duration
: Lifespan์ ํ์ธํ๋ ์ฃผ๊ธฐ
- Liveliness
- ์ ํด์ง ์ฃผ๊ธฐ ์์์ Node, Topic ์์ฌ ํ์ธ
liveliness
: ์๋/๋งค๋ด์ผ๋ก ํ์ธํ ์ง๋ฅผ ์ง์ ํ๋ ์ต์ - AUTOMATIC / MANUAL_BY_NODE, MANUAL_BY_TOPIC
lease_duration
: Liveliness๋ฅผ ํ์ธํ๋ ์ฃผ๊ธฐ
Next Post..
ํ๋ก์ ํธ๊ฐ ๋ง๋ฌด๋ฆฌ ๋๋ฉด ๊ฐ๋จํ ์ค์ต ๋ด์ฉ๋ ํจ๊ป ์ ๋ฆฌํด์ ์ ๋ก๋ํ ์์ ์ด๋ค.
Related Posts
Summary | ROS2 II | Topic, Service, Action์ด๋? |
|
Summary | ROS2 I | Node, Package๋? |
๐ You need to log in to GitHub to write comments. ๐
If you can't see comments, please refresh page(F5).