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 ์ž…๋ฌธ(3) : Transform, TF ๋ณธ๋ฌธ

Develop/ROS

๐Ÿ”ฅ์ž์œจ์ฃผํ–‰์„ ์œ„ํ•œ ROS ์ž…๋ฌธ(3) : Transform, TF

proggg 2024. 10. 5. 13:10

๋ฌธ์ œ์˜์‹์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„ผ์„œ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ๋งž์ถ”๋ƒ? ์—์„œ ์‹œ์ž‘๋œ ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ๋ณ„ ์ƒ๊ฐ์„ ์•ˆํ–ˆ์—ˆ์ง€๋งŒ, ์ขŒํ‘œ๊ณ„๋ฅผ ๋งž์ถ”๋Š” ์ผ์€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์ผ์ด๋‹ค. ์™œ๋‚˜ํ•˜๋ฉด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“œ๋Š” ๊ฒฝ๋กœ๊ณ„ํš์„ ์œ„ํ•œ ์ง€๋„๊ฐ€ ์–ด๋–จ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋Œ€์ฒด๋กœ ๊ทธ ์ง€๋„์™€ ๋‹ค๋ฅธ ์„ผ์„œ์˜ ์„ผ์„œ์™€๋Š” ์„ธ์ƒ(system, ๊ณ„)์ด ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋ฌธ์ œ์˜์‹์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„ผ์„œ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ๋งž์ถ”๋ƒ? ์—์„œ ์‹œ์ž‘๋œ ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ๋ณ„ ์ƒ๊ฐ์„ ์•ˆํ–ˆ์—ˆ์ง€๋งŒ, ์ขŒํ‘œ๊ณ„๋ฅผ ๋งž์ถ”๋Š” ์ผ์€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์ผ์ด๋‹ค. ์™œ๋‚˜ํ•˜๋ฉด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“œ๋Š” ๊ฒฝ๋กœ๊ณ„ํš์„ ์œ„ํ•œ ์ง€๋„๊ฐ€ ์–ด๋–จ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋Œ€์ฒด๋กœ ๊ทธ ์ง€๋„์™€ ๋‹ค๋ฅธ ์„ผ์„œ์˜ ์„ผ์„œ์™€๋Š” ์„ธ์ƒ(system, ๊ณ„)์ด ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์ธ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋ฆฌ๋Š” ์ง€๋„๋Š” map ์ด๊ณ , ์œ„์˜ ๋กœ๋ด‡ํ”Œ๋žซํผ์€ ๊ทธ ์œ„์—์„œ ๋˜ ์ƒˆ๋กœ์šด ์ขŒํ‘œ๊ณ„๋ฅผ ๊ฐ–๊ณ  ์›€์ง์ด๊ณ  ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ถ”์ƒ์ ์œผ๋กœ ๋กœ๋ด‡ํ”Œ๋žซํผ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ map ์œ„์—์„œ mapping ํ•˜๋ ค๊ณ  ํ•  ํ…๋ฐ ์—ฌ๊ฐ„ ์–ด๋ ค์šด์ผ์ด ์•„๋‹ˆ๋‹ค.

ROS ์—์„œ๋Š” ์นœ์ ˆํ•˜๊ฒŒ๋„ TF ๊ฐ€ ์กด์žฌํ•˜์—ฌ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ชจ๋“  ์ขŒํ‘œ๊ณ„๋ฅผ ์  ์ฐ๋“ฏ์ด ๋งž์ถ”๋Š” ๋…ธ๋ ฅ์„ ์ค„์—ฌ์ค€๋‹ค. ์ด ๊ธ€์—์„œ๋Š” TF์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

1. Frame

ROS ์—์„œ ๊ณต๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ msg ๋“ค์ด ์กด์žฌํ•œ๋‹ค. ๊ทธ๋“ค์˜ ๊ณตํ†ต์ ์€ std_msgs/Header ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ˆˆ์—ฌ๊ฒจ ๋ด์•ผ ํ•  ๊ฒƒ๋“ค์€ time stamp ์™€ frame_id ์ด๋‹ค. time stamp ๋Š” ์ด๋ฆ„์ด ์ž˜ ์•Œ๋ ค์ฃผ๊ณ  ์žˆ๋“ฏ์ด ๋ฉ”์‹œ์ง€ ๋ฐœํ–‰ ์‹œ๊ฐ„์„ ์˜๋ฏธํ• ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Frame_id ๋Š” ๋ญ˜๊นŒ?

frame_id ์€ frame ์˜ id ์ด๊ณ  frame ์€ **์–ด๋–ค ์ขŒํ‘œ๊ณ„์˜ ์ด๋ฆ„**์ด๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด Lidar ๊ฐ€ ์ธก์œ„ํ•˜๋Š” ์ „์ฒด์ง€๋„์™€ lidar ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” yaw rate ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ „์ฒด์ง€๋„ ์œ„์— ๋…๋ฆฝ์ ์œผ๋กœ ์ขŒํ‘œ๊ณ„๋ฅผ ๊ฐ€์ง„ ํ”Œ๋žซํผ์ด ์–น์–ด์ง„๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด lidar ๊ฐ€ ์ธก์œ„ํ•œ ์–ด๋–ค ์ฝ”์Šค์—์„œ ์ž๋™์ฐจ๊ฐ€ ์—ด์‹ฌํžˆ ์›€์ง์ด๊ณ  ์žˆ๋Š”๊ฒƒ์ด๋‹ค. ์ด ์ž๋™์ฐจ๋Š” ์œ„์˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋…๋ฆฝ์ ์ธ ์ขŒํ‘œ๊ณ„๋ฅผ ๊ฐ–๊ณ  ์žˆ์„๊ฒƒ์ด๋‹ค. ์ „์ฒด๋งต ( frame_id : 1 ) ์ž๋™์ฐจ์˜ ๊ฐ์†๋„/๊ฐ๋„(frame_id : 2) frame_id ๋Š” ๊ฐ๊ฐ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ขŒํ‘œ๊ณ„๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์ธ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋ฆฌ๋Š” ์ง€๋„๋Š” map ์ด๊ณ , ์œ„์˜ ๋กœ๋ด‡ํ”Œ๋žซํผ์€ ๊ทธ ์œ„์—์„œ ๋˜ ์ƒˆ๋กœ์šด ์ขŒํ‘œ๊ณ„๋ฅผ ๊ฐ–๊ณ  ์›€์ง์ด๊ณ  ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ถ”์ƒ์ ์œผ๋กœ ๋กœ๋ด‡ํ”Œ๋žซํผ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ map ์œ„์—์„œ mapping ํ•˜๋ ค๊ณ  ํ•  ํ…๋ฐ ์—ฌ๊ฐ„ ์–ด๋ ค์šด์ผ์ด ์•„๋‹ˆ๋‹ค.

ROS ์—์„œ๋Š” ์นœ์ ˆํ•˜๊ฒŒ๋„ TF ๊ฐ€ ์กด์žฌํ•˜์—ฌ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ชจ๋“  ์ขŒํ‘œ๊ณ„๋ฅผ ์  ์ฐ๋“ฏ์ด ๋งž์ถ”๋Š” ๋…ธ๋ ฅ์„ ์ค„์—ฌ์ค€๋‹ค. ์ด ๊ธ€์—์„œ๋Š” TF์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

 

1. Frame

 

ROS ์—์„œ ๊ณต๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ msg ๋“ค์ด ์กด์žฌํ•œ๋‹ค. ๊ทธ๋“ค์˜ ๊ณตํ†ต์ ์€ std_msgs/Header ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ˆˆ์—ฌ๊ฒจ ๋ด์•ผ ํ•  ๊ฒƒ๋“ค์€ time stamp ์™€ frame_id ์ด๋‹ค. time stamp ๋Š” ์ด๋ฆ„์ด ์ž˜ ์•Œ๋ ค์ฃผ๊ณ  ์žˆ๋“ฏ์ด ๋ฉ”์‹œ์ง€ ๋ฐœํ–‰ ์‹œ๊ฐ„์„ ์˜๋ฏธํ• ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Frame_id ๋Š” ๋ญ˜๊นŒ?

frame_id ์€ frame ์˜ id ์ด๊ณ  frame ์€ **์–ด๋–ค ์ขŒํ‘œ๊ณ„์˜ ์ด๋ฆ„**์ด๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด Lidar ๊ฐ€ ์ธก์œ„ํ•˜๋Š” ์ „์ฒด์ง€๋„์™€ lidar ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” yaw rate ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ „์ฒด์ง€๋„ ์œ„์— ๋…๋ฆฝ์ ์œผ๋กœ ์ขŒํ‘œ๊ณ„๋ฅผ ๊ฐ€์ง„ ํ”Œ๋žซํผ์ด ์–น์–ด์ง„๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด lidar ๊ฐ€ ์ธก์œ„ํ•œ ์–ด๋–ค ์ฝ”์Šค์—์„œ ์ž๋™์ฐจ๊ฐ€ ์—ด์‹ฌํžˆ ์›€์ง์ด๊ณ  ์žˆ๋Š”๊ฒƒ์ด๋‹ค. ์ด ์ž๋™์ฐจ๋Š” ์œ„์˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋…๋ฆฝ์ ์ธ ์ขŒํ‘œ๊ณ„๋ฅผ ๊ฐ–๊ณ  ์žˆ์„๊ฒƒ์ด๋‹ค. ์ „์ฒด๋งต ( frame_id : 1 ) ์ž๋™์ฐจ์˜ ๊ฐ์†๋„/๊ฐ๋„(frame_id : 2) frame_id ๋Š” ๊ฐ๊ฐ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ขŒํ‘œ๊ณ„๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.