ROS/ROS2๋ ๊ธฐ๋ณธ์ ์ผ๋ก kernel์ ๋ฐ๋ก ๋ OS๊ฐ ์๋ ๋ก๋ด์ ๋ค์ํ ์ปดํฌ๋ํธ๋ฅผ ๋น๋, ์คํ, ๋ฐฐํฌ ๊ด๋ฆฌ๋ฅผ ํ๊ธฐ ์ํ ํ๋์ middleware์ด๋ค. ROS๋ CMake ๊ธฐ๋ฐ ๊ฐ๋ ฅํ ๋น๋์์คํ ์ ์ด์ฉํ์ฌ ๋ก๋ด ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋์์ค๋ค.
ROS๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ํ ํ๋ซํผ์ ์ง์ํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก unix, linux ๊ณ์ด์ OS์ windows ๊น์ง ์ง์๋๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค. ์ค์น๋ ros wiki์ ์์ธํ ์์ด ๋ฐ๋ผ ์ค์นํ ์ ์๋ค.
๋ค๋ง ํด๋น installation์ ์๊ฑฐ๋ host pc์ ์ฌ๋ฌ ์ข ์์ฑ์ ์ค์นํ๊ธฐ ์ซ๋ค๋ฉด ๊ฐ์ํ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
docker ์ค์น๋ https://www.docker.com/products/docker-desktop ํตํด ๋ด๋ ค๋ฐ์ ์ ์๋ค.
docker pull ros:$ROS_DISTRO
ROS_DISTO์ ํด๋นํ๋ ๋ฒ์ ์ ์ ์ด์ฃผ๋ฉด ๋๋ค.
docker pull ros:noetic # ros 1 noetic image
docker pull ros:galactic # ros 2 galactic image
ROS 1 roscore daemon ์คํ
docker run -d \
-e ROS_MASTER_URI=http://${ip}:11311 \
ros:noetic \
roscore
ROS terminal ์ ์
docker run \
-e ROS_MASTER_URI=http://${ip}:11311 \
-v $(pwd):/ros_ws \
--workdir=/ros_ws \
-it ros:noetic bash
# docker ์ ์ ์๋ฃ
$root@21eqwee13f:/ros_ws#
workspace init, build test
# workspace init
$ mkdir src && cd src
$ catkin_init_workspace
# create pkg
$ catkin_create_pkg
# build
$ cd .. # move top level directory
$ catkin_make
ROS Terminal ์ ์๊ณผ ๊ฐ์ด docker ํ๊ฒฝ์์ ros ์์ค์ฝ๋ ๊ฐ๋ฐ ๋น๋, ์คํํ ์ ์๋ค.