PinkLAB - 민형기 ROS2 기초 실습 1일차 - Ubuntu(WSL)설치, Terminal(Shell)

안상훈·2024년 5월 13일
0

ROS2 실습

목록 보기
1/13
post-thumbnail

개요

본 블로그 포스팅은 https://www.youtube.com/@pinklab_studio/playlists
에서 현재 강의 중에 있는

ROS2 무작정 따라하기강의의 내용을 필자가 다시 복기하여 기록하는 내용에 관한 것이다.


1. 강의 목표

본 강의의 저자인 민형기 대표님은 주식회사 핑크랩의 대표이사 및 한양대 서울캠퍼스의 겸임교수로 활동하고 계시며, ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자의 저자이다.

올해 민형기 대표님은 핑크랩 PinkLAB 유투브 채널을 개설하여 ROS2 강의 및 실습 영상을 업로드 하고 있으며, 목표는 신규 로봇 개발자들이 더 쉽게 접근할 수 있는 교육 컨텐츠 제작인 듯 하다.

해당 유투브 강의의 최종 목표는 위 그림과 같이 ROS2기반의 Robot이 User의 배송 Task를 처리하면서 동시에 긴급상황에 대처할 수 있는 업무를 처리하는 것이며, 이때 해당 로봇은 SLAM 등과 같은 자율주행 기술이 도입될 것으로 예상된다.

따라서 위 그림으로 표현된 로봇을 개발하는 ROS역량 육성을 목적으로 강의를 진행중이며 해당 강의는 3개의 파트로 나뉘어 진행된다.

1. ROS2 기초

  • 환경 설정
  • ROS2 터미널 명령
  • Python으로 ROS2 토픽, 서비스 다루기

2. ROS2 응용

  • 토픽, 서비스, 액션을 다루는 패키지 만들기
  • 메세지, 토픽 데이터 정의 만들기
  • 파라미터 다루기
  • 디버그와 모니터링을 위한 도구 다루기

3. ROS2 심화

  • URDF기초
  • URDF로 구성하는 나만의 모바일로봇
  • SLAM + Navigation 패키지 직접 구성하기

2. Ubuntu 설치

강의에서는 멀티 부팅 기반으로 Ubuntu를 설치하였으나, 필자는 WSL-Ubuntu 형식으로 개발환경을 구성하고 강의를 복기하기로 한다.

Windows PowerShell 혹은 terminal로 설치

위 사진처럼 Windows PowerShell 혹은 명령 프롬포트를 열어서 아래의 명령어를 통해 wsl-Ubuntu 22.04버전을 설치한다

wsl --list --online -> 설치 가능한 Linux버전 서치
wsl --install -d Ubunut-22.04 -> 서치된 Linux버전 중 Ubuntu 22.04버전 설치

위 두 명령어를 수행하여 wsl-ubuntu 22.04를 다운로드 및 설치를 진행한다.

설치를 완료하면 위 사진처럼 시작 버튼 클릭 시 Ubunut 22.04실행 아이콘이 생성되며, 해당 아이콘 클릭시 CLI형식으로 부팅되는 wsl-Ubuntu를 구동할 수 있다.


3.설치 후 Terminal

처음 ubuntu를 시작한 후에는 아래의 명령어를 먼저 수행해주는 것이 편리하다

sudo apt update && sudo apt upgrade


해당 명령어를 수행하면 위 사진처럼 Ubuntu의 명령 프롬포트에서 패키지 업데이트 및 다운로드를 수행하는데

이는 APT라 하는 리눅스 배포판의 deb패키지의 설치, 삭제, 업데이트를 관리하는 유틸리티의 업데이트를 수행한다 보면 된다.

그냥 간단하게 윈도우 업데이트 하듯이 위 명령어를 수행한다 보면 된다. 이걸 특정 패키지를 설치하기 전 항상 수행하는 것을 권장하는데 정말 간단하게 리눅스는 어떤 프로그램을 설치하기 전 윈도우 업데이트를 안하면 호환성 문제가 발생한다
이리 생각하고 넘어가는게 편하다...

그 다음 기본적으로 알아둘 Ubuntu Terminal 명령어로 강의에서는 ls, pwd, mkdir, rm, cd등을 언급했는데
필자가 ROS를 공부하면서 알아야 할 리눅스 명령어를 기억나는 데로 정리를 하려 한다.

1) ls : 현재 위치한 디렉토리 내 파일 및 폴더를 나열
2) cd : 디렉토리 이동 (ex : cd /home -> home폴더로 이동)
3) pwd : 현재 위치한 디렉토리의 경로 출력
4) cp 그리고 mv : 파일의 복사, 그리고 이동
(ex : cp source.txt destination.txt)
5) rm : 파일 및 디렉토리 삭제 -> 이때 위험 하지만 디렉토리를 삭제 시 디렉토리 내 모든 파일 삭제는 rm -rf [디렉토리명]
6) mkdir : 새로운 디렉토리 생성
7) echo : 텍스트 출력 (ex : echo "hello World" -> 이 명령어를 치면 터미널에서 hello World가 출력됨)
8) grep : 문자열 검색
(ex : grep "search_term" file.txt -> 참고로 grep명령어는 어떤 명령어의 연계 [명령어A] | grep 로 주로 쓰임)
9) chmod : 파일이나 디렉토리의 권한을 변경
(ex : chmod 755 ex_ros_node.py 혹은 chmod +x script.sh)
10) kill : 프로세스 끄기
11) wget : 네트워크상에서 파일을 다운로드
(ex : wget http://example.com/file.txt)
12) apt-get : 리눅스의 패키지 관리자를 통해 소프트웨어를 설치하거나 관리
(ex : apt-get install nginx -> 대체로 어떤 패키지 설치할 때는 sudo apt get [패키지명] 이렇게 더 많이 쓴다)
13) alias : 명령어에 별칭을 만든다.
-> 이건 나중에 좀 더 자세히...

일단 이정도로 정리한다.


이같이 리눅스 명령어를 정리한 후 강의에서는 Chrome를 설치하는데 강의에서는 멀티부팅 - 우분투로 강의를 진행하기에 인터넷 브라우저가 필요하여 Chrome를 설치했으나, WSL-Ubuntu환경에서는 메인 OS인 윈도우에서 크롬 사용이 가능하니 딱히 수행하지 않아도 된다.

단, WSL-Ubuntu환경에서 크롬을 설치하려면 https://learn.microsoft.com/ko-kr/windows/wsl/tutorials/gui-apps
Linux용 Windows 하위 시스템 Linux GUI 앱 실행 의 가이드에 따라 크롬 설치를 진행해야 한다

sudo apt install gnome-text-editor -y -> Gnome 텍스트 편집기 설치
sudo apt install gimp -y -> GIMP 설치
sudo apt install nautilus -y -> Nautilus 설치
sudo apt install vlc -y -> VLC 설치
sudo apt install x11-apps -y X11앱 설치
이걸 먼저 수행 후

cd /tmp -> WSL-우분투의 임시 폴더로 이동
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -> 인터넷으로 리눅스용 크롬 설치파일 다운로드
sudo apt install --fix-missing ./google-chrome-stable_current_amd64.deb -> 다운로드 받은 파일(리눅스 설치 패키지)를 이 명령어로 설치 실행

이렇게 해준 뒤 google-chrome 명령어를 터미널에 치면 WSL-Ubuntu용 Chrome 창을 열 수 있다

참고로 위 사진처럼 크롬의 한글 폰트가 깨져서 출력되고 있다면 https://velog.io/@hephaistos53/%EC%9A%B0%EB%B6%84%ED%88%AC-%ED%81%AC%EB%A1%AC%EC%84%A4%EC%B9%98-%ED%95%9C%EA%B8%80%EC%84%A4%EC%A0%95
블로그를 참조하여 아래의 명령어를 순차적으로 실행하자

sudo apt-get install fonts-nanum fonts-nanum-coding fonts-nanum-extra -> 나눔 폰트 설치
locale -> 로케일 확인(리눅스 시스템의 기본 국가 및 언어 설정)
sudo dpkg-reconfigure locales -> 해당 명령어를 실행 후 이 창이 뜨면 ko_KR.UTF8 이걸 찾아서 이걸 기본설정으로 바꿔준다.

이후 PowerShell창에서 WSL-Ubuntu를 재부팅해준다

wsl -t [우분투 버전명] -> 아래 사진처럼 실행되고 있는 우분투를 끈다.
우분투를 끈 다음에는 우분투 실행 아이콘 누르면 재부팅이 완료된다.

한글 폰트가 잘 설치되서 한글이 뜨고 있는 WSL-Ubuntu용 리눅스 크롬이다.


4.WSL - vscode 설치

강의에서는 Jupyter Notebook, Sublime, Python등을 설치하지만 WSL-Ubuntu는 기본적으로 Python이 패키지에 포함되어 있어서 딱히 수행하지 않아도 되고 필자는 Jupyter Notebook, Sublime 보다는 vscode를 더 많이 사용한다.

솔직히 vscode가 진짜 너무나도 편하다...
설치 방법은 https://learn.microsoft.com/ko-kr/windows/wsl/tutorials/wsl-vscode 을 참조한다

sudo apt-get update
sudo apt-get install wget ca-certificates
위 명령어를 수행한 후
아무 터미널에서 code .를 실행한다.
그러면 딱 위 gif파일 처럼 vscode가 설치되고 실행된다.

사실 vscode를 쓰는 이유는 아래의 사진처럼 편리한 Extension을 설치하는 것이 가능하기 때문이다.이것 외에도 개발 환경을 보조해주는 다양한 extension을 설치해서 vscode에 적용이 가능하니 찾아서 설치하는 것을 추천한다.

profile
자율차 공부중

0개의 댓글

관련 채용 정보