꾸준하고 즐겁게

ROS 설치하면서 명령어를 분석하고, 워크 스페이스를 만들어보았다. 본문

카테고리 없음

ROS 설치하면서 명령어를 분석하고, 워크 스페이스를 만들어보았다.

wj9183 2021. 6. 8. 21:16
728x90
Ubuntu 환경에서 ROS 설치하기

http://wiki.ros.org/

 

Documentation - ROS Wiki

ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under

wiki.ros.org

위 사이트를 보고 설치 진행했다.

 

 

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $ (lsb_release -sc) main"> /etc/apt/sources.list.d/ros-latest.list'
  • "deb http://packages.ros.org/ros/ubuntu $ (lsb_release -sc) main"을 /etc/apt/sources.list.d/ros-latest.list에 추가로 입력한다.
  • 그런데 바깥 쪽에 echo와 함께 따옴표가 하나 더 붙어있다.
  • sh는 쉘 스크립트로 작성된 파일을 실행하는 명령어이다.
  • echo "안녕하세요" : 안녕하세요를 화면에 출력한다.
  • -c : 이미 존재하는 파일의 경우 덮어쓰기하지 않는다.

 

sudo apt-key adv --keyserver 'hkp : //keyserver.ubuntu.com : 80'--recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  • apt-key는 apt가 패키지를 인증하는데 사용하는 키 리스트를 관리해준다.
  • 이 키들을 사용하여 인증된 패키지들은 믿을 만한 것으로 간주한다.

 

curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
  • curl은 윈도우와 리눅스에 기본 설치되고 있는 오픈소스 웹 개발 툴이다.
  • -L 옵션은 서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라간다.
  • -s 옵션은 --silent. 진행 내역이나 메시지등을 출력하지 않는다. -o 옵션으로 remote data 도 /dev/null 로 보내면 결과물도 출력되지 않는다. HTTP response code 만 가져오거나 할 경우 유리
  • apt-key는 apt가 패키지를 인증하는데 사용하는 키 리스트를 관리해준다.

 

sudo apt update
  • apt-get update'는 운영체제에서 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트하는 명령어다. 설치되어 있는 패키지를 최신으로 업데이트하는 것이 아닌 설치가능한 리스트를 업데이트하는 것이다.

 

sudo apt install ros-melodic-desktop-full
  • ros-melodic-desktop-full(ROS melodic 데스크탑 풀버전) 패키지를 설치한다.
  • 일부만 설치하는 명령어들이 같이 나와있는데, 잘 모른다면 이걸 설치하는 게 좋다.
  • 필요한 구성 혹은 필요 이상으로 많은 것들이 모두 들어있다.

 

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

source ~/.bashrc
  • echo 문자열 >> 텍스트파일.txt : 해당하는 파일이 없다면 파일을 생성하고, 이미 존재하면 파일 내용에 문자열을 추가한다.
  • source : 배쉬 파일을 커널한테 등록시키는 게 소스라는 명령어이다. 실행시키는 거랑 개념이 다르다. 커널한테 알려주는 것이다. 이 명령어를 실행해줘야 bashrc에 추가한 문자열에 들어있는 명령어가 적용이 된다.

 

 

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
  • ROS를 사용하기 위해 필요한 라이브러리들을 설치해주는 과정이다.

 

sudo apt install python-rosdep
  • rosdep의 dep은 dependencies를 의미한다.
  • ROS가 의존하는 (ROS를 사용하기 위해 필요한) 라이브러리들이 들어있는 패키지를 설치한다.

 

sudo rosdep init

rosdep update
  • init : 여러 역할을 하지만, 여기서는 해당 패키지의 초기화 작업을 위해 쓰였다.
  • rosdep 패키지를 업데이트해준다.

 

 

 

 

ROS 환경 설정하기

 

printenv | grep ROS
  • printenv는 print environment variable의 약자다. 환경 변수의 값을 출력해주는 명령어다.
  • 이하 | grep ROS로, printenv 명령어로 출력되는 환경 변수들 중에서 ROS라는 문자열을 포함하는 내용만 모두 출력하도록 했다.
  • 명령어를 실행하면 다음과 같은 정보들을 얻을 수 있다.

 

 

source /opt/ros/<distro>/setup.bash
  • 설치된 패키지의 setup.bash 파일을 적용해준다. distro에는 설치한 ros의 버전을 넣어주면 된다. 바로 이전 명령어에서 확인할 수 있다.
  • 위의 경우엔 ubuntu 18.04 버전으로, 호환성의 문제로 ros melodic 버전을 설치했다. 고로 distro에 melodic을 입력하면 된다.

 

 mkdir -p ~ / catkin_ws / src

cd ~ / catkin_ws /

catkin_make
  • mkdir -p 명령어는 입력받은 디렉토리를 확인해서 해당 경로에 없는 디렉토리를 모두 만들어준다.
  • 워크스페이스로 이동했다.
  • ROS 빌드 시스템인 캣킨은 기본적으로 CMake를 이용하고 있어서 패키지 폴더에 CMakeList.txt파일에 빌드 환경을 기술하고 있다.

 

source devel/setup.bash
  • source : 배쉬 파일을 커널한테 등록시키는 게 소스라는 명령어이다. 실행시키는 거랑 개념이 다르다. 커널한테 알려주는 것이다. 이 명령어를 실행해줘야 bashrc에 추가한 문자열에 들어있는 명령어가 적용이 된다.

 

 

728x90