Pixhawk 2 Cube Orange와 Companion Board(Raspberry Pi 4) 연결하기 3- SSH를 이용한 Raspberry Pi 원격 접속

2022. 12. 26. 17:22UAV/Software

이전 포스팅에서 이어집니다.

2022.07.27 - [UAV/Software] - Pixhawk 2 Cube Orange와 Companion Board(Raspberry Pi 4) 연결하기 1- Raspberry Pi 4 환경 구성

 

Pixhawk 2 Cube Orange와 Companion Board(Raspberry Pi 4) 연결하기 1 - Raspberry Pi 4 환경 구성

라즈베리파이에 Ubuntu 20.04 설치 이 내용은 참고 자료가 너무 많아 자세히는 다루지 않고, 링크 첨부로 대신합니다. https://linuxhint.com/install-ubuntu-desktop-20-04-lts-on-raspberry-pi-4/ Install Ubuntu Desktop 20.04 L

mkdrone.tistory.com

2022.11.06 - [UAV/Software] - Pixhawk 2 Cube Orange와 Companion Board(Raspberry Pi 4) 연결하기 2- Raspberry Pi 4 하드웨어 구성

 

Pixhawk 2 Cube Orange와 Companion Board(Raspberry Pi 4) 연결하기 2- Raspberry Pi 4 하드웨어 구성

이전 포스팅에서 이어집니다. 2022.07.27 - [UAV/Software] - Pixhawk 2 Cube Orange와 Companion Board(Raspberry Pi 4) 연결하기 1- Raspberry Pi 4 환경 구성 Pixhawk 2 Cube Orange와 Companion Board(Raspberry Pi 4) 연결하기 1 - Raspberry

mkdrone.tistory.com

 

 

이번 포스팅에서는 SSH 프로토콜을 이용하여 라즈베리파이에 원격 접속하는 방법을 다룹니다. 실외에서 UAV에 탑재된 라즈베리파이의 프로그램을 실행시키고자 할 때, 보조 모니터를 들고 다니며 실행시키는 것보다 훨씬 유용한 방법입니다.

 

SSH란 Secure Shell Protocol의 약자로, 컴퓨터 간 통신에서 사용하는 보안 기능이 포함된 프로토콜입니다. 데이터 전송, 원격 제어 등의 목적으로 사용됩니다. 특히 이번 장에서 사용하는 목적은 원격 제어라고 생각하시면 될 것 같습니다. 프로토콜 자체를 소개하는 것은 아니기 때문에 간략하게 소개 후 넘어가겠습니다.

 

SSH 접속을 위해서는, 호스트(Laptop)와 원격 제어하고자 하는 Companion Computer(Raspberry Pi)가 같은 IP로 묶여 있어야 합니다. 가장 쉽게 접근할 수 있는 방법은 두 컴퓨터가 같은 wifi 네트워크에 연결되어 있는 것입니다. 필자의 경우 보통 실외 테스트 시에 모바일 핫스팟으로 노트북과 CC를 묶어 원격 접속을 사용합니다.

 


1. 라즈베리 파이 환경 구성


1-1. Raspberry Pi - SSH 설정

ssh 연결을 위한 첫 번째 과정으로, 라즈베리파이에서 환경 구성을 해주어야 합니다.

다음 명령어를 통해 라즈베리파이 환경 설정 창으로 진입합니다.

 

sudo raspi-config

 

환경 설정 창 진입 화면

 

화면에서 5. Interfacing Options 탭으로 진입합니다. 이는 앞 포스팅에서 픽스호크와 라즈베리파이의 시리얼 통신 설정 시와 동일한 메뉴입니다.

 

5. Interfacing Options 탭 진입 화면

 

해당 탭에서 P2 SSH를 선택 후, 아래 사진과 같은 메세지가 나오면 <Yes>를 선택해 설정을 완료합니다. 아래 경고 문구는 현재 라즈베리파이 비밀번호와 SSH 비밀번호를 같게 설정하면 보안상의 문제가 있다 정도로 이해하시면 되겠습니다.

 

SSH 설정 화면


1-2. Raspberry Pi 고유 IP 주소 확인

SSH 연결시, 공유기(모바일 핫스팟을 이용한 연결의 경우 휴대폰)에서 라즈베리파이에 할당한 IP 주소가 있어야 노트북에서 원격 접속이 가능합니다. 아래 명령어를 통해 고유 IP주소를 확인할 수 있습니다. 

 

ifconfig

 

아래 터미널에서, wlan0의 inet에 적혀있는 주소가 있으면 됩니다. 본 IP주소는 IP 제공 호스트(공유기, 휴대폰)가 바뀔 때마다 바뀌고, 같은 공유기에 연결했더라도, 특정 주기마다 달라집니다. 이 점 유의하여 SSH 연결 전에 미리 IP주소를 확인해 놓고 사용해야 합니다. 아래 예시에서는 192.168.0.47이 되겠습니다.

 

ifconfig 수행 결과

 


2. 노트북 환경 구성


2-1. Putty 설치

 

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

 

Download PuTTY: latest release (0.78)

This page contains download links for the latest released version of PuTTY. Currently this is 0.78, released on 2022-10-29. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel

www.chiark.greenend.org.uk

 

위 사이트에 접속하여 본인의 운영체제에 맞는 버전으로 설치해줍니다. 통상적인 윈도우 64비트 운영 체제의 경우 64-bit x86 버전을 설치하시면 됩니다. 설치 과정은 워낙 간단해서 생략하겠습니다.

 

아래 실행 화면에서, 크게 세 가지 부분을 주의 하셔서 실행하시면 됩니다. 빨간 원에는 위의 ifconfig에서 얻은 ip주소를 입력하고, Port에는 22, Connection type에는 SSH를 선택해줍니다. 

 

이러한 세팅값들을 아래 Saved Sessions에 원하는 이름으로 저장할 수 있습니다. 이후 저장된 세팅 값을 Load하여 사용 가능합니다. 

 

PuTTY 실행 화면

 

이후 open을 클릭하면, 노트북에 원격 접속 터미널이 뜨며, 로그인 창이 뜹니다. 처음(login as:)에는 Raspberry Pi의 Username을, 비밀번호는 시스템 비밀번호를 입력해줍니다.

제 경우는 username이 ubuntu라 아래와 같이 뜨는 것을 확인할 수 있습니다.

 

원격 접속 수행 결과

 

위 창은 라즈베리파이 상의 터미널을 같은 IP로 묶여 있는 외부 기기(노트북 등)에서 무선으로 원격 제어할 수 있는 창이라고 생각하시면 됩니다.

코드 실행도 가능하고, 각종 명령어도 잘 작동합니다. vi같은 터미널 텍스트 편집기로 코드 수정도 가능합니다.

단 GUI가 필요한 gedit이나, 그 이외의 화면 제어 등은 불가능합니다.

 


활용 예시

 

아래 사진은 노트북 상에서 Mission Planner와 Putty를 같이 실행한 화면입니다. 드론에 전원을 넣어 Mission Planner와 연결하고, 동시에 드론에 탑재된 Raspberry Pi와 노트북을 SSH로 원격 접속한 후,  MAVROS를 실행하여  /mavros/state topic을 노트북에서 확인하는 화면입니다.

 

ssh 활용 예시

 

위와 같은 방식으로, 외부 디스플레이에 연결되어 있지 않은 드론에 탑재된 라즈베리파이를 노트북 원격 접속을 통해 제어할 때 사용할 수 있습니다.

젯슨 보드(Nano, Xavier 등등)들도 비슷한 방식으로 적용 가능하며, 추후 포스팅에서 다루겠습니다.

 

긴 글 읽어주셔서 감사드리며, 궁금한 점이나 잘못된 부분은 댓글로 알려주시면 감사하겠습니다.