๐ป ROS ์์๋ ๋ค์ํ ๊ธฐ๋ณธ ๋ฉ์์ง๋ค์ ์ ๊ณตํ๋๋ฐ, ํ๊ฐ์ง ๋ฐ์ดํฐ๋ง์ ์ฃผ๊ณ ์์์๋ ์๋ค. ๋๋ก๋ ๊ฐ์ฒด๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ผํ ์๋ ์๋๊ฒ์ด๋ค. ์ด๋ ์ฐ๋ฆฌ๋ ์ปค์คํ ๋ฉ์์ง๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
python ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, C++ ์์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด CMakeList.txt, package.xml ์ ์์ ํด์ผํ๋ค.
c++ ์ ๋์ค์… ์ง๊ธ ํ์ํ๊ฑด ์ผ๋จ python message ์ด๋ค.
1. ์์ฑ ๋ ROS Package ๋ฅผ ์์ํด๋ดค๋์?
์์ฑ ๋ ํจํค์ง์ ๋ ธ๋์ ํ ํฝ์ ์์ ํ์๊ฒ์ด์ง์. ๋ฌธ์๋ก ์ ๋ฆฌ๋์๋์ ? ์๋๋ฉด ๊ทธ๋ํ๋ก ์์ฑํด๋ดค๋์ ? ์ฐ์ ํ๋ก์ฐ์ฐจํธ๋ฅผ ROS ๋ ธ๋ ํ ํฝ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ ค๋ณด์ธ์. ๋ฌด์จ ๋ฐ์ดํฐ๋ฅผ ์ด๋๋ก ๋๊ธฐ๊ณ ์ถ์๊ฑด์ง๋ฅผ ์ฐ๋ฆฌ๋ ์์์ผํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋์ถฉ ์ด๋ฐ ์์คํ ์์ Topic2 ๋ฅผ ์ํ ๋ฉ์์ง๋ฅผ ๋๊ฒจ์ฃผ๊ณ ์ถ์ดํฉ๋๋ค.
2. ํจํค์ง ์์ฑ๊ณผ ์์กด์ฑ ์ถ๊ฐ
์ปค์คํ
๋ฉ์์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ์์กด์ฑ ์ถ๊ฐ๋ฅผ ํด์ค์ผํฉ๋๋ค. ์์กด์ฑํจํค์ง์ message_generation
๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค. ๊ทผ๋ฐ ์ด๋ฏธ ํจํค์ง๊ฐ ๋ง๋ค์ด์ ธ ์๋ ๊ฒฝ์ฐ๋ ์ด๋ป๊ฒํ๋ ? ROS package ์์กด์ฑ ์ถ๊ฐ ๋ฅผ ์ฐธ์กฐํ์ฌ, ์ด๋ฏธ ๋ง๋ค์ด์ ธ์๋ ํจํค์ง์ ์์กด์ฑ์ ์ถ๊ฐํด์ค๋ค. ์ฐ๋ฆฌ๊ฐ ์ถ๊ฐํด์ผํ ๊ฒ์ message_generation
์ด๋ค.
๋ญ ์ด๊ฒ์ ๊ฒ ์คํจํ๋๋ฐ, ์ด๊ฒ ์ ๋ต์ด๋ค.
๐ป /catkin_ws/src/{package} ๊ฒฝ๋ก ์์ msg ํด๋๋ฅผ ๋ง๋ค๊ณ ํด๋น ํด๋์์ ์ํ๋ ํํ์ ๋ฉ์์ง ํ์ผ์ ๋ง๋ ๋ค.
`.msg` ํ์ฅ์ ํํ๋ก ์
๋ ฅํด์ผํ๋ค.
์
๋ ฅํ๋ค๋ฉด CMake ์ package.xml ์ ์์ ํด์ฃผ์ด์ผ ํ๋ค. ํจํค์ง์ ๊ฒฝ์ฐ์๋ ํ์ผ ์์ฒด์ ์ค๋ช
์ ๋์์๋ ๊ฒ ์ฒ๋ผ message_generation ๊ณผ message_runtime ์ ์ฃผ์์ ํด์ ํด์ค๋ค.
์ผ์ชฝ์ package.xml ์ด๋ค. ์ค๋ฅธ์ชฝ๋ถํฐ ์๋๋ CMakeList.txt ์ธ๋ฐ ์์ ํด์ฃผ๊ฑฐ๋ ์ฃผ์์ ํด์ ํด์ผํ ๋ถ๋ถ๋ค์ด๋ค.
์ดํ์ Catkin_make ๋ก ๋น๋ํด์ฃผ๋ฉด ์ด์ ๋ ธ๋๋ฅผ ์์ฑ ํ ๋, ๋ฉ์์ง๋ฅผ ์ํฌํธํ ์์๊ฒ๋๋ค.
์ดํ์ Catkin_make ๋ก ๋น๋ํด์ฃผ๋ฉด ์ด์ ๋ ธ๋๋ฅผ ์์ฑ ํ ๋, ๋ฉ์์ง๋ฅผ ์ํฌํธํ ์์๊ฒ๋๋ค.
'Develop > ROS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ค ROS package ์์กด์ฑ ์ถ๊ฐ (0) | 2024.10.05 |
---|---|
๐ฅ์์จ์ฃผํ์ ์ํ ROS ์ ๋ฌธ(3) : Transform, TF (1) | 2024.10.05 |
๐ฅ ์์จ์ฃผํ์ ์ํ ROS ์ ๋ฌธ(2) : Publisher ์ Subscriber (1) | 2024.10.05 |
๐ฅ ์์จ์ฃผํ์ ์ํ ROS ์ ๋ฌธ(1) : ROS ๋ ? (1) (5) | 2024.10.05 |