Notice
Recent Posts
Recent Comments
Link
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ’ป ๐Ÿง

๐Ÿค– ROS Custom Message ๋ณธ๋ฌธ

Develop/ROS

๐Ÿค– ROS Custom Message

proggg 2024. 10. 5. 13:21

๐Ÿ’ป ROS ์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ณธ ๋ฉ”์‹œ์ง€๋“ค์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ํ•œ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ๋งŒ์„ ์ฃผ๊ณ  ์žˆ์„์ˆ˜๋Š” ์—†๋‹ค. ๋•Œ๋กœ๋Š” ๊ฐ์ฒด๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์•ผํ• ์ˆ˜๋„ ์žˆ๋Š”๊ฒƒ์ด๋‹ค. ์ด๋•Œ ์šฐ๋ฆฌ๋Š” ์ปค์Šคํ…€ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

python ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, C++ ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด CMakeList.txt, package.xml ์„ ์ˆ˜์ •ํ•ด์•ผํ•œ๋‹ค.

c++ ์€ ๋‚˜์ค‘์—… ์ง€๊ธˆ ํ•„์š”ํ•œ๊ฑด ์ผ๋‹จ python message ์ด๋‹ค.

1. ์™„์„ฑ ๋œ ROS Package ๋ฅผ ์ƒ์ƒํ•ด๋ดค๋‚˜์š”?

์™„์„ฑ ๋œ ํŒจํ‚ค์ง€์˜ ๋…ธ๋“œ์™€ ํ† ํ”ฝ์„ ์ƒ์ƒ ํ–ˆ์„๊ฒƒ์ด์ง€์š”. ๋ฌธ์„œ๋กœ ์ •๋ฆฌ๋˜์—ˆ๋‚˜์š” ? ์•„๋‹ˆ๋ฉด ๊ทธ๋ž˜ํ”„๋กœ ์ž‘์„ฑํ•ด๋ดค๋‚˜์š” ? ์šฐ์„  ํ”Œ๋กœ์šฐ์ฐจํŠธ๋ฅผ ROS ๋…ธ๋“œ ํ† ํ”ฝ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ ค๋ณด์„ธ์š”. ๋ฌด์Šจ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””๋กœ ๋„˜๊ธฐ๊ณ  ์‹ถ์€๊ฑด์ง€๋ฅผ ์šฐ๋ฆฌ๋Š” ์•Œ์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

Jet ์€ Jetson Xavier AGX , Ard ๋Š” ์•„๋‘์ด๋…ธ

์šฐ๋ฆฌ๋Š” ๋Œ€์ถฉ ์ด๋Ÿฐ ์‹œ์Šคํ…œ์—์„œ 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 ๋กœ ๋นŒ๋“œํ•ด์ฃผ๋ฉด ์ด์ œ ๋…ธ๋“œ๋ฅผ ์ž‘์„ฑ ํ•  ๋•Œ, ๋ฉ”์‹œ์ง€๋ฅผ ์ž„ํฌํŠธํ• ์ˆ˜์žˆ๊ฒŒ๋œ๋‹ค.