๋ฌธ์ ์์์ ์ฌ๋ฌ๊ฐ์ ์ผ์์ ์ขํ๊ณ๋ฅผ ์ด๋ป๊ฒ ๋ง์ถ๋? ์์ ์์๋ ๊ฒ์ด๋ค. ์ฌ์ค ๋ณ ์๊ฐ์ ์ํ์์ง๋ง, ์ขํ๊ณ๋ฅผ ๋ง์ถ๋ ์ผ์ ๋ฐ๋์ ํ์ํ ์ผ์ด๋ค. ์๋ํ๋ฉด, ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ง๋๋ ๊ฒฝ๋ก๊ณํ์ ์ํ ์ง๋๊ฐ ์ด๋จ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋์ฒด๋ก ๊ทธ ์ง๋์ ๋ค๋ฅธ ์ผ์์ ์ผ์์๋ ์ธ์(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 ๋ ๊ฐ๊ฐ์ ์๋ก ๋ค๋ฅธ ์ขํ๊ณ๋ฅผ ๊ตฌ๋ถํ ์ ์๊ฒ ํ๋ค.
'Develop > ROS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ค ROS Custom Message (0) | 2024.10.05 |
---|---|
๐ค ROS package ์์กด์ฑ ์ถ๊ฐ (0) | 2024.10.05 |
๐ฅ ์์จ์ฃผํ์ ์ํ ROS ์ ๋ฌธ(2) : Publisher ์ Subscriber (1) | 2024.10.05 |
๐ฅ ์์จ์ฃผํ์ ์ํ ROS ์ ๋ฌธ(1) : ROS ๋ ? (1) (5) | 2024.10.05 |