poruttugi.tistory.com/17

 

Ubuntu DeepLearning(Tensor, Pytouch) Docker 세팅 -1-

Ubuntu에 Native로 설치하게되면 프로그램이 꼬이든 뭐든 문제가 생겨서 Docker를 도입해보았다. Docker를 사용함으로써 얻는 장점은 다른 여러 글들에서 볼 수 있고 Docker 설치법도 아마 함께 있을것이

poruttugi.tistory.com

Ubuntu DeepLearning(Tensor, Pytouch) Docker 세팅 -1-의 글을 이어서 수행한다.

 

Docker의 설정이 완료되었고 이젠 docker에서 사용할 image를 다운로드 받아야한다.

 

우리가 사용할 image는 deepo라는 image이다

 

위 표는 deepo와 그외 image들이 지원하는것들이다.

보게되면 ubuntu 버전도 18.04이고 cudnn등 다양한것들을 지원하게 deepo를 선택하였다.

 

자 이제 설치를 해보겠다.

 

우선적으로 image를 pull 해와야한다. 

 

우리가 가저올 이미지를 선택해야한다.

 

위 그림에서 사용 가능한 버전을 확인 할 수 있다. 선택적으로 설치해도 되지만 all-in-one을 설치하는게 나중에 속편할것 같다.

 

그리고 우리는 CUDA를 사용하므로 해당하는 태그를 사용한다. (본인이 예전에 설치할 때엔 아래 태그로 설치하였다.)

sudo docker pull ufoym/deepo:all-jupyter-py36-cu100

이제 image를 통해 컨테이너를 만들면된다.

 

일단 docker가 정상적으로 동작하는지를 확인하기 위한 테스트 컨테이너를 만든다.

gdocker run -it ufomy/deepo:all-jupyter-py36-cu100 /bin/bash

이제 docker가 실행되었을 것이다.

 

터미널에서 아래 명령을 수행하면 정상적으로 설치가 되었는지 확인이 가능할 것이다.

nvidia-smi

 

'Software > Ubuntu' 카테고리의 다른 글

Ubuntu DeepLearning(Tensor, Pytorch) Docker 세팅 -1-  (1) 2021.02.05
Ubuntu ZSH 설치  (0) 2021.01.22
우분투 한글 입력기  (0) 2021.01.22
Ubuntu 설치 중 화면 깨짐 현상 해결 방법  (0) 2021.01.22

Ubuntu에 Native로 설치하게되면 프로그램이 꼬이든 뭐든 문제가 생겨서 Docker를 도입해보았다.

 

Docker를 사용함으로써 얻는 장점은 다른 여러 글들에서 볼 수 있고 Docker 설치법도 아마 함께 있을것이다.

 

1. Terminal setup

일단 터미널 환경설정을 수행한다.

 

여기서 설치할것은 git, ssh이다.

 

sudo apt-get install -y git git-lfs

#SSH
sudo apt-get install -y ssh
sudo ufw enable
sudo ufw allow 22 8888 8080 6006

2. Docker installation

Docker는 간단하게 스크립트로 한번에 설치가 된다.

curl -fsSL https://get.docker.com/ | sudo sh

열심히 줄줄이설치할거다 그러고나서 docker 에게 권한을 부여해야지 정상적인 사용이 가능하다.

권한은 선택적으로 주면 된다

sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한 부여
sudo usermod -aG docker your-user # your-user 사용자에게 권한 부여

이후 ubuntu의 로그아웃 또는 재부팅을 수행하면 설치가 완료된다.

터미널에서 아래 명령을 수행하면 docker의 설치확인이 가능하다.

docker Version

3. nvidia-docker 설치

도커에서 nvidia의 Cuda를 사용하기 위해서는 nvidia-docker를 설치하여야 한다.

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

# 이후 아래 명령 실행
sudo apt-get install nvidia-docker2 

4. Docker alias 설정

이제 nvidia docker를 설치하였다.

아마 대부분의 경우 nvidia docker를 활용할거다.

현재는 nvidia-docker 라는 명령을 사용하지만 이름이 길다... 나는 이걸 짧게 줄이려 한다

.zshrc에 alias 명령을 넣어주면 실행 명령어를 수정할 수 있다.

alias gdocker="nvidia-docker"

나는 혹시 모르니까 docker가 아닌 gdocker로 명령어를 변경하였다. 

 

자 이제 gdocker를 실행하면 nvidia-docker가 실행된다

 

여기까지는 docker의 기본적인 설치, nvidia-docker를 수행하였다

 

다음 포스팅에 Tensor flow, Pytorch를 docker에서 수행하도록 하자.

'Software > Ubuntu' 카테고리의 다른 글

Ubuntu DeepLearning(Tensor, Pytorch) Docker 세팅 -2-  (0) 2021.02.05
Ubuntu ZSH 설치  (0) 2021.01.22
우분투 한글 입력기  (0) 2021.01.22
Ubuntu 설치 중 화면 깨짐 현상 해결 방법  (0) 2021.01.22

고도를 측정하는 요소로써 가장 많이 사용하는것이 GPS 고도와 압력계이다.

 

하지만 GPS의 고도의 경우 해수면 고도를 기준이므로 비행제어에 부적합하며 압력고도계의 경우 바람등의 외란의

영향에 매우 취약하다.

 

따라서 이를 대체하기 위해서 Lidar센서를 활용한 고도측정을 보조 수단으로 사용한다.

 

물론 Lidar의 경우 빛의 반사로 고도를 측정하기 때문에 지표면과의 거리를 측정하는 것이 아니라 Lidar와 물체간의

거리를 측정한다.

 

이전 포스팅인

 

Pixhawk IR-Lock를 사용한 정밀 착륙 -2-

 

Pixhawk IR-Lock를 사용한 정밀 착륙 -2-

poruttugi.tistory.com/14 Pixhawk IR-Lock를 사용한 정밀 착륙 -1- Pixhawk ArduPilot에서는 IR-Locker를 사용하면 정밀 착륙이 가능하다. IR-lock은 두가지로 구성되어있다. IR-Lock sensor와 Markone이다 IR-Lo..

poruttugi.tistory.com

기능을 수행하기 위해서는 Lidar가 반드시 필요하다. X,Y축으로는 IR-Lock sensor가 보정을 하지만 고도의 경우는

Lidar로 정밀 착륙을 수행한다.

 

환경은 아래와 같다.

 

FCC : Pixhawk

Firmware : ArduPilot

Lidar : Lightware SF3

 

SF30은 I2C를 지원한다  Lidar를 Pixhawk의 I2C 포트에 연결한다.

 

Mission Planner에서 3가지의 파라미터를 수정하여야 한다.

 

1. RNGFND1_TYPE

2. RNGFND1_MAX_CM

3. RNGFND1_MIN_CM

 

사용하고 있는 Lightware SF30은 RNGFND1_TYPE이 7로 설정이 되어있다. 다른 모델의 경우 아래 링크에서 확인

할 수 있다

 

ardupilot.org/copter/docs/parameters.html#rngfnd1-type

 

Complete Parameter List — Copter documentation

BATT5_ARM_MAH: Required arming remaining capacity Note: This parameter is for advanced users Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the veh

ardupilot.org

 

RNGFND1_MAX_CM // RNGFND1_MIN_CM 값은 Lidar의 스펙대로 입력한다.

 

그러면 이제 Lidar의 값을 Mission Planner에서 확인이 아래 사진과 같이 가능하다.

 

poruttugi.tistory.com/14

 

Pixhawk IR-Lock를 사용한 정밀 착륙 -1-

Pixhawk ArduPilot에서는 IR-Locker를 사용하면 정밀 착륙이 가능하다. IR-lock은 두가지로 구성되어있다. IR-Lock sensor와 Markone이다 IR-Lock sensor가 Markone에서 방출하는 빛을 감지, 빛을 Feature로 인..

poruttugi.tistory.com

우선 위 링크에서 IR-Lock 설정을 완료 하여야 한다.

 

설정을 완료 후 Pixhawk에 연결을 수행하여야 한다.

 

IR-Lock + Pixhawk

Pixhawk IR-Lock를 사용한 정밀 착륙 -1- 에서 언급한 것처럼 IR-Lock은 ArduPilot에서만 지원한다. PX4는

 

글을 쓰는 현재(2021.01.22) 지원하지 않는다.

 

Pixhawk를 다 연결 한 후 MissionPlanner에서 아래와 같이 파라미터를 설정한다.

 

Mission Planner Parameter Setting

Pixhawk의 IR-Lock의 설정이 완료되었다.

 

하지만 IR-Lock을 사용하기 위해서는 Point Lidar를 사용하여야 한다.

 

Lidar 세팅은 따로 포스팅을 할 예정이다.

 

Lidar까지 세팅을 완료되면 정밀 착륙을 수행 할 수 있다.

 

Markone을 착륙하고자 하는 위치에 전원을 켜고 기체를 이륙한다.

 

그리고 조종기 트리거로 LAND 명령을 수행하면 기체가 X,Y축으로 이동 후 착륙을 수행한다.

Pixhawk ArduPilot에서는 IR-Locker를 사용하면 정밀 착륙이 가능하다.

 

IR-Lock을 활용한 정밀 착륙

IR-lock은 두가지로 구성되어있다.

 

IR-Lock sensor와 Markone이다

IR-Lock Sensor
Markone

IR-Lock sensor가 Markone에서 방출하는 빛을 감지, 빛을 Feature로 인식하여 X,Y축 위치 제어를 통해 정밀 랜딩을 수행하는것으로 판단된다.

 

우선 PC에서 Markone의 빛을 IR-Lock이 잡아내는지를 확인하여야 한다.

 

cmucam.org/attachments/download/1246/pixymon_windows-2.0.9.exe

여기서 PixyMon 2.0.9를 다운로드 받아서 설치한다. 

드라이버를 설치하게 되면 PC가 정상적으로 인식하게 된다.

 

그리고선 PixyMon 2.0.9를 언인스톨 한다.

우리가 사용하고자하는 IR-Lock은 1.0.2 버전의 PixyMon을 사용해야 한다.

 

cdn.shopify.com/s/files/1/0599/7905/files/pixymon_windows-1.0.2beta.exe?290

PixyMon 1.0.2을 설치하고 아래의 .Hex파일을 IR-Lock에 업로드 한다.

 

irlock.readme.io/docs/firmwaresoftware-links

 

Firmware/Software Links · IRLOCK

IR-LOCK precision landing system for drones and UAV systems.

irlock.readme.io

.Hex 업로드가 완료 된 후 모든 파라미터를 디폴트값으로 변경하여야 한다.

 

Parameter reset

이제 PC 화면에 IR-Lock의 화면이 나타난다.

 

이제는 Markone에 전원을 넣어 적외선을 생성해줘야 한다.

 

Markone

전원을 넣어주면 IR이 방출이 된다. 눈으로는 안보인다. 가끔 핸드폰 카메라로 어두운 환경에서 보면 색이 보인다.

(하다가 카메라 날려먹은적이 있다 조심할것)

 

youtu.be/zfoTyE0h4zQ

설정을 끝내면 위 동영상처럼 IR은 밝게 보이게 될것이다.

 

하지만 우리가 정밀 착륙을 하기 위해서는 객체가 정확하게 탐지 되어야 한다.

 

IR-Lock도 일종의 카메라다. 따라서 초점이 정확하게 맞아야만 정상적인 기능을 수행한다.

 

IR-Lock 앞에 보면 십자 나사가 있다. 그걸 제거한 후 랜즈를 돌려가면서 초점을 잘 맞춰야한다.

 

나의 경우 일반적인 고도상황을 기준으로 설정하였다.

 

따라서 10M 거리에 있는 피사체가 정확하게 나오는 초점으로 랜즈를 조정하였다.

 

이로써 IR-Lock의 기본 설정은 완료된다.

 

 

 

 

ROS를 사용하다보면 두가지 버전이 필요할 때가 있다.

 

일단 ROS1과 ROS2를 각각 설치한다.

 

설치 후 .bashrc에서 환경설정을 통해 선택해서 사용할 수 있다.

 

ROS 1 / ROS 2  선택

 

위 사진처럼 설정 후 필요한 버전을 주석 제거하고 필요 없는 버전을 주석 처리한다.

위 사진은 ROS1 실행을 위한 설정이다

터미널에서 ZSH를 설치해준다.

 

sudo apt-get install zsh

설치가 되었다면 기본 쉘로 변경해야한다.

 

chsh -s /usr/bin/zsh

이렇게 되면 zsh가 설치가 완료된다. 

 

설치 후 테마를 변경하기 위해서는 ~/.zshrc를 열어서 변경해준다. 

 

zshrc내부에 ZSH-THEME 부분이 존재한다. 이것을 아래와 같이 변경한다.

ZSH_THEME="agnoster"

그리고 명령어 highlighting을 하기위해서는 아래와 같이 명령어를 수행한다.

 

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

한글 입력기 설치중 가장 간단한 방법이라 생각한다.

 

순서대로 터미널에서 실행해준다. 

 

sudo add-apt-repository ppa:hodong/nimf

sudo apt-get update

sudo apt install nimf nimf-libhangul

im-config -n nimf

+ Recent posts