This template provides a fully prepared ROS2 workspace using a VSCode Dev Container, and it employs the Kakao mirror as an Ubuntu APT mirror. Furthermore, it builds upon two other repositories. If you find this template useful, please consider showing your support by giving a star to the repositories mentioned below.
๋ชฉ์ฐจ
- ๐ฆ ์ฌ์ ์ค๋น
- โ๏ธ ์ฌ์ฉ๋ฒ
- ๐ ์ ๋ณด
- 1๏ธโฃ ์ ์ฉํ ๊ธฐ๋ฅ๋ค์ ๋ฌด์์ด ์๋์?
- 2๏ธโฃ Dev Container๋ ์ผ๋ฐ์ ์ธ ์ปจํ ์ด๋์ ๋นํด ์ด๋ค ์ฅ์ ์ด ์๋์?
- 3๏ธโฃ ๋ฐฐํฌ์ฉ ๋์ปค ์ด๋ฏธ์ง๋ ์ด๋ป๊ฒ ๋ง๋ค ์ ์๋์?
- 4๏ธโฃ ์๊ฒฉ์ผ๋ก VSCode๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฉํ ํ์ด ์๋์?
- 5๏ธโฃ ์ค์ ๋ settings.json ์ค์์ ์์๋๋ฉด ์ข์ ๊ฒ๋ค์ ๋ฌด์์ด ์๋์?
- 6๏ธโฃ ์ค์ ๋ devcontainer.json ์ค์์ ์์๋๋ฉด ์ข์ ๊ฒ๋ค์ ๋ฌด์์ด ์๋์?
- 7๏ธโฃ Docker compose๋ฅผ devcontainer๋ก ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
- 8๏ธโฃ ์ ๋ณ๊ฒฝ์ ์ด๋ป๊ฒ ํ๋์?
- ๐น ์ค์ ์ผ์ ์ฐ๊ฒฐ
- โจ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๐ ๋ฌธ์ ํด๊ฒฐ
-
Host ์์คํ ์ Docker Engine๊ณผ VSCode ๊ทธ๋ฆฌ๊ณ Dev Containers ํ๋ฌ๊ทธ์ธ์ด ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.
-
GPU๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด, Host ์์คํ ์ NVIDIA Container Toolkit์ ์ค์นํด์ผ ํฉ๋๋ค.
์ค์น ๋ฐฉ๋ฒ
# Add the package repositories distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list # Install the toolkit sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker
-
ํ์ฌ Dev Container์์ Host ์์คํ ์ ์๊ฐ์ ์ฌ์ฉํ๋๋ก ์ค์ ๋์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ์ปจํ ์ด๋ ๋ด๋ถ์ ์๊ฐ์ NTP๋ก ๋๊ธฐํํ๊ณ ์ถ๋ค๋ฉด, Host ์์คํ ์
chrony
์ค์น๋ฅผ ์ถ์ฒํฉ๋๋ค. (ROS Clock์ ๋ํด ์ฝ์ด๋ณด๊ธฐ: ROS2, ROS1)sudo apt install chrony
-
์ํ๋ ์ด๋ฆ์ผ๋ก workspace๋ฅผ ์์ฑํฉ์๋ค. ๋ค์ 2๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ ํํ์ธ์.
-
(๋ฐฉ๋ฒ 1) Git ์ฐ๊ฒฐ ์์ด workspace ์์ฑํ๋ ๋ฐฉ๋ฒ. (๊ฐ์ฅ ๋จ์, ๊ถ์ฅ)
- Release ํ์ด์ง์ Assets์์ source code ์์ถํ์ผ์ ๋ค์ด๋ฐ๋๋ค.
- ์์ถ์ ํ๋ฉด,
ros2_ws_kr-{๋ฒ์ }
ํด๋๊ฐ ์๊ธด๋ค. ์ด ํด๋๋ฅผ ์ํ๋ workspace ์ด๋ฆ์ผ๋ก ๊ณ ์นฉ๋๋ค.
-
(๋ฐฉ๋ฒ 2) ๋ณธ์ธ์ private ์ ์ฅ์๋ฅผ ๋ง๋ค์ด์ workspace๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ. ์ด๋ ๊ฒ ํ๋ฉด
./src/
ํด๋์ ๋ด์ ROS ํจํค์ง๋ค์ submodule๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
-
-
๋ด๋ ค๋ฐ์ workspace๋ฅผ VSCode๋ก ์ฝ๋๋ค.
- ์ค๋ฅธ์ชฝ ํ๋จ์ ์ปจํ
์ด๋๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ๋ฌป๋ ํ์
์ด ๋จ๋ฉด,
Reopen in Container
๋ฅผ ์ ํํฉ๋๋ค. - ๋ง์ฝ ํ์
์ ๋ณด์ง ๋ชปํ๋ค๋ฉด,
Ctrl+Shift+P
๋ก ํจ๋์ ์ด์ด์Dev Containers: Reopen in Container
๋ฅผ ์ ํํฉ๋๋ค. - ์์ ๊ณผ์ ์ ๊ฑฐ์น๋ฉด, ์ปจํ ์ด๋๊ฐ ๋น๋๋๊ณ VSCode๊ฐ ์ฌ์์๋ฉ๋๋ค.
- ์ต์ด ์คํ ์, Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๊ณผ์ ์ด ์์ด์ ์๊ฐ์ด ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆด ์ ์์ง๋ง, ๋ ๋ฒ์งธ ์คํ๋ถํฐ๋ ๋น๋๋ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฏ๋ก ๋ฐ๋ก ์คํ๋ฉ๋๋ค.
- ์ค๋ฅธ์ชฝ ํ๋จ์ ์ปจํ
์ด๋๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ๋ฌป๋ ํ์
์ด ๋จ๋ฉด,
-
์ฌ๋ฐ๋ก ์คํ๋์๋ค๋ฉด,
Ctrl+Shift+`(์ญ๋ฐ์ดํ)
๋ก ํฐ๋ฏธ๋์ ์ด์ฌ์ ์ ์ ์ด๋ฆ์ดros
์ธ ๊ฒ์ ํ์ธํ ์ ์๊ณ , ๋ค์๊ณผ ๊ฐ์ด ROS2 ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. (๋จ, Windows ํ๊ฒฝ์ด๋ผ๋ฉด Ubuntu์ ๋ฌ๋ฆฌ X11 ํฌ์๋ฉ์ ์๋์ผ๋ก ์ค์ ํด์ผ GUI ์ฐฝ์ด ๋น๋๋ค. ์ค์ ๋ฐฉ๋ฒ์ ์ฐธ๊ณ ๋ฐ๋๋๋ค.)ros@...:~$ rviz2
์ฐธ๊ณ ๋ก,
- ๊ธฐ๋ณธ ์์
zsh
์ ๋๋ค. Oh My Zsh์ด ์ค์น๋์ด ์์ผ๋ฉฐ, agnoster ํ ๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.bash
๋ฅผ ์ํ์ ๋ค๋ฉด, ์ฌ๊ธฐ ์ ํ ๋ฐฉ๋ฒ์ผ๋ก ์ผ๋ง๋ ์ง ๋ฐ๊ฟ ์ ์์ต๋๋ค. - DooD ์ค์ ์ด ๋์ด ์์ด์, Host์ Docker๋ฅผ Dev Container ๋ด์์๋ ๋์ผํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ง, rootless ๋ชจ๋๊ฐ ์ค์ ๋์ด ์์ง ์์์
sudo
๋ฅผ ์ ๋ ฅํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด,sudo docker ps
๋ฅผ ์ ๋ ฅํ๋ฉด, Dev Container ์๊ธฐ ์์ ์ด ๋ํ๋ฉ๋๋ค.
- ์ค์ Host PC๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ๋์ผํ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
sudo
๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ด์,sudo apt install
๋ก ํจํค์ง๋ฅผ ์ถ๊ฐ๋ก ์ค์นํ ์ ์์ต๋๋ค.- Host์ Docker๋ฅผ Dev Container ๋ด๋ถ์์ ์ฌ์ฉํ ์ ์๋๋ก DooD (Docker-outside-of-Docker) ์ค์ ์ด ๋์ด ์์ต๋๋ค. ๋ค๋ง
docker
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด,sudo
๋ฅผ ๋ถ์ฌ์ผ ํฉ๋๋ค. (์:sudo docker ps
) - ์ค์ ์ผ์๋ค์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก components ํด๋์ Dockerfile์ด ๋ฏธ๋ฆฌ ์ค๋น๋์ด ์์ต๋๋ค.
- GUI ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์ต๋๋ค.
tasks.json
์๋ ๋ค์ํ task๋ค์ด ๋ฏธ๋ฆฌ ์ค์ ๋์ด ์์ต๋๋ค.Ctrl+Shift+P
๋ฅผ ๋๋ฌTasks: Run Task
๋ฅผ ์ ํํ๊ณ , ์ฌ์ฉํ ์ ์๋ task๋ค์ ํ์ธํด๋ณด์ธ์.- Tasks๋ฅผ ํ์ฉํ๋ ๋ฉ์ง ๋ฐฉ๋ฒ์ ์์์์ ๋ธ๋ก๊ทธ๋ฅผ ํ์ธํด์ฃผ์ธ์.
- ๊ธฐ๋ณธ ์๋ก
zsh
์ด ์ค์ ๋์ด ์๊ณ , Oh My Zsh์ ์ ์ฉํ ํ๋ฌ๊ทธ์ธ๋ค๋ ๋ฏธ๋ฆฌ ์ค์น๋์ด ์์ต๋๋ค. ์์bash
๋ก ๋๋๋ฆฌ๊ณ ์ถ๋ค๋ฉด (8๏ธ) ์ ๋ณ๊ฒฝ์ ์ด๋ป๊ฒ ํ๋์?๋ฅผ ์ฝ์ด์ฃผ์ธ์. - APT mirror ์๋ฒ๊ฐ Kakao ์๋ฒ๋ก ์ค์ ๋์ด ์์ด ๊ตญ๋ด์์
apt update
์apt install
์ด ๋น ๋ฆ ๋๋ค. - ROS2์์ ์ถ์ฒํ๋ formatter์ linter๊ฐ ์ค์ ๋์ด ์์ต๋๋ค. (ROS2 code style)
- Github CI๋ก ROS2 linting์ด ์ค์ ๋์ด ์์ต๋๋ค.
.github/workflows/ros.yaml
ํ์ผ์ ์ฐธ๊ณ ํ์ธ์.
- Dev Container๋ฅผ ์ฌ์ฉํ๋ฉด, ์ปจํ ์ด๋ ํ๊ฒฝ๋ฟ๋ง ์๋๋ผ extension ๊ฐ์ VSCode์ ์ค์ ๋ค๋ ์ผ๊ด๋๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ๊ณต์ ํ ์ ์๋ VSCode์ ์ค์ ๋ค์๋
tasks.json
,launch.json
,settings.json
๋ฑ๋ ํฌํจ๋ฉ๋๋ค. - ์๊ฒฉ์ง ์๋ฒ์ Dev Container๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก, ๋ก์ปฌ PC์ ์ฑ๋ฅ์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. (์ฐธ๊ณ ๊ฐ ๋ ๋งํ ํ)
๋ฐฐํฌ์ฉ ๋์ปค ์ด๋ฏธ์ง๋ ๋ค์ ๋์ปคํ์ผ์ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์๊ธธ ์ถ์ฒํฉ๋๋ค.
๋ค์ํ ROS2 ๋์ปค ์ด๋ฏธ์ง ์์๋ก๋ DominikN/ros2_docker_examples๊ฐ ์ข์ ์ฐธ๊ณ ์๋ฃ๊ฐ ๋ ๊ฒ์ ๋๋ค.
๋ง์ฝ, ์ปจํ ์ด๋ ๋ด๋ถ์ ์๊ฐ์ ํธ์คํธ ์์คํ ์ ์๊ฐ๊ณผ ๋์ผํ๊ฒ ๋ง์ถ๊ณ ์ถ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด volume์ ๋ง์ดํธํ๋ฉด ๋ฉ๋๋ค.
--volume=/etc/timezone:/etc/timezone:ro \
--volume=/etc/localtime:/etc/localtime:ro
-
์๊ฒฉ์ง ์๋ฒ์์ ๊ฐ๋ฐํ ๋ ์ฆ์ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ์ผ๋ก ๋ถํธํ๋ค๋ฉด,
ssh-keygen & ssh-copy-id
๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ฐ๋ฒํธ ์์ด ๋ก๊ทธ์ธํ ์ ์๋๋ก ์ค์ ํ๊ฑฐ๋ssh-agent
๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ฐ๋ฒํธ๋ฅผ ํ ๋ฒ๋ง ์ ๋ ฅํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. -
์๊ฒฉ์ผ๋ก ์ ์ํ ๋๋ X11 ํฌ์๋ฉ์ ํตํด GUI ์ฐฝ์ ๋์ธ ์ ์์ต๋๋ค. ์๊ฒฉ ์๋ฒ๊ฐ Linux๋ผ๋ฉด, VSCode์์ ssh ์ ์ ์
-X
์ต์ ์ ์ฃผ๋ฉด ๋ฉ๋๋ค. ๋ง์ฝX11 connection rejected
๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋ฉด, ์ค์ ์ด ์ฌ๋ฐ๋ฅธ์ง ๋๋devcontainer.json
์์DISPLAY
๋ณ์๋ ํ์ฌ ํ๊ฒฝ์ ์ ์ ํ์ง ํ์ธํด์ฃผ์ธ์. ํ์์ ๋ฐ๋ผ ์๋ฒ์์$HOME/.Xauthority
ํด๋๋ฅผ ์ง์์ผ ํ ์๋ ์์ต๋๋ค.ssh user@host -X -A # -X Enables X11 forwarding. # -A Enable forwarding of the authentication agent connection. (ssh-agent)
ํค๋ณด๋ ํ์ดํ์ด ๋๋๊ณ 1์ด ํ์ ์๋์ผ๋ก ์ ์ฅ๋๋๋ก ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์, ์ ์ฅ ๋จ์ถํค๋ฅผ ๋๋ฅด์ง ์์๋ ์๋์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ๋ํ, ํ์ผ ๋์ ์๋ ๋น ์ค๊ณผ ๊ณต๋ฐฑ ๋ฌธ์๋ค๋ ์๋์ผ๋ก ์ ๊ฑฐ๋๋๋ก ์ค์ ๋์ด ์์ต๋๋ค.
"files.autoSave": "afterDelay",
"files.trimTrailingWhitespace": true,
"files.trimFinalNewlines": true,
"editor.formatOnType": false,
-
runArgs
ํญ๋ชฉ์ ์ฃผ์ ์ฒ๋ฆฌ๋ ์ต์ ๋ค์ด ์์ต๋๋ค. ํ์ํ ์ต์ ์ด ์๋ค๋ฉด ์ฃผ์์ ํด์ ํ๊ณ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. -
์ฌ์ฉํ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๋ฉด,
dockerFile
ํญ๋ชฉ์ ์์ ํ๋ฉด ๋ฉ๋๋ค.{ "dockerFile": "humble_full.Dockerfile", // "dockerFile": "humble_full_cuda.Dockerfile", }
-
Extension ์ค์์ GitHub ๊ณ์ ์ด ํ์ํ ๊ฒ๋ค์ ์ฃผ์ ์ฒ๋ฆฌ๋์ด ์์ต๋๋ค. ํ์ํ๋ค๋ฉด ์ฃผ์์ ํด์ ํ๊ณ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. (GitHub Copilot๊ณผ GitHub Actions)
"extensions": [ // // [Optional] These extensions require GitHub account authentication. Uncomment them to enable. // "github.vscode-github-actions", // "GitHub.copilot", ]
VSCode์ ๊ณต์ ๋ฌธ์์ Docker compose๋ฅผ devcontainer๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์ ์ค๋ช ๋์ด ์์ต๋๋ค.
bash
์zsh
์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.bash
๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, ํฐ๋ฏธ๋์์bash
๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.- ๊ธฐ๋ณธ ์์ ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด, devcontainer.json์์
"terminal.integrated.defaultProfile.linux"
ํญ๋ชฉ์ ์์ ํ๋ฉด ๋ฉ๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ ์์ฒญ์ด๋ ์ถ๊ฐ๋ issue๋ pull request๋ฅผ ํตํด ํ์ํฉ๋๋ค. ๊ด๋ฆฌ์๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํ๊ณ ์์ผ๋, ๋ต๋ณ์ ๋ฆ์ ์ ์์ผ๋ ์ํด ๋ถํ๋๋ฆฝ๋๋ค.
- ์ปจํ
์ด๋๋ฅผ ์คํํ ๋ ์ ์ ํ ๊ถํ๊ณผ ์ต์
์ ๋ถ์ฌํ์๋์ง ํ์ธํด์ฃผ์ธ์.
--privileged
์ต์ ์ด ํ์ํ ์๋ ์์ต๋๋ค. - ์ฐ๊ฒฐ์ ์ด ์ ์ ํ ์ฌ์์ธ์ง ํ์ธํด์ฃผ์ธ์. ์ค์๋ก ๋ฐ์ดํฐ ์ ์ด ์๋ ์ผ์ด๋ธ์ ์ฌ์ฉํ๊ณ ์๊ฑฐ๋, ๋ค๋ฅธ ์์
๋์ค ์ฐ๊ฒฐ์ ์ด ๋น ์ง์ง ์์๋์ง ํ์ธํด์ฃผ์ธ์.
lsusb
๋ช ๋ น์ด๋ก ์ฐ๊ฒฐ๋ USB ์ฅ์น๋ค์ ํ์ธํ ์ ์์ต๋๋ค. - ๊ทธ๋ผ์๋ ์๋ํ์ง ์๋๋ค๋ฉด, ๋ค๋ฅธ ํฌํธ์ ๊ฝ์๋ณด์ธ์. ๋ ธํธ๋ถ์ด๋ ๋ฐ์คํธํ PC์ USB ํฌํธ๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ค๋ฉด, ๋์ผํ๊ฒ USB 3.0์ด๋ผ๊ณ ์ ํ์๋๋ผ๋ ์ค์ ๋์ญํญ๊ณผ ์ธ๋ถ ์คํฉ์ด ๋ค๋ฅธ ํฌํธ๊ฐ ์์ฌ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ํฌํธ์ ๊ฝ์ผ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ์๋ ์์ต๋๋ค.
Windows์์๋ X11 ํฌ์๋ฉ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์๊ธฐ ๋๋ฌธ์, Xming์ด๋ MobaXterm๊ณผ ๊ฐ์ X11 ์๋ฒ๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ค์ ์ด ๊ฐํธํ MobaXterm์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
-
MobaXterm์ ์ค์นํฉ๋๋ค.
-
Settings > Configuration > X11์์
OpenGL acceleration
์Software
๋ก ์ค์ ํฉ๋๋ค. ์ค์ ํ์๋ MobaXterm์ ๊ทธ๋ฅ ์ผ๋๋ฉด ๋ฉ๋๋ค. (์ด ์ค์ ์ ํ์ง ์์ผ๋ฉด, RViz2๊ฐ ์คํ๋์ง ์์ต๋๋ค.) -
์๋์ฐ์์ CMD ๋๋ PowerShell์ ์ด๊ณ
ipconfig
๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์ฌ๊ธฐ์ WSL ํญ๋ชฉ์ ์ ํ IPv4 Address ์ฃผ์๋ฅผ ํ์ธํฉ๋๋ค. ์ด ์ฃผ์๊ฐ ๋ค์:0
๋ฅผ ๋ถ์ฌ์,.devcontainer
ํด๋ >devcontainer.json
ํ์ผ์DISPLAY
ํญ๋ชฉ์ ์ ๋ ฅํฉ๋๋ค. -
VSCode์์
Ctrl+Shift+P
>Dev Containers: Rebuild Container
๋ฅผ ์ ํํฉ๋๋ค. ์ด์ RViz2 ์ฐฝ์ด ๋จ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.