๐ก ๋ณธ ๋ฌธ์๋ 'map ์์ด ํน์ ์ง์ ์ผ๋ก ์ด๋ํ๋ ๋ฐฉ๋ฒ ์ ๋ฆฌ ( navigation without map ) (์คํ์์ค ์ํํธ์จ์ด & ํ๋์จ์ด: ๋ก๋ด ๊ธฐ์ ๊ณต์ ์นดํ (์ค๋ก์นด))' ํฌ์คํ ์ ๋ฐํ์ผ๋ก ์์ฑํ ๊ธ์ด๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
์ด์ ์ด๋ปํ๋ฉด ros navigtion ํจํค์ง๋ฅผ ์ฌ๋จ์ผ๋ก ๋ง๋ค์ด๋ map ์์ด ๋์ ์ํฌ์ ์๊น?
map ์ ์ด์ฉํด localization ์ ํด์ฃผ๋ amcl ์ ๋์ฒดํ ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ฉด ๋๋ ๊ฒ๋๋ค.
์๋ ๋ฐฉ๋ฒ 1,2,3์ด ์ด์ ํด๋น ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋น์ฐํ ์ด์ผ๊ธฐ์ง๋ง map ๊ธฐ๋ฐ localization ์ ํ์ง ์๊ณ ์์ odom ๋ง ๊ฐ์ง๊ณ ๋ก๋ด์ ์์น๋ฅผ ์ถ์ ํ๊ฒ ๋๋ฉด map๊ณผ ๋ผ์ด๋ค๋ก ์ค๋์ ์ค์ฐจ๋ฅผ ๋ณด์ ํ๋ localization ์ ๊ฑด๋ ๋ฐ๋ ์ ์ด ๋๋ ๋ก๋ด์ ์์น ์ถ์ ์ฑ๋ฅ์ด ๋จ์ด์ง๊ฒ ๋ ๊ฒ์ผ๋ก ์์ธก ๋ฉ๋๋ค๋ง ๊ทธ๋๋ ์ฌ๋จ ์์ด ๋ฐ๋ก ๋ค๋น๊ฒ์ด์ ํ ์ ์๋ค๋ ๊ฑด ์ด๋ ์๊ฐ ๋ฐ๋์ ํ์ํ๊ฒ ๋์ง ์์๊น์ ^^?
- ๋ฐฉ๋ฒ1. amcl, map server๋ฅผ ์คํํ์ง ์๊ณ move_base ์์ ์๋ planner , costmap์ ๊ธฐ์ค์ ์ด ๋๋ frame์ map์ด ์๋ odom ์ด ๋๋๋ก yaml ํ์ผ๋ค์ ํ๋ผ๋ฏธํฐ ์ค์ ํ์ฌ movebase ๊ตฌ๋.
- ๋ฐฉ๋ฒ2. amcl, map server๋ฅผ ์คํํ์ง ์๊ณ amcl์ ๋์ ํ์ฌ fake_localization ์ ์ฌ์ฉํ์ฌ map๊ณผ lidar ํ ํฝ ์์ด odom ํ ํฝ ๋ง๊ฐ์ง๊ณ ๊ฐ์ง ๋ก์นผ๋ผ์ด์ ์ด์ ๋ map tf ์์ฑ. ๊ทธ๋ฌ๋ฉด movebase๋ ์ด๋ฅผ ๋ฐ์ ๋์.
- ๋ฐฉ๋ฒ3. amcl, map server๋ฅผ ์คํํ์ง ์๊ณ ๋์ slam์ movebase์ ๋์์ ์คํ์์ผ slam์ด ์ค์๊ฐ map topic๊ณผ map<-> odom๊ฐ tftree ์์ฑํ๊ฒ ํจ. ๊ทธ๋ฌ๋ฉด movebase๋ ์ด๋ฅผ ๋ฐ์ ๋์.
- turtlebot3 cartogarpher slam ๊ธฐ๋ณธ์์ ์ ๊ตฌํ๋์ด ์์.
- https://github.com/ROBOTIS-GIT/turtlebot3/blob/master/turtlebot3_slam/launch/turtlebot3_cartographer.launch
- ๋ฐฉ๋ฒ4. navigation ํจํค์ง ์ฌ์ฉํ์ง ์๊ณ ๊ทธ๋ฅ odom ๊ธฐ๋ฐ์ผ๋ก A->B ๋ก ๊ฐ๋ ๊ฐ๋จํ ํ์ด์ฌ controller ์์ฑ
- ๋ฐฉ๋ฒ5. ๊ทธ๋ฅ ํฐํ๋ด3 ๊ธฐ๋ณธ navigation package ์์ ๋ฅผ ์คํ์ํค์ค๋ map.pgm ํ์ผ์ ์ฅ์ ๋ฌผ์ด ์๋ ๋ฐฑ์ง ๊ทธ๋ฆผ ํ์ผ์ ๋ฃ์ผ์๋ฉด ๋ฉ๋๋ค. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ด์ง๋ง ์ด๋ฐฉ์์ localization ์ด ์๋ง์ผ๋ก ๋์ ์คํ๋ ค localization ํ์ง ์๊ณ odom ์ ๋ฐ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ธ 1,2 ๋ณด๋ค ๋ก๋ด์ ์์น ์ถ์ ์ด ์ค์ฐจ๊ฐ ๋ ๋ฐ์ํ๋ ๋ฐฉ๋ฒ์ด๋ผ ๋น์ถ
๊ทธ๋ฆฌ๊ณ ์คํด ํ์ค๊น๋ด ์ ๋๋ฐ์ ์ ๋ฐฉ๋ฒ๋ค์ map์ ๋ชป๋ง๋๋ ์ํฉ์์ ์ฐ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ค์ธ ๊ฑฐ๊ณ
์ฌ๋จ์ผ๋ก ๋ฏธ๋ฆฌ ๋งต์ ๋ง๋ค์ด์ ๊ทธ ๋งต ๊ธฐ๋ฐ์ผ๋ก amcl ๋ก ๋ก์นผ๋ผ์ด์ ์ด์ ํ๋ฉด์ ๋ค๋น๊ฒ์ด์ ํ๋ ๊ธฐ๋ณธ ๋ฐฉ์์ผ๋ก ๋ค๋น๊ฒ์ด์ ํ๋๊ฑธ ์ถ์ฒ ๋๋ฆฝ๋๋ค.