로봇운영체제 실습 - Linux 기초 및 ROS 패키지 설치 예제

고영민·2024년 9월 12일

1. Linux 기본 명령어 소개

  • 리눅스는 기본적으로 터미널 상에서 command line을 통해 동작함

    • GUI가 기본인 window와는 달리 command line으로 동작
  • 따라서 리눅스 환경에 친숙해지기 위해 기본적인 명령어를 소개함


$ sudo apt install software-properties-common
  • sudo: 관리자 권한으로 실행, 어떤 패키지를 설치하는 등 시스템에 큰 영향을 주는 명령어는 관리자 권한이 필요함
  • apt: Ubuntu에서 패키지 설치 등을 관리해주는 명령어
  • apt install <패키지 이름>: install 옵션을 붙임으로써 <패키지 이름> 을 apt를 통해 설치함

$ sudo apt update
  • apt 내 패키지 목록 등을 업데이트

$ gedit <파일명>
  • Linux에서 사용되는 명령어의 기본적인 형태
  • 가장 앞에는 리눅스 기본 명령어 혹은 설치된 패키지의 명령어가 자리함
  • 그 뒤에는 해당 명령어에 대한 추가적인 옵션 또는 파일명 등 명령어에 전달해야하는 인자가 자리함

  • 위 그림에서 커멘드라인의 좌측을 보면, 초록색 글씨는 현재 리눅스 환경에 접속된 계정 정보, 파란색 글씨는 현재 해당 터미널이 어느 폴더에 있는지를 나타냄
  • ~: 리눅스에서 파일 경로에 나오는 물결표시는 home directory를 의미함. 윈도우의 각 계정별 바탕화면과 비슷
  • .: 마침표 하나는 현재 위치하는 디렉토리(폴더)를 의미함. 위 그림 예시에서 my_ws 디렉토리를 의미.
  • ..: 마침표 두 개는 현재 위치하는 디렉토리의 상위 디랙토리를 의미함. 위 그림 예시에서는 ~에 해당

$ ls
  • 현재 디렉토리 내에 존재하는 파일, 디렉토리의 목록을 출력

$ cd <디렉토리 이름>
  • 해당 디렉토리로 이동
  • 그냥 cd만 적으면 홈 디렉토리(~)로 이동

$ mkdir <디렉토리 이름>
  • 입력된 이름의 디렉토리를 생성

$ mv <이름1> <이름2>
  • 이름1의 파일, 폴더 등의 이름을 이름2로 변경

$ rm <파일명>
  • 입력된 파일을 제거
  • 디렉토리를 제거 못함

$ rm -rf <이름>
  • rm 명령어에 -rf옵션을 준 것으로 파일, 디렉토리 상관없이 제거
  • 주의해서 사용할 것

$ code ~/.bashrc
  • code 패키지에 ~/.bashrc인자를 전달
  • code 는 VScode의 명령어이며, text editor이므로 ~/.bashrc를 에디터 상에서 열겠다는 의미
  • ~/.bashrc~, 홈 디렉토리 상에 있는 .bashrc라는 파일을 의미하며, 리눅스에서 파일명 앞에 붙은 마침표는 해당 파일이 숨김 파일임을 의미함
  • .bashrc 파일은 해당 터미널 탭이 처음 열릴 때 기본적으로 실행되는 파일임. 따라서 해당 파일에 환경설정 명령어를 입력해두면 터미널이 열릴 때마다 환경설정 명령어가 실행되는 효과가 나타남

컨트롤(Ctrl) + C
  • 보통 복사의 단축키로 많이 알려져 있지만, 리눅스에서는 어떤 프로그램이 동작하고 있는 터미널에서 컨트롤+C를 누르게 되면 해당 프로그램이 종료됨

2. Turtlesim 패키지 설치 및 실행

  • 아래 명령어를 통해 turtlesim 패키지를 설치
    • 아래 명령어의 예시처럼 ros 패키지 이름의 경우 ros-<ros버전>-<패키지이름>의 구조를 가지고 있음
$ sudo apt install ros-iron-turtlesim
  • 설치된 ros 패키지 목록 확인
    • 방금 설치한 turtlesim 패키지가 존재하는 지 확인
 ros2 pkg list 
  • 3개의 우분투 tab을 실행

  • 첫번째 tab에서 다음의 명령어 실행

    • 파란 화면에 거북이가 나오는 환경이 실행됨을 확임
$ ros2 run turtlesim turtlesim_node
  • 두번째 tab에서 다음의 명령어 실행
    • 키보드로 거북이를 제어하는 노드를 실행하는 명령어이며, 키보드 화살표로 거북이를 움직일 수 있는 지 확인
$ ros2 run turtlesim turtle_teleop_key
  • 종료하지 말고 다음 글로..!

0개의 댓글