1 분 소요

오늘 드디어 ROS1을 깔아보았다.

OSRF? 로스 도커 이미지라고 하네요?ㄷㄷ?

벌써 화요일이다. 뭐 한것도 없는데 벌써 방학이 다 끝나간다.

암튼! 도커에다가 ROS1의 노에틱을 설치할라 카는데! 빠르게 구축하기 위해 Open Source Robotics Foundation(이하 OSRF)에서 제작한 ROS Docker 이미지를 사용하려 한다.

이미지를 땡겨와보았다.

Base Ubuntu이미지에 ROS를 직접 설치할 수도 있지만, 이 방식은 다음에 하는걸로 하고, 지금은 누구보다 빠르게! 남들보다 빠르게! 설치하는 것에 초점을 맞추려고 한다ㅋㅋ(참고)

docker pull osrf/ros:<DISTRO>-desktop-full

위 코드를 참고해서 노에틱 기준으로 세팅을 해주었다.

docker pull osrf/ros:noetic-desktop-full

WindowsTerminal_PcKXUYWkEd

Pull complete문구가 뜬 걸 보니, 다운로드 해야할 여러 레이어들의 다운로드가 완료되었다는 것 같다.

그 아래, Digest라는 키워드는 찾아보니 이미지의 고유 식별자인 것 같다.

Status: Download newer image for osrf/ros:noetic-desktop-full

이라고 뜬것을 보니 최신버전의 이미지가 최종적으로 다 깔렸다는 뜻인 것 같다.

이제 그 아래에 docker scout뭐시기 라는 명려어를 실행하라 카는데, 이는 이미지의 취약점 요약 및 권장사항을 확인할 수 있는 링크를 제공하는 것 같다. 그래서 quickview로 들어가면 scout사이트로 이동하는게 아닌가 싶다. 일단 해보지 뭐!ㅋㅋㅋ

docker scout quickview osrf/ros:noetic-desktop-full

WindowsTerminal_9a5Dr7KXD1

흐음… 이렇게 뜨고 나서 무한대기루프에 빠진것 같다. 진전될 기미가 보이지 않아 그냥 컨트롤C를 누르고 정지시켰다.

그리고 이미지가 잘 땡겨왔나 확인하기 위해 docker images명령어를 쳤다.

WindowsTerminal_tNA4XREpBG

오케이~ 이제 다음단계로!

땡겨온 이미지를 실행해보았다.

# <DISTRO>는 원하는대로 바꿀 수 있다. indigo / kinetic / melodic / noetic 등등...
docker run --name ros1 \
	-it \
    --env="DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    osrf/ros:<DISTRO>-desktop-full
export containerId=$(docker ps -l -q)

위 코드를 참고해서 노에틱 기준으로 세팅을 해주었다.(이름은 일단 ros1으로 해줬는데, 바꿔도됨ㅇㅇ)

# <DISTRO>는 원하는대로 바꿀 수 있다. indigo / kinetic / melodic / noetic 등등...
docker run --name ros1 \
	-it \
    --env="DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    osrf/ros:noetic-desktop-full
export containerId=$(docker ps -l -q)

위에꺼 잘 안되서 chatGPT형님께 물어보니 이렇게 하랜다.

  1. 컨테이너 실행
docker run --name ros1 \
	-it \
    --env="DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    osrf/ros:noetic-desktop-full
  1. 새 터미널에서 컨테이너 ID가져오기
containerId=$(docker ps -l -q)
echo ros1
  1. 컨테이너 내 셸로 접속
docker exec -it ros1 /bin/bash

WindowsTerminal_YesnwEsCTx

위 커맨드를 입력하고 나서, DockerHub로부터 해당 Distro의 ROS가 포함된 Docker 이미지를 다운받고 컨테이너를 생성한 후, 실행까지 해보았다.

ROS환경 활성화 하고, roscore를 실행해보았다.

Container에 접속된 상태의 프롬프트에서 아래 명령을 실행해서 Container에 접속할 경우 자동으로 ros환경이 로딩되도록 해주었다.

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

아래 명령을 실행해서 현재 창에도 ROS환경을 읽히게 해주었다.

source /opt/ros/noetic/setup.bash

이후 아래 명령어로 제대로 읽히는지 테스트해주었다.

printenv | grep ROS



위처럼 읽히는 것을 확인하였고, 드디어! roscore 커맨드를 통해 ros서버를 실행시켰다.



이제 내일은 터틀심을 통해 가상환경에서 시뮬레이션을 돌려보려고 한다.(굳굳~)

언어:

카테고리:

업데이트:

댓글남기기