카테고리 없음

[Intel] 엣지 AI SW 아카데미 33일차 (부산상공회의소 인력개발원)

0x01 2023. 12. 17. 04:38

 

일정: 2023.12.11(월)

 

수업 내용: 
 

 - Robot Operating System (ROS)

 - ROS 개발환경 구축

 

목표: 

로봇 소프트웨어 플랫폼
(하드웨어 추상화, 하위디바이스 제어, 로보틱스 센싱, 인식, 위치추정, 지도 작성 , 내비게이션 등) 중심의 기술과
로봇 소프트웨어 플랫 폼(ROS)이 가져올 미래 가치와 기술 선점을 위한 교육을 바탕으로
다양한 영상과 라이다 기반의 로봇 자율주행 기술 교육을 통해 학생들의 첨단 기술습득을 목표로 함.

 

개인PC에서
(1) Ubuntu 20.04 LTS Desktop image (64-bit)
(2) Boot USB Tool download
(3) USB에 Ubuntu 20.04 LTS 설치
→  미니 PC에 Ubuntu와 ROS 설치

개인PC에서
(4) RASPBIAN download
(5) Boot microSD Tool download
(6) microSD에 RASPBIAN 설치
→  Raspberry Pi 4B 에 Raspbian과 ROS 설치

개인PC(노트북)에서
SBC(Single Board Computer)
: Raspberry Pi 4B
: microSD card로 RASPBIAN 설치
: ROS 설치
Remote PC
: 제공되는 미니PC
: Boot USB로 Ubuntu 20.04 LTS 설치
: ROS 설치

4-1. ROS 개발환경 구축
: Turtlebot 3 개발 환경 구축을 위해 Remote PC와 SBC(Single Board Computer)를 설정해야 함
- Remote PC(제공되는 미니PC)는 ROS를 실행하고 모니터링하기 위한 역할
- SBC(Raspberry Pi 4B는 Turtlebot 3 burger(H/W-sensor, openCR)을 직접 구동하기 위한 역할
https://emanual.robotis.com/docs/en/platform/turtlebot3/quick-start/#pc-setup

 

4-2. Remote PC setup

4-2-1. Download and Install Ubuntu on PC
(1) Ubuntu 20.04 LTS Desktop image (64-bit) 
: Ubuntu 20.04 LTS 상위나 하위 버전은 ROS Noetic version 지원 안됨
: PC의 가상 머신(Virtual box)를 사용할 경우 ROS가 정상작동하지 않을 수 있어 우분투를 단독 설치
https://releases.ubuntu.com/20.04/를 개인 PC(Remote PC가 아닌 별도 PC)에 download ← boot USB 만들기 위함

 

(2) install Ubuntu on Remote PC
: 다운로드 받은 파일은 ISO 디스크 파일이므로 USB(개인 USB 최소 6GB 필요)에 바로 옮기면 파일이 손상됨
→ 이후, 다른 용도로 USB 사용불가

: 다운로드 받은 Ubuntu 파일은 ISO 디스크 파일이므로 USB(개인 USB 최소 6GB 필요)에 바로 옮기면 파일이 손상됨
(ubuntu-20.04.6-desktop-amd64.iso )
 Boot USB 설치하기 위하여 https://www.balena.io/etcher/ 에서 “balenaEtcher-Setup-1.18.11.exe“ 파일 download
 balenaEtcher-Setup-1.18.11.exe 를 관리자 권한으로 개인 PC(Remote PC가 아님)에 설치하기
: 위 사이트(balena.io/etcher)에서 프로그램을 다운받고
(1) 개인 PC에 관리자권한으로 etcher 프로그램 실행
(2) USB(최소 6GB 필요)를 개인 PC에 연결한 후 balena_etcher 에서

 

 install Ubuntu on Remote PC(미니PC) 설치 여부 확인
① Remote PC(미니PC)에 Keyboard, Mouse, Monitor 연결 후 전원 ON
: 암호는 1234 (keyboard의 NumLock 해제)
: Ubuntu 설치여부 확인
 ubuntu version 확인하기
: CTRL + ALT + T 를 사용해 터미널 창 열기
: lsb_release –a
→ ubuntu version 확인

 

 install Ubuntu on Remote PC(미니PC- MSI Cubi N100 ADL Win11Home )
① windows, centos, Ubuntu 등이 설치된 Remote PC(미니PC)에 Ubuntu 설치하기
: 미니 PC에 마우스, 모니터, 키보드 연결하기
: ubuntu-20.04.6-desktop-amd64.iso가 설치된 USB를 미니PC에 연결
: powering on the PC 이후에 F11(억수로 많이) 누르기(MSI boot menu)

 

Network 연결 선택 후 TP-Link 9160 WiFi 선택
TP-Link 9160 5G WiFi 선택 (pw : 91919533) 

 

Terminal 창 열기
: CTRL + ALT + T 를 사용해 터미널 창 열기
→ 반복 실행 시, 반복한 횟수 만큼 터미널 창이 여러 개 열림
: sudo 명령어(super_user do)
→  Linux에서 특정 명령을 실행하거나 파일에 접근하기 위해 root 권한이 필요. 
일반 사용자(user)가 root 권한을 사용하기 위해서 sudo 명령어를 사용
→  sudo 다음에 실행할 명령을 입력하면 root 권한으로 명령어를 실행
: CTRL + Shift +Q 열려있는 터미널 창 닫기
→  반복 실행 시, 반복한 횟수 만큼 터미널 창이 닫힘

 

 ubuntu version 확인하기
: CTRL + ALT + T 를 사용해 터미널 창 열기
: lsb_release –a
→  ubuntu version 확인
Version 확인
입력 후 enter

 

[명령어]
apt-get : 또는 apt(Advanced Packaging Tool)은 Debian 계열의 Ubuntu에서 쓰이는 package 관리 명령어
sudo : super-user 권한으로 실행하기 위함
wget : web get. 웹에서 파일을 다운로드할 대 사용되는 명령어
chmod 755: change mode. 대상 파일과 디렉토리의 사용권한을 변경할 때 사용. 755 소유자 권한(읽고, 쓰기, 실행)
bash : shell은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램
: bash는 unix의 shell. / bash: 파일을 읽고 실행 bashrc 를 호출

: sudo apt-get update
: sudo apt-get upgrade

 

Ubuntu 20.04 방화벽(ufw) 사용법
(1) ufw는 Ubuntu 20 설치시 기본으로 설치됨, 만일 없다면
sudo apt install ufw
(2) ufw는 기본적으로 모든 incoming connections과 outgoing connections 허용 안함, 그래서 허용해야 함
sudo ufw allow from any to any port 3389
(3) UFW 활성화/비활성화
sudo ufw enable
sudo ufw disable
(4) ufw 상태확인
sudo ufw status verbose

 

chmod 755 ./install_ros_noetic.sh

 

Install TurtleBot3 Package from source : 주의

: 경로 확인 (build 경로)
$ cd ~/catkin_ws && catkin_make
→ $ cd ~/catkin_ws 
→  $ catkin_make
: 우리가 만든 src 폴더 확인
그리고 build 와 devel 폴더 생성
: catkin 빌드 파일은 build 폴더 저장
: 빌드 후 실행 파일은 devel 폴더 저장

 

환경변수에 IP 반영하기 : emanual.robotis 3.1.5 Network Configuration

 

ROS 환경변수 설정 :

$ ifconfig //ip기억

$ gedit ~/.bashrc //bashrc 편집

 

125 $ source /opt/ros/noetic/setup.bash 
126 $ source ~/catkin_ws/devel/setup.bash
: 위와 같은 ROS 설치 과정에서 사용된 환경설정 파일을
매번 불러오기 번거롭기에 bashrc 파일에 환경변수 설정

 

[alias 단축 명령어]
alias eb='nano ~/.bashrc'
alias sb='source ~/.bashrc'
alias gs='git status'
alias gp='git pull'
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'
a eb nano 편집기로 bashrc 파일을 열기 nano ~/.bashrc
→ sb 환경변수 설정을 반영 source ~/.bashrc
→  gs git status 현재상태를 확인
→  gp git pull fetch하고 + merge하는 명령어
→  cw cd ~/catkin_ws build 디렉토리 이동
→  cs cd ~/catkin_ws/src 이동
→  cm cd ~/catkin_ws && catkin_make 

 

★ 최종 테스트

→ $ roscore

 

Remote PC에서 원격으로 Raspbian 연결중에 off 방법
$ ssh ubuntu@192.168.xxx.xxx (ID : ubuntu, PWD : turtlebot)
← 이미 진입했으면 생략 (Path주의)
$ sudo shutdown now 

 

TIP

: 터미널 창 나누기
sudo apt-get install terminator
* 수평 분할 : Ctrl + Shift + O
* 수직 분할 : : Ctrl + Shift + E
* 다음 창 활성화 : Ctrl + Tab or Ctrl + Shift + N
* 이전 창 활성화 : Ctrl + Shift + Tab or Ctrl + Shift + P
* 현재 활성화 된 창 닫기 : Ctrl + Shift + W
* 터미네이터 실행 : Ctrl + Alt + T
* 터미네이터 종료 : Ctrl + Shift + Q